X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.repo%2Fsrc%2Forg%2Fargeo%2Fslc%2Frepo%2FArtifactIndexer.java;h=209f2b667dacdec58225c1d73f7ce78b1d5e720c;hb=fbde11e8a342318876a4744c4676d3618bdf8583;hp=a3c1b5d4d3b6903f88b626570f0c9a574e255c75;hpb=d154e9f68017e8c5a8edac15475b2d79aea3e9d4;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.repo/src/org/argeo/slc/repo/ArtifactIndexer.java b/org.argeo.slc.repo/src/org/argeo/slc/repo/ArtifactIndexer.java index a3c1b5d4d..209f2b667 100644 --- a/org.argeo.slc.repo/src/org/argeo/slc/repo/ArtifactIndexer.java +++ b/org.argeo.slc.repo/src/org/argeo/slc/repo/ArtifactIndexer.java @@ -1,18 +1,3 @@ -/* - * 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; import javax.jcr.Node; @@ -20,8 +5,7 @@ import javax.jcr.NodeIterator; import javax.jcr.RepositoryException; import javax.jcr.nodetype.NodeType; -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.SlcException; import org.argeo.slc.SlcNames; @@ -36,7 +20,7 @@ import org.osgi.framework.Constants; * files and other non artifact files). */ public class ArtifactIndexer implements NodeIndexer, SlcNames { - private Log log = LogFactory.getLog(ArtifactIndexer.class); + private CmsLog log = CmsLog.getLog(ArtifactIndexer.class); private Boolean force = false; public Boolean support(String path) { @@ -72,65 +56,49 @@ public class ArtifactIndexer implements NodeIndexer, SlcNames { artifact = AetherUtils.convertPathToArtifact(relativePath, null); // support() guarantees that artifact won't be null, no NPE check fileNode.addMixin(SlcTypes.SLC_ARTIFACT); - fileNode.setProperty(SlcNames.SLC_ARTIFACT_ID, - artifact.getArtifactId()); + fileNode.setProperty(SlcNames.SLC_ARTIFACT_ID, artifact.getArtifactId()); fileNode.setProperty(SlcNames.SLC_GROUP_ID, artifact.getGroupId()); - fileNode.setProperty(SlcNames.SLC_ARTIFACT_VERSION, - artifact.getVersion()); - fileNode.setProperty(SlcNames.SLC_ARTIFACT_EXTENSION, - artifact.getExtension()); + fileNode.setProperty(SlcNames.SLC_ARTIFACT_VERSION, artifact.getVersion()); + fileNode.setProperty(SlcNames.SLC_ARTIFACT_EXTENSION, artifact.getExtension()); // can be null but ok for JCR API - fileNode.setProperty(SlcNames.SLC_ARTIFACT_CLASSIFIER, - artifact.getClassifier()); + fileNode.setProperty(SlcNames.SLC_ARTIFACT_CLASSIFIER, artifact.getClassifier()); JcrUtils.updateLastModified(fileNode); // make sure there are checksums String shaNodeName = fileNode.getName() + ".sha1"; if (!fileNode.getParent().hasNode(shaNodeName)) { String sha = JcrUtils.checksumFile(fileNode, "SHA-1"); - JcrUtils.copyBytesAsFile(fileNode.getParent(), shaNodeName, - sha.getBytes()); + JcrUtils.copyBytesAsFile(fileNode.getParent(), shaNodeName, sha.getBytes()); } String md5NodeName = fileNode.getName() + ".md5"; if (!fileNode.getParent().hasNode(md5NodeName)) { String md5 = JcrUtils.checksumFile(fileNode, "MD5"); - JcrUtils.copyBytesAsFile(fileNode.getParent(), md5NodeName, - md5.getBytes()); + JcrUtils.copyBytesAsFile(fileNode.getParent(), md5NodeName, md5.getBytes()); } // Create a default pom if none already exist String fileNodeName = fileNode.getName(); String pomName = null; if (fileNodeName.endsWith(".jar")) - pomName = fileNodeName.substring(0, fileNodeName.length() - - ".jar".length()) - + ".pom"; + pomName = fileNodeName.substring(0, fileNodeName.length() - ".jar".length()) + ".pom"; if (pomName != null && !fileNode.getParent().hasNode(pomName)) { String pom = generatePomForBundle(fileNode); - Node pomNode = JcrUtils.copyBytesAsFile(fileNode.getParent(), - pomName, pom.getBytes()); + Node pomNode = JcrUtils.copyBytesAsFile(fileNode.getParent(), pomName, pom.getBytes()); // corresponding check sums String sha = JcrUtils.checksumFile(pomNode, "SHA-1"); - JcrUtils.copyBytesAsFile(fileNode.getParent(), pomName - + ".sha1", sha.getBytes()); + JcrUtils.copyBytesAsFile(fileNode.getParent(), pomName + ".sha1", sha.getBytes()); String md5 = JcrUtils.checksumFile(fileNode, "MD5"); - JcrUtils.copyBytesAsFile(fileNode.getParent(), - pomName + ".md5", md5.getBytes()); + JcrUtils.copyBytesAsFile(fileNode.getParent(), pomName + ".md5", md5.getBytes()); } // set higher levels Node artifactVersionBase = fileNode.getParent(); - if (!artifactVersionBase - .isNodeType(SlcTypes.SLC_ARTIFACT_VERSION_BASE)) { - artifactVersionBase - .addMixin(SlcTypes.SLC_ARTIFACT_VERSION_BASE); - artifactVersionBase.setProperty(SlcNames.SLC_ARTIFACT_VERSION, - artifact.getBaseVersion()); - artifactVersionBase.setProperty(SlcNames.SLC_ARTIFACT_ID, - artifact.getArtifactId()); - artifactVersionBase.setProperty(SlcNames.SLC_GROUP_ID, - artifact.getGroupId()); + if (!artifactVersionBase.isNodeType(SlcTypes.SLC_ARTIFACT_VERSION_BASE)) { + artifactVersionBase.addMixin(SlcTypes.SLC_ARTIFACT_VERSION_BASE); + artifactVersionBase.setProperty(SlcNames.SLC_ARTIFACT_VERSION, artifact.getBaseVersion()); + artifactVersionBase.setProperty(SlcNames.SLC_ARTIFACT_ID, artifact.getArtifactId()); + artifactVersionBase.setProperty(SlcNames.SLC_GROUP_ID, artifact.getGroupId()); } JcrUtils.updateLastModified(artifactVersionBase); @@ -142,10 +110,8 @@ public class ArtifactIndexer implements NodeIndexer, SlcNames { Node artifactBase = artifactVersionBase.getParent(); if (!artifactBase.isNodeType(SlcTypes.SLC_ARTIFACT_BASE)) { artifactBase.addMixin(SlcTypes.SLC_ARTIFACT_BASE); - artifactBase.setProperty(SlcNames.SLC_ARTIFACT_ID, - artifact.getArtifactId()); - artifactBase.setProperty(SlcNames.SLC_GROUP_ID, - artifact.getGroupId()); + artifactBase.setProperty(SlcNames.SLC_ARTIFACT_ID, artifact.getArtifactId()); + artifactBase.setProperty(SlcNames.SLC_GROUP_ID, artifact.getGroupId()); } JcrUtils.updateLastModified(artifactBase); @@ -156,17 +122,14 @@ public class ArtifactIndexer implements NodeIndexer, SlcNames { // + " is also artifact base"); // } groupBase.addMixin(SlcTypes.SLC_GROUP_BASE); - groupBase.setProperty(SlcNames.SLC_GROUP_BASE_ID, - artifact.getGroupId()); + groupBase.setProperty(SlcNames.SLC_GROUP_BASE_ID, artifact.getGroupId()); } - JcrUtils.updateLastModifiedAndParents(groupBase, - RepoConstants.DEFAULT_ARTIFACTS_BASE_PATH); + JcrUtils.updateLastModifiedAndParents(groupBase, RepoConstants.DEFAULT_ARTIFACTS_BASE_PATH); if (log.isTraceEnabled()) log.trace("Indexed artifact " + artifact + " on " + fileNode); } catch (Exception e) { - throw new SlcException("Cannot index artifact " + artifact - + " metadata on node " + fileNode, e); + throw new SlcException("Cannot index artifact " + artifact + " metadata on node " + fileNode, e); } } @@ -185,71 +148,55 @@ public class ArtifactIndexer implements NodeIndexer, SlcNames { private String generatePomForBundle(Node n) throws RepositoryException { StringBuffer p = new StringBuffer(); p.append("\n"); - p.append("\n"); + p.append( + "\n"); p.append("4.0.0"); // Categorized name version - p.append("").append(JcrUtils.get(n, SLC_GROUP_ID)) - .append("\n"); - p.append("").append(JcrUtils.get(n, SLC_ARTIFACT_ID)) - .append("\n"); - p.append("").append(JcrUtils.get(n, SLC_ARTIFACT_VERSION)) - .append("\n"); + p.append("").append(JcrUtils.get(n, SLC_GROUP_ID)).append("\n"); + p.append("").append(JcrUtils.get(n, SLC_ARTIFACT_ID)).append("\n"); + p.append("").append(JcrUtils.get(n, SLC_ARTIFACT_VERSION)).append("\n"); // TODO make it more generic p.append("jar\n"); if (n.hasProperty(SLC_ + Constants.BUNDLE_NAME)) - p.append("") - .append(JcrUtils.get(n, SLC_ + Constants.BUNDLE_NAME)) - .append("\n"); + p.append("").append(JcrUtils.get(n, SLC_ + Constants.BUNDLE_NAME)).append("\n"); if (n.hasProperty(SLC_ + Constants.BUNDLE_DESCRIPTION)) - p.append("") - .append(JcrUtils - .get(n, SLC_ + Constants.BUNDLE_DESCRIPTION)) + p.append("").append(JcrUtils.get(n, SLC_ + Constants.BUNDLE_DESCRIPTION)) .append("\n"); // Dependencies in case of a distribution if (n.isNodeType(SlcTypes.SLC_MODULAR_DISTRIBUTION)) { - p.append(getDependenciesSnippet(n.getNode(SlcNames.SLC_MODULES) - .getNodes())); - p.append(getDependencyManagementSnippet(n.getNode( - SlcNames.SLC_MODULES).getNodes())); + p.append(getDependenciesSnippet(n.getNode(SlcNames.SLC_MODULES).getNodes())); + p.append(getDependencyManagementSnippet(n.getNode(SlcNames.SLC_MODULES).getNodes())); } p.append("\n"); return p.toString(); } - private String getDependenciesSnippet(NodeIterator nit) - throws RepositoryException { + private String getDependenciesSnippet(NodeIterator nit) throws RepositoryException { StringBuilder b = new StringBuilder(); b.append("\n"); while (nit.hasNext()) { Node currModule = nit.nextNode(); if (currModule.isNodeType(SlcTypes.SLC_MODULE_COORDINATES)) { - b.append(getDependencySnippet( - currModule.getProperty(SlcNames.SLC_CATEGORY) - .getString(), - currModule.getProperty(SlcNames.SLC_NAME).getString(), - null)); + b.append(getDependencySnippet(currModule.getProperty(SlcNames.SLC_CATEGORY).getString(), + currModule.getProperty(SlcNames.SLC_NAME).getString(), null)); } } b.append("\n"); return b.toString(); } - private String getDependencyManagementSnippet(NodeIterator nit) - throws RepositoryException { + private String getDependencyManagementSnippet(NodeIterator nit) throws RepositoryException { StringBuilder b = new StringBuilder(); b.append("\n"); b.append("\n"); while (nit.hasNext()) { Node currModule = nit.nextNode(); if (currModule.isNodeType(SlcTypes.SLC_MODULE_COORDINATES)) { - b.append(getDependencySnippet( - currModule.getProperty(SlcNames.SLC_CATEGORY) - .getString(), + b.append(getDependencySnippet(currModule.getProperty(SlcNames.SLC_CATEGORY).getString(), currModule.getProperty(SlcNames.SLC_NAME).getString(), - currModule.getProperty(SlcNames.SLC_VERSION) - .getString())); + currModule.getProperty(SlcNames.SLC_VERSION).getString())); } } b.append("\n"); @@ -257,8 +204,7 @@ public class ArtifactIndexer implements NodeIndexer, SlcNames { return b.toString(); } - private String getDependencySnippet(String category, String name, - String version) { + private String getDependencySnippet(String category, String name, String version) { StringBuilder b = new StringBuilder(); b.append("\n"); b.append("\t").append(category).append("\n");