summaryrefslogtreecommitdiff
path: root/scripting/java/com/sun/star/script/framework/container/UnoPkgContainer.java
diff options
context:
space:
mode:
Diffstat (limited to 'scripting/java/com/sun/star/script/framework/container/UnoPkgContainer.java')
-rw-r--r--scripting/java/com/sun/star/script/framework/container/UnoPkgContainer.java31
1 files changed, 24 insertions, 7 deletions
diff --git a/scripting/java/com/sun/star/script/framework/container/UnoPkgContainer.java b/scripting/java/com/sun/star/script/framework/container/UnoPkgContainer.java
index 3b9e04a27210..edf6a2d806b7 100644
--- a/scripting/java/com/sun/star/script/framework/container/UnoPkgContainer.java
+++ b/scripting/java/com/sun/star/script/framework/container/UnoPkgContainer.java
@@ -44,15 +44,21 @@ import com.sun.star.io.XOutputStream;
import com.sun.star.io.XTruncate;
import com.sun.star.deployment.XPackage;
+import com.sun.star.deployment.ExtensionRemovedException;
public class UnoPkgContainer extends ParcelContainer
{
private Map registeredPackages = new HashMap();
+ protected String extensionDb;
+ protected String extensionRepository;
- public UnoPkgContainer( XComponentContext xCtx, String locationURL, String language ) throws com.sun.star.lang.IllegalArgumentException, com.sun.star.lang.WrappedTargetException
+ public UnoPkgContainer( XComponentContext xCtx, String locationURL,
+ String _extensionDb, String _extensionRepository, String language ) throws com.sun.star.lang.IllegalArgumentException, com.sun.star.lang.WrappedTargetException
{
super( xCtx, locationURL, language, false );
+ extensionDb = _extensionDb;
+ extensionRepository = _extensionRepository;
init();
}
@@ -217,8 +223,8 @@ public class UnoPkgContainer extends ParcelContainer
DeployedUnoPackagesDB dp = null;
try
{
- String path = containerUrl.substring( 0, containerUrl.lastIndexOf("/") );
- String packagesUrl = PathUtils.make_url( path, "Scripts/unopkg-desc.xml" );
+// String path = containerUrl.substring( 0, containerUrl.lastIndexOf("/") );
+ String packagesUrl = PathUtils.make_url( extensionDb, "/Scripts/" + extensionRepository + "-extension-desc.xml" );
LogUtils.DEBUG("getUnoPackagesDB() looking for existing db in " + packagesUrl );
if ( m_xSFA.exists( packagesUrl ) )
{
@@ -276,8 +282,8 @@ public class UnoPkgContainer extends ParcelContainer
OutputStream os = null;
try
{
- String path = containerUrl.substring( 0, containerUrl.lastIndexOf("/") );
- String packagesUrl = PathUtils.make_url( path, "Scripts/unopkg-desc.xml" );
+// String path = containerUrl.substring( 0, containerUrl.lastIndexOf("/") );
+ String packagesUrl = PathUtils.make_url( extensionDb, "/Scripts/" + extensionRepository + "-extension-desc.xml" );
xos = m_xSFA.openFileWrite( packagesUrl );
XTruncate xTrc = (XTruncate) UnoRuntime.queryInterface( XTruncate.class, xos );
if ( xTrc != null )
@@ -336,7 +342,15 @@ public class UnoPkgContainer extends ParcelContainer
LogUtils.DEBUG("** processUnoPackage getURL() -> " + uri );
LogUtils.DEBUG("** processUnoPackage getName() -> " + dPackage.getName() );
LogUtils.DEBUG("** processUnoPackage getMediaType() -> " + dPackage.getPackageType().getMediaType() );
- LogUtils.DEBUG("** processUnoPackage getDisplayName() -> " + dPackage.getDisplayName() );
+ try
+ {
+ LogUtils.DEBUG("** processUnoPackage getDisplayName() -> " + dPackage.getDisplayName() );
+ }
+ catch (com.sun.star.deployment.ExtensionRemovedException e)
+ {
+ throw new com.sun.star.lang.WrappedTargetException(e.toString(), this, e);
+ }
+
processUnoPackage( uri, language );
db = getUnoPackagesDB();
@@ -366,7 +380,10 @@ public class UnoPkgContainer extends ParcelContainer
String parentUrl = uri;
if ( uri.indexOf( "%2Funo_packages%2F" ) > -1 ||
- uri.indexOf( "/uno_packages/" ) > -1 )
+ uri.indexOf( "/uno_packages/" ) > -1 ||
+ uri.indexOf("$UNO_USER_PACKAGES_CACHE/") > -1 ||
+ uri.indexOf("$UNO_SHARED_PACKAGES_CACHE/") > -1 ||
+ uri.indexOf("$BUNDLED_EXTENSIONS/") > -1 )
{
//its in a bundle need to determine the uno-package file its in
LogUtils.DEBUG("processUnoPackage - is part of a uno bundle");