X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.repo%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Frepo%2Fmaven%2FMigration_01_03.java;h=8b15eaea292a4c240722fc156028d428cf9188c0;hb=ece297b709bf55a514b471e1141dcd22fcdc54c6;hp=bd8c78838cee3d5bdf2a1fe54b48db0eff1233ff;hpb=4412d53a65487b529675e342258d644ee4903421;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/maven/Migration_01_03.java b/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/maven/Migration_01_03.java index bd8c78838..8b15eaea2 100644 --- a/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/maven/Migration_01_03.java +++ b/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/maven/Migration_01_03.java @@ -2,8 +2,9 @@ package org.argeo.slc.repo.maven; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.jar.Attributes.Name; import java.util.jar.Manifest; @@ -32,6 +33,7 @@ import org.argeo.slc.jcr.SlcTypes; import org.argeo.slc.repo.ArtifactIndexer; import org.argeo.slc.repo.JarFileIndexer; import org.argeo.slc.repo.RepoUtils; +import org.argeo.slc.repo.osgi.OsgiProfile; import org.osgi.framework.Constants; import org.sonatype.aether.artifact.Artifact; import org.sonatype.aether.util.artifact.DefaultArtifact; @@ -54,11 +56,13 @@ public class Migration_01_03 implements Runnable, SlcNames { private String targetWorkspace; private List excludedBundles = new ArrayList(); + private Map symbolicNamesMapping = new HashMap(); private Session origSession; private Session targetSession; - private List systemPackages; + private List systemPackages = OsgiProfile.PROFILE_JAVA_SE_1_6 + .getSystemPackages(); private String artifactBasePath = "/"; @@ -72,8 +76,8 @@ public class Migration_01_03 implements Runnable, SlcNames { targetWorkspace); // works only in OSGi!! - systemPackages = Arrays.asList(System.getProperty( - "org.osgi.framework.system.packages").split(",")); + // systemPackages = Arrays.asList(System.getProperty( + // "org.osgi.framework.system.packages").split(",")); } public void destroy() { @@ -118,6 +122,18 @@ public class Migration_01_03 implements Runnable, SlcNames { protected void processOrigArtifactVersion(Node origArtifactNode) throws RepositoryException, IOException { Artifact origArtifact = RepoUtils.asArtifact(origArtifactNode); + + // skip eclipse artifacts + if ((origArtifact.getGroupId().startsWith("org.eclipse") && !(origArtifact + .getArtifactId().equals("org.eclipse.osgi") || origArtifact + .getArtifactId().equals("org.eclipse.osgi.source"))) + || origArtifact.getArtifactId().startsWith("org.polymap") + || origArtifact.getArtifactId().startsWith("com.ibm.icu")) { + if (log.isDebugEnabled()) + log.debug("Skip " + origArtifact); + return; + } + String origJarNodeName = MavenConventionsUtils .artifactFileName(origArtifact); if (!origArtifactNode.hasNode(origJarNodeName)) @@ -138,18 +154,23 @@ public class Migration_01_03 implements Runnable, SlcNames { String origSymbolicName = origManifest.getMainAttributes().getValue( Constants.BUNDLE_SYMBOLICNAME); final String targetSymbolicName; - if (origSymbolicName.startsWith(SPRING_SOURCE_PREFIX) + if (symbolicNamesMapping.containsKey(origSymbolicName)) { + targetSymbolicName = symbolicNamesMapping.get(origSymbolicName); + } else if (origSymbolicName.startsWith(SPRING_SOURCE_PREFIX) && !origSymbolicName.equals(SPRING_SOURCE_PREFIX + ".json")) { targetSymbolicName = origSymbolicName .substring(SPRING_SOURCE_PREFIX.length() + 1); - if (log.isDebugEnabled()) - log.debug(Constants.BUNDLE_SYMBOLICNAME + " to " - + targetSymbolicName + " \t\tfrom " + origSymbolicName); + } else { + targetSymbolicName = origSymbolicName; + } + + if (!targetSymbolicName.equals(origSymbolicName)) { targetManifest.getMainAttributes().putValue( Constants.BUNDLE_SYMBOLICNAME, targetSymbolicName); manifestModified = true; - } else { - targetSymbolicName = origSymbolicName; + if (log.isDebugEnabled()) + log.debug(Constants.BUNDLE_SYMBOLICNAME + " to " + + targetSymbolicName + " \t\tfrom " + origSymbolicName); } // skip excluded bundles @@ -161,16 +182,28 @@ public class Migration_01_03 implements Runnable, SlcNames { new Name(Constants.FRAGMENT_HOST))) { String origFragmentHost = origManifest.getMainAttributes() .getValue(Constants.FRAGMENT_HOST); - if (origFragmentHost.startsWith(SPRING_SOURCE_PREFIX) + String targetFragmentHost; + if (symbolicNamesMapping.containsKey(origFragmentHost)) { + targetFragmentHost = symbolicNamesMapping.get(origFragmentHost); + } else if (origFragmentHost.startsWith(SPRING_SOURCE_PREFIX) && !origFragmentHost.equals(SPRING_SOURCE_PREFIX + ".json")) { - String targetFragmentHost = origFragmentHost + targetFragmentHost = origFragmentHost .substring(SPRING_SOURCE_PREFIX.length() + 1); - if (log.isDebugEnabled()) - log.debug(Constants.FRAGMENT_HOST + " to " - + targetFragmentHost + " from " + origFragmentHost); + } else if (origFragmentHost + .equals("org.argeo.dep.jacob;bundle-version=\"[1.14.3,1.14.4)\"")) { + // this one for those who think I cannot be pragmatic - mbaudier + targetFragmentHost = "com.jacob;bundle-version=\"[1.14.3,1.14.4)\""; + } else { + targetFragmentHost = origFragmentHost; + } + + if (!targetFragmentHost.equals(origFragmentHost)) { targetManifest.getMainAttributes().putValue( Constants.FRAGMENT_HOST, targetFragmentHost); manifestModified = true; + if (log.isDebugEnabled()) + log.debug(Constants.FRAGMENT_HOST + " to " + + targetFragmentHost + " from " + origFragmentHost); } } @@ -227,7 +260,8 @@ public class Migration_01_03 implements Runnable, SlcNames { // target coordinates final String targetGroupId; - if (origArtifact.getGroupId().startsWith("org.eclipse")) + if (origArtifact.getGroupId().startsWith("org.eclipse") + && !origArtifact.getArtifactId().equals("org.eclipse.osgi")) targetGroupId = "org.argeo.tp.eclipse"; else targetGroupId = "org.argeo.tp"; @@ -355,4 +389,8 @@ public class Migration_01_03 implements Runnable, SlcNames { this.excludedBundles = excludedBundles; } + public void setSymbolicNamesMapping(Map symbolicNamesMapping) { + this.symbolicNamesMapping = symbolicNamesMapping; + } + }