You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by dj...@apache.org on 2011/03/09 01:51:27 UTC
svn commit: r1079624 - in /karaf/trunk: assemblies/features/
assemblies/features/framework/ features/core/
features/core/src/main/java/org/apache/karaf/features/internal/
features/core/src/main/java/org/apache/karaf/features/internal/model/
features/co...
Author: djencks
Date: Wed Mar 9 00:51:26 2011
New Revision: 1079624
URL: http://svn.apache.org/viewvc?rev=1079624&view=rev
Log:
KARAF-424 Move features jaxb tree to features.core and use it, removing non-jaxb classes. Use executions rather than kar packaging to build framework kar
Added:
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java (contents, props changed)
- copied, changed from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Bundle.java
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Config.java (contents, props changed)
- copied, changed from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Config.java
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ConfigFile.java (contents, props changed)
- copied, changed from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/ConfigFile.java
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Dependency.java (contents, props changed)
- copied, changed from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Dependency.java
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java (contents, props changed)
- copied, changed from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Feature.java
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Features.java (contents, props changed)
- copied, changed from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Features.java
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/JaxbUtil.java (contents, props changed)
- copied, changed from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/JaxbUtil.java
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ObjectFactory.java (contents, props changed)
- copied, changed from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/ObjectFactory.java
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/package-info.java (contents, props changed)
- copied, changed from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/package-info.java
Removed:
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/BundleInfoImpl.java
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/ConfigFileInfoImpl.java
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeatureImpl.java
karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Bundle.java
karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Config.java
karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/ConfigFile.java
karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Dependency.java
karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Feature.java
karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Features.java
karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/ObjectFactory.java
karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/package-info.java
karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/JaxbUtil.java
Modified:
karaf/trunk/assemblies/features/framework/pom.xml
karaf/trunk/assemblies/features/pom.xml
karaf/trunk/features/core/pom.xml
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/RepositoryImpl.java
karaf/trunk/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.0.0.xsd
karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java
karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
karaf/trunk/features/core/src/test/java/org/apache/karaf/features/RepositoryTest.java
karaf/trunk/features/core/src/test/java/org/apache/karaf/features/internal/FeaturesServiceImplTest.java
karaf/trunk/features/core/src/test/resources/org/apache/karaf/features/repo1.xml
karaf/trunk/features/obr/src/test/java/org/apache/karaf/features/obr/internal/ObrResolverTest.java
karaf/trunk/tooling/features-maven-plugin/pom.xml
karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/ArchiveKarMojo.java
karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2.java
karaf/trunk/tooling/features-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2Test.java
Modified: karaf/trunk/assemblies/features/framework/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/assemblies/features/framework/pom.xml?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/assemblies/features/framework/pom.xml (original)
+++ karaf/trunk/assemblies/features/framework/pom.xml Wed Mar 9 00:51:26 2011
@@ -28,7 +28,7 @@
</parent>
<artifactId>karaf-framework</artifactId>
- <packaging>kar</packaging>
+ <packaging>pom</packaging>
<name>Apache Karaf :: Assemblies :: Framework KAR</name>
<properties>
@@ -325,10 +325,25 @@
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>features-maven-plugin</artifactId>
<version>${project.version}</version>
- <extensions>true</extensions>
+ <!--<extensions>true</extensions>-->
<configuration>
<repositoryPath>resources/system/</repositoryPath>
</configuration>
+ <executions>
+ <execution>
+ <id>compile</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>generate-features-xml2</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>package</id>
+ <goals>
+ <goal>archive-kar</goal>
+ </goals>
+ </execution>
+ </executions>
</plugin>
</plugins>
Modified: karaf/trunk/assemblies/features/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/assemblies/features/pom.xml?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/assemblies/features/pom.xml (original)
+++ karaf/trunk/assemblies/features/pom.xml Wed Mar 9 00:51:26 2011
@@ -35,6 +35,7 @@
<modules>
<module>standard</module>
<module>enterprise</module>
+ <module>framework</module>
</modules>
<profiles>
Modified: karaf/trunk/features/core/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/pom.xml?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/features/core/pom.xml (original)
+++ karaf/trunk/features/core/pom.xml Wed Mar 9 00:51:26 2011
@@ -126,6 +126,7 @@
</Import-Package>
<Private-Package>
org.apache.karaf.features.internal,
+ org.apache.karaf.features.internal.model,
org.apache.felix.utils.version,
org.apache.felix.utils.manifest
</Private-Package>
Modified: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java Wed Mar 9 00:51:26 2011
@@ -95,6 +95,7 @@ import static java.lang.String.format;
public class FeaturesServiceImpl implements FeaturesService, FrameworkListener {
public static final String CONFIG_KEY = "org.apache.karaf.features.configKey";
+ public static String VERSION_PREFIX = "version=";
private static final Logger LOGGER = LoggerFactory.getLogger(FeaturesServiceImpl.class);
@@ -260,7 +261,7 @@ public class FeaturesServiceImpl impleme
}
public void installFeature(String name) throws Exception {
- installFeature(name, FeatureImpl.DEFAULT_VERSION);
+ installFeature(name, org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION);
}
public void installFeature(String name, String version) throws Exception {
@@ -420,7 +421,7 @@ public class FeaturesServiceImpl impleme
System.out.println("Installing feature " + feature.getName() + " " + feature.getVersion());
}
for (Feature dependency : feature.getDependencies()) {
- VersionRange range = FeatureImpl.DEFAULT_VERSION.equals(dependency.getVersion())
+ VersionRange range = org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION.equals(dependency.getVersion())
? VersionRange.ANY_VERSION : new VersionRange(dependency.getVersion(), true, true);
Feature fi = null;
for (Feature f : installed.keySet()) {
@@ -813,7 +814,7 @@ public class FeaturesServiceImpl impleme
}
public Feature getFeature(String name) throws Exception {
- return getFeature(name, FeatureImpl.DEFAULT_VERSION);
+ return getFeature(name, org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION);
}
public Feature getFeature(String name, String version) throws Exception {
@@ -826,7 +827,7 @@ public class FeaturesServiceImpl impleme
} else {
Feature feature = versions.get(version);
if (feature == null) {
- if (FeatureImpl.DEFAULT_VERSION.equals(version)) {
+ if (org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION.equals(version)) {
Version latest = new Version(cleanupVersion(version));
for (String available : versions.keySet()) {
Version availableVersion = new Version(cleanupVersion(available));
@@ -836,7 +837,7 @@ public class FeaturesServiceImpl impleme
}
}
} else {
- Version latest = new Version(cleanupVersion(FeatureImpl.DEFAULT_VERSION));
+ Version latest = new Version(cleanupVersion(org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION));
VersionRange versionRange = new VersionRange(version, true, true);
for (String available : versions.keySet()) {
Version availableVersion = new Version(cleanupVersion(available));
@@ -931,14 +932,14 @@ public class FeaturesServiceImpl impleme
String featureName = parts[0];
for (String part : parts) {
// if the part starts with "version=" it contains the version info
- if (part.startsWith(FeatureImpl.VERSION_PREFIX)) {
- featureVersion = part.substring(FeatureImpl.VERSION_PREFIX.length());
+ if (part.startsWith(VERSION_PREFIX)) {
+ featureVersion = part.substring(VERSION_PREFIX.length());
}
}
if (featureVersion == null) {
// no version specified - use default version
- featureVersion = FeatureImpl.DEFAULT_VERSION;
+ featureVersion = org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION;
}
try {
@@ -1117,7 +1118,7 @@ public class FeaturesServiceImpl impleme
if (key.startsWith(prefix)) {
String val = (String) props.get(key);
Set<Long> set = readValue(val);
- map.put(FeatureImpl.valueOf(key.substring(prefix.length())), set);
+ map.put(org.apache.karaf.features.internal.model.Feature.valueOf(key.substring(prefix.length())), set);
}
}
return map;
Modified: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/RepositoryImpl.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/RepositoryImpl.java?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/RepositoryImpl.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/RepositoryImpl.java Wed Mar 9 00:51:26 2011
@@ -19,6 +19,8 @@ package org.apache.karaf.features.intern
import org.apache.karaf.features.ConfigFileInfo;
import org.apache.karaf.features.Feature;
import org.apache.karaf.features.Repository;
+import org.apache.karaf.features.internal.model.Features;
+import org.apache.karaf.features.internal.model.JaxbUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
@@ -31,6 +33,7 @@ import javax.xml.parsers.DocumentBuilder
import javax.xml.parsers.ParserConfigurationException;
import java.io.ByteArrayInputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URLConnection;
@@ -45,18 +48,17 @@ public class RepositoryImpl implements R
private static final Logger LOGGER = LoggerFactory.getLogger(RepositoryImpl.class);
private int unnamedRepoId = 0;
- private String name;
private URI uri;
- private List<Feature> features;
private List<URI> repositories;
private boolean valid;
+ private Features features;
public RepositoryImpl(URI uri) {
this.uri = uri;
}
public String getName() {
- return name;
+ return features.getName();
}
public URI getURI() {
@@ -64,175 +66,35 @@ public class RepositoryImpl implements R
}
public URI[] getRepositories() throws Exception {
- if (repositories == null) {
- load();
+ load();
+ URI[] result = new URI[features.getRepository().size()];
+ for (int i = 0; i < features.getRepository().size(); i++) {
+ result[i] = URI.create(features.getRepository().get(i));
}
- return repositories.toArray(new URI[repositories.size()]);
+ return result;
}
- public Feature[] getFeatures() throws Exception {
- if (features == null) {
- load();
- }
- return features.toArray(new Feature[features.size()]);
+ public org.apache.karaf.features.Feature[] getFeatures() throws Exception {
+ load();
+ return features.getFeature().toArray(new org.apache.karaf.features.Feature[0]);
}
- public void load() throws IOException {
- try {
- valid = true;
- repositories = new ArrayList<URI>();
- features = new ArrayList<Feature>();
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- URLConnection conn = uri.toURL().openConnection();
- conn.setDefaultUseCaches(false);
- Document doc = factory.newDocumentBuilder().parse(conn.getInputStream());
- String temp = doc.getDocumentElement().getAttribute("name");
- if ("".equals(temp)) {
- name = "repo-" + String.valueOf(unnamedRepoId++);
- } else {
- name = temp;
- }
- if (uri.toString().startsWith("bundle")) {
- name += "*";
- }
- NodeList nodes = doc.getDocumentElement().getChildNodes();
- for (int i = 0; i < nodes.getLength(); i++) {
- Node node = nodes.item(i);
- if (!(node instanceof Element)) {
- continue;
- }
- if ("repository".equals(node.getNodeName())) {
- Element e = (Element) nodes.item(i);
- try {
- URI newrepo = new URI(e.getTextContent().trim());
- repositories.add(newrepo);
- } catch (URISyntaxException ex) {
- LOGGER.error("Could not load feature repository: " + ex.getMessage() + " in feature repository " + uri);
- }
- } else if ("feature".equals(node.getNodeName())) {
- Element e = (Element) nodes.item(i);
- String name = e.getAttribute("name");
- String version = e.getAttribute("version");
- FeatureImpl f;
- if (version != null && version.length() > 0) {
- f = new FeatureImpl(name, version);
- } else {
- f = new FeatureImpl(name);
- }
-
- String resolver = e.getAttribute("resolver");
- if (resolver != null && resolver.length() > 0) {
- f.setResolver(resolver);
- }
-
- String description = e.getAttribute("description");
- if (description != null && description.length() > 0) {
- f.setDescription(description);
- }
-
- NodeList detailsNodes = e.getElementsByTagName("details");
- StringBuffer detailsBuffer = new StringBuffer();
- for (int j = 0; j < detailsNodes.getLength(); j++) {
- Element b = (Element) detailsNodes.item(j);
- String detail = b.getTextContent().trim();
- detailsBuffer.append(detail).append("\n");
- }
- String details = detailsBuffer.toString();
- if (details != null && details.length() > 0)
- f.setDetails(details);
-
- NodeList featureNodes = e.getElementsByTagName("feature");
- for (int j = 0; j < featureNodes.getLength(); j++) {
- Element b = (Element) featureNodes.item(j);
- String dependencyFeatureVersion = b.getAttribute("version");
- if (dependencyFeatureVersion != null && dependencyFeatureVersion.length() > 0) {
- f.addDependency(new FeatureImpl(b.getTextContent(), dependencyFeatureVersion));
- } else {
- f.addDependency(new FeatureImpl(b.getTextContent()));
- }
- }
- NodeList configNodes = e.getElementsByTagName("config");
- for (int j = 0; j < configNodes.getLength(); j++) {
- Element c = (Element) configNodes.item(j);
- String cfgName = c.getAttribute("name");
- String data = c.getTextContent();
- Properties properties = new Properties();
- properties.load(new ByteArrayInputStream(data.getBytes()));
- interpolation(properties);
- Map<String, String> hashtable = new Hashtable<String, String>();
- for (Object key : properties.keySet()) {
- String n = key.toString();
- hashtable.put(n, properties.getProperty(n));
- }
- f.addConfig(cfgName, hashtable);
- }
- NodeList configurationFiles = e.getElementsByTagName("configfile");
- for (int j = 0; j < configurationFiles.getLength(); j++) {
- Element cf = (Element) configurationFiles.item(j);
- String finalname = cf.getAttribute("finalname");
- String location = cf.getTextContent().trim();
- f.addConfigurationFile(new ConfigFileInfoImpl(location, finalname));
- }
- NodeList bundleNodes = e.getElementsByTagName("bundle");
- for (int j = 0; j < bundleNodes.getLength(); j++) {
- Element b = (Element) bundleNodes.item(j);
- String bStartLevel = b.getAttribute("start-level");
- String bStart = b.getAttribute("start");
- String bDependency = b.getAttribute("dependency");
- boolean bs = true;
- boolean bd = false;
- int bsl = 0;
-
- // Check the value of the "start" attribute
- if (bStart != null && bStart.length() > 0) {
- bs = Boolean.parseBoolean(bStart);
- }
- // Check the value of the "dependency" attribute
- if (bDependency != null && bDependency.length() > 0) {
- bd = Boolean.parseBoolean(bDependency);
- }
- // Check start level
- if (bStartLevel != null && bStartLevel.length() > 0) {
- try {
- bsl = Integer.parseInt(bStartLevel);
- } catch (Exception ex) {
- LOGGER.error("The start-level is not an int value for the bundle : " + b.getTextContent());
- }
- }
- f.addBundle(new BundleInfoImpl(b.getTextContent().trim(), bsl, bs, bd));
- }
- features.add(f);
- }
- }
- } catch (SAXException e) {
- valid = false;
- throw (IOException) new IOException().initCause(e);
- } catch (ParserConfigurationException e) {
- valid = false;
- throw (IOException) new IOException().initCause(e);
- } catch (IllegalArgumentException e) {
- valid = false;
- throw (IOException) new IOException(e.getMessage() + " : " + uri).initCause(e);
- } catch (Exception e) {
- valid = false;
- throw (IOException) new IOException(e.getMessage() + " : " + uri).initCause(e);
- }
- }
-
- protected void interpolation(Properties properties) {
- for (Enumeration e = properties.propertyNames(); e.hasMoreElements();) {
- String key = (String) e.nextElement();
- String val = properties.getProperty(key);
- Matcher matcher = Pattern.compile("\\$\\{([^}]+)\\}").matcher(val);
- while (matcher.find()) {
- String rep = System.getProperty(matcher.group(1));
- if (rep != null) {
- val = val.replace(matcher.group(0), rep);
- matcher.reset(val);
+ public void load() throws IOException {
+ if (features == null) {
+ try {
+ InputStream inputStream = uri.toURL().openStream();
+ try {
+ features = JaxbUtil.unmarshal(inputStream, false);
+ } finally {
+ inputStream.close();
}
+ valid = true;
+ } catch (IllegalArgumentException e) {
+ throw (IOException) new IOException(e.getMessage() + " : " + uri).initCause(e);
+ } catch (Exception e) {
+ throw (IOException) new IOException(e.getMessage() + " : " + uri).initCause(e);
}
- properties.put(key, val);
}
}
Copied: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java (from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Bundle.java)
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java?p2=karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java&p1=karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Bundle.java&r1=1078752&r2=1079624&rev=1079624&view=diff
==============================================================================
--- karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Bundle.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java Wed Mar 9 00:51:26 2011
@@ -18,7 +18,7 @@
*/
-package org.apache.karaf.features.internal;
+package org.apache.karaf.features.internal.model;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
@@ -26,6 +26,7 @@ import javax.xml.bind.annotation.XmlAttr
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlValue;
+import org.apache.karaf.features.BundleInfo;
/**
@@ -55,17 +56,25 @@ import javax.xml.bind.annotation.XmlValu
@XmlType(name = "bundle", propOrder = {
"value"
})
-public class Bundle {
+public class Bundle implements BundleInfo {
@XmlValue
@XmlSchemaType(name = "anyURI")
protected String value;
@XmlAttribute(name = "start-level")
- protected Integer startLevel;
+ protected int startLevel;
@XmlAttribute
- protected Boolean start;
+ protected boolean start = true;
@XmlAttribute
- protected Boolean dependency;
+ protected boolean dependency;
+
+
+ public Bundle() {
+ }
+
+ public Bundle(String value) {
+ this.value = value;
+ }
/**
* Gets the value of the value property.
@@ -75,7 +84,7 @@ public class Bundle {
* {@link String }
*
*/
- public String getValue() {
+ public String getLocation() {
return value;
}
@@ -87,7 +96,7 @@ public class Bundle {
* {@link String }
*
*/
- public void setValue(String value) {
+ public void setLocation(String value) {
this.value = value;
}
@@ -99,7 +108,7 @@ public class Bundle {
* {@link Integer }
*
*/
- public Integer getStartLevel() {
+ public int getStartLevel() {
return startLevel;
}
@@ -123,7 +132,7 @@ public class Bundle {
* {@link Boolean }
*
*/
- public Boolean isStart() {
+ public boolean isStart() {
return start;
}
@@ -147,7 +156,7 @@ public class Bundle {
* {@link Boolean }
*
*/
- public Boolean isDependency() {
+ public boolean isDependency() {
return dependency;
}
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Config.java (from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Config.java)
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Config.java?p2=karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Config.java&p1=karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Config.java&r1=1078752&r2=1079624&rev=1079624&view=diff
==============================================================================
--- karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Config.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Config.java Wed Mar 9 00:51:26 2011
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.karaf.features.internal;
+package org.apache.karaf.features.internal.model;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Config.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Config.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Config.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ConfigFile.java (from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/ConfigFile.java)
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ConfigFile.java?p2=karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ConfigFile.java&p1=karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/ConfigFile.java&r1=1078752&r2=1079624&rev=1079624&view=diff
==============================================================================
--- karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/ConfigFile.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ConfigFile.java Wed Mar 9 00:51:26 2011
@@ -17,13 +17,14 @@
* under the License.
*/
-package org.apache.karaf.features.internal;
+package org.apache.karaf.features.internal.model;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlValue;
+import org.apache.karaf.features.ConfigFileInfo;
/**
@@ -51,7 +52,7 @@ import javax.xml.bind.annotation.XmlValu
@XmlType(name = "configFile", propOrder = {
"value"
})
-public class ConfigFile {
+public class ConfigFile implements ConfigFileInfo {
@XmlValue
protected String value;
@@ -66,7 +67,7 @@ public class ConfigFile {
* {@link String }
*
*/
- public String getValue() {
+ public String getLocation() {
return value;
}
@@ -78,7 +79,7 @@ public class ConfigFile {
* {@link String }
*
*/
- public void setValue(String value) {
+ public void setLocation(String value) {
this.value = value;
}
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ConfigFile.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ConfigFile.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ConfigFile.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Dependency.java (from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Dependency.java)
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Dependency.java?p2=karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Dependency.java&p1=karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Dependency.java&r1=1078752&r2=1079624&rev=1079624&view=diff
==============================================================================
--- karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Dependency.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Dependency.java Wed Mar 9 00:51:26 2011
@@ -18,13 +18,17 @@
*/
-package org.apache.karaf.features.internal;
+package org.apache.karaf.features.internal.model;
+
+import java.util.List;
+import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlValue;
+import org.apache.karaf.features.*;
/**
@@ -52,13 +56,17 @@ import javax.xml.bind.annotation.XmlValu
@XmlType(name = "dependency", propOrder = {
"value"
})
-public class Dependency {
+public class Dependency implements org.apache.karaf.features.Feature {
@XmlValue
protected String value;
@XmlAttribute
protected String version;
+ public String getId() {
+ return null;
+ }
+
/**
*
* Feature name should be non empty string.
@@ -69,10 +77,18 @@ public class Dependency {
* {@link String }
*
*/
- public String getValue() {
+ public String getName() {
return value;
}
+ public String getDescription() {
+ return null;
+ }
+
+ public String getDetails() {
+ return null;
+ }
+
/**
* Sets the value of the value property.
*
@@ -81,7 +97,7 @@ public class Dependency {
* {@link String }
*
*/
- public void setValue(String value) {
+ public void setName(String value) {
this.value = value;
}
@@ -101,6 +117,27 @@ public class Dependency {
}
}
+ //Following are unimplemented methods of Feature interface.
+ public String getResolver() {
+ return null;
+ }
+
+ public List<org.apache.karaf.features.Feature> getDependencies() {
+ return null;
+ }
+
+ public List<BundleInfo> getBundles() {
+ return null;
+ }
+
+ public Map<String, Map<String, String>> getConfigurations() {
+ return null;
+ }
+
+ public List<ConfigFileInfo> getConfigurationFiles() {
+ return null;
+ }
+
/**
* Sets the value of the version property.
*
@@ -113,4 +150,9 @@ public class Dependency {
this.version = value;
}
+ public String toString() {
+ String ret = getName() + Feature.SPLIT_FOR_NAME_AND_VERSION + getVersion();
+ return ret;
+ }
+
}
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Dependency.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Dependency.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Dependency.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java (from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Feature.java)
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java?p2=karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java&p1=karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Feature.java&r1=1078752&r2=1079624&rev=1079624&view=diff
==============================================================================
--- karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Feature.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java Wed Mar 9 00:51:26 2011
@@ -17,14 +17,27 @@
* under the License.
*/
-package org.apache.karaf.features.internal;
+package org.apache.karaf.features.internal.model;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.StringReader;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;
+import org.apache.karaf.features.BundleInfo;
+import org.apache.karaf.features.ConfigFileInfo;
/**
@@ -66,7 +79,9 @@ import javax.xml.bind.annotation.XmlType
"feature",
"bundle"
})
-public class Feature {
+public class Feature implements org.apache.karaf.features.Feature {
+ public static String SPLIT_FOR_NAME_AND_VERSION = "_split_for_name_and_version_";
+ public static String DEFAULT_VERSION = "0.0.0";
protected List<String> details;
protected List<Config> config;
@@ -82,6 +97,33 @@ public class Feature {
@XmlAttribute
protected String resolver;
+
+ public Feature() {
+ }
+
+ public Feature(String name) {
+ this.name = name;
+ }
+
+ public Feature(String name, String version) {
+ this.name = name;
+ this.version = version;
+ }
+
+
+ public static org.apache.karaf.features.Feature valueOf(String str) {
+ if (str.indexOf(SPLIT_FOR_NAME_AND_VERSION) >= 0) {
+ String strName = str.substring(0, str.indexOf(SPLIT_FOR_NAME_AND_VERSION));
+ String strVersion = str.substring(str.indexOf(SPLIT_FOR_NAME_AND_VERSION)
+ + SPLIT_FOR_NAME_AND_VERSION.length(), str.length());
+ return new Feature(strName, strVersion);
+ } else {
+ return new Feature(str);
+ }
+
+
+ }
+
/**
* Gets the value of the details property.
*
@@ -104,7 +146,7 @@ public class Feature {
*
*
*/
- public List<String> getDetails() {
+ public List<String> getDetailsList() {
if (details == null) {
details = new ArrayList<String>();
}
@@ -227,6 +269,10 @@ public class Feature {
return this.bundle;
}
+ public String getId() {
+ return getName() + "-" + getVersion();
+ }
+
/**
* Gets the value of the name property.
*
@@ -291,6 +337,10 @@ public class Feature {
return description;
}
+ public String getDetails() {
+ return null;
+ }
+
/**
* Sets the value of the description property.
*
@@ -315,6 +365,39 @@ public class Feature {
return resolver;
}
+ public List<org.apache.karaf.features.Feature> getDependencies() {
+ return Collections.<org.apache.karaf.features.Feature>unmodifiableList(getFeature());
+ }
+
+ public List<BundleInfo> getBundles() {
+ return Collections.<BundleInfo>unmodifiableList(getBundle());
+ }
+
+ public Map<String, Map<String, String>> getConfigurations() {
+ Map<String, Map<String, String>> result = new HashMap<String, Map<String, String>>();
+ for (Config config: getConfig()) {
+ String name = config.getName();
+ StringReader propStream = new StringReader(config.getValue());
+ Properties props = new Properties();
+ try {
+ props.load(propStream);
+ } catch (IOException e) {
+ //ignore??
+ }
+ interpolation(props);
+ Map<String, String> propMap = new HashMap<String, String>();
+ for (Map.Entry<Object, Object> entry: props.entrySet()) {
+ propMap.put((String)entry.getKey(), (String)entry.getValue());
+ }
+ result.put(name, propMap);
+ }
+ return result;
+ }
+
+ public List<ConfigFileInfo> getConfigurationFiles() {
+ return Collections.<ConfigFileInfo>unmodifiableList(getConfigfile());
+ }
+
/**
* Sets the value of the resolver property.
*
@@ -327,4 +410,45 @@ public class Feature {
this.resolver = value;
}
+ public String toString() {
+ String ret = getName() + SPLIT_FOR_NAME_AND_VERSION + getVersion();
+ return ret;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ Feature feature = (Feature) o;
+
+ if (name != null ? !name.equals(feature.name) : feature.name != null) return false;
+ if (version != null ? !version.equals(feature.version) : feature.version != null) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = name != null ? name.hashCode() : 0;
+ result = 31 * result + (version != null ? version.hashCode() : 0);
+ return result;
+ }
+
+ protected void interpolation(Properties properties) {
+ for (Enumeration e = properties.propertyNames(); e.hasMoreElements();) {
+ String key = (String) e.nextElement();
+ String val = properties.getProperty(key);
+ Matcher matcher = Pattern.compile("\\$\\{([^}]+)\\}").matcher(val);
+ while (matcher.find()) {
+ String rep = System.getProperty(matcher.group(1));
+ if (rep != null) {
+ val = val.replace(matcher.group(0), rep);
+ matcher.reset(val);
+ }
+ }
+ properties.put(key, val);
+ }
+ }
+
}
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Features.java (from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Features.java)
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Features.java?p2=karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Features.java&p1=karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Features.java&r1=1078752&r2=1079624&rev=1079624&view=diff
==============================================================================
--- karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/Features.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Features.java Wed Mar 9 00:51:26 2011
@@ -17,8 +17,9 @@
* under the License.
*/
-package org.apache.karaf.features.internal;
+package org.apache.karaf.features.internal.model;
+import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
@@ -27,6 +28,7 @@ import javax.xml.bind.annotation.XmlAttr
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
+import org.apache.karaf.features.Repository;
/**
@@ -68,7 +70,7 @@ public class Features {
protected List<String> repository;
protected List<Feature> feature;
@XmlAttribute
- protected String name;
+ protected String name ="<unnamed>";
/**
* Gets the value of the repository property.
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Features.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Features.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Features.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/JaxbUtil.java (from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/JaxbUtil.java)
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/JaxbUtil.java?p2=karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/JaxbUtil.java&p1=karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/JaxbUtil.java&r1=1078752&r2=1079624&rev=1079624&view=diff
==============================================================================
--- karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/JaxbUtil.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/JaxbUtil.java Wed Mar 9 00:51:26 2011
@@ -18,7 +18,7 @@
*/
-package org.apache.karaf.tooling.features;
+package org.apache.karaf.features.internal.model;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -39,7 +39,6 @@ import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.transform.sax.SAXSource;
-import org.apache.karaf.features.internal.Features;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/JaxbUtil.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/JaxbUtil.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/JaxbUtil.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ObjectFactory.java (from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/ObjectFactory.java)
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ObjectFactory.java?p2=karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ObjectFactory.java&p1=karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/ObjectFactory.java&r1=1078752&r2=1079624&rev=1079624&view=diff
==============================================================================
--- karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/ObjectFactory.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ObjectFactory.java Wed Mar 9 00:51:26 2011
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.karaf.features.internal;
+package org.apache.karaf.features.internal.model;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElementDecl;
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ObjectFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ObjectFactory.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/ObjectFactory.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/package-info.java (from r1078752, karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/package-info.java)
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/package-info.java?p2=karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/package-info.java&p1=karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/package-info.java&r1=1078752&r2=1079624&rev=1079624&view=diff
==============================================================================
--- karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/features/internal/package-info.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/package-info.java Wed Mar 9 00:51:26 2011
@@ -18,4 +18,4 @@
*/
@javax.xml.bind.annotation.XmlSchema(namespace = "http://karaf.apache.org/xmlns/features/v1.0.0", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
-package org.apache.karaf.features.internal;
+package org.apache.karaf.features.internal.model;
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/package-info.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/package-info.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/package-info.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: karaf/trunk/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.0.0.xsd
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.0.0.xsd?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.0.0.xsd (original)
+++ karaf/trunk/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.0.0.xsd Wed Mar 9 00:51:26 2011
@@ -141,7 +141,8 @@ Dependency of feature.
<xs:annotation>
<xs:documentation><![CDATA[
Configuration entries which should be created during feature installation. This
-configuration may be used with OSGi Configuration Admin.
+configuration may be used with OSGi Configuration Admin. The element content is
+read in as a properties file.
]]></xs:documentation>
</xs:annotation>
<xs:simpleContent>
Modified: karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java (original)
+++ karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java Wed Mar 9 00:51:26 2011
@@ -17,17 +17,16 @@
package org.apache.karaf.features;
import junit.framework.TestCase;
-import org.apache.karaf.features.internal.FeatureImpl;
public class FeatureTest extends TestCase {
public void testValueOf() {
- Feature feature = FeatureImpl.valueOf("name" + FeatureImpl.SPLIT_FOR_NAME_AND_VERSION + "version");
+ Feature feature = org.apache.karaf.features.internal.model.Feature.valueOf("name" + org.apache.karaf.features.internal.model.Feature.SPLIT_FOR_NAME_AND_VERSION + "version");
assertEquals(feature.getName(), "name");
assertEquals(feature.getVersion(), "version");
- feature = FeatureImpl.valueOf("name");
+ feature = org.apache.karaf.features.internal.model.Feature.valueOf("name");
assertEquals(feature.getName(), "name");
- assertEquals(feature.getVersion(), FeatureImpl.DEFAULT_VERSION);
+ assertEquals(feature.getVersion(), org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION);
}
}
Modified: karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java (original)
+++ karaf/trunk/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java Wed Mar 9 00:51:26 2011
@@ -44,7 +44,6 @@ import java.util.jar.JarInputStream;
import junit.framework.TestCase;
-import org.apache.karaf.features.internal.FeatureImpl;
import org.apache.karaf.features.internal.FeaturesServiceImpl;
import org.easymock.EasyMock;
import org.osgi.framework.Bundle;
@@ -123,7 +122,7 @@ public class FeaturesServiceTest extends
replay(bundleContext, installedBundle);
- svc.installFeature("f1", FeatureImpl.DEFAULT_VERSION, EnumSet.of(FeaturesService.Option.NoAutoRefreshBundles));
+ svc.installFeature("f1", org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION, EnumSet.of(FeaturesService.Option.NoAutoRefreshBundles));
Feature[] installed = svc.listInstalledFeatures();
assertEquals(1, installed.length);
Modified: karaf/trunk/features/core/src/test/java/org/apache/karaf/features/RepositoryTest.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/test/java/org/apache/karaf/features/RepositoryTest.java?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/features/core/src/test/java/org/apache/karaf/features/RepositoryTest.java (original)
+++ karaf/trunk/features/core/src/test/java/org/apache/karaf/features/RepositoryTest.java Wed Mar 9 00:51:26 2011
@@ -20,7 +20,6 @@ import java.net.URI;
import junit.framework.TestCase;
import org.apache.karaf.features.internal.RepositoryImpl;
-import org.apache.karaf.features.internal.FeatureImpl;
public class RepositoryTest extends TestCase {
@@ -55,7 +54,7 @@ public class RepositoryTest extends Test
assertEquals(0, features[1].getConfigurations().size());
assertNotNull(features[1].getDependencies());
assertEquals(1, features[1].getDependencies().size());
- assertEquals("f1" + FeatureImpl.SPLIT_FOR_NAME_AND_VERSION + FeatureImpl.DEFAULT_VERSION, features[1].getDependencies().get(0).toString());
+ assertEquals("f1" + org.apache.karaf.features.internal.model.Feature.SPLIT_FOR_NAME_AND_VERSION + org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION, features[1].getDependencies().get(0).toString());
assertNotNull(features[1].getBundles());
assertEquals(1, features[1].getBundles().size());
assertEquals("b3", features[1].getBundles().get(0).getLocation());
Modified: karaf/trunk/features/core/src/test/java/org/apache/karaf/features/internal/FeaturesServiceImplTest.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/test/java/org/apache/karaf/features/internal/FeaturesServiceImplTest.java?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/features/core/src/test/java/org/apache/karaf/features/internal/FeaturesServiceImplTest.java (original)
+++ karaf/trunk/features/core/src/test/java/org/apache/karaf/features/internal/FeaturesServiceImplTest.java Wed Mar 9 00:51:26 2011
@@ -48,7 +48,7 @@ public class FeaturesServiceImplTest ext
public void testGetFeature() throws Exception {
final Map<String, Map<String, Feature>> features = new HashMap<String, Map<String,Feature>>();
Map<String, Feature> versions = new HashMap<String, Feature>();
- FeatureImpl feature = new FeatureImpl("transaction");
+ org.apache.karaf.features.internal.model.Feature feature = new org.apache.karaf.features.internal.model.Feature("transaction");
versions.put("1.0.0", feature);
features.put("transaction", versions);
final FeaturesServiceImpl impl = new FeaturesServiceImpl() {
@@ -56,14 +56,14 @@ public class FeaturesServiceImplTest ext
return features;
};
};
- assertNotNull(impl.getFeature("transaction", FeatureImpl.DEFAULT_VERSION));
- assertSame(feature, impl.getFeature("transaction", FeatureImpl.DEFAULT_VERSION));
+ assertNotNull(impl.getFeature("transaction", org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION));
+ assertSame(feature, impl.getFeature("transaction", org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION));
}
public void testGetFeatureStripVersion() throws Exception {
final Map<String, Map<String, Feature>> features = new HashMap<String, Map<String,Feature>>();
Map<String, Feature> versions = new HashMap<String, Feature>();
- FeatureImpl feature = new FeatureImpl("transaction");
+ org.apache.karaf.features.internal.model.Feature feature = new org.apache.karaf.features.internal.model.Feature("transaction");
versions.put("1.0.0", feature);
features.put("transaction", versions);
final FeaturesServiceImpl impl = new FeaturesServiceImpl() {
@@ -78,29 +78,29 @@ public class FeaturesServiceImplTest ext
public void testGetFeatureNotAvailable() throws Exception {
final Map<String, Map<String, Feature>> features = new HashMap<String, Map<String,Feature>>();
Map<String, Feature> versions = new HashMap<String, Feature>();
- versions.put("1.0.0", new FeatureImpl("transaction"));
+ versions.put("1.0.0", new org.apache.karaf.features.internal.model.Feature("transaction"));
features.put("transaction", versions);
final FeaturesServiceImpl impl = new FeaturesServiceImpl() {
protected Map<String,Map<String,Feature>> getFeatures() throws Exception {
return features;
};
};
- assertNull(impl.getFeature("activemq", FeatureImpl.DEFAULT_VERSION));
+ assertNull(impl.getFeature("activemq", org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION));
}
public void testGetFeatureHighestAvailable() throws Exception {
final Map<String, Map<String, Feature>> features = new HashMap<String, Map<String,Feature>>();
Map<String, Feature> versions = new HashMap<String, Feature>();
- versions.put("1.0.0", new FeatureImpl("transaction", "1.0.0"));
- versions.put("2.0.0", new FeatureImpl("transaction", "2.0.0"));
+ versions.put("1.0.0", new org.apache.karaf.features.internal.model.Feature("transaction", "1.0.0"));
+ versions.put("2.0.0", new org.apache.karaf.features.internal.model.Feature("transaction", "2.0.0"));
features.put("transaction", versions);
final FeaturesServiceImpl impl = new FeaturesServiceImpl() {
protected Map<String,Map<String,Feature>> getFeatures() throws Exception {
return features;
};
};
- assertNotNull(impl.getFeature("transaction", FeatureImpl.DEFAULT_VERSION));
- assertSame("2.0.0", impl.getFeature("transaction", FeatureImpl.DEFAULT_VERSION).getVersion());
+ assertNotNull(impl.getFeature("transaction", org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION));
+ assertSame("2.0.0", impl.getFeature("transaction", org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION).getVersion());
}
public void testStartDoesNotFailWithOneInvalidUri() {
@@ -127,12 +127,12 @@ public class FeaturesServiceImplTest ext
final Map<String, Map<String, Feature>> features = new HashMap<String, Map<String,Feature>>();
Map<String, Feature> versions = new HashMap<String, Feature>();
- versions.put("1.0.0", new FeatureImpl("transaction", "1.0.0"));
- versions.put("2.0.0", new FeatureImpl("transaction", "2.0.0"));
+ versions.put("1.0.0", new org.apache.karaf.features.internal.model.Feature("transaction", "1.0.0"));
+ versions.put("2.0.0", new org.apache.karaf.features.internal.model.Feature("transaction", "2.0.0"));
features.put("transaction", versions);
Map<String, Feature> versions2 = new HashMap<String, Feature>();
- versions2.put("1.0.0", new FeatureImpl("ssh", "1.0.0"));
+ versions2.put("1.0.0", new org.apache.karaf.features.internal.model.Feature("ssh", "1.0.0"));
features.put("ssh", versions2);
final FeaturesServiceImpl impl = new FeaturesServiceImpl() {
Modified: karaf/trunk/features/core/src/test/resources/org/apache/karaf/features/repo1.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/test/resources/org/apache/karaf/features/repo1.xml?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/features/core/src/test/resources/org/apache/karaf/features/repo1.xml (original)
+++ karaf/trunk/features/core/src/test/resources/org/apache/karaf/features/repo1.xml Wed Mar 9 00:51:26 2011
@@ -15,7 +15,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<features>
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.0.0">
<repository>urn:r1</repository>
<feature name="f1">
<config name="c1">
Modified: karaf/trunk/features/obr/src/test/java/org/apache/karaf/features/obr/internal/ObrResolverTest.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/obr/src/test/java/org/apache/karaf/features/obr/internal/ObrResolverTest.java?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/features/obr/src/test/java/org/apache/karaf/features/obr/internal/ObrResolverTest.java (original)
+++ karaf/trunk/features/obr/src/test/java/org/apache/karaf/features/obr/internal/ObrResolverTest.java Wed Mar 9 00:51:26 2011
@@ -26,7 +26,7 @@ import org.apache.felix.bundlerepository
import org.apache.felix.bundlerepository.impl.DataModelHelperImpl;
import org.apache.felix.bundlerepository.impl.ReasonImpl;
import org.apache.karaf.features.BundleInfo;
-import org.apache.karaf.features.internal.FeatureImpl;
+import org.apache.karaf.features.internal.model.Bundle;
import org.easymock.Capture;
import org.easymock.EasyMock;
import org.easymock.IAnswer;
@@ -45,9 +45,9 @@ public class ObrResolverTest {
public void testResolver() throws Exception {
final String requirement = "bundle:(&(symbolicname=org.apache.camel.camel-blueprint)(version>=2.4.0)(version<2.4.1))";
- final FeatureImpl f = new FeatureImpl("f1", "1.0");
+ final org.apache.karaf.features.internal.model.Feature f = new org.apache.karaf.features.internal.model.Feature("f1", "1.0");
f.setResolver("obr");
- f.addBundle(new BundleInfoImpl(requirement));
+ f.getBundle().add(new Bundle(requirement));
final RepositoryAdmin admin = createMock(RepositoryAdmin.class);
final Resolver resolver = createMock(Resolver.class);
final Resource resource = createMock(Resource.class);
Modified: karaf/trunk/tooling/features-maven-plugin/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/tooling/features-maven-plugin/pom.xml?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/tooling/features-maven-plugin/pom.xml (original)
+++ karaf/trunk/tooling/features-maven-plugin/pom.xml Wed Mar 9 00:51:26 2011
@@ -57,6 +57,10 @@
<artifactId>maven-bundle-plugin</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.fileinstall</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.karaf.features</groupId>
<artifactId>org.apache.karaf.features.core</artifactId>
<exclusions>
Modified: karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/ArchiveKarMojo.java
URL: http://svn.apache.org/viewvc/karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/ArchiveKarMojo.java?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/ArchiveKarMojo.java (original)
+++ karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/ArchiveKarMojo.java Wed Mar 9 00:51:26 2011
@@ -26,9 +26,11 @@ import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
-import org.apache.karaf.features.internal.Bundle;
-import org.apache.karaf.features.internal.Feature;
-import org.apache.karaf.features.internal.Features;
+import org.apache.karaf.features.BundleInfo;
+import org.apache.karaf.features.internal.model.Bundle;
+import org.apache.karaf.features.internal.model.Feature;
+import org.apache.karaf.features.internal.model.Features;
+import org.apache.karaf.features.internal.model.JaxbUtil;
import org.apache.maven.archiver.MavenArchiveConfiguration;
import org.apache.maven.archiver.MavenArchiver;
import org.apache.maven.artifact.Artifact;
@@ -121,7 +123,10 @@ public class ArchiveKarMojo extends Mojo
File archive = createArchive(bundles);
// Attach the generated archive for install/deploy
- project.getArtifact().setFile(archive);
+ Artifact artifact = factory.createArtifact(project.getGroupId(), project.getArtifactId(), project.getVersion(), null, "kar");
+ artifact.setFile(archive);
+
+ project.addAttachedArtifact(artifact);
}
private List<Artifact> readBundles() throws MojoExecutionException {
@@ -131,9 +136,9 @@ public class ArchiveKarMojo extends Mojo
try {
Features features = JaxbUtil.unmarshal(in, false);
for (Feature feature : features.getFeature()) {
- for (Bundle bundle : feature.getBundle()) {
- if (bundle.isDependency() == null || !bundle.isDependency()) {
- bundles.add(bundleToArtifact(bundle.getValue(), false));
+ for (BundleInfo bundle : feature.getBundles()) {
+ if (!bundle.isDependency()) {
+ bundles.add(bundleToArtifact(bundle.getLocation(), false));
}
}
}
Modified: karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2.java
URL: http://svn.apache.org/viewvc/karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2.java?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2.java (original)
+++ karaf/trunk/tooling/features-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2.java Wed Mar 9 00:51:26 2011
@@ -33,10 +33,11 @@ import java.util.Set;
import javax.xml.bind.JAXBException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.stream.XMLStreamException;
-import org.apache.karaf.features.internal.Bundle;
-import org.apache.karaf.features.internal.Feature;
-import org.apache.karaf.features.internal.Features;
-import org.apache.karaf.features.internal.ObjectFactory;
+import org.apache.karaf.features.internal.model.Feature;
+import org.apache.karaf.features.internal.model.Bundle;
+import org.apache.karaf.features.internal.model.Features;
+import org.apache.karaf.features.internal.model.JaxbUtil;
+import org.apache.karaf.features.internal.model.ObjectFactory;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
@@ -54,7 +55,6 @@ import org.apache.maven.project.MavenPro
import org.apache.maven.project.MavenProjectHelper;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
import org.apache.maven.shared.dependency.tree.DependencyNode;
-import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder;
import org.apache.maven.shared.dependency.tree.DependencyTreeResolutionListener;
import org.codehaus.plexus.logging.AbstractLogEnabled;
import org.xml.sax.SAXException;
@@ -180,6 +180,9 @@ public class GenerateFeaturesXmlMojo2 ex
} else {
featuresRoot = objectFactory.createFeaturesRoot();
}
+ if (featuresRoot.getName() == null) {
+ featuresRoot.setName(project.getArtifactId());
+ }
Feature feature = null;
for (Feature test: featuresRoot.getFeature()) {
@@ -202,7 +205,7 @@ public class GenerateFeaturesXmlMojo2 ex
bundleName = String.format("mvn:%s/%s/%s/%s", artifact.getGroupId(), artifact.getArtifactId(), artifact.getBaseVersion(), artifact.getType());
}
Bundle bundle = objectFactory.createBundle();
- bundle.setValue(bundleName);
+ bundle.setLocation(bundleName);
if ("runtime".equals(artifact.getScope())) {
bundle.setDependency(true);
}
Modified: karaf/trunk/tooling/features-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2Test.java
URL: http://svn.apache.org/viewvc/karaf/trunk/tooling/features-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2Test.java?rev=1079624&r1=1079623&r2=1079624&view=diff
==============================================================================
--- karaf/trunk/tooling/features-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2Test.java (original)
+++ karaf/trunk/tooling/features-maven-plugin/src/test/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2Test.java Wed Mar 9 00:51:26 2011
@@ -26,7 +26,8 @@ import java.io.InputStream;
import javax.xml.bind.JAXBException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.stream.XMLStreamException;
-import org.apache.karaf.features.internal.Features;
+import org.apache.karaf.features.internal.model.Features;
+import org.apache.karaf.features.internal.model.JaxbUtil;
import org.junit.Test;
import org.xml.sax.SAXException;