Author: iocanel
Date: Wed Sep 12 07:04:33 2012
New Revision: 1383808
URL: http://svn.apache.org/viewvc?rev=1383808&view=rev
Log:
[KARAF-1136] The regions persistence service is now injected to the features
service via blueprint optional reference.
Modified:
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java
karaf/trunk/features/core/src/main/resources/OSGI-INF/blueprint/blueprint.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=1383808&r1=1383807&r2=1383808&view=diff
==============================================================================
---
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java
(original)
+++
karaf/trunk/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java
Wed Sep 12 07:04:33 2012
@@ -114,13 +114,11 @@ public class FeaturesServiceImpl impleme
private String boot;
AtomicBoolean bootFeaturesInstalled = new AtomicBoolean();
private List<FeaturesListener> listeners = new
CopyOnWriteArrayIdentityList<FeaturesListener>();
- private Queue<RegionsPersistence> regionsPersistenceQueue = new
LinkedList<RegionsPersistence>();
- private CountDownLatch regionsPersistenceLatch = new CountDownLatch(1);
private ThreadLocal<Repository> repo = new ThreadLocal<Repository>();
private EventAdminListener eventAdminListener;
private final Object refreshLock = new Object();
private long refreshTimeout = 5000;
- private long regionsPersistenceTimeout = 5000;
+ private RegionsPersistence regionsPersistence;
public FeaturesServiceImpl() {
}
@@ -157,6 +155,14 @@ public class FeaturesServiceImpl impleme
this.refreshTimeout = refreshTimeout;
}
+ public RegionsPersistence getRegionsPersistence() {
+ return regionsPersistence;
+ }
+
+ public void setRegionsPersistence(RegionsPersistence regionsPersistence) {
+ this.regionsPersistence = regionsPersistence;
+ }
+
public void registerListener(FeaturesListener listener) {
listeners.add(listener);
for (Repository repository : listRepositories()) {
@@ -171,33 +177,6 @@ public class FeaturesServiceImpl impleme
listeners.remove(listener);
}
- /**
- * Returns a RegionsPersistence service.
- * @param timeout
- * @return
- */
- protected RegionsPersistence getRegionsPersistence(long timeout) {
- if (!regionsPersistenceQueue.isEmpty()) {
- return regionsPersistenceQueue.peek();
- } else {
- try {
- regionsPersistenceLatch.await(timeout, TimeUnit.MILLISECONDS);
- } catch (InterruptedException e) {
- LOGGER.warn("Interrupted while waittng for RegionsPersistence
service",e);
- }
- return regionsPersistenceQueue.peek();
- }
- }
-
- public void registerRegionsPersistence(RegionsPersistence
regionsPersistence) {
- regionsPersistenceQueue.add(regionsPersistence);
- regionsPersistenceLatch.countDown();
- }
-
- public void unregisterRegionsPersistence(RegionsPersistence
regionsPersistence) {
- regionsPersistenceQueue.remove(regionsPersistence);
- }
-
public void setUrls(String uris) throws URISyntaxException {
String[] s = uris.split(",");
this.uris = new HashSet<URI>();
@@ -610,7 +589,7 @@ public class FeaturesServiceImpl impleme
state.bundleInfos.put(b.getBundleId(), bInfo);
String region = feature.getRegion();
if (region != null && state.installed.contains(b)) {
- RegionsPersistence regionsPersistence =
getRegionsPersistence(regionsPersistenceTimeout);
+ RegionsPersistence regionsPersistence =
getRegionsPersistence();
if (regionsPersistence != null) {
regionsPersistence.install(b, region);
} else {
Modified:
karaf/trunk/features/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
URL:
http://svn.apache.org/viewvc/karaf/trunk/features/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml?rev=1383808&r1=1383807&r2=1383808&view=diff
==============================================================================
---
karaf/trunk/features/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
(original)
+++
karaf/trunk/features/core/src/main/resources/OSGI-INF/blueprint/blueprint.xml
Wed Sep 12 07:04:33 2012
@@ -37,6 +37,7 @@
<property name="resolverTimeout" value="$[resolverTimeout]" />
<property name="configAdmin" ref="configAdmin" />
<property name="bundleContext" ref="blueprintBundleContext" />
+ <property name="regionsPersistence" ref="regionsPersistence" />
</bean>
<reference-list id="featuresListeners"
interface="org.apache.karaf.features.FeaturesListener" availability="optional">
@@ -51,11 +52,7 @@
<service ref="featuresService"
interface="org.apache.karaf.features.FeaturesService" />
- <reference id="regionsPersistence" availability="optional"
interface="org.apache.karaf.region.persist.RegionsPersistence">
- <reference-listener ref="featuresService"
- bind-method="registerRegionsPersistence"
- unbind-method="unregisterRegionsPersistence" />
- </reference>
+ <reference id="regionsPersistence" availability="optional"
interface="org.apache.karaf.region.persist.RegionsPersistence"/>
<bean id="featuresServiceMBean"
class="org.apache.karaf.features.management.internal.FeaturesService">
<property name="bundleContext" ref="blueprintBundleContext" />