You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2009/08/07 11:55:55 UTC
svn commit: r801925 [1/2] - in /felix/trunk/karaf: ./ assembly/
assembly/src/main/descriptors/ assembly/src/main/filtered-resources/etc/
deployer/features/
deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/
deployer/features/src/...
Author: gnodet
Date: Fri Aug 7 09:55:51 2009
New Revision: 801925
URL: http://svn.apache.org/viewvc?rev=801925&view=rev
Log:
FELIX-1457: refactor features management layer
Added:
felix/trunk/karaf/features/
felix/trunk/karaf/features/command/
felix/trunk/karaf/features/command/pom.xml
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/pom.xml
felix/trunk/karaf/features/command/src/
felix/trunk/karaf/features/command/src/main/
felix/trunk/karaf/features/command/src/main/java/
felix/trunk/karaf/features/command/src/main/java/org/
felix/trunk/karaf/features/command/src/main/java/org/apache/
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/AddUrlCommand.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/AddUrlCommand.java
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/FeaturesCommandSupport.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/FeaturesCommandSupport.java
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/InstallFeatureCommand.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/InstallFeatureCommand.java
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/ListFeaturesCommand.java
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/ListUrlCommand.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/ListUrlCommand.java
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/RefreshUrlCommand.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/RefreshUrlCommand.java
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/RemoveUrlCommand.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/RemoveUrlCommand.java
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/UninstallFeatureCommand.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/UninstallFeatureCommand.java
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/AvailableFeatureCompleter.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/AvailableFeatureCompleter.java
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/FeatureRepositoryCompleter.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/FeatureRepositoryCompleter.java
felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/InstalledFeatureCompleter.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/InstalledFeatureCompleter.java
felix/trunk/karaf/features/command/src/main/resources/
felix/trunk/karaf/features/command/src/main/resources/OSGI-INF/
felix/trunk/karaf/features/command/src/main/resources/OSGI-INF/blueprint/
felix/trunk/karaf/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml
felix/trunk/karaf/features/core/
felix/trunk/karaf/features/core/pom.xml
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/pom.xml
felix/trunk/karaf/features/core/src/
felix/trunk/karaf/features/core/src/main/
felix/trunk/karaf/features/core/src/main/java/
felix/trunk/karaf/features/core/src/main/java/org/
felix/trunk/karaf/features/core/src/main/java/org/apache/
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/Feature.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/Feature.java
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeatureEvent.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/FeaturesRegistry.java
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesListener.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/management/ManagedFeaturesRegistryMBean.java
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesService.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/FeaturesService.java
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/Repository.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/Repository.java
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/RepositoryEvent.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/AddUrlCommand.java
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/FeatureImpl.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/FeatureImpl.java
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/FeaturesServiceImpl.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/FeaturesServiceImpl.java
felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/RepositoryImpl.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/RepositoryImpl.java
felix/trunk/karaf/features/core/src/main/resources/
felix/trunk/karaf/features/core/src/main/resources/OSGI-INF/
felix/trunk/karaf/features/core/src/main/resources/OSGI-INF/blueprint/
felix/trunk/karaf/features/core/src/main/resources/OSGI-INF/blueprint/gshell-features.xml
felix/trunk/karaf/features/core/src/test/
felix/trunk/karaf/features/core/src/test/java/
felix/trunk/karaf/features/core/src/test/java/org/
felix/trunk/karaf/features/core/src/test/java/org/apache/
felix/trunk/karaf/features/core/src/test/java/org/apache/felix/
felix/trunk/karaf/features/core/src/test/java/org/apache/felix/karaf/
felix/trunk/karaf/features/core/src/test/java/org/apache/felix/karaf/features/
felix/trunk/karaf/features/core/src/test/java/org/apache/felix/karaf/features/FeatureTest.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/test/java/org/apache/felix/karaf/gshell/features/FeatureTest.java
felix/trunk/karaf/features/core/src/test/java/org/apache/felix/karaf/features/FeaturesServiceTest.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/test/java/org/apache/felix/karaf/gshell/features/FeaturesServiceTest.java
felix/trunk/karaf/features/core/src/test/java/org/apache/felix/karaf/features/RepositoryTest.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/test/java/org/apache/felix/karaf/gshell/features/RepositoryTest.java
felix/trunk/karaf/features/core/src/test/java/org/apache/felix/karaf/features/internal/
felix/trunk/karaf/features/core/src/test/java/org/apache/felix/karaf/features/internal/FeaturesServiceImplTest.java
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/test/java/org/apache/felix/karaf/gshell/features/internal/FeaturesServiceImplTest.java
felix/trunk/karaf/features/core/src/test/resources/
felix/trunk/karaf/features/core/src/test/resources/org/
felix/trunk/karaf/features/core/src/test/resources/org/apache/
felix/trunk/karaf/features/core/src/test/resources/org/apache/felix/
felix/trunk/karaf/features/core/src/test/resources/org/apache/felix/karaf/
felix/trunk/karaf/features/core/src/test/resources/org/apache/felix/karaf/features/
felix/trunk/karaf/features/core/src/test/resources/org/apache/felix/karaf/features/repo1.xml
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/src/test/resources/org/apache/felix/karaf/gshell/features/repo1.xml
felix/trunk/karaf/features/management/
felix/trunk/karaf/features/management/pom.xml
- copied, changed from r801923, felix/trunk/karaf/gshell/gshell-features/pom.xml
felix/trunk/karaf/features/management/src/
felix/trunk/karaf/features/management/src/main/
felix/trunk/karaf/features/management/src/main/java/
felix/trunk/karaf/features/management/src/main/java/org/
felix/trunk/karaf/features/management/src/main/java/org/apache/
felix/trunk/karaf/features/management/src/main/java/org/apache/felix/
felix/trunk/karaf/features/management/src/main/java/org/apache/felix/karaf/
felix/trunk/karaf/features/management/src/main/java/org/apache/felix/karaf/features/
felix/trunk/karaf/features/management/src/main/java/org/apache/felix/karaf/features/management/
felix/trunk/karaf/features/management/src/main/java/org/apache/felix/karaf/features/management/FeaturesServiceMBean.java
felix/trunk/karaf/features/management/src/main/java/org/apache/felix/karaf/features/management/codec/
felix/trunk/karaf/features/management/src/main/java/org/apache/felix/karaf/features/management/codec/JmxFeature.java
felix/trunk/karaf/features/management/src/main/java/org/apache/felix/karaf/features/management/codec/JmxFeatureEvent.java
felix/trunk/karaf/features/management/src/main/java/org/apache/felix/karaf/features/management/codec/JmxRepository.java
felix/trunk/karaf/features/management/src/main/java/org/apache/felix/karaf/features/management/codec/JmxRepositoryEvent.java
felix/trunk/karaf/features/management/src/main/java/org/apache/felix/karaf/features/management/internal/
felix/trunk/karaf/features/management/src/main/java/org/apache/felix/karaf/features/management/internal/FeaturesServiceMBeanImpl.java
felix/trunk/karaf/features/management/src/main/java/org/apache/felix/karaf/features/management/internal/MBeanRegistrer.java
felix/trunk/karaf/features/management/src/main/resources/
felix/trunk/karaf/features/management/src/main/resources/OSGI-INF/
felix/trunk/karaf/features/management/src/main/resources/OSGI-INF/blueprint/
felix/trunk/karaf/features/management/src/main/resources/OSGI-INF/blueprint/features-management.xml
- copied, changed from r801923, felix/trunk/karaf/webconsole/features/src/main/resources/OSGI-INF/blueprint/webconsole-features.xml
felix/trunk/karaf/features/pom.xml
- copied, changed from r801923, felix/trunk/karaf/gshell/pom.xml
Removed:
felix/trunk/karaf/gshell/gshell-features/pom.xml
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/Feature.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/FeaturesRegistry.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/FeaturesService.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/Repository.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/AddUrlCommand.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/FeaturesCommandSupport.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/InstallFeatureCommand.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/ListFeaturesCommand.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/ListUrlCommand.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/RefreshUrlCommand.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/RemoveUrlCommand.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/UninstallFeatureCommand.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/AvailableFeatureCompleter.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/FeatureRepositoryCompleter.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/InstalledFeatureCompleter.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/FeatureImpl.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/FeaturesServiceImpl.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/RepositoryImpl.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/management/DefaultNamingStrategy.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/management/ManagedFeature.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/management/ManagedFeatureMBean.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/management/ManagedFeaturesRegistry.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/management/ManagedFeaturesRegistryMBean.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/management/ManagedRepository.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/management/ManagedRepositoryMBean.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/management/ManagementAgent.java
felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/management/NamingStrategy.java
felix/trunk/karaf/gshell/gshell-features/src/main/resources/OSGI-INF/blueprint/gshell-features.xml
felix/trunk/karaf/gshell/gshell-features/src/test/java/org/apache/felix/karaf/gshell/features/FeatureTest.java
felix/trunk/karaf/gshell/gshell-features/src/test/java/org/apache/felix/karaf/gshell/features/FeaturesServiceTest.java
felix/trunk/karaf/gshell/gshell-features/src/test/java/org/apache/felix/karaf/gshell/features/RepositoryTest.java
felix/trunk/karaf/gshell/gshell-features/src/test/java/org/apache/felix/karaf/gshell/features/internal/FeaturesServiceImplTest.java
felix/trunk/karaf/gshell/gshell-features/src/test/resources/org/apache/felix/karaf/gshell/features/repo1.xml
Modified:
felix/trunk/karaf/assembly/pom.xml
felix/trunk/karaf/assembly/src/main/descriptors/unix-bin.xml
felix/trunk/karaf/assembly/src/main/descriptors/windows-bin.xml
felix/trunk/karaf/assembly/src/main/filtered-resources/etc/startup.properties
felix/trunk/karaf/deployer/features/pom.xml
felix/trunk/karaf/deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/FeatureDeploymentListener.java
felix/trunk/karaf/deployer/features/src/main/resources/OSGI-INF/blueprint/features-deployer.xml
felix/trunk/karaf/gshell/pom.xml
felix/trunk/karaf/pom.xml
felix/trunk/karaf/webconsole/features/pom.xml
felix/trunk/karaf/webconsole/features/src/main/java/org/apache/felix/karaf/webconsole/features/FeaturesPlugin.java
felix/trunk/karaf/webconsole/features/src/main/resources/OSGI-INF/blueprint/webconsole-features.xml
Modified: felix/trunk/karaf/assembly/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/assembly/pom.xml?rev=801925&r1=801924&r2=801925&view=diff
==============================================================================
--- felix/trunk/karaf/assembly/pom.xml (original)
+++ felix/trunk/karaf/assembly/pom.xml Fri Aug 7 09:55:51 2009
@@ -59,6 +59,18 @@
<artifactId>org.apache.felix.karaf.deployer.features</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.felix.karaf.features</groupId>
+ <artifactId>org.apache.felix.karaf.features.core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix.karaf.features</groupId>
+ <artifactId>org.apache.felix.karaf.features.command</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix.karaf.features</groupId>
+ <artifactId>org.apache.felix.karaf.features.management</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.felix.karaf.gshell</groupId>
<artifactId>org.apache.felix.karaf.gshell.console</artifactId>
</dependency>
@@ -80,10 +92,6 @@
</dependency>
<dependency>
<groupId>org.apache.felix.karaf.gshell</groupId>
- <artifactId>org.apache.felix.karaf.gshell.features</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.felix.karaf.gshell</groupId>
<artifactId>org.apache.felix.karaf.gshell.config</artifactId>
</dependency>
<dependency>
Modified: felix/trunk/karaf/assembly/src/main/descriptors/unix-bin.xml
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/assembly/src/main/descriptors/unix-bin.xml?rev=801925&r1=801924&r2=801925&view=diff
==============================================================================
--- felix/trunk/karaf/assembly/src/main/descriptors/unix-bin.xml (original)
+++ felix/trunk/karaf/assembly/src/main/descriptors/unix-bin.xml Fri Aug 7 09:55:51 2009
@@ -168,6 +168,17 @@
<outputDirectory>/system</outputDirectory>
<unpack>false</unpack>
<useProjectArtifact>false</useProjectArtifact>
+ <outputFileNameMapping>org/apache/felix/karaf/features/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
+ <includes>
+ <include>org.apache.felix.karaf.features:org.apache.felix.karaf.features.core</include>
+ <include>org.apache.felix.karaf.features:org.apache.felix.karaf.features.command</include>
+ <include>org.apache.felix.karaf.features:org.apache.felix.karaf.features.management</include>
+ </includes>
+ </dependencySet>
+ <dependencySet>
+ <outputDirectory>/system</outputDirectory>
+ <unpack>false</unpack>
+ <useProjectArtifact>false</useProjectArtifact>
<outputFileNameMapping>org/apache/felix/karaf/deployer/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
<includes>
<include>org.apache.felix.karaf.deployer:org.apache.felix.karaf.deployer.filemonitor</include>
@@ -186,7 +197,6 @@
<include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.admin</include>
<include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.osgi</include>
<include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.log</include>
- <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.features</include>
<include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.config</include>
<include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.packages</include>
<include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.ssh</include>
Modified: felix/trunk/karaf/assembly/src/main/descriptors/windows-bin.xml
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/assembly/src/main/descriptors/windows-bin.xml?rev=801925&r1=801924&r2=801925&view=diff
==============================================================================
--- felix/trunk/karaf/assembly/src/main/descriptors/windows-bin.xml (original)
+++ felix/trunk/karaf/assembly/src/main/descriptors/windows-bin.xml Fri Aug 7 09:55:51 2009
@@ -160,6 +160,17 @@
<outputDirectory>/system</outputDirectory>
<unpack>false</unpack>
<useProjectArtifact>false</useProjectArtifact>
+ <outputFileNameMapping>org/apache/felix/karaf/features/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
+ <includes>
+ <include>org.apache.felix.karaf.features:org.apache.felix.karaf.features.core</include>
+ <include>org.apache.felix.karaf.features:org.apache.felix.karaf.features.command</include>
+ <include>org.apache.felix.karaf.features:org.apache.felix.karaf.features.management</include>
+ </includes>
+ </dependencySet>
+ <dependencySet>
+ <outputDirectory>/system</outputDirectory>
+ <unpack>false</unpack>
+ <useProjectArtifact>false</useProjectArtifact>
<outputFileNameMapping>org/apache/felix/karaf/deployer/${artifact.artifactId}/${artifact.baseVersion}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
<includes>
<include>org.apache.felix.karaf.deployer:org.apache.felix.karaf.deployer.filemonitor</include>
@@ -178,7 +189,6 @@
<include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.admin</include>
<include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.osgi</include>
<include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.log</include>
- <include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.features</include>
<include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.config</include>
<include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.packages</include>
<include>org.apache.felix.karaf.gshell:org.apache.felix.karaf.gshell.ssh</include>
Modified: felix/trunk/karaf/assembly/src/main/filtered-resources/etc/startup.properties
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/assembly/src/main/filtered-resources/etc/startup.properties?rev=801925&r1=801924&r2=801925&view=diff
==============================================================================
--- felix/trunk/karaf/assembly/src/main/filtered-resources/etc/startup.properties (original)
+++ felix/trunk/karaf/assembly/src/main/filtered-resources/etc/startup.properties Fri Aug 7 09:55:51 2009
@@ -43,7 +43,6 @@
org/apache/felix/karaf/deployer/org.apache.felix.karaf.deployer.features/${pom.version}/org.apache.felix.karaf.deployer.features-${pom.version}.jar=30
org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.admin/${pom.version}/org.apache.felix.karaf.gshell.admin-${pom.version}.jar=30
org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.osgi/${pom.version}/org.apache.felix.karaf.gshell.osgi-${pom.version}.jar=30
-org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.features/${pom.version}/org.apache.felix.karaf.gshell.features-${pom.version}.jar=30
org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.log/${pom.version}/org.apache.felix.karaf.gshell.log-${pom.version}.jar=30
org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.config/${pom.version}/org.apache.felix.karaf.gshell.config-${pom.version}.jar=30
org/apache/felix/karaf/gshell/org.apache.felix.karaf.gshell.packages/${pom.version}/org.apache.felix.karaf.gshell.packages-${pom.version}.jar=30
@@ -51,6 +50,10 @@
org/apache/felix/karaf/jaas/org.apache.felix.karaf.jaas.config/${pom.version}/org.apache.felix.karaf.jaas.config-${pom.version}.jar=30
org/apache/felix/karaf/jaas/org.apache.felix.karaf.jaas.modules/${pom.version}/org.apache.felix.karaf.jaas.modules-${pom.version}.jar=30
+org/apache/felix/karaf/features/org.apache.felix.karaf.features.core/${pom.version}/org.apache.felix.karaf.features.core-${pom.version}.jar=30
+org/apache/felix/karaf/features/org.apache.felix.karaf.features.command/${pom.version}/org.apache.felix.karaf.features.command-${pom.version}.jar=30
+org/apache/felix/karaf/features/org.apache.felix.karaf.features.management/${pom.version}/org.apache.felix.karaf.features.management-${pom.version}.jar=30
+
org/apache/felix/karaf/org.apache.felix.karaf.management/${pom.version}/org.apache.felix.karaf.management-${pom.version}.jar=30
org/osgi/org.osgi.impl.bundle.jmx/${osgi.jmx.version}/org.osgi.impl.bundle.jmx-${osgi.jmx.version}.jar=30
Modified: felix/trunk/karaf/deployer/features/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/deployer/features/pom.xml?rev=801925&r1=801924&r2=801925&view=diff
==============================================================================
--- felix/trunk/karaf/deployer/features/pom.xml (original)
+++ felix/trunk/karaf/deployer/features/pom.xml Fri Aug 7 09:55:51 2009
@@ -46,8 +46,8 @@
<artifactId>spring-osgi-core</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.felix.karaf.gshell</groupId>
- <artifactId>org.apache.felix.karaf.gshell.features</artifactId>
+ <groupId>org.apache.felix.karaf.features</groupId>
+ <artifactId>org.apache.felix.karaf.features.core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.felix.karaf.deployer</groupId>
Modified: felix/trunk/karaf/deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/FeatureDeploymentListener.java
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/FeatureDeploymentListener.java?rev=801925&r1=801924&r2=801925&view=diff
==============================================================================
--- felix/trunk/karaf/deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/FeatureDeploymentListener.java (original)
+++ felix/trunk/karaf/deployer/features/src/main/java/org/apache/felix/karaf/deployer/features/FeatureDeploymentListener.java Fri Aug 7 09:55:51 2009
@@ -40,18 +40,15 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.felix.karaf.gshell.features.Feature;
-import org.apache.felix.karaf.gshell.features.FeaturesService;
-import org.apache.felix.karaf.gshell.features.Repository;
+import org.apache.felix.karaf.features.Feature;
+import org.apache.felix.karaf.features.FeaturesService;
+import org.apache.felix.karaf.features.Repository;
import org.apache.felix.karaf.deployer.filemonitor.DeploymentListener;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleEvent;
import org.osgi.framework.Constants;
import org.osgi.framework.SynchronousBundleListener;
-import org.springframework.beans.factory.DisposableBean;
-import org.springframework.beans.factory.InitializingBean;
-import org.springframework.osgi.context.BundleContextAware;
/**
* A deployment listener able to hot deploy a feature descriptor
Modified: felix/trunk/karaf/deployer/features/src/main/resources/OSGI-INF/blueprint/features-deployer.xml
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/deployer/features/src/main/resources/OSGI-INF/blueprint/features-deployer.xml?rev=801925&r1=801924&r2=801925&view=diff
==============================================================================
--- felix/trunk/karaf/deployer/features/src/main/resources/OSGI-INF/blueprint/features-deployer.xml (original)
+++ felix/trunk/karaf/deployer/features/src/main/resources/OSGI-INF/blueprint/features-deployer.xml Fri Aug 7 09:55:51 2009
@@ -28,7 +28,7 @@
init-method="init" destroy-method="destroy" activation="lazy">
<property name="bundleContext" ref="blueprintBundleContext"/>
<property name="featuresService">
- <reference interface="org.apache.felix.karaf.gshell.features.FeaturesService"/>
+ <reference interface="org.apache.felix.karaf.features.FeaturesService"/>
</property>
</bean>
Copied: felix/trunk/karaf/features/command/pom.xml (from r801923, felix/trunk/karaf/gshell/gshell-features/pom.xml)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/command/pom.xml?p2=felix/trunk/karaf/features/command/pom.xml&p1=felix/trunk/karaf/gshell/gshell-features/pom.xml&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/pom.xml (original)
+++ felix/trunk/karaf/features/command/pom.xml Fri Aug 7 09:55:51 2009
@@ -22,20 +22,16 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.felix.karaf.gshell</groupId>
- <artifactId>gshell</artifactId>
+ <groupId>org.apache.felix.karaf.features</groupId>
+ <artifactId>features</artifactId>
<version>1.2.0-SNAPSHOT</version>
</parent>
- <groupId>org.apache.felix.karaf.gshell</groupId>
- <artifactId>org.apache.felix.karaf.gshell.features</artifactId>
+ <groupId>org.apache.felix.karaf.features</groupId>
+ <artifactId>org.apache.felix.karaf.features.command</artifactId>
<packaging>bundle</packaging>
<version>1.2.0-SNAPSHOT</version>
- <name>Apache Felix Karaf :: GShell Features</name>
-
- <description>
- Provides Features in GShell
- </description>
+ <name>Apache Felix Karaf :: Features Command</name>
<dependencies>
<dependency>
@@ -51,6 +47,11 @@
</dependency>
<dependency>
+ <groupId>org.apache.felix.karaf.features</groupId>
+ <artifactId>org.apache.felix.karaf.features.core</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.bundlerepository</artifactId>
</dependency>
Copied: felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/AddUrlCommand.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/AddUrlCommand.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/AddUrlCommand.java?p2=felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/AddUrlCommand.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/AddUrlCommand.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/AddUrlCommand.java (original)
+++ felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/AddUrlCommand.java Fri Aug 7 09:55:51 2009
@@ -14,12 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.commands;
+package org.apache.felix.karaf.features.command;
import java.net.URI;
import java.util.List;
-import org.apache.felix.karaf.gshell.features.FeaturesService;
+import org.apache.felix.karaf.features.FeaturesService;
import org.apache.felix.gogo.commands.Argument;
import org.apache.felix.gogo.commands.Command;
Copied: felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/FeaturesCommandSupport.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/FeaturesCommandSupport.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/FeaturesCommandSupport.java?p2=felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/FeaturesCommandSupport.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/FeaturesCommandSupport.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/FeaturesCommandSupport.java (original)
+++ felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/FeaturesCommandSupport.java Fri Aug 7 09:55:51 2009
@@ -14,10 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.commands;
+package org.apache.felix.karaf.features.command;
-import org.apache.felix.karaf.gshell.features.FeaturesService;
import org.apache.felix.karaf.gshell.console.OsgiCommandSupport;
+import org.apache.felix.karaf.features.FeaturesService;
import org.osgi.framework.ServiceReference;
public abstract class FeaturesCommandSupport extends OsgiCommandSupport {
Copied: felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/InstallFeatureCommand.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/InstallFeatureCommand.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/InstallFeatureCommand.java?p2=felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/InstallFeatureCommand.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/InstallFeatureCommand.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/InstallFeatureCommand.java (original)
+++ felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/InstallFeatureCommand.java Fri Aug 7 09:55:51 2009
@@ -14,9 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.commands;
+package org.apache.felix.karaf.features.command;
-import org.apache.felix.karaf.gshell.features.FeaturesService;
+import org.apache.felix.karaf.features.FeaturesService;
import org.apache.felix.gogo.commands.Argument;
import org.apache.felix.gogo.commands.Command;
Added: felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/ListFeaturesCommand.java
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/ListFeaturesCommand.java?rev=801925&view=auto
==============================================================================
--- felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/ListFeaturesCommand.java (added)
+++ felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/ListFeaturesCommand.java Fri Aug 7 09:55:51 2009
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.felix.karaf.features.command;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.felix.karaf.features.FeaturesService;
+import org.apache.felix.karaf.features.Feature;
+import org.apache.felix.gogo.commands.Option;
+import org.apache.felix.gogo.commands.Command;
+
+@Command(scope = "features", name = "list", description = "List existing features.")
+public class ListFeaturesCommand extends FeaturesCommandSupport {
+
+ @Option(name = "-i", aliases={"--installed"}, description="Display the list of installed features")
+ boolean installed;
+
+ protected void doExecute(FeaturesService admin) throws Exception {
+ List<Feature> features;
+ List<Feature> installedFeatures;
+ if (installed) {
+ features = Arrays.asList(admin.listInstalledFeatures());
+ installedFeatures = features;
+ if (features == null || features.size() == 0) {
+ System.out.println("No features installed.");
+ return;
+ }
+ } else {
+ features = Arrays.asList(admin.listFeatures());
+ installedFeatures = Arrays.asList(admin.listInstalledFeatures());
+ if (features == null || features.size() == 0) {
+ System.out.println("No features available.");
+ return;
+ }
+ }
+ int maxVersionSize = 7;
+ for (Feature feature : features) {
+ maxVersionSize = Math.max(maxVersionSize, feature.getVersion().length());
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.append(" State Version ");
+ for (int i = 7; i < maxVersionSize; i++) {
+ sb.append(" ");
+ }
+ sb.append("Name");
+ System.out.println(sb.toString());
+ for (Feature feature : features) {
+ sb.setLength(0);
+ sb.append("[");
+ if (installedFeatures.contains(feature)) {
+ sb.append("installed ");
+ } else {
+ sb.append("uninstalled");
+ }
+ sb.append("] [");
+ String v = feature.getVersion();
+ sb.append(v);
+ for (int i = v.length(); i < maxVersionSize; i++) {
+ sb.append(" ");
+ }
+ sb.append("] ");
+ sb.append(feature.getName());
+ System.out.println(sb.toString());
+ }
+ }
+
+}
Copied: felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/ListUrlCommand.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/ListUrlCommand.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/ListUrlCommand.java?p2=felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/ListUrlCommand.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/ListUrlCommand.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/ListUrlCommand.java (original)
+++ felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/ListUrlCommand.java Fri Aug 7 09:55:51 2009
@@ -14,10 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.commands;
+package org.apache.felix.karaf.features.command;
+
+import org.apache.felix.karaf.features.FeaturesService;
+import org.apache.felix.karaf.features.Repository;
-import org.apache.felix.karaf.gshell.features.FeaturesService;
-import org.apache.felix.karaf.gshell.features.Repository;
public class ListUrlCommand extends FeaturesCommandSupport {
Copied: felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/RefreshUrlCommand.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/RefreshUrlCommand.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/RefreshUrlCommand.java?p2=felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/RefreshUrlCommand.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/RefreshUrlCommand.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/RefreshUrlCommand.java (original)
+++ felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/RefreshUrlCommand.java Fri Aug 7 09:55:51 2009
@@ -14,16 +14,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.commands;
+package org.apache.felix.karaf.features.command;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
-import org.apache.felix.karaf.gshell.features.FeaturesService;
-import org.apache.felix.karaf.gshell.features.Repository;
import org.apache.felix.gogo.commands.Argument;
import org.apache.felix.gogo.commands.Command;
+import org.apache.felix.karaf.features.FeaturesService;
+import org.apache.felix.karaf.features.Repository;
@Command(scope = "features", name = "refreshUrl", description = "Reload the repositories to obtain a fresh list of features.")
public class RefreshUrlCommand extends FeaturesCommandSupport {
Copied: felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/RemoveUrlCommand.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/RemoveUrlCommand.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/RemoveUrlCommand.java?p2=felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/RemoveUrlCommand.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/RemoveUrlCommand.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/RemoveUrlCommand.java (original)
+++ felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/RemoveUrlCommand.java Fri Aug 7 09:55:51 2009
@@ -14,14 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.commands;
+package org.apache.felix.karaf.features.command;
import java.net.URI;
import java.util.List;
-import org.apache.felix.karaf.gshell.features.FeaturesService;
import org.apache.felix.gogo.commands.Argument;
import org.apache.felix.gogo.commands.Command;
+import org.apache.felix.karaf.features.FeaturesService;
@Command(scope = "features", name = "removeUrl", description = "Remove a list of repository URLs from the features service.")
public class RemoveUrlCommand extends FeaturesCommandSupport {
Copied: felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/UninstallFeatureCommand.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/UninstallFeatureCommand.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/UninstallFeatureCommand.java?p2=felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/UninstallFeatureCommand.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/UninstallFeatureCommand.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/UninstallFeatureCommand.java (original)
+++ felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/UninstallFeatureCommand.java Fri Aug 7 09:55:51 2009
@@ -14,11 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.commands;
+package org.apache.felix.karaf.features.command;
-import org.apache.felix.karaf.gshell.features.FeaturesService;
import org.apache.felix.gogo.commands.Argument;
import org.apache.felix.gogo.commands.Command;
+import org.apache.felix.karaf.features.FeaturesService;
@Command(scope = "features", name = "uninstall", description = "Uninstall a feature.")
public class UninstallFeatureCommand extends FeaturesCommandSupport {
Copied: felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/AvailableFeatureCompleter.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/AvailableFeatureCompleter.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/AvailableFeatureCompleter.java?p2=felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/AvailableFeatureCompleter.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/AvailableFeatureCompleter.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/AvailableFeatureCompleter.java (original)
+++ felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/AvailableFeatureCompleter.java Fri Aug 7 09:55:51 2009
@@ -14,15 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.completers;
+package org.apache.felix.karaf.features.command.completers;
-import java.util.Collection;
import java.util.List;
-import org.apache.felix.karaf.gshell.features.management.ManagedFeature;
-import org.apache.felix.karaf.gshell.features.management.ManagedFeaturesRegistry;
import org.apache.felix.karaf.gshell.console.completer.StringsCompleter;
import org.apache.felix.karaf.gshell.console.Completer;
+import org.apache.felix.karaf.features.FeaturesService;
+import org.apache.felix.karaf.features.Feature;
/**
* {@link jline.Completor} for available features.
@@ -32,22 +31,21 @@
*/
public class AvailableFeatureCompleter implements Completer {
- private ManagedFeaturesRegistry featuresRegistry;
- private StringsCompleter delegate;
+ private FeaturesService featuresService;
- public void setFeaturesRegistry(ManagedFeaturesRegistry featuresRegistry) {
- this.featuresRegistry = featuresRegistry;
+ public void setFeaturesService(FeaturesService featuresService) {
+ this.featuresService = featuresService;
}
public int complete(final String buffer, final int cursor, final List candidates) {
-
- Collection<ManagedFeature> features = featuresRegistry.getAvailableFeatures().values();
- delegate = new StringsCompleter();
-
- for (ManagedFeature feature : features) {
- delegate.getStrings().add(feature.getName());
+ StringsCompleter delegate = new StringsCompleter();
+ try {
+ for (Feature feature : featuresService.listFeatures()) {
+ delegate.getStrings().add(feature.getName());
+ }
+ } catch (Exception e) {
+ // Ignore
}
-
return delegate.complete(buffer, cursor, candidates);
}
Copied: felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/FeatureRepositoryCompleter.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/FeatureRepositoryCompleter.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/FeatureRepositoryCompleter.java?p2=felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/FeatureRepositoryCompleter.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/FeatureRepositoryCompleter.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/FeatureRepositoryCompleter.java (original)
+++ felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/FeatureRepositoryCompleter.java Fri Aug 7 09:55:51 2009
@@ -14,13 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.completers;
+package org.apache.felix.karaf.features.command.completers;
import java.util.List;
-import org.apache.felix.karaf.gshell.features.management.ManagedFeaturesRegistry;
import org.apache.felix.karaf.gshell.console.completer.StringsCompleter;
import org.apache.felix.karaf.gshell.console.Completer;
+import org.apache.felix.karaf.features.FeaturesService;
+import org.apache.felix.karaf.features.Repository;
/**
* {@link jline.Completor} for Feature Repository URLs.
@@ -31,14 +32,21 @@
public class FeatureRepositoryCompleter implements Completer {
- private ManagedFeaturesRegistry featuresRegistry;
+ private FeaturesService featuresService;
- public void setFeaturesRegistry(ManagedFeaturesRegistry featuresRegistry) {
- this.featuresRegistry = featuresRegistry;
+ public void setFeaturesService(FeaturesService featuresService) {
+ this.featuresService = featuresService;
}
public int complete(final String buffer, final int cursor, final List candidates) {
- StringsCompleter delegate = new StringsCompleter(featuresRegistry.getRepositories().keySet());
+ StringsCompleter delegate = new StringsCompleter();
+ try {
+ for (Repository repository : featuresService.listRepositories()) {
+ delegate.getStrings().add(repository.getURI().toString());
+ }
+ } catch (Exception e) {
+ // Ignore
+ }
return delegate.complete(buffer, cursor, candidates);
}
Copied: felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/InstalledFeatureCompleter.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/InstalledFeatureCompleter.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/InstalledFeatureCompleter.java?p2=felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/InstalledFeatureCompleter.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/InstalledFeatureCompleter.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/completers/InstalledFeatureCompleter.java (original)
+++ felix/trunk/karaf/features/command/src/main/java/org/apache/felix/karaf/features/command/completers/InstalledFeatureCompleter.java Fri Aug 7 09:55:51 2009
@@ -14,15 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.completers;
+package org.apache.felix.karaf.features.command.completers;
-import java.util.Collection;
import java.util.List;
import org.apache.felix.karaf.gshell.console.Completer;
import org.apache.felix.karaf.gshell.console.completer.StringsCompleter;
-import org.apache.felix.karaf.gshell.features.management.ManagedFeature;
-import org.apache.felix.karaf.gshell.features.management.ManagedFeaturesRegistry;
+import org.apache.felix.karaf.features.FeaturesService;
+import org.apache.felix.karaf.features.Feature;
/**
* {@link jline.Completor} for installed features.
@@ -32,23 +31,22 @@
*/
public class InstalledFeatureCompleter implements Completer {
- private ManagedFeaturesRegistry featuresRegistry;
- private StringsCompleter delegate;
+ private FeaturesService featuresService;
- public void setFeaturesRegistry(ManagedFeaturesRegistry featuresRegistry) {
- this.featuresRegistry = featuresRegistry;
+ public void setFeaturesService(FeaturesService featuresService) {
+ this.featuresService = featuresService;
}
public int complete(final String buffer, final int cursor, final List candidates) {
- Collection<ManagedFeature> features = featuresRegistry.getInstalledFeatures().values();
- delegate = new StringsCompleter();
-
- for (ManagedFeature feature : features) {
- delegate.getStrings().add(feature.getName());
+ StringsCompleter delegate = new StringsCompleter();
+ try {
+ for (Feature feature : featuresService.listInstalledFeatures()) {
+ delegate.getStrings().add(feature.getName());
+ }
+ } catch (Exception e) {
+ // Ignore
}
-
return delegate.complete(buffer, cursor, candidates);
}
-
}
Added: felix/trunk/karaf/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml?rev=801925&view=auto
==============================================================================
--- felix/trunk/karaf/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml (added)
+++ felix/trunk/karaf/features/command/src/main/resources/OSGI-INF/blueprint/features-command.xml Fri Aug 7 09:55:51 2009
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:ext="http://geronimo.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0">
+
+ <command-bundle xmlns="http://felix.apache.org/karaf/xmlns/gshell/v1.0.0">
+ <command name="features/addUrl">
+ <action class="org.apache.felix.karaf.features.command.AddUrlCommand"/>
+ </command>
+ <command name="features/listUrl">
+ <action class="org.apache.felix.karaf.features.command.ListUrlCommand"/>
+ </command>
+ <command name="features/removeUrl">
+ <action class="org.apache.felix.karaf.features.command.RemoveUrlCommand"/>
+ <completers>
+ <ref component-id="removeUrlCompleter" />
+ </completers>
+ </command>
+ <command name="features/refreshUrl">
+ <action class="org.apache.felix.karaf.features.command.RefreshUrlCommand"/>
+ </command>
+ <command name="features/install">
+ <action class="org.apache.felix.karaf.features.command.InstallFeatureCommand"/>
+ <completers>
+ <ref component-id="installFeatureCompleter" />
+ </completers>
+ </command>
+ <command name="features/uninstall">
+ <action class="org.apache.felix.karaf.features.command.UninstallFeatureCommand"/>
+ <completers>
+ <ref component-id="uninstallFeatureCompleter" />
+ </completers>
+ </command>
+ <command name="features/list">
+ <action class="org.apache.felix.karaf.features.command.ListFeaturesCommand"/>
+ </command>
+ </command-bundle>
+
+ <reference id="featuresService" interface="org.apache.felix.karaf.features.FeaturesService" />
+
+ <bean id="installFeatureCompleter" class="org.apache.felix.karaf.features.command.completers.AvailableFeatureCompleter">
+ <property name="featuresService" ref="featuresService" />
+ </bean>
+
+ <bean id="uninstallFeatureCompleter" class="org.apache.felix.karaf.features.command.completers.InstalledFeatureCompleter">
+ <property name="featuresService" ref="featuresService" />
+ </bean>
+
+ <bean id="removeUrlCompleter" class="org.apache.felix.karaf.features.command.completers.FeatureRepositoryCompleter">
+ <property name="featuresService" ref="featuresService" />
+ </bean>
+
+</blueprint>
Copied: felix/trunk/karaf/features/core/pom.xml (from r801923, felix/trunk/karaf/gshell/gshell-features/pom.xml)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/core/pom.xml?p2=felix/trunk/karaf/features/core/pom.xml&p1=felix/trunk/karaf/gshell/gshell-features/pom.xml&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/pom.xml (original)
+++ felix/trunk/karaf/features/core/pom.xml Fri Aug 7 09:55:51 2009
@@ -22,20 +22,16 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.felix.karaf.gshell</groupId>
- <artifactId>gshell</artifactId>
+ <groupId>org.apache.felix.karaf.features</groupId>
+ <artifactId>features</artifactId>
<version>1.2.0-SNAPSHOT</version>
</parent>
- <groupId>org.apache.felix.karaf.gshell</groupId>
- <artifactId>org.apache.felix.karaf.gshell.features</artifactId>
+ <groupId>org.apache.felix.karaf.features</groupId>
+ <artifactId>org.apache.felix.karaf.features.core</artifactId>
<packaging>bundle</packaging>
<version>1.2.0-SNAPSHOT</version>
- <name>Apache Felix Karaf :: GShell Features</name>
-
- <description>
- Provides Features in GShell
- </description>
+ <name>Apache Felix Karaf :: Features Core</name>
<dependencies>
<dependency>
@@ -95,7 +91,7 @@
<configuration>
<instructions>
<Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
- <Export-Package>${pom.artifactId}*;version=${project.version}</Export-Package>
+ <Export-Package>org.apache.felix.karaf.features;version=${project.version}</Export-Package>
<Import-Package>
javax.management,
javax.management.loading,
@@ -104,7 +100,7 @@
org.apache.felix.karaf.gshell.console,
*
</Import-Package>
- <Private-Package>!*</Private-Package>
+ <Private-Package>org.apache.felix.karaf.features.internal</Private-Package>
<_versionpolicy>${bnd.version.policy}</_versionpolicy>
</instructions>
</configuration>
Copied: felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/Feature.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/Feature.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/Feature.java?p2=felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/Feature.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/Feature.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/Feature.java (original)
+++ felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/Feature.java Fri Aug 7 09:55:51 2009
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features;
+package org.apache.felix.karaf.features;
import java.util.List;
import java.util.Map;
Copied: felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeatureEvent.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/FeaturesRegistry.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeatureEvent.java?p2=felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeatureEvent.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/FeaturesRegistry.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/FeaturesRegistry.java (original)
+++ felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeatureEvent.java Fri Aug 7 09:55:51 2009
@@ -14,25 +14,37 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features;
+package org.apache.felix.karaf.features;
-/**
- * Main interface for a Feature Registry which tracks available and installed features.
- * Tracks features and repositories.
- */
-public interface FeaturesRegistry {
-
- void setFeaturesService(FeaturesService service);
-
- void register(Feature feature);
-
- void unregister(Feature feature);
-
- void registerInstalled(Feature feature);
-
- void unregisterInstalled(Feature feature);
+import java.util.EventObject;
- void register(Repository repository);
+public class FeatureEvent extends EventObject {
- void unregister(Repository repository);
+ public static enum EventType {
+ FeatureInstalled,
+ FeatureUninstalled
+ }
+
+ private final EventType type;
+ private final Feature feature;
+ private final boolean replay;
+
+ public FeatureEvent(Feature feature, EventType type, boolean replay) {
+ super(feature);
+ this.type = type;
+ this.feature = feature;
+ this.replay = replay;
+ }
+
+ public EventType getType() {
+ return type;
+ }
+
+ public Feature getFeature() {
+ return feature;
+ }
+
+ public boolean isReplay() {
+ return replay;
+ }
}
Copied: felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesListener.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/management/ManagedFeaturesRegistryMBean.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesListener.java?p2=felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesListener.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/management/ManagedFeaturesRegistryMBean.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/management/ManagedFeaturesRegistryMBean.java (original)
+++ felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesListener.java Fri Aug 7 09:55:51 2009
@@ -14,14 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.management;
+package org.apache.felix.karaf.features;
-public interface ManagedFeaturesRegistryMBean {
+public interface FeaturesListener {
- void installFeature(String name) throws Exception;
+ void featureEvent(FeatureEvent event);
- void installFeature(String name, String version) throws Exception;
-
- void installRepository(String repositoryUri) throws Exception;
+ void repositoryEvent(RepositoryEvent event);
}
Copied: felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesService.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/FeaturesService.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesService.java?p2=felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesService.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/FeaturesService.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/FeaturesService.java (original)
+++ felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/FeaturesService.java Fri Aug 7 09:55:51 2009
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features;
+package org.apache.felix.karaf.features;
import java.net.URI;
@@ -37,8 +37,8 @@
void uninstallFeature(String name, String version) throws Exception;
- String[] listFeatures() throws Exception;
+ Feature[] listFeatures() throws Exception;
- String[] listInstalledFeatures();
+ Feature[] listInstalledFeatures();
}
Copied: felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/Repository.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/Repository.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/Repository.java?p2=felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/Repository.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/Repository.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/Repository.java (original)
+++ felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/Repository.java Fri Aug 7 09:55:51 2009
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features;
+package org.apache.felix.karaf.features;
import java.net.URI;
Copied: felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/RepositoryEvent.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/AddUrlCommand.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/RepositoryEvent.java?p2=felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/RepositoryEvent.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/AddUrlCommand.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/commands/AddUrlCommand.java (original)
+++ felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/RepositoryEvent.java Fri Aug 7 09:55:51 2009
@@ -14,24 +14,37 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.commands;
+package org.apache.felix.karaf.features;
-import java.net.URI;
-import java.util.List;
+import java.util.EventObject;
-import org.apache.felix.karaf.gshell.features.FeaturesService;
-import org.apache.felix.gogo.commands.Argument;
-import org.apache.felix.gogo.commands.Command;
+public class RepositoryEvent extends EventObject {
-@Command(scope = "features", name = "addUrl", description = "Add a list of repository URLs to the features service.")
-public class AddUrlCommand extends FeaturesCommandSupport {
+ public static enum EventType {
+ RepositoryAdded,
+ RepositoryRemoved,
+ }
+
+ private final EventType type;
+ private final Repository repository;
+ private final boolean replay;
+
+ public RepositoryEvent(Repository repository, EventType type, boolean replay) {
+ super(repository);
+ this.type = type;
+ this.repository = repository;
+ this.replay = replay;
+ }
- @Argument(required = true, multiValued = true, description = "Repository URLs")
- List<String> urls;
+ public EventType getType() {
+ return type;
+ }
+
+ public Repository getRepository() {
+ return repository;
+ }
- protected void doExecute(FeaturesService admin) throws Exception {
- for (String url : urls) {
- admin.addRepository(new URI(url));
- }
+ public boolean isReplay() {
+ return replay;
}
-}
+}
\ No newline at end of file
Copied: felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/FeatureImpl.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/FeatureImpl.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/FeatureImpl.java?p2=felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/FeatureImpl.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/FeatureImpl.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/FeatureImpl.java (original)
+++ felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/FeatureImpl.java Fri Aug 7 09:55:51 2009
@@ -14,14 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.internal;
+package org.apache.felix.karaf.features.internal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.felix.karaf.gshell.features.Feature;
+import org.apache.felix.karaf.features.Feature;
/**
* A feature
Copied: felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/FeaturesServiceImpl.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/FeaturesServiceImpl.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/FeaturesServiceImpl.java?p2=felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/FeaturesServiceImpl.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/FeaturesServiceImpl.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/FeaturesServiceImpl.java (original)
+++ felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/FeaturesServiceImpl.java Fri Aug 7 09:55:51 2009
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.internal;
+package org.apache.felix.karaf.features.internal;
import java.io.BufferedInputStream;
import java.io.IOException;
@@ -31,15 +31,18 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.CopyOnWriteArrayList;
import java.util.jar.JarInputStream;
import java.util.jar.Manifest;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.felix.karaf.gshell.features.Feature;
-import org.apache.felix.karaf.gshell.features.FeaturesRegistry;
-import org.apache.felix.karaf.gshell.features.FeaturesService;
-import org.apache.felix.karaf.gshell.features.Repository;
+import org.apache.felix.karaf.features.FeaturesService;
+import org.apache.felix.karaf.features.Feature;
+import org.apache.felix.karaf.features.Repository;
+import org.apache.felix.karaf.features.FeaturesListener;
+import org.apache.felix.karaf.features.FeatureEvent;
+import org.apache.felix.karaf.features.RepositoryEvent;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
@@ -76,7 +79,7 @@
private Map<Feature, Set<Long>> installed = new HashMap<Feature, Set<Long>>();
private String boot;
private boolean bootFeaturesInstalled;
- private FeaturesRegistry featuresRegistry;
+ private List<FeaturesListener> listeners = new CopyOnWriteArrayList<FeaturesListener>();
public BundleContext getBundleContext() {
return bundleContext;
@@ -102,9 +105,18 @@
this.preferences = preferences;
}
- public void setFeaturesServiceRegistry(FeaturesRegistry featuresRegistry) {
- this.featuresRegistry = featuresRegistry;
- this.featuresRegistry.setFeaturesService(this);
+ public void registerListener(FeaturesListener listener) {
+ listeners.add(listener);
+ for (Repository repository : listRepositories()) {
+ listener.repositoryEvent(new RepositoryEvent(repository, RepositoryEvent.EventType.RepositoryAdded, true));
+ }
+ for (Feature feature : listInstalledFeatures()) {
+ listener.featureEvent(new FeatureEvent(feature, FeatureEvent.EventType.FeatureInstalled, true));
+ }
+ }
+
+ public void unregisterListener(FeaturesListener listener) {
+ listeners.remove(listener);
}
public void setUrls(String uris) throws URISyntaxException {
@@ -129,7 +141,7 @@
protected RepositoryImpl internalAddRepository(URI uri) throws Exception {
RepositoryImpl repo = new RepositoryImpl(uri);
repositories.put(uri, repo);
- featuresRegistry.register(repo);
+ callListeners(new RepositoryEvent(repo, RepositoryEvent.EventType.RepositoryAdded, false));
features = null;
return repo;
}
@@ -142,8 +154,8 @@
}
public void internalRemoveRepository(URI uri) {
- featuresRegistry.unregister(repositories.get(uri));
- repositories.remove(uri);
+ Repository repo = repositories.remove(uri);
+ callListeners(new RepositoryEvent(repo, RepositoryEvent.EventType.RepositoryRemoved, false));
features = null;
}
@@ -202,7 +214,7 @@
bundleContext.getBundle(id).start();
}
- featuresRegistry.registerInstalled(f);
+ callListeners(new FeatureEvent(f, FeatureEvent.EventType.FeatureInstalled, false));
installed.put(f, bundles);
saveState();
}
@@ -285,46 +297,23 @@
for (long bundleId : bundles) {
getBundleContext().getBundle(bundleId).uninstall();
}
- featuresRegistry.unregisterInstalled(feature);
+ callListeners(new FeatureEvent(feature, FeatureEvent.EventType.FeatureInstalled, false));
saveState();
}
- public String[] listFeatures() throws Exception {
- Collection<String> features = new ArrayList<String>();
+ public Feature[] listFeatures() throws Exception {
+ Collection<Feature> features = new ArrayList<Feature>();
for (Map<String, Feature> featureWithDifferentVersion : getFeatures().values()) {
for (Feature f : featureWithDifferentVersion.values()) {
- String installStatus = installed.containsKey(f) ? "installed "
- : "uninstalled";
- String version = f.getVersion();
- switch (version.length()) {
- case 1:
- version = " " + version;
- case 2:
- version = " " + version;
- case 3:
- version = " " + version;
- case 4:
- version = " " + version;
- case 5:
- version = " " + version;
- case 6:
- version = " " + version;
- case 7:
- version = " " + version;
- }
- features.add("[" + installStatus + "] " + " [" + version + "] "
- + f.getName());
- }
- }
- return features.toArray(new String[features.size()]);
- }
-
- public String[] listInstalledFeatures() {
- List<String> result = new ArrayList<String>();
- for (Feature feature : installed.keySet()) {
- result.add(feature.getName());
+ features.add(f);
+ }
}
- return result.toArray(new String[result.size()]);
+ return features.toArray(new Feature[features.size()]);
+ }
+
+ public Feature[] listInstalledFeatures() {
+ Set<Feature> result = installed.keySet();
+ return result.toArray(new Feature[result.size()]);
}
protected Feature getFeature(String name, String version) throws Exception {
@@ -470,7 +459,7 @@
}
installed = loadMap(prefs.node("features"));
for (Feature f : installed.keySet()) {
- featuresRegistry.registerInstalled(f);
+ callListeners(new FeatureEvent(f, FeatureEvent.EventType.FeatureInstalled, true));
}
bootFeaturesInstalled = prefs.getBoolean("bootFeaturesInstalled", false);
return true;
@@ -537,6 +526,18 @@
return set;
}
+ protected void callListeners(FeatureEvent event) {
+ for (FeaturesListener listener : listeners) {
+ listener.featureEvent(event);
+ }
+ }
+
+ protected void callListeners(RepositoryEvent event) {
+ for (FeaturesListener listener : listeners) {
+ listener.repositoryEvent(event);
+ }
+ }
+
static Pattern fuzzyVersion = Pattern.compile("(\\d+)(\\.(\\d+)(\\.(\\d+))?)?([^a-zA-Z0-9](.*))?",
Pattern.DOTALL);
static Pattern fuzzyModifier = Pattern.compile("(\\d+[.-])*(.*)",
Copied: felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/RepositoryImpl.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/RepositoryImpl.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/RepositoryImpl.java?p2=felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/RepositoryImpl.java&p1=felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/RepositoryImpl.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/main/java/org/apache/felix/karaf/gshell/features/internal/RepositoryImpl.java (original)
+++ felix/trunk/karaf/features/core/src/main/java/org/apache/felix/karaf/features/internal/RepositoryImpl.java Fri Aug 7 09:55:51 2009
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features.internal;
+package org.apache.felix.karaf.features.internal;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -38,8 +38,8 @@
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-import org.apache.felix.karaf.gshell.features.Feature;
-import org.apache.felix.karaf.gshell.features.Repository;
+import org.apache.felix.karaf.features.Repository;
+import org.apache.felix.karaf.features.Feature;
import org.xml.sax.SAXException;
/**
Added: felix/trunk/karaf/features/core/src/main/resources/OSGI-INF/blueprint/gshell-features.xml
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/core/src/main/resources/OSGI-INF/blueprint/gshell-features.xml?rev=801925&view=auto
==============================================================================
--- felix/trunk/karaf/features/core/src/main/resources/OSGI-INF/blueprint/gshell-features.xml (added)
+++ felix/trunk/karaf/features/core/src/main/resources/OSGI-INF/blueprint/gshell-features.xml Fri Aug 7 09:55:51 2009
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:ext="http://geronimo.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0">
+
+ <ext:property-placeholder placeholder-prefix="$(" placeholder-suffix=")"/>
+
+ <ext:property-placeholder placeholder-prefix="$[" placeholder-suffix="]" ignore-missing-locations="true">
+ <ext:default-properties>
+ <ext:property name="featuresRepositories" value=""/>
+ <ext:property name="featuresBoot" value=""/>
+ </ext:default-properties>
+ <ext:location>file:$(karaf.home)/etc/org.apache.felix.karaf.features.cfg</ext:location>
+ </ext:property-placeholder>
+
+ <bean id="featuresService" class="org.apache.felix.karaf.features.internal.FeaturesServiceImpl" init-method="start" destroy-method="stop">
+ <property name="urls" value="$[featuresRepositories]" />
+ <property name="boot" value="$[featuresBoot]" />
+ <property name="configAdmin" ref="configAdmin" />
+ <property name="preferences" ref="preferences" />
+ <property name="bundleContext" ref="blueprintBundleContext" />
+ </bean>
+
+ <reference-list id="featuresListeners" interface="org.apache.felix.karaf.features.FeaturesListener" availability="optional">
+ <reference-listener ref="featuresService"
+ bind-method="registerListener"
+ unbind-method="unregisterListener" />
+ </reference-list>
+
+ <reference id="configAdmin" interface="org.osgi.service.cm.ConfigurationAdmin" />
+
+ <reference id="preferences" interface="org.osgi.service.prefs.PreferencesService" availability="optional"/>
+
+ <service ref="featuresService" interface="org.apache.felix.karaf.features.FeaturesService" />
+
+</blueprint>
Copied: felix/trunk/karaf/features/core/src/test/java/org/apache/felix/karaf/features/FeatureTest.java (from r801923, felix/trunk/karaf/gshell/gshell-features/src/test/java/org/apache/felix/karaf/gshell/features/FeatureTest.java)
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/features/core/src/test/java/org/apache/felix/karaf/features/FeatureTest.java?p2=felix/trunk/karaf/features/core/src/test/java/org/apache/felix/karaf/features/FeatureTest.java&p1=felix/trunk/karaf/gshell/gshell-features/src/test/java/org/apache/felix/karaf/gshell/features/FeatureTest.java&r1=801923&r2=801925&rev=801925&view=diff
==============================================================================
--- felix/trunk/karaf/gshell/gshell-features/src/test/java/org/apache/felix/karaf/gshell/features/FeatureTest.java (original)
+++ felix/trunk/karaf/features/core/src/test/java/org/apache/felix/karaf/features/FeatureTest.java Fri Aug 7 09:55:51 2009
@@ -14,10 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.felix.karaf.gshell.features;
+package org.apache.felix.karaf.features;
import junit.framework.TestCase;
-import org.apache.felix.karaf.gshell.features.internal.FeatureImpl;
+import org.apache.felix.karaf.features.internal.FeatureImpl;
public class FeatureTest extends TestCase {