You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2011/09/16 14:49:24 UTC
svn commit: r1171529 [1/2] - in /karaf/cellar/branches/cellar-2.2.x: ./
assembly/src/main/resources/
bundle/src/main/java/org/apache/karaf/cellar/bundle/
cloud/src/main/java/org/apache/karaf/cellar/cloud/
config/src/main/java/org/apache/karaf/cellar/co...
Author: jbonofre
Date: Fri Sep 16 12:49:22 2011
New Revision: 1171529
URL: http://svn.apache.org/viewvc?rev=1171529&view=rev
Log:
[KARAF-857] Add Cellar OBR support.
Added:
karaf/cellar/branches/cellar-2.2.x/obr/
karaf/cellar/branches/cellar-2.2.x/obr/NOTICE
karaf/cellar/branches/cellar-2.2.x/obr/pom.xml
karaf/cellar/branches/cellar-2.2.x/obr/src/
karaf/cellar/branches/cellar-2.2.x/obr/src/main/
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/Constants.java
- copied, changed from r1169779, karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEvent.java
- copied, changed from r1169779, karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleInfo.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrSupport.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEvent.java
- copied, changed from r1169779, karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEventHandler.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlSynchronizer.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/shell/
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/shell/ObrAddUrlCommand.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/shell/ObrCommandSupport.java
- copied, changed from r1169779, karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/shell/ObrDeployCommand.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/shell/ObrListCommand.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/shell/ObrListUrlCommand.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/shell/ObrRemoveUrlCommand.java
karaf/cellar/branches/cellar-2.2.x/obr/src/main/resources/
karaf/cellar/branches/cellar-2.2.x/obr/src/main/resources/OSGI-INF/
karaf/cellar/branches/cellar-2.2.x/obr/src/main/resources/OSGI-INF/blueprint/
karaf/cellar/branches/cellar-2.2.x/obr/src/main/resources/OSGI-INF/blueprint/blueprint.xml
karaf/cellar/branches/cellar-2.2.x/obr/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
Modified:
karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/features.xml
karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/groups.cfg
karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleEventHandler.java
karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSupport.java
karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java
karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/Constants.java
karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java
karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/BlobStoreDiscoveryService.java
karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/BlobStoreDiscoveryServiceFactory.java
karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationEventHandler.java
karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationSynchronizer.java
karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/LocalConfigurationListener.java
karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/ExportServiceListener.java
karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/ImportServiceListener.java
karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java
karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java
karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java
karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java
karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSynchronizer.java
karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java
karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/RepositoryEventHandler.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/CellarMembershipListener.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastBundleListener.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastClusterManager.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastEventTransportFactory.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastGroupManager.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastInstanceAware.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueConsumer.java
karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueProducer.java
karaf/cellar/branches/cellar-2.2.x/pom.xml
Modified: karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/features.xml
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/features.xml?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/features.xml (original)
+++ karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/features.xml Fri Sep 16 12:49:22 2011
@@ -16,8 +16,6 @@
<features name="karaf-cellar-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.0.0">
<repository>mvn:org.jclouds.karaf/feature/1.0.0/xml/features</repository>
- <repository>mvn:org.apache.karaf.assemblies.features/standard/${karaf.version}/xml/features</repository>
-
<feature name='hazelcast' description='In memory data grid' version='${hazelcast.version}' resolver='(obr)'>
<bundle>mvn:com.hazelcast/hazelcast/${hazelcast.version}</bundle>
@@ -37,6 +35,7 @@
<bundle>mvn:org.apache.karaf.cellar/org.apache.karaf.cellar.config/${project.version}</bundle>
<bundle>mvn:org.apache.karaf.cellar/org.apache.karaf.cellar.features/${project.version}</bundle>
<bundle>mvn:org.apache.karaf.cellar/org.apache.karaf.cellar.bundle/${project.version}</bundle>
+ <bundle>mvn:org.apache.karaf.cellar/org.apache.karaf.cellar.dosgi/${project.version}</bundle>
<bundle>mvn:org.apache.karaf.cellar/org.apache.karaf.cellar.utils/${project.version}</bundle>
<bundle>mvn:org.apache.karaf.cellar/org.apache.karaf.cellar.shell/${project.version}</bundle>
<bundle>mvn:org.apache.karaf.cellar/org.apache.karaf.cellar.management/${project.version}</bundle>
@@ -51,8 +50,14 @@
</configfile>
</feature>
+ <feature name='cellar-obr' description='Karaf Cellar OBR support' version='${project.version}' resolver='(obr)'>
+ <feature>obr</feature>
+ <feature version="${project.version}">cellar</feature>
+ <bundle>mvn:org.apache.karaf.cellar/org.apache.karaf.cellar.obr/${project.version}</bundle>
+ </feature>
+
<feature name='cellar-cloud' description='Karaf Cellar Cloud Feature' version='${project.version}' resolver='(obr)'>
- <feature>cellar</feature>
+ <feature version="${project.version}">cellar</feature>
<feature version="${jclouds.version}">jclouds</feature>
<!-- Adding S3 as the default Blobstore -->
<feature>jclouds-aws-s3</feature>
@@ -62,7 +67,7 @@
<feature name='cellar-webconsole' description='Karaf Cellar Webconsole Plugin' version='${project.version}'
resolver='(obr)'>
- <feature>cellar</feature>
+ <feature version="${project.version}">cellar</feature>
<feature>webconsole</feature>
<bundle>mvn:org.apache.karaf.cellar/org.apache.karaf.cellar.webconsole/${project.version}</bundle>
</feature>
Modified: karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/groups.cfg
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/groups.cfg?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/groups.cfg (original)
+++ karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/groups.cfg Fri Sep 16 12:49:22 2011
@@ -3,9 +3,13 @@ default.config.whitelist.outbound=*
default.config.blacklist.inbound=org.apache.karaf.cellar.instance,org.apache.karaf.cellar.node,org.apache.karaf.management
default.config.blacklist.outbound=org.apache.karaf.cellar.instance,org.apache.karaf.cellar.node,org.apache.karaf.management
default.config.sync=true
+
default.features.whitelist.inbound=*
default.features.whitelist.outbound=*
default.features.blacklist.inbound=cellar
default.features.blacklist.outbound=cellar
default.features.sync=true
-default.repositories.sync=true
\ No newline at end of file
+default.features.repositories.sync=true
+
+default.obr.urls.sync=true
+default.obr.bundles.sync=true
\ No newline at end of file
Modified: karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleEventHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleEventHandler.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleEventHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleEventHandler.java Fri Sep 16 12:49:22 2011
@@ -58,24 +58,29 @@ public class BundleEventHandler extends
state.setStatus(event.getType());
if(event.getType() == BundleEvent.INSTALLED) {
+ LOGGER.debug("CELLAR BUNDLE: install bundle {} from {}", event.getId(), event.getLocation());
installBundleFromLocation(event.getLocation());
bundleTable.put(event.getId(),state);
} else if(event.getType() == BundleEvent.UNINSTALLED) {
+ LOGGER.debug("CELLAR BUNDLE: uninstall bundle {}/{}", event.getSymbolicName(), event.getVersion());
uninstallBundle(event.getSymbolicName(), event.getVersion());
bundleTable.remove(event.getId());
} else if(event.getType() == BundleEvent.STARTED) {
- startBundle(event.getSymbolicName(),event.getVersion());
- bundleTable.put(event.getId(),state);
+ LOGGER.debug("CELLAR BUNDLE: start bundle {}/{}", event.getSymbolicName(), event.getVersion());
+ startBundle(event.getSymbolicName(),event.getVersion());
+ bundleTable.put(event.getId(),state);
} else if(event.getType() == BundleEvent.STOPPED) {
- stopBundle(event.getSymbolicName(), event.getVersion());
- state.setStatus(BundleEvent.INSTALLED);
- bundleTable.put(event.getId(),state);
+ LOGGER.debug("CELLAR BUNDLE: stop bundle {}/{}", event.getSymbolicName(), event.getVersion());
+ stopBundle(event.getSymbolicName(), event.getVersion());
+ state.setStatus(BundleEvent.INSTALLED);
+ bundleTable.put(event.getId(),state);
} else if(event.getType() == BundleEvent.UPDATED) {
+ LOGGER.debug("CELLAR BUNDLE: update bundle {}/{}", event.getSymbolicName(), event.getVersion());
updateBundle(event.getSymbolicName(), event.getVersion());
}
- } else logger.debug("Bundle with symbolicName {} is marked as BLOCKED INBOUND",event.getSymbolicName());
+ } else logger.debug("CELLAR BUNDLE: event {} is marked as BLOCKED INBOUND",event.getId());
} catch (BundleException e) {
- logger.info("Failed to install bundle.");
+ logger.error("CELLAR BUNDLE: fail to handle bundle event {}", event.getId(), e);
}
}
Modified: karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSupport.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSupport.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSupport.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSupport.java Fri Sep 16 12:49:22 2011
@@ -18,8 +18,6 @@ import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
import org.osgi.service.cm.ConfigurationAdmin;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import java.util.Dictionary;
import java.util.Enumeration;
@@ -27,8 +25,6 @@ import java.util.Properties;
public class BundleSupport extends CellarSupport {
- private static final Logger logger = LoggerFactory.getLogger(CellarSupport.class);
-
protected BundleContext bundleContext;
/**
Modified: karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/BundleSynchronizer.java Fri Sep 16 12:49:22 2011
@@ -35,7 +35,7 @@ import java.util.Set;
public class BundleSynchronizer extends BundleSupport implements Synchronizer {
- private static final Logger logger = LoggerFactory.getLogger(BundleSynchronizer.class);
+ private static final transient Logger LOGGER = LoggerFactory.getLogger(BundleSynchronizer.class);
private List<EventProducer> producerList;
@@ -49,7 +49,7 @@ public class BundleSynchronizer extends
if (isSyncEnabled(group)) {
pull(group);
push(group);
- }
+ } else LOGGER.warn("CELLAR BUNDLE: sync is disable for group {}", group.getName());
}
}
}
@@ -89,7 +89,7 @@ public class BundleSynchronizer extends
installBundleFromLocation(state.getLocation());
}
} catch (BundleException e) {
- logger.error("Error while pulling bundle", e);
+ LOGGER.error("CELLAR BUNDLE: fail to pull bundle {}", id, e);
}
}
}
@@ -152,7 +152,7 @@ public class BundleSynchronizer extends
String propertyValue = properties.get(propertyKey);
result = Boolean.parseBoolean(propertyValue);
} catch (IOException e) {
- logger.error("Error while checking if sync is enabled.", e);
+ LOGGER.error("CELLAR BUNDLE: fail to check if sync is enabled.", e);
}
return result;
}
Modified: karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/Constants.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/Constants.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/Constants.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/Constants.java Fri Sep 16 12:49:22 2011
@@ -14,6 +14,7 @@
package org.apache.karaf.cellar.bundle;
public class Constants {
+
public static final String CATEGORY = "bundle";
public static final String BUNDLE_MAP = "org.apache.karaf.cellar.bundle.map";
Modified: karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/bundle/src/main/java/org/apache/karaf/cellar/bundle/LocalBundleListener.java Fri Sep 16 12:49:22 2011
@@ -27,7 +27,7 @@ import java.util.Set;
public class LocalBundleListener extends BundleSupport implements BundleListener {
- private static final Logger logger = LoggerFactory.getLogger(LocalBundleListener.class);
+ private static final transient Logger LOGGER = LoggerFactory.getLogger(LocalBundleListener.class);
private List<EventProducer> producerList;
@@ -40,31 +40,32 @@ public class LocalBundleListener extends
*/
public void bundleChanged(BundleEvent event) {
try {
- if (event != null && event.getBundle() != null) {
- Set<Group> groups = groupManager.listLocalGroups();
+ if (event != null && event.getBundle() != null) {
+ Set<Group> groups = groupManager.listLocalGroups();
- if (groups != null && !groups.isEmpty()) {
- for (Group group : groups) {
+ if (groups != null && !groups.isEmpty()) {
+ for (Group group : groups) {
- String symbolicName = event.getBundle().getSymbolicName();
- String version = event.getBundle().getVersion().toString();
- String bundleLocation = event.getBundle().getLocation();
- int type = event.getType();
- if (isAllowed(group, Constants.CATEGORY, bundleLocation, EventType.OUTBOUND)) {
- RemoteBundleEvent remoteBundleEvent = new RemoteBundleEvent(symbolicName, version, bundleLocation, type);
- remoteBundleEvent.setSourceGroup(group);
- remoteBundleEvent.setSourceNode(node);
- if (producerList != null && !producerList.isEmpty()) {
- for (EventProducer producer : producerList) {
- producer.produce(remoteBundleEvent);
+ String symbolicName = event.getBundle().getSymbolicName();
+ String version = event.getBundle().getVersion().toString();
+ String bundleLocation = event.getBundle().getLocation();
+ int type = event.getType();
+ if (isAllowed(group, Constants.CATEGORY, bundleLocation, EventType.OUTBOUND)) {
+ RemoteBundleEvent remoteBundleEvent = new RemoteBundleEvent(symbolicName, version, bundleLocation, type);
+ remoteBundleEvent.setSourceGroup(group);
+ remoteBundleEvent.setSourceNode(node);
+ if (producerList != null && !producerList.isEmpty()) {
+ for (EventProducer producer : producerList) {
+ producer.produce(remoteBundleEvent);
+ }
}
- }
- } else logger.debug("Bundle with symbolicName {} is marked as BLOCKED OUTBOUND");
+ } else
+ LOGGER.debug("CELLAR BUNDLE: event {}/{} is marked as BLOCKED OUTBOUND", event.getBundle().getSymbolicName(), event.getBundle().getVersion());
+ }
}
}
- }
- }catch (Exception ex) {
- LOGGER.warn("Error handling bundle event",ex);
+ } catch (Exception ex) {
+ LOGGER.error("CELLAR BUNDLE: fail to process bundle {}/{}", new Object[]{ event.getBundle().getSymbolicName(), event.getBundle().getVersion() }, ex);
}
}
Modified: karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/BlobStoreDiscoveryService.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/BlobStoreDiscoveryService.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/BlobStoreDiscoveryService.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/BlobStoreDiscoveryService.java Fri Sep 16 12:49:22 2011
@@ -37,7 +37,7 @@ import java.util.Set;
public class BlobStoreDiscoveryService implements DiscoveryService {
- private static final Logger logger = LoggerFactory.getLogger(BlobStoreDiscoveryService.class);
+ private static final transient Logger LOGGER = LoggerFactory.getLogger(BlobStoreDiscoveryService.class);
private String provider;
private String identity;
@@ -53,7 +53,7 @@ public class BlobStoreDiscoveryService i
* Constructor
*/
public BlobStoreDiscoveryService() {
- logger.info("Cloud blob store discovery service initialized");
+ LOGGER.debug("CELLAR CLOUD: blob store discovery service initialized");
}
public void init() {
@@ -66,7 +66,7 @@ public class BlobStoreDiscoveryService i
signIn();
}
} catch (Exception ex) {
- logger.error("Error while initializing blobstore discovery service", ex);
+ LOGGER.error("CELLAR CLOUD: error while initializing blob store discovery service", ex);
}
}
@@ -76,7 +76,7 @@ public class BlobStoreDiscoveryService i
}
public void update(Map<String, Object> properties) {
- logger.info("Updating properties");
+ LOGGER.debug("CELLAR CLOUD: updating properties");
}
/**
@@ -130,7 +130,7 @@ public class BlobStoreDiscoveryService i
if (blobStore.blobExists(container, ipAddress)) {
blobStore.removeBlob(container, ipAddress);
} else {
- logger.debug("Could not find the ip address of the current node, in the blobstore.");
+ LOGGER.debug("CELLAR CLOUD: unable to find the IP address of the current node in the blob store.");
}
}
@@ -152,9 +152,9 @@ public class BlobStoreDiscoveryService i
ois = new ObjectInputStream(is);
result = ois.readObject();
} catch (IOException e) {
- logger.error("Error while reading blob.", e);
+ LOGGER.error("CELLAR CLOUD: failed to read blob", e);
} catch (ClassNotFoundException e) {
- logger.error("Error while reading blob.", e);
+ LOGGER.error("CELLAR CLOUD: failed to read blob", e);
} finally {
if (ois != null) {
try {
@@ -195,7 +195,7 @@ public class BlobStoreDiscoveryService i
blob.setPayload(baos.toByteArray());
blobStore.putBlob(container, blob);
} catch (IOException e) {
- logger.error("Error while writing blob", e);
+ LOGGER.error("CELLAR CLOUD: failed to write blob", e);
} finally {
if (oos != null) {
try {
@@ -222,7 +222,7 @@ public class BlobStoreDiscoveryService i
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException ex) {
- logger.error("Can't determine IP address for current node.", ex);
+ LOGGER.error("CELLAR CLOUD: unable to determine IP address for current node", ex);
return null;
}
}
Modified: karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/BlobStoreDiscoveryServiceFactory.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/BlobStoreDiscoveryServiceFactory.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/BlobStoreDiscoveryServiceFactory.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/cloud/src/main/java/org/apache/karaf/cellar/cloud/BlobStoreDiscoveryServiceFactory.java Fri Sep 16 12:49:22 2011
@@ -28,7 +28,7 @@ import java.util.concurrent.ConcurrentHa
public class BlobStoreDiscoveryServiceFactory implements ManagedServiceFactory {
- private static final Logger logger = LoggerFactory.getLogger(BlobStoreDiscoveryServiceFactory.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(BlobStoreDiscoveryServiceFactory.class);
private static final String PROVIDER = "provider";
private static final String IDENTITY = "identity";
@@ -50,7 +50,7 @@ public class BlobStoreDiscoveryServiceFa
}
public String getName() {
- return "Blobstore discovery service factory";
+ return "CELLAR CLOUD: blob store discovery service factory";
}
public void updated(String pid, Dictionary properties) throws ConfigurationException {
@@ -86,14 +86,14 @@ public class BlobStoreDiscoveryServiceFa
} finally {
ServiceRegistration oldRegistration = (newRegistration == null) ? registrations.remove(pid) : registrations.put(pid, newRegistration);
if (oldRegistration != null) {
- logger.info("Unregistering blobstore discovery service " + pid);
+ LOGGER.debug("CELLAR CLOUD: un-registering blob store discovery service {}", pid);
oldRegistration.unregister();
}
}
}
public void deleted(String pid) {
- logger.info("Blobstore discovery service deleted {}", pid);
+ LOGGER.debug("CELLAR CLOUD: blob store discovery service deleted {}", pid);
ServiceRegistration oldRegistration = registrations.remove(pid);
if (oldRegistration != null) {
oldRegistration.unregister();
Modified: karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationEventHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationEventHandler.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationEventHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationEventHandler.java Fri Sep 16 12:49:22 2011
@@ -13,7 +13,6 @@
*/
package org.apache.karaf.cellar.config;
-
import org.apache.karaf.cellar.core.Configurations;
import org.apache.karaf.cellar.core.Group;
import org.apache.karaf.cellar.core.Node;
@@ -73,12 +72,12 @@ public class ConfigurationEventHandler e
if (!dictionariesEqual(dictionary, existingConfiguration)) {
conf.update(preparePull(dictionary));
}
- LOGGER.info("CELLAR CONFIG EVENT: local configuration updated.");
+ LOGGER.debug("CELLAR CONFIG: local configuration updated.");
}
} catch (IOException ex) {
- LOGGER.error("Failed to read remote configurationTable", ex);
+ LOGGER.error("CELLAR CONFIG: fail to read distributed configuration map", ex);
}
- } else LOGGER.debug("Configuration with pid {} is marked as local.", pid);
+ } else LOGGER.debug("CELLAR CONFIG: configuration pid {} is marked as local", pid);
}
}
Modified: karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationSynchronizer.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationSynchronizer.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationSynchronizer.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/ConfigurationSynchronizer.java Fri Sep 16 12:49:22 2011
@@ -56,7 +56,7 @@ public class ConfigurationSynchronizer e
if (isSyncEnabled(group)) {
pull(group);
push(group);
- }
+ } else LOGGER.warn("CELLAR CONFFIG: sync is disabled for group {}", group.getName());
}
}
}
@@ -91,9 +91,9 @@ public class ConfigurationSynchronizer e
//Mark the remote configuration event.
conf.update(preparePull(dictionary));
}
- LOGGER.info("CELLAR CONFIGURATION EVENT: read remote configuration.");
+ LOGGER.debug("CELLAR CONFIG: read remote configuration.");
} catch (IOException ex) {
- LOGGER.error("Failed to read remote configuration", ex);
+ LOGGER.error("CELLAR CONFIG: fail to read distributed configuration map", ex);
}
}
}
@@ -144,7 +144,6 @@ public class ConfigurationSynchronizer e
}
}
- LOGGER.info("CELLAR CONFIG EVENT: Publishing PID {} to remote map", pid);
}
} else {
RemoteConfigurationEvent event = new RemoteConfigurationEvent(conf.getPid());
@@ -154,14 +153,14 @@ public class ConfigurationSynchronizer e
producer.produce(event);
}
}
- LOGGER.info("CELLAR CONFIG EVENT: Publishing PID {} to remote map", pid);
}
+ LOGGER.debug("CELLAR CONFIG: publish PID {} to distributed configuration map", pid);
}
}
} catch (IOException ex) {
- LOGGER.error("Failed to read remote configuration, due to I/O error: ", ex);
+ LOGGER.error("CELLAR CONFIG: fail to read distributed configuration map (IO error)", ex);
} catch (InvalidSyntaxException ex) {
- LOGGER.error("Failed to read remote configuration, due to invalid filter syntax: ", ex);
+ LOGGER.error("CELLAR CONFIG: fail to read distributed configuration map (invalid syntax error)", ex);
}
} finally {
Thread.currentThread().setContextClassLoader(originalClassLoader);
@@ -180,7 +179,7 @@ public class ConfigurationSynchronizer e
String propertyValue = properties.get(propertyKey);
result = Boolean.parseBoolean(propertyValue);
} catch (IOException e) {
- LOGGER.error("Error while checking if sync is enabled.", e);
+ LOGGER.error("CELLAR CONFIG: unable to check if sync is enabled", e);
}
return result;
}
Modified: karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/LocalConfigurationListener.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/LocalConfigurationListener.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/LocalConfigurationListener.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/config/src/main/java/org/apache/karaf/cellar/config/LocalConfigurationListener.java Fri Sep 16 12:49:22 2011
@@ -66,7 +66,7 @@ public class LocalConfigurationListener
producer.produce(configurationEvent);
}
}
- } else LOGGER.debug("Configuration with PID {} is marked as local.", pid);
+ } else LOGGER.debug("CELLAR CONFIG: configuration with PID {} is marked as local.", pid);
}
}
}
@@ -88,9 +88,9 @@ public class LocalConfigurationListener
configurationTable.put(configuration.getPid(), properties);
}
} catch (IOException e) {
- LOGGER.error("Failed to push configuration with PID: {}", pid, e);
+ LOGGER.error("CELLAR CONFIG: failed to push configuration with PID {} to the distributed map", pid, e);
} catch (InvalidSyntaxException e) {
- LOGGER.error("Failed to retrieve configuration with PID: {}", pid, e);
+ LOGGER.error("CELLAR CONFIG: failed to push configuration with PID {} to the distributed map", pid, e);
}
}
Modified: karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/ExportServiceListener.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/ExportServiceListener.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/ExportServiceListener.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/ExportServiceListener.java Fri Sep 16 12:49:22 2011
@@ -55,16 +55,16 @@ public class ExportServiceListener imple
//Lookup for already exported services.
ServiceReference[] references = null;
try {
- String filter = "(" + Constants.EXPORTED_INTERFACES + "=" + Constants.ALL_INTERFACES+")";
+ String filter = "(" + Constants.EXPORTED_INTERFACES + "=" + Constants.ALL_INTERFACES + ")";
references = bundleContext.getServiceReferences(null, filter);
- if (references != null) {
- for (ServiceReference reference : references) {
- exportService(reference);
+ if (references != null) {
+ for (ServiceReference reference : references) {
+ exportService(reference);
+ }
}
- }
} catch (InvalidSyntaxException e) {
- LOGGER.error("Error exporting existing remote services.",e);
+ LOGGER.error("CELLAR DOSGI: unable to export existing remote services", e);
}
}
@@ -108,7 +108,7 @@ public class ExportServiceListener imple
String exportedServices = (String) serviceReference.getProperty(Constants.EXPORTED_INTERFACES);
if (exportedServices != null && exportedServices.length() > 0) {
- LOGGER.info("CELLAR DOSGI EVENT: Exporting remote service.");
+ LOGGER.debug("CELLAR DOSGI: exporting remote service");
String[] interfaces = exportedServices.split(Constants.INTERFACE_SEPARATOR);
Object service = bundleContext.getService(serviceReference);
@@ -156,7 +156,7 @@ public class ExportServiceListener imple
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
String exportedServices = (String) serviceReference.getProperty(Constants.EXPORTED_INTERFACES);
if (exportedServices != null && exportedServices.length() > 0) {
- LOGGER.info("CELLAR DOSGI EVENT: Unexporting remote service.");
+ LOGGER.debug("CELLAR DOSGI: unexporting remote service.");
String[] interfaces = exportedServices.split(Constants.INTERFACE_SEPARATOR);
Object service = bundleContext.getService(serviceReference);
@@ -214,7 +214,7 @@ public class ExportServiceListener imple
String ifaceName = clazz.getCanonicalName();
interfaceList.add(ifaceName);
} catch (ClassNotFoundException e) {
- LOGGER.warn("Could not load class", e);
+ LOGGER.error("CELLAR DOSGI: could not load class", e);
}
}
}
Modified: karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/ImportServiceListener.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/ImportServiceListener.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/ImportServiceListener.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/ImportServiceListener.java Fri Sep 16 12:49:22 2011
@@ -138,7 +138,7 @@ public class ImportServiceListener imple
* @param listenerInfo
*/
private void importService(EndpointDescription endpoint, ListenerInfo listenerInfo) {
- LOGGER.info("CELLAR DOSGI EVENT: Importing remote service.");
+ LOGGER.debug("CELLAR DOSGI: importing remote service.");
EventProducer requestProducer = producers.get(endpoint.getId());
if(requestProducer == null) {
Modified: karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/dosgi/src/main/java/org/apache/karaf/cellar/dosgi/RemoteServiceCallHandler.java Fri Sep 16 12:49:22 2011
@@ -59,7 +59,7 @@ public class RemoteServiceCallHandler ex
}
} catch (InvalidSyntaxException e) {
- LOGGER.error("Could not lookup service", e);
+ LOGGER.error("CELLAR DOSGI: unable to lookup service", e);
}
if (targetService != null) {
@@ -91,17 +91,16 @@ public class RemoteServiceCallHandler ex
producer.produce(result);
} catch (NoSuchMethodException e) {
- LOGGER.error("Could not find remote method for service", e);
+ LOGGER.error("CELLAR DOSGI: unable to find remote method for service", e);
} catch (InvocationTargetException e) {
- LOGGER.error("Could not invoke remote method for service", e);
+ LOGGER.error("CELLAR DOSGI: unable to invoke remote method for service", e);
} catch (IllegalAccessException e) {
- LOGGER.error("Could not invoke remote method for service", e);
+ LOGGER.error("CELLAR DOSGI: unable to access remote method for service", e);
}
}
}
}
-
@Override
public Class<RemoteServiceCall> getType() {
return RemoteServiceCall.class;
Modified: karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java Fri Sep 16 12:49:22 2011
@@ -20,7 +20,7 @@ public class Constants {
public static final String REPOSITORIES = "org.apache.karaf.cellar.repositories";
public static final String FEATURES = "org.apache.karaf.cellar.features";
- public static final String REPOSITORIES_CATEGORY = "repositories";
+ public static final String REPOSITORIES_CATEGORY = "features.repositories";
public static final String FEATURES_CATEGORY = "features";
}
Modified: karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesEventHandler.java Fri Sep 16 12:49:22 2011
@@ -51,27 +51,24 @@ public class FeaturesEventHandler extend
String name = event.getName();
String version = event.getVersion();
if (isAllowed(event.getSourceGroup(), Constants.FEATURES_CATEGORY, name, EventType.INBOUND) || event.getForce()) {
- LOGGER.debug("Received features event {} version {} type {}.", new Object[]{event.getName(), event.getVersion(), event.getType()});
FeatureEvent.EventType type = event.getType();
Boolean isInstalled = isInstalled(name, version);
try {
if (FeatureEvent.EventType.FeatureInstalled.equals(type) && !isInstalled) {
- LOGGER.debug("Installing feature {} version {}", name, version);
+ LOGGER.debug("CELLAR FEATURES: installing feature {}/{}", name, version);
if (version != null) {
featuresService.installFeature(name, version);
} else featuresService.installFeature(name);
- LOGGER.info("CELLAR FEATURES EVENT: installing feature {} version {}", name, version);
} else if (FeatureEvent.EventType.FeatureUninstalled.equals(type) && isInstalled) {
- LOGGER.debug("Uninstalling feature {} version {}", name, version);
+ LOGGER.debug("CELLAR FEATURES: uninstalling feature {}/{}", name, version);
if (version != null) {
featuresService.uninstallFeature(name, version);
} else featuresService.uninstallFeature(name);
- LOGGER.info("CELLAR FEATURES EVENT: uninstalling feature {} version {}", name, version);
}
} catch (Exception e) {
- LOGGER.error("Failed to process feature event.", e);
+ LOGGER.warn("CELLAR FEATURES: failed to handle event.", e);
}
- } else LOGGER.debug("Feature with name {} is marked as BLOCKED INBOUND", name);
+ } else LOGGER.debug("CELLAR FEATURES: event {} is marked as BLOCKED INBOUND", name);
}
public Class<RemoteFeaturesEvent> getType() {
Modified: karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSupport.java Fri Sep 16 12:49:22 2011
@@ -86,8 +86,8 @@ public class FeaturesSupport extends Cel
Boolean installed = featuresService.isInstalled(feature);
features.put(info, installed);
}
- } else LOGGER.debug("Feature with name {} is marked as BLOCKED OUTBOUND", feature.getName());
- } else LOGGER.debug("Feature is null");
+ } else LOGGER.debug("CELLAR FEATURES: feature {} is marked as BLOCKED OUTBOUND", feature.getName());
+ } else LOGGER.debug("CELLAR FEATURES: feature is null");
}
/**
@@ -106,8 +106,8 @@ public class FeaturesSupport extends Cel
FeatureInfo info = new FeatureInfo(feature.getName(), feature.getVersion());
features.put(info, force);
}
- } else LOGGER.debug("Feature with name {} is marked as BLOCKED OUTBOUND", feature.getName());
- } else LOGGER.debug("Feature is null");
+ } else LOGGER.debug("CELLAR FEATURES: feature {} is marked as BLOCKED OUTBOUND", feature.getName());
+ } else LOGGER.debug("CELLAR FEATURES: feature is null");
}
/**
Modified: karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSynchronizer.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSynchronizer.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSynchronizer.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/FeaturesSynchronizer.java Fri Sep 16 12:49:22 2011
@@ -54,7 +54,7 @@ public class FeaturesSynchronizer extend
if (isSyncEnabled(group)) {
pull(group);
push(group);
- }
+ } else LOGGER.warn("CELLAR FEATURES: sync is disabled for group {}", group.getName());
}
}
}
@@ -82,13 +82,12 @@ public class FeaturesSynchronizer extend
if (repositories != null && !repositories.isEmpty()) {
for (String url : repositories) {
try {
- LOGGER.debug("Adding repository {}", url);
+ LOGGER.debug("CELLAR FEATURES: adding repository {}", url);
featuresService.addRepository(new URI(url));
- LOGGER.info("CELLAR FEATURE EVENT: adding new repository {}", url);
} catch (MalformedURLException e) {
- LOGGER.error("Failed to add features repository. URL {} is malformed", url);
+ LOGGER.warn("CELLAR FEATURES: failed to add features repository {} (URL is malformed)", url, e);
} catch (Exception e) {
- LOGGER.error("Failed to add features repository.", e);
+ LOGGER.warn("CELLAR FEATURES: failed to add features repository {}", url, e);
}
}
}
@@ -105,23 +104,21 @@ public class FeaturesSynchronizer extend
//If feature needs to be installed locally.
if (remotelyInstalled && !localyInstalled) {
try {
- LOGGER.debug("Installing feature {}/{}", info.getName(), info.getVersion());
+ LOGGER.debug("CELLAR FEATURES: installing feature {}/{}", info.getName(), info.getVersion());
featuresService.installFeature(info.getName(), info.getVersion());
- LOGGER.info("CELLAR FEATURE EVENT: installing feature {}/{}", info.getName(), info.getVersion());
} catch (Exception e) {
- LOGGER.error("Failed to install feature {}/{} ", info.getName(), info.getVersion());
+ LOGGER.warn("CELLAR FEATURES: failed to install feature {}/{} ", new Object[]{ info.getName(), info.getVersion() }, e);
}
//If feature needs to be localy uninstalled.
} else if (!remotelyInstalled && localyInstalled) {
try {
- LOGGER.debug("Uninstalling feature {}/{}", info.getName(), info.getVersion());
+ LOGGER.debug("CELLAR FEATURES: uninstalling feature {}/{}", info.getName(), info.getVersion());
featuresService.uninstallFeature(info.getName(), info.getVersion());
- LOGGER.info("CELLAR FEATURE EVENT: uninstalling feature {}/{}", info.getName(), info.getVersion());
} catch (Exception e) {
- LOGGER.error("Failed to uninstall feature {}/{} ", info.getName(), info.getVersion());
+ LOGGER.warn("CELLAR FEATURES: failed to uninstall feature {}/{} ", new Object[]{ info.getName(), info.getVersion() }, e);
}
}
- } else LOGGER.debug("Feature with name {} is marked as BLOCKED INBOUND", info.getName());
+ } else LOGGER.debug("CELLAR FEATURES: feature {} is marked as BLOCKED INBOUND", info.getName());
}
}
} finally {
@@ -151,14 +148,14 @@ public class FeaturesSynchronizer extend
repositoryList = featuresService.listRepositories();
featuresList = featuresService.listFeatures();
} catch (Exception e) {
- LOGGER.error("Error listing features.", e);
+ LOGGER.warn("CELLAR FEATURES: unable to list features", e);
}
//Process repository list
if (repositoryList != null && repositoryList.length > 0) {
for (Repository repository : repositoryList) {
pushRepository(repository, group);
- LOGGER.info("CELLAR FEATURES EVENT: pushing repository {} in Cellar group {}", repository.getName(), group.getName());
+ LOGGER.debug("CELLAR FEATURES: pushing repository {} in group {}", repository.getName(), group.getName());
}
}
@@ -166,7 +163,7 @@ public class FeaturesSynchronizer extend
if (featuresList != null && featuresList.length > 0) {
for (Feature feature : featuresList) {
pushFeature(feature, group);
- LOGGER.info("CELLAR FEATURES EVENT: pushing feature {} in Cellar group {}", feature.getName(), group.getName());
+ LOGGER.debug("CELLAR FEATURES: pushing feature {} in group {}", feature.getName(), group.getName());
}
}
} finally {
@@ -186,7 +183,7 @@ public class FeaturesSynchronizer extend
String propertyValue = properties.get(propertyKey);
result = Boolean.parseBoolean(propertyValue);
} catch (IOException e) {
- LOGGER.error("Error while checking if sync is enabled.", e);
+ LOGGER.warn("CELLAR FEATURES: error while checking if sync is enabled", e);
}
return result;
}
Modified: karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/LocalFeaturesListener.java Fri Sep 16 12:49:22 2011
@@ -80,7 +80,7 @@ public class LocalFeaturesListener exten
producer.produce(featureEvent);
}
}
- } else LOGGER.debug("Feature with name {} is marked as local.", name);
+ } else LOGGER.debug("CELLAR FEATURES: feature {} is marked as local.", name);
}
}
}
Modified: karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/RepositoryEventHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/RepositoryEventHandler.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/RepositoryEventHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/RepositoryEventHandler.java Fri Sep 16 12:49:22 2011
@@ -48,14 +48,14 @@ public class RepositoryEventHandler exte
RepositoryEvent.EventType type = event.getType();
try {
if (RepositoryEvent.EventType.RepositoryAdded.equals(type)) {
- LOGGER.debug("Adding repository url {}", uri);
+ LOGGER.debug("CELLAR FEATURES: adding repository URI {}", uri);
featuresService.addRepository(new URI(uri));
} else {
- LOGGER.debug("Removing repository url {}", uri);
+ LOGGER.debug("CELLAR FEATURES: removing repository URI {}", uri);
featuresService.removeRepository(new URI(uri));
}
} catch (Exception e) {
- LOGGER.error("Failed to add/remove repository {}", uri);
+ LOGGER.error("CELLAR FEATURES: failed to add/remove repository URI {}", uri, e);
}
}
Modified: karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/CellarMembershipListener.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/CellarMembershipListener.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/CellarMembershipListener.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/CellarMembershipListener.java Fri Sep 16 12:49:22 2011
@@ -32,6 +32,7 @@ import java.util.Set;
public class CellarMembershipListener extends HazelcastInstanceAware implements MembershipListener {
private static final transient Logger LOGGER = LoggerFactory.getLogger(CellarMembershipListener.class);
+
private GroupManager groupManager;
private List<? extends Synchronizer> synchronizers;
@@ -61,7 +62,7 @@ public class CellarMembershipListener ex
}
}
} catch (Exception e) {
- LOGGER.warn("Error while calling memberAdded", e);
+ LOGGER.warn("CELLAR HAZELCAST: error while calling memberAdded", e);
}
}
Modified: karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastBundleListener.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastBundleListener.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastBundleListener.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastBundleListener.java Fri Sep 16 12:49:22 2011
@@ -11,7 +11,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.karaf.cellar.hazelcast;
import org.apache.karaf.cellar.core.utils.CombinedClassLoader;
@@ -24,7 +23,6 @@ import java.util.Dictionary;
public class HazelcastBundleListener implements BundleListener {
-
private BundleContext bundleContext;
private CombinedClassLoader combinedClassLoader;
Modified: karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastClusterManager.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastClusterManager.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastClusterManager.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastClusterManager.java Fri Sep 16 12:49:22 2011
@@ -181,4 +181,13 @@ public class HazelcastClusterManager ext
public void setConfigurationAdmin(ConfigurationAdmin configurationAdmin) {
this.configurationAdmin = configurationAdmin;
}
+
+ public CombinedClassLoader getCombinedClassLoader() {
+ return this.combinedClassLoader;
+ }
+
+ public void setCombinedClassLoader(CombinedClassLoader combinedClassLoader) {
+ this.combinedClassLoader = combinedClassLoader;
+ }
+
}
Modified: karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastEventTransportFactory.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastEventTransportFactory.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastEventTransportFactory.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastEventTransportFactory.java Fri Sep 16 12:49:22 2011
@@ -11,7 +11,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.karaf.cellar.hazelcast;
import com.hazelcast.core.IQueue;
@@ -25,15 +24,11 @@ import org.apache.karaf.cellar.core.util
import java.util.HashMap;
import java.util.Map;
-/**
- * @author: iocanel
- */
public class HazelcastEventTransportFactory extends HazelcastInstanceAware implements EventTransportFactory {
private Dispatcher dispatcher;
private CombinedClassLoader combinedClassLoader;
-
@Override
public EventProducer getEventProducer(String name, Boolean pubsub) {
if (pubsub) {
@@ -90,4 +85,5 @@ public class HazelcastEventTransportFact
public void setCombinedClassLoader(CombinedClassLoader combinedClassLoader) {
this.combinedClassLoader = combinedClassLoader;
}
+
}
Modified: karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastGroupManager.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastGroupManager.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastGroupManager.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastGroupManager.java Fri Sep 16 12:49:22 2011
@@ -89,7 +89,7 @@ public class HazelcastGroupManager imple
}
}
} catch (IOException e) {
- LOGGER.error("Error reading group configuration.");
+ LOGGER.error("CELLAR HAZELCAST: error reading group configuration", e);
}
registerGroup(DEFAULT_GROUP);
}
Modified: karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastInstanceAware.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastInstanceAware.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastInstanceAware.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/HazelcastInstanceAware.java Fri Sep 16 12:49:22 2011
@@ -40,6 +40,4 @@ public class HazelcastInstanceAware {
this.instance = instance;
}
-
-
}
Modified: karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueConsumer.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueConsumer.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueConsumer.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueConsumer.java Fri Sep 16 12:49:22 2011
@@ -94,14 +94,14 @@ public class QueueConsumer<E extends Eve
try {
e = getQueue().poll(10, TimeUnit.SECONDS);
} catch (InterruptedException e1) {
- LOGGER.warn("Consume task interrupted");
+ LOGGER.warn("CELLAR HAZELCAST: consume task interrupted");
}
if (e != null) {
consume(e);
}
}
} catch (Exception ex) {
- LOGGER.error("Error while consuming from queue",ex);
+ LOGGER.error("CELLAR HAZELCAST: error while consuming from queue",ex);
}
finally {
Thread.currentThread().setContextClassLoader(originalClassLoader);
@@ -126,7 +126,6 @@ public class QueueConsumer<E extends Eve
executorService.execute(this);
}
-
@Override
public void stop() {
isConsuming = false;
Modified: karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueProducer.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueProducer.java?rev=1171529&r1=1171528&r2=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueProducer.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/hazelcast/src/main/java/org/apache/karaf/cellar/hazelcast/QueueProducer.java Fri Sep 16 12:49:22 2011
@@ -80,7 +80,7 @@ public class QueueProducer<E extends Eve
try {
queue.put(event);
} catch (InterruptedException e) {
- LOGGER.error("Queue producer interrupted",e);
+ LOGGER.error("CELLAR HAZELCAST: queue producer interrupted", e);
}
}
}
Added: karaf/cellar/branches/cellar-2.2.x/obr/NOTICE
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/obr/NOTICE?rev=1171529&view=auto
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/obr/NOTICE (added)
+++ karaf/cellar/branches/cellar-2.2.x/obr/NOTICE Fri Sep 16 12:49:22 2011
@@ -0,0 +1,48 @@
+Apache Karaf Cellar
+Copyright 2011 The Apache Software Foundation
+
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+This product includes software written by
+Antony Lesuisse.
+Licensed under Public Domain.
+
+
+II. Used Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2010).
+Licensed under the Apache License 2.0.
+
+This product uses software developed at
+OPS4J (http://www.ops4j.org/).
+Licensed under the Apache License 2.0.
+
+This product uses software developed at
+FUSE Source (http://www.fusesource.org/).
+Licensed under the Apache License 2.0.
+
+This product uses software developed at
+JClouds (http://www.jclouds.org/).
+Licensed under the Apache License 2.0.
+
+This product uses software developed at
+JLine (http://jline.sourceforge.net).
+Licensed under the BSD License.
+
+This product uses software developed at
+SLF4J (http://www.slf4j.org/).
+Licensed under the MIT License.
+
+This product includes software from http://www.json.org.
+Copyright (c) 2002 JSON.org
+
+
+III. License Summary
+- Apache License 2.0
Added: karaf/cellar/branches/cellar-2.2.x/obr/pom.xml
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/obr/pom.xml?rev=1171529&view=auto
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/obr/pom.xml (added)
+++ karaf/cellar/branches/cellar-2.2.x/obr/pom.xml Fri Sep 16 12:49:22 2011
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <!--
+
+ 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.
+ -->
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.karaf</groupId>
+ <artifactId>cellar</artifactId>
+ <version>2.2.3-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <groupId>org.apache.karaf.cellar</groupId>
+ <artifactId>org.apache.karaf.cellar.obr</artifactId>
+ <packaging>bundle</packaging>
+ <name>Apache Karaf :: Cellar :: OBR</name>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <osgi.import>
+ !org.apache.karaf.cellar.obr*,
+ org.apache.karaf.cellar.core*;version=${project.version},
+ org.apache.felix.service.command,
+ org.apache.felix.gogo.commands,
+ org.apache.karaf.shell.console;version="[2.2,4)",
+ org.apache.karaf.shell.console.commands;version="[2.2,4)",
+ org.apache.karaf.shell.console.completer;version="[2.2,4)",
+ *
+ </osgi.import>
+ <osgi.dynamic.import>
+ org.apache.felix.bundlerepository,
+ org.osgi.service.obr
+ </osgi.dynamic.import>
+ <osgi.export>
+ org.apache.karaf.cellar.obr*;version=${project.version}
+ </osgi.export>
+ </properties>
+
+ <dependencies>
+
+ <!-- Cellar Core -->
+ <dependency>
+ <groupId>org.apache.karaf.cellar</groupId>
+ <artifactId>org.apache.karaf.cellar.core</artifactId>
+ </dependency>
+
+ <!-- OBR -->
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.bundlerepository</artifactId>
+ </dependency>
+
+ </dependencies>
+
+</project>
\ No newline at end of file
Copied: karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/Constants.java (from r1169779, karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java)
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/Constants.java?p2=karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/Constants.java&p1=karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java&r1=1169779&r2=1171529&rev=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/Constants.java Fri Sep 16 12:49:22 2011
@@ -11,16 +11,22 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.cellar.features;
+package org.apache.karaf.cellar.obr;
/**
- * Features constants.
+ * Cellar OBR constants
*/
public class Constants {
- public static final String REPOSITORIES = "org.apache.karaf.cellar.repositories";
- public static final String FEATURES = "org.apache.karaf.cellar.features";
- public static final String REPOSITORIES_CATEGORY = "repositories";
- public static final String FEATURES_CATEGORY = "features";
+ public static final String BUNDLES_DISTRIBUTED_SET_NAME = "org.apache.karaf.cellar.obr.bundles";
+ public static final String URLS_DISTRIBUTED_SET_NAME = "org.apache.karaf.cellar.obr.urls";
+
+ public static final String BUNDLES_CONFIG_CATEGORY = "obr.bundles";
+ public static final String URLS_CONFIG_CATEGORY = "obr.urls";
+
+ public static final int URL_ADD_EVENT_TYPE = 1;
+ public static final int URL_REMOVE_EVENT_TYPE = 0;
+
+ public static final int BUNDLE_START_EVENT_TYPE = 1;
}
Copied: karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEvent.java (from r1169779, karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java)
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEvent.java?p2=karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEvent.java&p1=karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java&r1=1169779&r2=1171529&rev=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEvent.java Fri Sep 16 12:49:22 2011
@@ -11,16 +11,30 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.cellar.features;
+package org.apache.karaf.cellar.obr;
+
+import org.apache.karaf.cellar.core.event.Event;
/**
- * Features constants.
+ * OBR Bundle cluster event.
*/
-public class Constants {
+public class ObrBundleEvent extends Event {
+
+ private String bundleId;
+ private int type;
+
+ public ObrBundleEvent(String bundleId, int type) {
+ super(bundleId);
+ this.bundleId = bundleId;
+ this.type = type;
+ }
+
+ public String getBundleId() {
+ return this.bundleId;
+ }
- public static final String REPOSITORIES = "org.apache.karaf.cellar.repositories";
- public static final String FEATURES = "org.apache.karaf.cellar.features";
- public static final String REPOSITORIES_CATEGORY = "repositories";
- public static final String FEATURES_CATEGORY = "features";
+ public int getType() {
+ return this.type;
+ }
}
Added: karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java?rev=1171529&view=auto
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java (added)
+++ karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleEventHandler.java Fri Sep 16 12:49:22 2011
@@ -0,0 +1,153 @@
+/*
+ * Licensed 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.karaf.cellar.obr;
+
+import org.apache.felix.bundlerepository.Reason;
+import org.apache.felix.bundlerepository.Resolver;
+import org.apache.felix.bundlerepository.Resource;
+import org.apache.karaf.cellar.core.control.BasicSwitch;
+import org.apache.karaf.cellar.core.control.Switch;
+import org.apache.karaf.cellar.core.event.EventHandler;
+import org.apache.karaf.cellar.core.event.EventType;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.Version;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * OBR bundles event handler.
+ */
+public class ObrBundleEventHandler extends ObrSupport implements EventHandler<ObrBundleEvent> {
+
+ private static final transient Logger LOGGER = LoggerFactory.getLogger(ObrBundleEventHandler.class);
+
+ protected static final char VERSION_DELIM = ',';
+
+ public static final String SWITCH_ID = "org.apache.karaf.cellar.event.obr.bundle";
+
+ private final Switch eventSwitch = new BasicSwitch(SWITCH_ID);
+
+ @Override
+ public void init() {
+ super.init();
+ }
+
+ @Override
+ public void destroy() {
+ super.destroy();
+ }
+
+ private String[] getTarget(String bundle) {
+ String[] target;
+ int idx = bundle.indexOf(VERSION_DELIM);
+ if (idx > 0) {
+ target = new String[]{ bundle.substring(0, idx), bundle.substring(idx + 1) };
+ } else {
+ target = new String[]{ bundle, null };
+ }
+ return target;
+ }
+
+ private Resource selectNewestVersion(Resource[] resources) {
+ int idx = -1;
+ Version v = null;
+ for (int i = 0; (resources != null) && (i < resources.length); i++) {
+ if (i == 0) {
+ idx = 0;
+ v = resources[i].getVersion();
+ } else {
+ Version vtmp = resources[i].getVersion();
+ if (vtmp.compareTo(v) > 0) {
+ idx = i;
+ v = vtmp;
+ }
+ }
+ }
+ return (idx < 0) ? null : resources[idx];
+ }
+
+ private Resource[] searchRepository(String targetId, String targetVersion) throws InvalidSyntaxException {
+ try {
+ Bundle bundle = getBundleContext().getBundle(Long.parseLong(targetId));
+ targetId = bundle.getSymbolicName();
+ } catch (NumberFormatException e) {
+ // it was not a number, so ignore.
+ }
+
+ // the target ID may be a bundle name or bundle symbolic name, so create
+ StringBuffer sb = new StringBuffer("(|(presentationname=");
+ sb.append(targetId);
+ sb.append(")(symbolicname=");
+ sb.append(targetId);
+ sb.append("))");
+ if (targetVersion != null) {
+ sb.insert(0, "&(");
+ sb.append("(version=");
+ sb.append(targetVersion);
+ sb.append("))");
+ }
+ return obrService.discoverResources(sb.toString());
+ }
+
+ /**
+ * Handle an OBR bundle event.
+ *
+ * @param event the OBR bundle event.
+ */
+ @Override
+ public void handle(ObrBundleEvent event) {
+ String bundleId = event.getBundleId();
+ try {
+ if (isAllowed(event.getSourceGroup(), Constants.BUNDLES_CONFIG_CATEGORY, bundleId, EventType.INBOUND)) {
+ Resolver resolver = obrService.resolver();
+ String[] target = getTarget(bundleId);
+ Resource resource = selectNewestVersion(searchRepository(target[0], target[1]));
+ if (resource != null) {
+ resolver.add(resource);
+ } else {
+ LOGGER.warn("CELLAR OBR: bundle {} unknown", target[0]);
+ }
+ if ((resolver.getAddedResources() != null) &&
+ (resolver.getAddedResources().length > 0)) {
+ if (resolver.resolve()) {
+ if (event.getType() == Constants.BUNDLE_START_EVENT_TYPE)
+ resolver.deploy(Resolver.START);
+ else resolver.deploy(0);
+ }
+ } else {
+ Reason[] reqs = resolver.getUnsatisfiedRequirements();
+ if (reqs != null && reqs.length > 0) {
+ LOGGER.warn("CELLAR OBR: unsatisfied requirement(s): ");
+ for (Reason reason : reqs) {
+ LOGGER.warn("CELLAR OBR: {}", reason.getRequirement().getFilter());
+ LOGGER.warn("CELLAR OBR: {}", reason.getResource().getPresentationName());
+ }
+ } else LOGGER.warn("CELLAR OBR: could not resolve targets");
+ }
+ } else LOGGER.debug("CELLAR OBR: bundle {} is marked as BLOCKED INBOUND", bundleId);
+ } catch (Exception e) {
+ LOGGER.error("CELLAR OBR: failed to handle bundle event {}", bundleId, e);
+ }
+ }
+
+ public Class<ObrBundleEvent> getType() {
+ return ObrBundleEvent.class;
+ }
+
+ public Switch getSwitch() {
+ return this.eventSwitch;
+ }
+
+}
Added: karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleInfo.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleInfo.java?rev=1171529&view=auto
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleInfo.java (added)
+++ karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrBundleInfo.java Fri Sep 16 12:49:22 2011
@@ -0,0 +1,79 @@
+/*
+ * Licensed 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.karaf.cellar.obr;
+
+import java.io.Serializable;
+
+/**
+ * Simple serializable wrapper for OBR bundle.
+ */
+public class ObrBundleInfo implements Serializable {
+
+ private String presentationName;
+ private String symbolicName;
+ private String version;
+
+ public ObrBundleInfo(String presentationName, String symbolicName, String version) {
+ this.presentationName = presentationName;
+ this.symbolicName = symbolicName;
+ this.version = version;
+ }
+
+ public String getPresentationName() {
+ return this.presentationName;
+ }
+
+ public void setPresentationName(String presentationName) {
+ this.presentationName = presentationName;
+ }
+
+ public String getSymbolicName() {
+ return this.symbolicName;
+ }
+
+ public void setSymbolicName(String symbolicName) {
+ this.symbolicName = symbolicName;
+ }
+
+ public String getVersion() {
+ return this.version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ ObrBundleInfo info = (ObrBundleInfo) o;
+
+ if (presentationName != null ? !presentationName.equals(info.presentationName) : info.presentationName != null) return false;
+ if (symbolicName != null ? !symbolicName.equals(info.symbolicName) : info.symbolicName != null) return false;
+ if (version != null ? !version.equals(info.version) : info.version != null) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = presentationName != null ? presentationName.hashCode() : 0;
+ result = 31 * result + (symbolicName != null ? symbolicName.hashCode() : 0);
+ result = 31 * result + (version != null ? version.hashCode() : 0);
+ return result;
+ }
+
+}
Added: karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrSupport.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrSupport.java?rev=1171529&view=auto
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrSupport.java (added)
+++ karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrSupport.java Fri Sep 16 12:49:22 2011
@@ -0,0 +1,48 @@
+/*
+ * Licensed 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.karaf.cellar.obr;
+
+import org.apache.felix.bundlerepository.RepositoryAdmin;
+import org.apache.karaf.cellar.core.CellarSupport;
+import org.osgi.framework.BundleContext;
+
+/**
+ * Cellar OBR support.
+ */
+public class ObrSupport extends CellarSupport {
+
+ protected BundleContext bundleContext;
+ protected RepositoryAdmin obrService;
+
+ public void init() { }
+
+ public void destroy() { }
+
+ public BundleContext getBundleContext() {
+ return this.bundleContext;
+ }
+
+ public void setBundleContext(BundleContext bundleContext) {
+ this.bundleContext = bundleContext;
+ }
+
+ public RepositoryAdmin getObrService() {
+ return this.obrService;
+ }
+
+ public void setObrService(RepositoryAdmin obrService) {
+ this.obrService = obrService;
+ }
+
+}
Copied: karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEvent.java (from r1169779, karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java)
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEvent.java?p2=karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEvent.java&p1=karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java&r1=1169779&r2=1171529&rev=1171529&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/features/src/main/java/org/apache/karaf/cellar/features/Constants.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/obr/src/main/java/org/apache/karaf/cellar/obr/ObrUrlEvent.java Fri Sep 16 12:49:22 2011
@@ -11,16 +11,31 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.karaf.cellar.features;
+package org.apache.karaf.cellar.obr;
+
+import org.apache.karaf.cellar.core.event.Event;
+import org.apache.karaf.cellar.core.event.EventType;
/**
- * Features constants.
+ * OBR URL Event.
*/
-public class Constants {
+public class ObrUrlEvent extends Event {
+
+ private String url;
+ private int type;
+
+ public ObrUrlEvent(String url, int type) {
+ super(url);
+ this.url = url;
+ this.type = type;
+ }
+
+ public String getUrl() {
+ return this.url;
+ }
- public static final String REPOSITORIES = "org.apache.karaf.cellar.repositories";
- public static final String FEATURES = "org.apache.karaf.cellar.features";
- public static final String REPOSITORIES_CATEGORY = "repositories";
- public static final String FEATURES_CATEGORY = "features";
+ public int getType() {
+ return this.type;
+ }
-}
+}
\ No newline at end of file