import javax.jcr.query.qom.QueryObjectModelFactory;
import javax.jcr.query.qom.Selector;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.argeo.api.cms.CmsLog;
import org.argeo.jcr.JcrUtils;
import org.argeo.slc.NameVersion;
import org.argeo.slc.SlcException;
*/
public class Migration_01_03 implements Runnable, SlcNames {
final String SPRING_SOURCE_PREFIX = "com.springsource";
- private final static Log log = LogFactory.getLog(Migration_01_03.class);
+ private final static CmsLog log = CmsLog.getLog(Migration_01_03.class);
private Repository repository;
private String sourceWorkspace;
private Session origSession;
private Session targetSession;
- private List<String> systemPackages = OsgiProfile.PROFILE_JAVA_SE_1_6
- .getSystemPackages();
+ private List<String> systemPackages = OsgiProfile.PROFILE_JAVA_SE_1_6.getSystemPackages();
private String artifactBasePath = "/";
private JarFileIndexer jarFileIndexer = new JarFileIndexer();
public void init() throws RepositoryException {
- origSession = JcrUtils.loginOrCreateWorkspace(repository,
- sourceWorkspace);
- targetSession = JcrUtils.loginOrCreateWorkspace(repository,
- targetWorkspace);
+ origSession = JcrUtils.loginOrCreateWorkspace(repository, sourceWorkspace);
+ targetSession = JcrUtils.loginOrCreateWorkspace(repository, targetWorkspace);
// works only in OSGi!!
// systemPackages = Arrays.asList(System.getProperty(
try {
// clear target
- NodeIterator nit = targetSession.getNode(artifactBasePath)
- .getNodes();
+ NodeIterator nit = targetSession.getNode(artifactBasePath).getNodes();
while (nit.hasNext()) {
Node node = nit.nextNode();
- if (node.isNodeType(NodeType.NT_FOLDER)
- || node.isNodeType(NodeType.NT_UNSTRUCTURED)) {
+ if (node.isNodeType(NodeType.NT_FOLDER) || node.isNodeType(NodeType.NT_UNSTRUCTURED)) {
node.remove();
node.getSession().save();
if (log.isDebugEnabled())
processOrigArtifactVersion(origArtifactNode);
}
} catch (Exception e) {
- throw new SlcException("Cannot perform v1.3 migration from "
- + sourceWorkspace + " to " + targetWorkspace, e);
+ throw new SlcException("Cannot perform v1.3 migration from " + sourceWorkspace + " to " + targetWorkspace,
+ e);
} finally {
JcrUtils.discardQuietly(targetSession);
}
}
- protected void processOrigArtifactVersion(Node origArtifactNode)
- throws RepositoryException, IOException {
+ 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")))
+ 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);
}
// skip SpringSource ActiveMQ
- if (origArtifact.getArtifactId().startsWith(
- "com.springsource.org.apache.activemq"))
+ if (origArtifact.getArtifactId().startsWith("com.springsource.org.apache.activemq"))
return;
- String origJarNodeName = MavenConventionsUtils
- .artifactFileName(origArtifact);
+ String origJarNodeName = MavenConventionsUtils.artifactFileName(origArtifact);
if (!origArtifactNode.hasNode(origJarNodeName))
- throw new SlcException("Cannot find jar node for "
- + origArtifactNode);
+ throw new SlcException("Cannot find jar node for " + origArtifactNode);
Node origJarNode = origArtifactNode.getNode(origJarNodeName);
// read MANIFEST
- Binary manifestBinary = origJarNode.getProperty(SLC_MANIFEST)
- .getBinary();
+ Binary manifestBinary = origJarNode.getProperty(SLC_MANIFEST).getBinary();
Manifest origManifest = new Manifest(manifestBinary.getStream());
JcrUtils.closeQuietly(manifestBinary);
Manifest targetManifest = new Manifest(origManifest);
// transform symbolic name
- String origSymbolicName = origManifest.getMainAttributes().getValue(
- Constants.BUNDLE_SYMBOLICNAME);
+ String origSymbolicName = origManifest.getMainAttributes().getValue(Constants.BUNDLE_SYMBOLICNAME);
final String targetSymbolicName;
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);
+ targetSymbolicName = origSymbolicName.substring(SPRING_SOURCE_PREFIX.length() + 1);
} else {
targetSymbolicName = origSymbolicName;
}
if (!targetSymbolicName.equals(origSymbolicName)) {
- targetManifest.getMainAttributes().putValue(
- Constants.BUNDLE_SYMBOLICNAME, targetSymbolicName);
+ targetManifest.getMainAttributes().putValue(Constants.BUNDLE_SYMBOLICNAME, targetSymbolicName);
manifestModified = true;
if (log.isDebugEnabled())
- log.debug(Constants.BUNDLE_SYMBOLICNAME + " to "
- + targetSymbolicName + " \t\tfrom " + origSymbolicName);
+ log.debug(
+ Constants.BUNDLE_SYMBOLICNAME + " to " + targetSymbolicName + " \t\tfrom " + origSymbolicName);
}
// skip excluded bundles
return;
// check fragment host
- if (origManifest.getMainAttributes().containsKey(
- new Name(Constants.FRAGMENT_HOST))) {
- String origFragmentHost = origManifest.getMainAttributes()
- .getValue(Constants.FRAGMENT_HOST);
+ if (origManifest.getMainAttributes().containsKey(new Name(Constants.FRAGMENT_HOST))) {
+ String origFragmentHost = origManifest.getMainAttributes().getValue(Constants.FRAGMENT_HOST);
String targetFragmentHost;
if (symbolicNamesMapping.containsKey(origFragmentHost)) {
targetFragmentHost = symbolicNamesMapping.get(origFragmentHost);
} else if (origFragmentHost.startsWith(SPRING_SOURCE_PREFIX)
&& !origFragmentHost.equals(SPRING_SOURCE_PREFIX + ".json")) {
- targetFragmentHost = origFragmentHost
- .substring(SPRING_SOURCE_PREFIX.length() + 1);
- } else if (origFragmentHost
- .equals("org.argeo.dep.jacob;bundle-version=\"[1.14.3,1.14.4)\"")) {
+ targetFragmentHost = origFragmentHost.substring(SPRING_SOURCE_PREFIX.length() + 1);
+ } 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 {
}
if (!targetFragmentHost.equals(origFragmentHost)) {
- targetManifest.getMainAttributes().putValue(
- Constants.FRAGMENT_HOST, targetFragmentHost);
+ targetManifest.getMainAttributes().putValue(Constants.FRAGMENT_HOST, targetFragmentHost);
manifestModified = true;
if (log.isDebugEnabled())
- log.debug(Constants.FRAGMENT_HOST + " to "
- + targetFragmentHost + " from " + origFragmentHost);
+ log.debug(Constants.FRAGMENT_HOST + " to " + targetFragmentHost + " from " + origFragmentHost);
}
}
// javax with versions
StringBuffer targetImportPackages = new StringBuffer("");
- NodeIterator origImportPackages = origJarNode.getNodes(SLC_
- + Constants.IMPORT_PACKAGE);
+ NodeIterator origImportPackages = origJarNode.getNodes(SLC_ + Constants.IMPORT_PACKAGE);
Boolean importPackagesModified = false;
while (origImportPackages.hasNext()) {
Node importPackage = origImportPackages.nextNode();
String pkg = importPackage.getProperty(SLC_NAME).getString();
targetImportPackages.append(pkg);
if (importPackage.hasProperty(SLC_VERSION)) {
- String sourceVersion = importPackage.getProperty(SLC_VERSION)
- .getString();
+ String sourceVersion = importPackage.getProperty(SLC_VERSION).getString();
String targetVersion = sourceVersion;
if (systemPackages.contains(pkg)) {
- if (!(sourceVersion.trim().equals("0") || sourceVersion
- .trim().equals("0.0.0"))) {
+ if (!(sourceVersion.trim().equals("0") || sourceVersion.trim().equals("0.0.0"))) {
targetVersion = null;
importPackagesModified = true;
if (log.isDebugEnabled())
- log.debug(origSymbolicName
- + ": Nullify version of " + pkg + " from "
- + sourceVersion);
+ log.debug(origSymbolicName + ": Nullify version of " + pkg + " from " + sourceVersion);
}
}
if (targetVersion != null)
- targetImportPackages.append(";version=\"")
- .append(targetVersion).append("\"");
+ targetImportPackages.append(";version=\"").append(targetVersion).append("\"");
}
if (importPackage.hasProperty(SLC_OPTIONAL)) {
- Boolean optional = importPackage.getProperty(SLC_OPTIONAL)
- .getBoolean();
+ Boolean optional = importPackage.getProperty(SLC_OPTIONAL).getBoolean();
if (optional)
targetImportPackages.append(";resolution:=\"optional\"");
}
if (importPackagesModified) {
- targetManifest.getMainAttributes().putValue(
- Constants.IMPORT_PACKAGE, targetImportPackages.toString());
+ targetManifest.getMainAttributes().putValue(Constants.IMPORT_PACKAGE, targetImportPackages.toString());
manifestModified = true;
}
// target coordinates
final String targetGroupId;
- if (origArtifact.getArtifactId().startsWith(
- "org.eclipse.rwt.widgets.upload"))
+ 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";
targetGroupId = "org.argeo.tp";
String targetArtifactId = targetSymbolicName.split(";")[0];
- Artifact targetArtifact = new DefaultArtifact(targetGroupId,
- targetArtifactId, "jar", origArtifact.getVersion());
- String targetParentPath = MavenConventionsUtils.artifactParentPath(
- artifactBasePath, targetArtifact);
- String targetFileName = MavenConventionsUtils
- .artifactFileName(targetArtifact);
+ Artifact targetArtifact = new DefaultArtifact(targetGroupId, targetArtifactId, "jar",
+ origArtifact.getVersion());
+ String targetParentPath = MavenConventionsUtils.artifactParentPath(artifactBasePath, targetArtifact);
+ String targetFileName = MavenConventionsUtils.artifactFileName(targetArtifact);
String targetJarPath = targetParentPath + '/' + targetFileName;
// copy
- Node targetParentNode = JcrUtils.mkfolders(targetSession,
- targetParentPath);
+ Node targetParentNode = JcrUtils.mkfolders(targetSession, targetParentPath);
targetSession.save();
if (manifestModified) {
- Binary origBinary = origJarNode.getNode(Node.JCR_CONTENT)
- .getProperty(Property.JCR_DATA).getBinary();
- byte[] targetJarBytes = RepoUtils.modifyManifest(
- origBinary.getStream(), targetManifest);
- JcrUtils.copyBytesAsFile(targetParentNode, targetFileName,
- targetJarBytes);
+ Binary origBinary = origJarNode.getNode(Node.JCR_CONTENT).getProperty(Property.JCR_DATA).getBinary();
+ byte[] targetJarBytes = RepoUtils.modifyManifest(origBinary.getStream(), targetManifest);
+ JcrUtils.copyBytesAsFile(targetParentNode, targetFileName, targetJarBytes);
JcrUtils.closeQuietly(origBinary);
} else {// just copy
- targetSession.getWorkspace().copy(sourceWorkspace,
- origJarNode.getPath(), targetJarPath);
+ targetSession.getWorkspace().copy(sourceWorkspace, origJarNode.getPath(), targetJarPath);
}
targetSession.save();
targetSession.save();
// sources
- Artifact origSourceArtifact = new DefaultArtifact(
- origArtifact.getGroupId(), origArtifact.getArtifactId()
- + ".source", "jar", origArtifact.getVersion());
- String origSourcePath = MavenConventionsUtils.artifactPath(
- artifactBasePath, origSourceArtifact);
+ Artifact origSourceArtifact = new DefaultArtifact(origArtifact.getGroupId(),
+ origArtifact.getArtifactId() + ".source", "jar", origArtifact.getVersion());
+ String origSourcePath = MavenConventionsUtils.artifactPath(artifactBasePath, origSourceArtifact);
if (origSession.itemExists(origSourcePath)) {
Node origSourceJarNode = origSession.getNode(origSourcePath);
- Artifact targetSourceArtifact = new DefaultArtifact(targetGroupId,
- targetArtifactId + ".source", "jar",
+ Artifact targetSourceArtifact = new DefaultArtifact(targetGroupId, targetArtifactId + ".source", "jar",
origArtifact.getVersion());
- String targetSourceParentPath = MavenConventionsUtils
- .artifactParentPath(artifactBasePath, targetSourceArtifact);
- String targetSourceFileName = MavenConventionsUtils
- .artifactFileName(targetSourceArtifact);
- String targetSourceJarPath = targetSourceParentPath + '/'
- + targetSourceFileName;
-
- Node targetSourceParentNode = JcrUtils.mkfolders(targetSession,
- targetSourceParentPath);
+ String targetSourceParentPath = MavenConventionsUtils.artifactParentPath(artifactBasePath,
+ targetSourceArtifact);
+ String targetSourceFileName = MavenConventionsUtils.artifactFileName(targetSourceArtifact);
+ String targetSourceJarPath = targetSourceParentPath + '/' + targetSourceFileName;
+
+ Node targetSourceParentNode = JcrUtils.mkfolders(targetSession, targetSourceParentPath);
targetSession.save();
if (!targetSymbolicName.equals(origSymbolicName)) {
- Binary origBinary = origSourceJarNode.getNode(Node.JCR_CONTENT)
- .getProperty(Property.JCR_DATA).getBinary();
- NameVersion targetNameVersion = RepoUtils
- .readNameVersion(targetManifest);
- byte[] targetJarBytes = RepoUtils.packageAsPdeSource(
- origBinary.getStream(), targetNameVersion);
- JcrUtils.copyBytesAsFile(targetSourceParentNode,
- targetSourceFileName, targetJarBytes);
+ Binary origBinary = origSourceJarNode.getNode(Node.JCR_CONTENT).getProperty(Property.JCR_DATA)
+ .getBinary();
+ NameVersion targetNameVersion = RepoUtils.readNameVersion(targetManifest);
+ byte[] targetJarBytes = RepoUtils.packageAsPdeSource(origBinary.getStream(), targetNameVersion);
+ JcrUtils.copyBytesAsFile(targetSourceParentNode, targetSourceFileName, targetJarBytes);
JcrUtils.closeQuietly(origBinary);
} else {// just copy
- targetSession.getWorkspace().copy(sourceWorkspace,
- origSourceJarNode.getPath(), targetSourceJarPath);
+ targetSession.getWorkspace().copy(sourceWorkspace, origSourceJarNode.getPath(), targetSourceJarPath);
}
targetSession.save();
// reindex
- Node targetSourceJarNode = targetSession
- .getNode(targetSourceJarPath);
+ Node targetSourceJarNode = targetSession.getNode(targetSourceJarPath);
artifactIndexer.index(targetSourceJarNode);
jarFileIndexer.index(targetSourceJarNode);
* UTILITIES
*/
- static NodeIterator listArtifactVersions(Session session)
- throws RepositoryException {
+ static NodeIterator listArtifactVersions(Session session) throws RepositoryException {
QueryManager queryManager = session.getWorkspace().getQueryManager();
QueryObjectModelFactory factory = queryManager.getQOMFactory();
final String artifactVersionsSelector = "artifactVersions";
- Selector source = factory.selector(SlcTypes.SLC_ARTIFACT_VERSION_BASE,
- artifactVersionsSelector);
+ Selector source = factory.selector(SlcTypes.SLC_ARTIFACT_VERSION_BASE, artifactVersionsSelector);
- Ordering orderByArtifactId = factory.ascending(factory.propertyValue(
- artifactVersionsSelector, SlcNames.SLC_ARTIFACT_ID));
+ Ordering orderByArtifactId = factory
+ .ascending(factory.propertyValue(artifactVersionsSelector, SlcNames.SLC_ARTIFACT_ID));
Ordering[] orderings = { orderByArtifactId };
- QueryObjectModel query = factory.createQuery(source, null, orderings,
- null);
+ QueryObjectModel query = factory.createQuery(source, null, orderings, null);
QueryResult result = query.execute();
return result.getNodes();