You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2017/07/04 05:55:18 UTC

svn commit: r1800725 - in /jackrabbit/commons/filevault/trunk/vault-core/src: main/java/org/apache/jackrabbit/vault/fs/io/ main/java/org/apache/jackrabbit/vault/packaging/ main/java/org/apache/jackrabbit/vault/packaging/impl/ test/java/org/apache/jackr...

Author: tripod
Date: Tue Jul  4 05:55:17 2017
New Revision: 1800725

URL: http://svn.apache.org/viewvc?rev=1800725&view=rev
Log:
JCRVLT-192 Deprecated exact storage location (/etc/packages)

Modified:
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/Importer.java
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/Dependency.java
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackage.java
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/PackageId.java
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageManagerImpl.java
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/PackagePropertiesImpl.java
    jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/ZipVaultPackage.java
    jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/PackageIdTest.java

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/Importer.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/Importer.java?rev=1800725&r1=1800724&r2=1800725&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/Importer.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/fs/io/Importer.java Tue Jul  4 05:55:17 2017
@@ -84,6 +84,8 @@ import org.apache.jackrabbit.vault.util.
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.jackrabbit.vault.packaging.impl.JcrPackageManagerImpl.PACKAGE_ROOT_PATH_PREFIX;
+
 /**
  * {@code AbstractImporter}
  *
@@ -669,7 +671,8 @@ public class Importer {
                         continue;
                     }
                 }
-                if (repoPath.startsWith("/etc/packages/") && (repoPath.endsWith(".jar") || repoPath.endsWith(".zip"))) {
+                // todo: find better way to detect sub-packages
+                if (repoPath.startsWith(PACKAGE_ROOT_PATH_PREFIX) && (repoPath.endsWith(".jar") || repoPath.endsWith(".zip"))) {
                     subPackages.add(repoPath);
                 }
 
@@ -697,7 +700,7 @@ public class Importer {
                 SerializationType serType = SerializationType.GENERIC;
                 ArtifactType type = ArtifactType.PRIMARY;
                 VaultInputSource is = archive.getInputSource(file);
-                if (ext.equals(".xml")) {
+                if (".xml".equals(ext)) {
                     // this can either be an generic exported docview or a 'user-xml' that is imported as file
                     // btw: this only works for input sources that can refetch their input stream
                     serType = XmlAnalyzer.analyze(is);

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/Dependency.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/Dependency.java?rev=1800725&r1=1800724&r2=1800725&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/Dependency.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/Dependency.java Tue Jul  4 05:55:17 2017
@@ -113,7 +113,10 @@ public class Dependency {
     /**
      * Returns the installation path of this dependency
      * @return the installation path;
+     *
+     * @deprecated As of 3.1.42, the storage location is implementation details.
      */
