Author: jbonofre
Date: Mon Aug 6 16:54:19 2012
New Revision: 1369880
URL: http://svn.apache.org/viewvc?rev=1369880&view=rev
Log:
[KARAF-1699] Add create operation to the KarMBean
Modified:
karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/KarsMBean.java
karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/internal/KarServiceImpl.java
karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/internal/Kars.java
Modified: karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/KarsMBean.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/KarsMBean.java?rev=1369880&r1=1369879&r2=1369880&view=diff
==============================================================================
--- karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/KarsMBean.java
(original)
+++ karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/KarsMBean.java Mon
Aug 6 16:54:19 2012
@@ -29,6 +29,15 @@ public interface KarsMBean {
List<String> getKars() throws Exception;
/**
+ * Create a kar file for a list of feature repos
+ *
+ * @param repoName the name of features repository
+ * @param features the features to include in the kar
+ * @throws Exception in case of creation failure
+ */
+ void create(String repoName, List<String> features) throws Exception;
+
+ /**
* Install a KAR file from the given URL.
*
* @param url the JAR URL.
Modified:
karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/internal/KarServiceImpl.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/internal/KarServiceImpl.java?rev=1369880&r1=1369879&r2=1369880&view=diff
==============================================================================
---
karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/internal/KarServiceImpl.java
(original)
+++
karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/internal/KarServiceImpl.java
Mon Aug 6 16:54:19 2012
@@ -236,7 +236,7 @@ public class KarServiceImpl implements K
jos = new JarOutputStream(new BufferedOutputStream(fos, 100000),
manifest);
Map<URI, Integer> locationMap = new HashMap<URI, Integer>();
- copyResourceToJar(jos, repo.getURI(), locationMap, console);
+ copyResourceToJar(jos, repo.getURI(), locationMap);
Map<String, Feature> featureMap = new HashMap<String, Feature>();
for (Feature feature : repo.getFeatures()) {
@@ -246,11 +246,13 @@ public class KarServiceImpl implements K
Set<Feature> featuresToCopy = getFeatures(featureMap, features, 1);
for (Feature feature : featuresToCopy) {
- console.println("Adding feature " + feature.getName());
- copyFeatureToJar(jos, feature, locationMap, console);
+ if (console != null)
+ console.println("Adding feature " + feature.getName());
+ copyFeatureToJar(jos, feature, locationMap);
}
-
- console.println("Kar file created : " + karPath);
+
+ if (console != null)
+ console.println("Kar file created : " + karPath);
} catch (Exception e) {
throw new RuntimeException("Error creating kar: " +
e.getMessage(), e);
} finally {
@@ -307,19 +309,19 @@ public class KarServiceImpl implements K
}
}
- private void copyFeatureToJar(JarOutputStream jos, Feature feature,
Map<URI, Integer> locationMap, PrintStream console)
+ private void copyFeatureToJar(JarOutputStream jos, Feature feature,
Map<URI, Integer> locationMap)
throws URISyntaxException {
for (BundleInfo bundleInfo : feature.getBundles()) {
URI location = new URI(bundleInfo.getLocation());
- copyResourceToJar(jos, location, locationMap, console);
+ copyResourceToJar(jos, location, locationMap);
}
for (ConfigFileInfo configFileInfo : feature.getConfigurationFiles()) {
URI location = new URI(configFileInfo.getLocation());
- copyResourceToJar(jos, location, locationMap, console);
+ copyResourceToJar(jos, location, locationMap);
}
}
- private void copyResourceToJar(JarOutputStream jos, URI location, Map<URI,
Integer> locationMap, PrintStream console) {
+ private void copyResourceToJar(JarOutputStream jos, URI location, Map<URI,
Integer> locationMap) {
if (locationMap.containsKey(location)) {
return;
}
Modified:
karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/internal/Kars.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/internal/Kars.java?rev=1369880&r1=1369879&r2=1369880&view=diff
==============================================================================
--- karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/internal/Kars.java
(original)
+++ karaf/trunk/kar/core/src/main/java/org/apache/karaf/kar/internal/Kars.java
Mon Aug 6 16:54:19 2012
@@ -35,6 +35,10 @@ public class Kars extends StandardMBean
public List<String> getKars() throws Exception {
return karService.list();
}
+
+ public void create(String repoName, List<String> features) throws
Exception {
+ karService.create(repoName, features, null);
+ }
public void install(String url) throws Exception {
karService.install(new URI(url));