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=baf6ec723e0f852b4370e79c5921552de3391533;hb=fa099b50351a61638bdb1e3becc45ace640c15f2;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..baf6ec723 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 @@ -1,9 +1,25 @@ +/* + * Copyright (C) 2007-2012 Argeo GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ 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 +48,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 +71,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 +91,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 +137,24 @@ 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.eclipse.rwt.widgets.upload"))) + || origArtifact.getArtifactId().startsWith("com.ibm.icu")) { + if (log.isDebugEnabled()) + log.debug("Skip " + origArtifact); + return; + } + + // skip SpringSource ActiveMQ + if (origArtifact.getArtifactId().startsWith( + "com.springsource.org.apache.activemq")) + return; + String origJarNodeName = MavenConventionsUtils .artifactFileName(origArtifact); if (!origArtifactNode.hasNode(origJarNodeName)) @@ -138,18 +175,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 +203,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,8 +281,16 @@ public class Migration_01_03 implements Runnable, SlcNames { // target coordinates final String targetGroupId; - if (origArtifact.getGroupId().startsWith("org.eclipse")) - targetGroupId = "org.argeo.tp.eclipse"; + if (origArtifact.getArtifactId().startsWith( + "org.eclipse.rwt.widgets.upload")) + targetGroupId = "org.argeo.tp.rap"; + else if (origArtifact.getArtifactId().startsWith("org.polymap")) + targetGroupId = "org.argeo.tp.rap"; + else if (origArtifact.getGroupId().startsWith("org.eclipse") + && !origArtifact.getArtifactId().equals("org.eclipse.osgi")) + throw new SlcException(origArtifact + " should have been excluded");// targetGroupId + // = + // "org.argeo.tp.eclipse"; else targetGroupId = "org.argeo.tp"; @@ -355,4 +417,8 @@ public class Migration_01_03 implements Runnable, SlcNames { this.excludedBundles = excludedBundles; } + public void setSymbolicNamesMapping(Map symbolicNamesMapping) { + this.symbolicNamesMapping = symbolicNamesMapping; + } + }