+/*
+ * 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;
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());
+ }
+ String md5NodeName = fileNode.getName() + ".md5";
+ if (!fileNode.getParent().hasNode(md5NodeName)) {
+ String md5 = JcrUtils.checksumFile(fileNode, "MD5");
+ JcrUtils.copyBytesAsFile(fileNode.getParent(), md5NodeName,
+ md5.getBytes());
+ }
+
// set higher levels
Node artifactVersionBase = fileNode.getParent();
if (!artifactVersionBase
artifact.getArtifactId());
artifactVersionBase.setProperty(SlcNames.SLC_GROUP_ID,
artifact.getGroupId());
- JcrUtils.updateLastModified(artifactVersionBase);
}
+ JcrUtils.updateLastModified(artifactVersionBase);
+
+ // pom
+ if (artifact.getExtension().equals("pom")) {
+ // TODO read to make it a distribution
+ }
+
Node artifactBase = artifactVersionBase.getParent();
if (!artifactBase.isNodeType(SlcTypes.SLC_ARTIFACT_BASE)) {
artifactBase.addMixin(SlcTypes.SLC_ARTIFACT_BASE);
artifact.getArtifactId());
artifactBase.setProperty(SlcNames.SLC_GROUP_ID,
artifact.getGroupId());
- JcrUtils.updateLastModified(artifactBase);
}
-
- // TODO do we really need group base?
+ JcrUtils.updateLastModified(artifactBase);
+
Node groupBase = artifactBase.getParent();
if (!groupBase.isNodeType(SlcTypes.SLC_GROUP_BASE)) {
// if (groupBase.isNodeType(SlcTypes.SLC_ARTIFACT_BASE)) {
groupBase.addMixin(SlcTypes.SLC_GROUP_BASE);
groupBase.setProperty(SlcNames.SLC_GROUP_BASE_ID,
artifact.getGroupId());
- JcrUtils.updateLastModified(groupBase);
}
+ JcrUtils.updateLastModifiedAndParents(groupBase,
+ RepoConstants.DEFAULT_ARTIFACTS_BASE_PATH);
if (log.isTraceEnabled())
log.trace("Indexed artifact " + artifact + " on " + fileNode);
}
private String getRelativePath(String nodePath) {
- String basePath = RepoConstants.ARTIFACTS_BASE_PATH;
+ String basePath = RepoConstants.DEFAULT_ARTIFACTS_BASE_PATH;
if (!nodePath.startsWith(basePath))
return null;
String relativePath = nodePath.substring(basePath.length());