+    @Deprecated
     public String getPath() {
         StringBuilder b = new StringBuilder();
         if (groupId.length() > 0) {

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackage.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackage.java?rev=1800725&r1=1800724&r2=1800725&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackage.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/JcrPackage.java Tue Jul  4 05:55:17 2017
@@ -210,7 +210,10 @@ public interface JcrPackage extends Comp
      * @throws RepositoryException if an error occurs.
      *
      * @since 2.2.18
+     *
+     * @deprecated As of 3.1.42, the storage location is implementation details.
      */
+    @Deprecated
     boolean verifyId(boolean autoFix, boolean autoSave) throws RepositoryException;
 
     /**

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/PackageId.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/PackageId.java?rev=1800725&r1=1800724&r2=1800725&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/PackageId.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/PackageId.java Tue Jul  4 05:55:17 2017
@@ -28,8 +28,18 @@ import org.apache.jackrabbit.vault.util.
  */
 public class PackageId implements Comparable<PackageId> {
 
+    /**
+     * The root path of the packages storage location.
+     * @deprecated As of 3.1.42, the storage location is implementation details.
+     */
+    @Deprecated
     public static final String ETC_PACKAGES = "/etc/packages";
 
+    /**
+     * The root path prefix of the packages storage location.
+     * @deprecated As of 3.1.42, the storage location is implementation details.
+     */
+    @Deprecated
     public static final String ETC_PACKAGES_PREFIX = "/etc/packages/";
 
     public static final PackageId[] EMPTY = new PackageId[0];
@@ -47,14 +57,17 @@ public class PackageId implements Compar
     /**
      * Creates a new package id
      * @param path path of the package
+     *
+     * @deprecated As of 3.1.42, the storage location is implementation details.
      */
+    @Deprecated
     public PackageId(String path) {
         fromPath = true;
         path = path.trim();
         int idx = path.lastIndexOf('.');
         if (idx > 0) {
             String ext = path.substring(idx);
-            if (ext.equalsIgnoreCase(".zip") || ext.equalsIgnoreCase(".jar")) {
+            if (".zip".equalsIgnoreCase(ext) || ".jar".equalsIgnoreCase(ext)) {
                 path = path.substring(0, idx);
             }
         }
@@ -90,7 +103,7 @@ public class PackageId implements Compar
             // check if starts with a letter'
             if (Character.isJavaIdentifierStart(segs[i].charAt(0))) {
                 // then need a digit
-                if (segs[i].length() == 1 || !Character.isDigit(segs[i].charAt(1)) && !segs[i].equals("SNAPSHOT")) {
+                if (segs[i].length() == 1 || !Character.isDigit(segs[i].charAt(1)) && !"SNAPSHOT".equals(segs[i])) {
                     break;
                 }
             }
@@ -124,7 +137,10 @@ public class PackageId implements Compar
      * Creates a new package id
      * @param path path of the package
      * @param version version of the package
+     *
+     * @deprecated As of 3.1.42, the storage location is implementation details.
      */
+    @Deprecated
     public PackageId(String path, String version) {
         this(path, Version.create(version));
     }
@@ -133,14 +149,17 @@ public class PackageId implements Compar
      * Creates a new package id
      * @param path path of the package
      * @param version version of the package
+     *
+     * @deprecated As of 3.1.42, the storage location is implementation details.
      */
+    @Deprecated
     public PackageId(String path, Version version) {
         fromPath = true;
         path = path.trim();
         int idx = path.lastIndexOf('.');
         if (idx > 0) {
             String ext = path.substring(idx);
-            if (ext.equalsIgnoreCase(".zip") || ext.equalsIgnoreCase(".jar")) {
+            if (".zip".equalsIgnoreCase(ext) || ".jar".equalsIgnoreCase(ext)) {
                 path = path.substring(0, idx);
             }
         }
@@ -257,7 +276,9 @@ public class PackageId implements Compar
      * @return {@code true} if constructed from path.
      *
      * @since 2.2.26
+     * @deprecated As of 3.1.42, the storage location is implementation details.
      */
+    @Deprecated
     public boolean isFromPath() {
         return fromPath;
     }
@@ -268,7 +289,9 @@ public class PackageId implements Compar
      *
      * @return the path of this package
      * @since 2.2
+     * @deprecated As of 3.1.42, the storage location is implementation details.
      */
+    @Deprecated
     public String getInstallationPath() {
         StringBuilder b = new StringBuilder(ETC_PACKAGES_PREFIX);
         if (group.length() > 0) {
@@ -512,7 +535,7 @@ public class PackageId implements Compar
                         // More detailed validity checks (is it well formed,
                         // registered, etc.) are not needed here.
                         state = STATE_NAME_START;
-                    } else if (tmp.equals("internal")) {
+                    } else if ("internal".equals(tmp)) {
                         // As a special Jackrabbit backwards compatibility
                         // feature, support {internal} as a valid URI prefix
                         state = STATE_NAME_START;

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java?rev=1800725&r1=1800724&r2=1800725&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageImpl.java Tue Jul  4 05:55:17 2017
@@ -231,7 +231,7 @@ public class JcrPackageImpl implements J
         PackageId cId = new PackageId(node.getPath());
         // compare installation paths since non-conform version numbers might
         // lead to different pids (bug #35564)
-        if (id.getInstallationPath().equals(cId.getInstallationPath())) {
+        if (JcrPackageManagerImpl.getInstallationPath(id).equals(JcrPackageManagerImpl.getInstallationPath(cId))) {
             if (autoFix && id.isFromPath()) {
                 // if definition has no id set, fix anyways
                 jDef.setId(cId, autoSave);
@@ -562,7 +562,8 @@ public class JcrPackageImpl implements J
         // check if filter has root outside /etc/packages
         boolean hasOwnContent = false;
         for (PathFilterSet root: a.getMetaInf().getFilter().getFilterSets()) {
-            if (!Text.isDescendantOrEqual("/etc/packages", root.getRoot())) {
+            // todo: find better way to detect subpackages
+            if (!Text.isDescendantOrEqual(JcrPackageManagerImpl.PACKAGE_ROOT_PATH, root.getRoot())) {
                 log.debug("Package {}: contains content outside /etc/packages. Sub packages will have a dependency to it", pId);
                 hasOwnContent = true;
                 break;
@@ -822,7 +823,7 @@ public class JcrPackageImpl implements J
         }
         log.debug("Creating snapshot for {}.", id);
         JcrPackageManagerImpl packMgr = new JcrPackageManagerImpl(node.getSession());
-        String path = id.getInstallationPath();
+        String path = JcrPackageManagerImpl.getInstallationPath(id);
         String parentPath = Text.getRelativeParent(path, 1);
         Node folder = packMgr.mkdir(parentPath, true);
         JcrPackage snap = mgr.createNew(folder, id, null, true);
@@ -856,10 +857,11 @@ public class JcrPackageImpl implements J
         if (node == null) {
             return null;
         }
-        if (node.getSession().nodeExists(id.getInstallationPath())) {
-            return node.getSession().getNode(id.getInstallationPath());
-        } else if (node.getSession().nodeExists(id.getInstallationPath() + ".zip")) {
-            return node.getSession().getNode(id.getInstallationPath() + ".zip");
+        String path = JcrPackageManagerImpl.getInstallationPath(id);
+        if (node.getSession().nodeExists(path)) {
+            return node.getSession().getNode(path);
+        } else if (node.getSession().nodeExists(path + ".zip")) {
+            return node.getSession().getNode(path + ".zip");
         }
         return null;
     }

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageManagerImpl.java?rev=1800725&r1=1800724&r2=1800725&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageManagerImpl.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/JcrPackageManagerImpl.java Tue Jul  4 05:55:17 2017
@@ -96,7 +96,12 @@ public class JcrPackageManagerImpl exten
     /**
      * root path for packages
      */
-    private final static String PACKAGE_ROOT_PATH = "/etc/packages";
+    final static String PACKAGE_ROOT_PATH = "/etc/packages";
+
+    /**
+     * root path prefix for packages
+     */
+    public final static String PACKAGE_ROOT_PATH_PREFIX = "/etc/packages/";
 
     /**
      * root path for packages
@@ -125,7 +130,7 @@ public class JcrPackageManagerImpl exten
 
     @Override
     public JcrPackage open(PackageId id) throws RepositoryException {
-        String path = id.getInstallationPath();
+        String path = getInstallationPath(id);
         String[] exts = new String[]{"", ".zip", ".jar"};
         for (String ext: exts) {
             if (session.nodeExists(path + ext)) {
@@ -254,7 +259,7 @@ public class JcrPackageManagerImpl exten
         PackageId pid = props.getId();
 
         // invalidate pid if path is unknown
-        if (pid == null || pid.getInstallationPath().equals(ZipVaultPackage.UNKNOWN_PATH)) {
+        if (pid == null) {
             bin.dispose();
             throw new IOException("Package does not contain a path specification or valid package id.");
         }
@@ -263,7 +268,7 @@ public class JcrPackageManagerImpl exten
         }
 
         // create parent node
-        String path = pid.getInstallationPath() + ".zip";
+        String path = getInstallationPath(pid) + ".zip";
         String parentPath = Text.getRelativeParent(path, 1);
         String name = Text.getName(path);
         Node parent = mkdir(parentPath, false);
@@ -377,9 +382,6 @@ public class JcrPackageManagerImpl exten
 
         // invalidate pid if path is unknown
         PackageId pid = pkg.getId();
-        if (pid != null && pid.getInstallationPath().equals(ZipVaultPackage.UNKNOWN_PATH)) {
-            pid = null;
-        }
         if (pid == null) {
             if (nameHint == null || nameHint.length() == 0) {
                 throw new IOException("Package does not contain a path specification and not name hint is given.");
@@ -391,7 +393,7 @@ public class JcrPackageManagerImpl exten
         }
 
         // create parent node
-        String path = pid.getInstallationPath() + ".zip";
+        String path = getInstallationPath(pid) + ".zip";
         String parentPath = Text.getRelativeParent(path, 1);
         String name = Text.getName(path);
         Node parent = mkdir(parentPath, false);
@@ -466,7 +468,7 @@ public class JcrPackageManagerImpl exten
             throw new RepositoryException("Unable to create package. Illegal package name.");
         }
         PackageId pid = new PackageId(group, name, version);
-        Node folder = mkdir(Text.getRelativeParent(pid.getInstallationPath(), 1), false);
+        Node folder = mkdir(Text.getRelativeParent(getInstallationPath(pid), 1), false);
         return createNew(folder, pid, null, true);
     }
 
@@ -486,7 +488,7 @@ public class JcrPackageManagerImpl exten
     @Nonnull
     public JcrPackage createNew(@Nonnull Node parent, @Nonnull PackageId pid, @Nullable VaultPackage pack, boolean autoSave)
             throws RepositoryException, IOException {
-        Node node = parent.addNode(Text.getName(pid.getInstallationPath() + ".zip"), JcrConstants.NT_FILE);
+        Node node = parent.addNode(Text.getName(getInstallationPath(pid) + ".zip"), JcrConstants.NT_FILE);
         Node content = node.addNode(JcrConstants.JCR_CONTENT, JcrConstants.NT_RESOURCE);
         content.addMixin(JcrPackage.NT_VLT_PACKAGE);
         Node defNode = content.addNode(JcrPackage.NN_VLT_DEFINITION);
@@ -534,7 +536,7 @@ public class JcrPackageManagerImpl exten
     @Nonnull
     public JcrPackage createNew(@Nonnull Node parent, @Nonnull PackageId pid, @Nonnull Binary bin, @Nonnull MemoryArchive archive)
             throws RepositoryException, IOException {
-        Node node = parent.addNode(Text.getName(pid.getInstallationPath() + ".zip"), JcrConstants.NT_FILE);
+        Node node = parent.addNode(Text.getName(getInstallationPath(pid) + ".zip"), JcrConstants.NT_FILE);
         Node content = node.addNode(JcrConstants.JCR_CONTENT, JcrConstants.NT_RESOURCE);
         content.addMixin(JcrPackage.NT_VLT_PACKAGE);
         Node defNode = content.addNode(JcrPackage.NN_VLT_DEFINITION);
@@ -599,7 +601,7 @@ public class JcrPackageManagerImpl exten
                 name == null ? id.getName() : name,
                 version == null ? id.getVersion() : Version.create(version)
         );
-        String dstPath = newId.getInstallationPath() + ".zip";
+        String dstPath = getInstallationPath(newId) + ".zip";
         if (id.equals(newId) && pack.getNode().getPath().equals(dstPath)) {
             log.debug("Package id not changed. won't rename.");
             return pack;
@@ -954,4 +956,30 @@ public class JcrPackageManagerImpl exten
             }
         }
     }
+
+    /**
+     * Returns the path of this package. please note that since 2.3 this also
+     * includes the version, but never the extension (.zip).
+     *
+     * Note that the exact storage location is implementation detail and this method should only be used internally for
+     * backward compatibility use cases.
+     *
+     * @param pid the package id
+     * @return the path of this package
+     */
+    public static String getInstallationPath(PackageId pid) {
+        StringBuilder b = new StringBuilder(PACKAGE_ROOT_PATH_PREFIX);
+        String group = pid.getGroup();
+        if (group.length() > 0) {
+            b.append(group);
+            b.append("/");
+        }
+        b.append(pid.getName());
+        String version = pid.getVersion().toString();
+        if (version.length() > 0) {
+            b.append("-").append(version);
+        }
+        return b.toString();
+    }
+
 }
\ No newline at end of file

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/PackagePropertiesImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/PackagePropertiesImpl.java?rev=1800725&r1=1800724&r2=1800725&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/PackagePropertiesImpl.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/PackagePropertiesImpl.java Tue Jul  4 05:55:17 2017
@@ -36,8 +36,6 @@ public abstract class PackagePropertiesI
 
     private static final Logger log = LoggerFactory.getLogger(PackagePropertiesImpl.class);
 
-    public static final String UNKNOWN_PATH = "/etc/packages/unknown";
-
     private PackageId id;
 
     public PackageId getId() {
@@ -52,13 +50,7 @@ public abstract class PackagePropertiesI
             if (group != null && name != null) {
                 id = new PackageId(group, name, version);
             } else {
-                // check for legacy packages that only contains a 'path' property
-                String path = getProperty("path");
-                if (path == null || path.length() == 0) {
-                    log.warn("Package does not specify a path. setting to 'unknown'");
-                    path = UNKNOWN_PATH;
-                }
-                id = new PackageId(path, version);
+                log.warn("Package properties not valid. need group and name property.");
             }
         }
         return id;

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/ZipVaultPackage.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/ZipVaultPackage.java?rev=1800725&r1=1800724&r2=1800725&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/ZipVaultPackage.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/main/java/org/apache/jackrabbit/vault/packaging/impl/ZipVaultPackage.java Tue Jul  4 05:55:17 2017
@@ -49,8 +49,6 @@ public class ZipVaultPackage extends Pac
 
     private static final Logger log = LoggerFactory.getLogger(ZipVaultPackage.class);
 
-    public static final String UNKNOWN_PATH = "/etc/packages/unknown";
-
     private Archive archive;
 
     public ZipVaultPackage(File file, boolean isTmpFile) throws IOException {

Modified: jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/PackageIdTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/PackageIdTest.java?rev=1800725&r1=1800724&r2=1800725&view=diff
==============================================================================
--- jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/PackageIdTest.java (original)
+++ jackrabbit/commons/filevault/trunk/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/PackageIdTest.java Tue Jul  4 05:55:17 2017
@@ -29,11 +29,13 @@ public class PackageIdTest extends TestC
         assertEquals("group:name:version", packId.toString());
     }
 
+    @SuppressWarnings("deprecation")
     public void testToInstallPath() {
         PackageId packId = new PackageId("group", "name", "version");
         assertEquals("/etc/packages/group/name-version", packId.getInstallationPath());
     }
 
+    @SuppressWarnings("deprecation")
     public void testToInstallPath1() {
         PackageId packId = new PackageId("group", "name", "");
         assertEquals("/etc/packages/group/name", packId.getInstallationPath());