You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2012/03/03 11:12:27 UTC
svn commit: r1296591 - in
/karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features:
InstallKarsMojo.java MavenUtil.java
Author: jbonofre
Date: Sat Mar 3 10:12:26 2012
New Revision: 1296591
URL: http://svn.apache.org/viewvc?rev=1296591&view=rev
Log:
[KARAF-1247] Generate the maven-metadata-local.xml for local bundles
Modified:
karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/InstallKarsMojo.java
karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/MavenUtil.java
Modified: karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/InstallKarsMojo.java
URL: http://svn.apache.org/viewvc/karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/InstallKarsMojo.java?rev=1296591&r1=1296590&r2=1296591&view=diff
==============================================================================
--- karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/InstallKarsMojo.java (original)
+++ karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/InstallKarsMojo.java Sat Mar 3 10:12:26 2012
@@ -271,6 +271,25 @@ public class InstallKarsMojo extends Moj
File target = new File(system.resolve(path));
if (!target.exists()) {
install(buffer, key, target);
+ Artifact artifact = MavenUtil.mvnToArtifact(key);
+ if (artifact.isSnapshot()) {
+ // generate maven-metadata-local.xml for the artifact
+ File metadataSource = new File(resolve(key).getParentFile(), "maven-metadata-local.xml");
+ File metadataTarget = new File(target.getParentFile(), "maven-metadata-local.xml");
+ metadataTarget.getParentFile().mkdirs();
+ try {
+ if (!metadataSource.exists()) {
+ // the maven-metadata-local.xml doesn't exist in the local repo, generate one
+ MavenUtil.generateMavenMetadata(artifact, metadataTarget);
+ } else {
+ // copy the metadata to the target
+ copy(buffer, metadataSource, metadataTarget);
+ }
+ } catch (IOException ioException) {
+ getLog().warn(ioException);
+ getLog().warn("Unable to copy the maven-metadata-local.xml, it means that this SNAPSHOT will be overwritten by a remote one (if exist)");
+ }
+ }
}
}
}
@@ -296,23 +315,27 @@ public class InstallKarsMojo extends Moj
File source = resolve(key);
target.getParentFile().mkdirs();
try {
- InputStream is = new FileInputStream(source);
- BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(target));
- int count = 0;
- while ((count = is.read(buffer)) > 0) {
- bos.write(buffer, 0, count);
- }
- bos.close();
+ copy(buffer, source, target);
} catch (IOException e) {
getLog().error("Could not copy bundle " + key, e);
}
}
+
+ private void copy(byte[] buffer, File source, File target) throws IOException {
+ target.getParentFile().mkdirs();
+ InputStream is = new FileInputStream(source);
+ BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(target));
+ int count = 0;
+ while ((count = is.read(buffer)) > 0) {
+ bos.write(buffer, 0, count);
+ }
+ bos.close();
+ }
private boolean acceptScope(Artifact artifact) {
return "compile".equals(artifact.getScope()) || "runtime".equals(artifact.getScope());
}
-
public File resolve(String id) {
id = MavenUtil.mvnToAether(id);
ArtifactRequest request = new ArtifactRequest();
Modified: karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/MavenUtil.java
URL: http://svn.apache.org/viewvc/karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/MavenUtil.java?rev=1296591&r1=1296590&r2=1296591&view=diff
==============================================================================
--- karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/MavenUtil.java (original)
+++ karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/MavenUtil.java Sat Mar 3 10:12:26 2012
@@ -28,6 +28,8 @@ import java.util.regex.Pattern;
import org.apache.maven.RepositoryUtils;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.factory.DefaultArtifactFactory;
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
import org.apache.maven.artifact.repository.metadata.Metadata;
import org.apache.maven.artifact.repository.metadata.Snapshot;
@@ -175,6 +177,13 @@ public class MavenUtil {
private static boolean isEmpty(String classifier) {
return classifier == null || classifier.length() == 0;
}
+
+ static Artifact mvnToArtifact(String name) {
+ name = mvnToAether(name);
+ DefaultArtifact artifact = new DefaultArtifact(name);
+ Artifact mavenArtifact = RepositoryUtils.toArtifact(artifact);
+ return mavenArtifact;
+ }
/**
* Generate the maven-metadata-local.xml for the given Maven <code>Artifact</code>.