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/04/08 06:40:26 UTC
svn commit: r1090110 - in /karaf/trunk: assemblies/features/enterprise/
assemblies/features/enterprise/src/main/feature/
assemblies/features/enterprise/src/main/resources/
assemblies/features/standard/
assemblies/features/standard/src/main/feature/ ass...
Author: djencks
Date: Fri Apr 8 04:40:26 2011
New Revision: 1090110
URL: http://svn.apache.org/viewvc?rev=1090110&view=rev
Log:
KARAF-424 use karaf plugin to filter features. Make features defaults clearer. Fix a but in karaf plugin where new feature file had to be longer than original
Added:
karaf/trunk/assemblies/features/enterprise/src/main/feature/
karaf/trunk/assemblies/features/enterprise/src/main/feature/feature.xml (contents, props changed)
- copied, changed from r1090057, karaf/trunk/assemblies/features/enterprise/src/main/resources/features.xml
karaf/trunk/assemblies/features/standard/src/main/feature/
karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml (contents, props changed)
- copied, changed from r1090057, karaf/trunk/assemblies/features/standard/src/main/resources/features.xml
Removed:
karaf/trunk/assemblies/features/enterprise/src/main/resources/features.xml
karaf/trunk/assemblies/features/standard/src/main/resources/features.xml
Modified:
karaf/trunk/assemblies/features/enterprise/pom.xml
karaf/trunk/assemblies/features/standard/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/model/Bundle.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/internal/FeaturesServiceImplTest.java
karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2.java
Modified: karaf/trunk/assemblies/features/enterprise/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/assemblies/features/enterprise/pom.xml?rev=1090110&r1=1090109&r2=1090110&view=diff
==============================================================================
--- karaf/trunk/assemblies/features/enterprise/pom.xml (original)
+++ karaf/trunk/assemblies/features/enterprise/pom.xml Fri Apr 8 04:40:26 2011
@@ -28,76 +28,27 @@
</parent>
<artifactId>enterprise</artifactId>
+ <packaging>pom</packaging>
<name>Apache Karaf :: Assemblies :: Features :: Enterprise</name>
<properties>
<appendedResourcesDirectory>${basedir}/../../../etc/appended-resources</appendedResourcesDirectory>
</properties>
- <dependencies>
- <dependency>
- <groupId>org.apache.aries.jndi</groupId>
- <artifactId>org.apache.aries.jndi.api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.aries.jndi</groupId>
- <artifactId>org.apache.aries.jndi.core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.aries.jndi</groupId>
- <artifactId>org.apache.aries.jndi.url</artifactId>
- </dependency>
- </dependencies>
-
<build>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*</include>
- </includes>
- </resource>
- </resources>
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
+ <groupId>org.apache.karaf.tooling</groupId>
+ <artifactId>karaf-maven-plugin</artifactId>
<configuration>
- <useDefaultDelimiters>false</useDefaultDelimiters>
- <delimiters>
- <delimiter>${*}</delimiter>
- </delimiters>
</configuration>
<executions>
<execution>
- <id>filter</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>resources</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-artifacts</id>
- <phase>package</phase>
+ <id>compile</id>
+ <phase>compile</phase>
<goals>
- <goal>attach-artifact</goal>
+ <goal>generate-features-xml2</goal>
</goals>
- <configuration>
- <artifacts>
- <artifact>
- <file>target/classes/features.xml</file>
- <type>xml</type>
- <classifier>features</classifier>
- </artifact>
- </artifacts>
- </configuration>
</execution>
</executions>
</plugin>
Copied: karaf/trunk/assemblies/features/enterprise/src/main/feature/feature.xml (from r1090057, karaf/trunk/assemblies/features/enterprise/src/main/resources/features.xml)
URL: http://svn.apache.org/viewvc/karaf/trunk/assemblies/features/enterprise/src/main/feature/feature.xml?p2=karaf/trunk/assemblies/features/enterprise/src/main/feature/feature.xml&p1=karaf/trunk/assemblies/features/enterprise/src/main/resources/features.xml&r1=1090057&r2=1090110&rev=1090110&view=diff
==============================================================================
(empty)
Propchange: karaf/trunk/assemblies/features/enterprise/src/main/feature/feature.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: karaf/trunk/assemblies/features/enterprise/src/main/feature/feature.xml
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: karaf/trunk/assemblies/features/enterprise/src/main/feature/feature.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Modified: karaf/trunk/assemblies/features/standard/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/assemblies/features/standard/pom.xml?rev=1090110&r1=1090109&r2=1090110&view=diff
==============================================================================
--- karaf/trunk/assemblies/features/standard/pom.xml (original)
+++ karaf/trunk/assemblies/features/standard/pom.xml Fri Apr 8 04:40:26 2011
@@ -28,6 +28,7 @@
</parent>
<artifactId>standard</artifactId>
+ <packaging>pom</packaging>
<name>Apache Karaf :: Assemblies :: Features :: Standard</name>
<properties>
@@ -35,57 +36,22 @@
</properties>
<build>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- <includes>
- <include>**/*</include>
- </includes>
- </resource>
- </resources>
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
+ <groupId>org.apache.karaf.tooling</groupId>
+ <artifactId>karaf-maven-plugin</artifactId>
<configuration>
- <useDefaultDelimiters>false</useDefaultDelimiters>
- <delimiters>
- <delimiter>${*}</delimiter>
- </delimiters>
</configuration>
<executions>
<execution>
- <id>filter</id>
- <phase>generate-resources</phase>
+ <id>compile</id>
+ <phase>compile</phase>
<goals>
- <goal>resources</goal>
+ <goal>generate-features-xml2</goal>
</goals>
</execution>
</executions>
</plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-artifacts</id>
- <phase>package</phase>
- <goals>
- <goal>attach-artifact</goal>
- </goals>
- <configuration>
- <artifacts>
- <artifact>
- <file>target/classes/features.xml</file>
- <type>xml</type>
- <classifier>features</classifier>
- </artifact>
- </artifacts>
- </configuration>
- </execution>
- </executions>
- </plugin>
</plugins>
</build>
Copied: karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml (from r1090057, karaf/trunk/assemblies/features/standard/src/main/resources/features.xml)
URL: http://svn.apache.org/viewvc/karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml?p2=karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml&p1=karaf/trunk/assemblies/features/standard/src/main/resources/features.xml&r1=1090057&r2=1090110&rev=1090110&view=diff
==============================================================================
(empty)
Propchange: karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: karaf/trunk/assemblies/features/standard/src/main/feature/feature.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
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=1090110&r1=1090109&r2=1090110&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 Fri Apr 8 04:40:26 2011
@@ -46,6 +46,7 @@ import java.util.Properties;
import java.util.Set;
import java.util.TreeSet;
import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
import java.util.jar.JarInputStream;
import java.util.jar.Manifest;
import java.util.regex.Matcher;
@@ -108,7 +109,7 @@ public class FeaturesServiceImpl impleme
private Map<String, Map<String, Feature>> features;
private Map<Feature, Set<Long>> installed = new HashMap<Feature, Set<Long>>();
private String boot;
- private boolean bootFeaturesInstalled;
+ AtomicBoolean bootFeaturesInstalled = new AtomicBoolean();
private List<FeaturesListener> listeners = new CopyOnWriteArrayList<FeaturesListener>();
private ThreadLocal<Repository> repo = new ThreadLocal<Repository>();
private EventAdminListener eventAdminListener;
@@ -914,7 +915,7 @@ public class FeaturesServiceImpl impleme
saveState();
}
// Install boot features
- if (boot != null && !bootFeaturesInstalled) {
+ if (boot != null && !bootFeaturesInstalled.get()) {
new Thread() {
public void run() {
// splitting the features
@@ -958,7 +959,7 @@ public class FeaturesServiceImpl impleme
} catch (Exception e) {
LOGGER.error("Error installing boot features", e);
}
- bootFeaturesInstalled = true;
+ bootFeaturesInstalled.set(true);
saveState();
}
}.start();
@@ -1035,7 +1036,7 @@ public class FeaturesServiceImpl impleme
Properties props = new Properties();
saveSet(props, "repositories.", repositories.keySet());
saveMap(props, "features.", installed);
- props.put("bootFeaturesInstalled", Boolean.toString(bootFeaturesInstalled));
+ props.put("bootFeaturesInstalled", Boolean.toString(bootFeaturesInstalled.get()));
OutputStream os = new FileOutputStream(file);
try {
props.store(new FileOutputStream(file), "FeaturesService State");
@@ -1072,7 +1073,7 @@ public class FeaturesServiceImpl impleme
for (Feature f : installed.keySet()) {
callListeners(new FeatureEvent(f, FeatureEvent.EventType.FeatureInstalled, true));
}
- bootFeaturesInstalled = Boolean.parseBoolean((String) props.get("bootFeaturesInstalled"));
+ bootFeaturesInstalled.set(Boolean.parseBoolean((String) props.get("bootFeaturesInstalled")));
return true;
} catch (Exception e) {
LOGGER.error("Error loading FeaturesService state", e);
Modified: karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java
URL: http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java?rev=1090110&r1=1090109&r2=1090110&view=diff
==============================================================================
--- karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java (original)
+++ karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/model/Bundle.java Fri Apr 8 04:40:26 2011
@@ -62,11 +62,11 @@ public class Bundle implements BundleInf
@XmlSchemaType(name = "anyURI")
protected String value;
@XmlAttribute(name = "start-level")
- protected int startLevel;
+ protected Integer startLevel;
@XmlAttribute
- protected boolean start = true;
+ protected Boolean start;// = true;
@XmlAttribute
- protected boolean dependency;
+ protected Boolean dependency;
public Bundle() {
@@ -109,7 +109,7 @@ public class Bundle implements BundleInf
*
*/
public int getStartLevel() {
- return startLevel;
+ return startLevel == null? 0: startLevel;
}
/**
@@ -133,7 +133,7 @@ public class Bundle implements BundleInf
*
*/
public boolean isStart() {
- return start;
+ return start == null? false: start;
}
/**
@@ -157,7 +157,7 @@ public class Bundle implements BundleInf
*
*/
public boolean isDependency() {
- return dependency;
+ return dependency == null? false: dependency;
}
/**
@@ -190,9 +190,9 @@ public class Bundle implements BundleInf
@Override
public int hashCode() {
int result = value != null ? value.hashCode() : 0;
- result = 31 * result + startLevel;
- result = 31 * result + (start ? 1 : 0);
- result = 31 * result + (dependency ? 1 : 0);
+ result = 31 * result + getStartLevel();
+ result = 31 * result + (isStart() ? 1 : 0);
+ result = 31 * result + (isDependency() ? 1 : 0);
return result;
}
}
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=1090110&r1=1090109&r2=1090110&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 Fri Apr 8 04:40:26 2011
@@ -70,7 +70,7 @@ public class FeaturesServiceTest extends
PrintWriter pw = new PrintWriter(new FileWriter(tmp));
pw.println("<features xmlns=\"http://karaf.apache.org/xmlns/features/v1.0.0\">");
pw.println(" <feature name=\"f1\">");
- pw.println(" <bundle>" + name + "</bundle>");
+ pw.println(" <bundle start='true'>" + name + "</bundle>");
pw.println(" </feature>");
pw.println("</features>");
pw.close();
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=1090110&r1=1090109&r2=1090110&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 Fri Apr 8 04:40:26 2011
@@ -155,10 +155,12 @@ public class FeaturesServiceImplTest ext
Thread.currentThread().setContextClassLoader(new URLClassLoader(new URL[0]));
impl.setBoot("transaction;version=1.2,ssh;version=1.0.0");
impl.start();
-
+ while (!impl.bootFeaturesInstalled.get()) {
+ Thread.sleep(10L);
+ }
assertFalse("Feature transaction 1.0.0 should not be installed", impl.isInstalled(impl.getFeature("transaction", "1.0.0")));
assertFalse("Feature transaction 2.0.0 should not be installed", impl.isInstalled(impl.getFeature("transaction", "2.0.0")));
- assertFalse("Feature ssh should be installed", impl.isInstalled(impl.getFeature("ssh", "1.0.0")));
+ assertTrue("Feature ssh should be installed", impl.isInstalled(impl.getFeature("ssh", "1.0.0")));
} catch (Exception e) {
fail(String.format("Service should not throw start-up exception but log the error instead: %s", e));
}
Modified: karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2.java
URL: http://svn.apache.org/viewvc/karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2.java?rev=1090110&r1=1090109&r2=1090110&view=diff
==============================================================================
--- karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2.java (original)
+++ karaf/trunk/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateFeaturesXmlMojo2.java Fri Apr 8 04:40:26 2011
@@ -106,6 +106,13 @@ public class GenerateFeaturesXmlMojo2 ex
private File inputFile;
/**
+ * The filtered input file
+ *
+ * @parameter default-value="${project.build.directory}/feature/filteredInputFeature.xml"
+ */
+ private File filteredInputFile;
+
+ /**
* The file to generate
*
* @parameter default-value="${project.build.directory}/feature/feature.xml"
@@ -242,8 +249,8 @@ public class GenerateFeaturesXmlMojo2 ex
ObjectFactory objectFactory = new ObjectFactory();
Features features;
if (inputFile.exists()) {
- filter(inputFile, outputFile);
- features = readFeaturesFile(outputFile);
+ filter(inputFile, filteredInputFile);
+ features = readFeaturesFile(filteredInputFile);
} else {
features = objectFactory.createFeaturesRoot();
}