You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2006/03/04 01:31:55 UTC
svn commit: r382984 [1/4] - in
/incubator/servicemix/trunk/servicemix-core/src:
main/java/org/apache/servicemix/jbi/container/
main/java/org/apache/servicemix/jbi/framework/
main/java/org/apache/servicemix/jbi/loaders/
main/java/org/apache/servicemix/j...
Author: gnodet
Date: Fri Mar 3 16:31:49 2006
New Revision: 382984
URL: http://svn.apache.org/viewcvs?rev=382984&view=rev
Log:
Lots of changes:
* SM-162: exceptions + xml jbi message
* SM-307: do not append container name to working dir
* SM-217: ant tasks (use consistent naming for tasks, add failOnError, use the AdminCommandsService)
* SM-336: persist hotdeploy state in working dir
* SM-295: start real support of SA connections
* add mbeans for SAs, SUs and endpoints
* channel is not closed when component is shut down
* closing the channel should deactivate all endpoints
* the channel is not recreated when component is initialized after a shutdown
* move all classloader related stuff in its own package
* move the stats out of the DeliveryChannel so that they are not lost when the channel is recreated
* complete rework of DeploymentService
* BaseLifeCycle.setCurrentState must not be public to avoid jmx writable attribute
* fix jms/jca flow tests broken due to SM-319 (multiple flows)
* rework SA lifecycle
Added:
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStats.java
- copied, changed from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBeanImpl.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/Endpoint.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/EndpointMBean.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ServiceAssemblyMBean.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ServiceUnitLifeCycle.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ServiceUnitMBean.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/loaders/
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/loaders/ClassLoaderService.java
- copied, changed from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ClassLoaderService.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/loaders/ClassLoaderUtil.java
- copied, changed from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ClassLoaderUtil.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/loaders/InstallationClassLoader.java
- copied, changed from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/InstallationClassLoader.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/loaders/ParentFirstClassLoader.java
- copied, changed from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ParentFirstClassLoader.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/loaders/SelfFirstClassLoader.java
- copied, changed from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/SelfFirstClassLoader.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/DeployServiceAssemblyTask.java
- copied, changed from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/InstallAssemblyTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/InstallSharedLibraryTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/ListBindingComponentsTask.java
- copied, changed from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/ListComponentTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/ListServiceAssembliesTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/ListServiceEnginesTask.java
- copied, changed from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/ListEnginesTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/ListSharedLibrariesTask.java
- copied, changed from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/ListLibrariesTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/ShutDownServiceAssemblyTask.java
- copied, changed from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/ShutDownAssemblyTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/StartServiceAssemblyTask.java
- copied, changed from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/StartAssemblyTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/StopServiceAssemblyTask.java
- copied, changed from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/StopAssemblyTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/UndeployServiceAssemblyTask.java
- copied, changed from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/UninstallAssemblyTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/UninstallSharedLibraryTask.java
incubator/servicemix/trunk/servicemix-core/src/test/java/org/apache/servicemix/jbi/installation/DeploymentMessageTest.java
incubator/servicemix/trunk/servicemix-core/src/test/java/org/apache/servicemix/jbi/installation/DummyComponent.java
Removed:
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ClassLoaderService.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ClassLoaderUtil.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBeanImpl.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/FrameworkInstallationService.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/InstallationClassLoader.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ParentFirstClassLoader.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/SelfFirstClassLoader.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/AssemblyDescriptorTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/DeployedAssembliesTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/DeployedServiceUnitsTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/InstallAssemblyTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/ListComponentTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/ListEnginesTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/ListLibrariesTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/ShutDownAssemblyTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/StartAssemblyTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/StopAssemblyTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/UninstallAssemblyTask.java
Modified:
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/ComponentEnvironment.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/EnvironmentContext.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/JBIContainer.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AdminCommandsService.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AdminCommandsServiceMBean.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AutoDeploymentService.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentContextImpl.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBean.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentRegistry.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBean.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/DeploymentService.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/EndpointRegistry.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/InstallationService.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/InstallerMBeanImpl.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/LocalComponentConnector.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ManagementSupport.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/Registry.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ServiceAssemblyLifeCycle.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ServiceAssemblyRegistry.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseSystemService.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/InstallComponentTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/JbiTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/ShutDownComponentTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/StartComponentTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/StopComponentTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/task/UninstallComponentTask.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/DeliveryChannelImpl.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/nmr/Broker.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/servicedesc/LinkedEndpoint.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/util/DOMUtil.java
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/util/FileVersionUtil.java
incubator/servicemix/trunk/servicemix-core/src/test/java/org/apache/servicemix/jbi/framework/ClassLoaderTest.java
incubator/servicemix/trunk/servicemix-core/src/test/java/org/apache/servicemix/jbi/framework/ComponentRegistryTest.java
incubator/servicemix/trunk/servicemix-core/src/test/java/org/apache/servicemix/jbi/installation/AbstractManagementTest.java
incubator/servicemix/trunk/servicemix-core/src/test/java/org/apache/servicemix/jbi/installation/DeploymentTest.java
incubator/servicemix/trunk/servicemix-core/src/test/java/org/apache/servicemix/jbi/management/task/JbiTaskSupport.java
incubator/servicemix/trunk/servicemix-core/src/test/java/org/apache/servicemix/jbi/management/task/JbiTaskTest.java
incubator/servicemix/trunk/servicemix-core/src/test/java/org/apache/servicemix/jbi/messaging/AbstractClusteredTransactionTest.java
incubator/servicemix/trunk/servicemix-core/src/test/java/org/apache/servicemix/jbi/messaging/JcaFlowPersistentTest.java
incubator/servicemix/trunk/servicemix-core/src/test/java/org/apache/servicemix/jbi/messaging/JcaFlowTransactionTest.java
incubator/servicemix/trunk/servicemix-core/src/test/java/org/apache/servicemix/jbi/messaging/JmsFlowTransactionTest.java
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/ComponentEnvironment.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/ComponentEnvironment.java?rev=382984&r1=382983&r2=382984&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/ComponentEnvironment.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/ComponentEnvironment.java Fri Mar 3 16:31:49 2006
@@ -116,7 +116,7 @@
statsWriter.println(localConnector.getComponentNameSpace().getName() + ":");
statsWriter.println("inboundExchanges,inboundExchangeRate,outboundExchanges,outboundExchangeRate");
}
- MessagingStats stats = localConnector.getDeliveryChannel().getMessagingStats();
+ MessagingStats stats = localConnector.getMessagingStats();
long inbound = stats.getInboundExchanges().getCount();
double inboundRate = stats.getInboundExchangeRate().getAveragePerSecond();
long outbound = stats.getOutboundExchanges().getCount();
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/EnvironmentContext.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/EnvironmentContext.java?rev=382984&r1=382983&r2=382984&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/EnvironmentContext.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/EnvironmentContext.java Fri Mar 3 16:31:49 2006
@@ -153,7 +153,7 @@
*/
public void init(JBIContainer container, String rootDirPath) throws JBIException {
super.init(container);
- jbiRootDir = new File(rootDirPath, container.getName());
+ jbiRootDir = new File(rootDirPath);
buildDirectoryStructure();
}
@@ -307,7 +307,7 @@
* @return directory for deployment/workspace etc
* @throws IOException
*/
- public File getComponentRootDirectory(String componentName) throws IOException {
+ public File getComponentRootDirectory(String componentName) {
if (getComponentsDir() == null) {
return null;
}
@@ -367,13 +367,13 @@
* @return directory for deployment/workspace etc
* @throws IOException
*/
- public File getSARootDirectory(String saName) throws IOException{
- if(getServiceAssembiliesDirectory()==null){
+ public File getSARootDirectory(String saName) {
+ if (getServiceAssembiliesDirectory() == null) {
return null;
}
- File result=FileUtil.getDirectoryPath(getServiceAssembiliesDirectory(),saName);
+ File result = FileUtil.getDirectoryPath(getServiceAssembiliesDirectory(), saName);
// get the version directory
- result=FileVersionUtil.getLatestVersionDirectory(result);
+ result = FileVersionUtil.getLatestVersionDirectory(result);
return result;
}
@@ -414,7 +414,7 @@
* @return the state file
* @throws IOException
*/
- public File getServiceAssemblyStateFile(String saName) throws IOException {
+ public File getServiceAssemblyStateFile(String saName) {
File result = getSARootDirectory(saName);
FileUtil.buildDirectory(result);
result = new File(result,"state.xml");
@@ -443,7 +443,7 @@
* @return directory
* @throws IOException
*/
- public File getServiceUnitDirectory(String componentName,String suName) throws IOException {
+ public File getServiceUnitDirectory(String componentName,String suName) {
File result = getComponentRootDirectory(componentName);
result = FileUtil.getDirectoryPath(result, "serviceunit");
result = FileUtil.getDirectoryPath(result,suName);
@@ -484,29 +484,24 @@
* @param componentName
*/
public void removeComponentRootDirectory(String componentName) {
- try {
- File file = getComponentRootDirectory(componentName);
- if (file != null) {
- if (!FileUtil.deleteFile(file)) {
- log.warn("Failed to remove directory structure for component [version]: " + componentName + " [" + file.getName() + ']');
- }
- else {
- log.info("Removed directory structure for component [version]: " + componentName + " [" + file.getName() + ']');
- File parent = file.getParentFile();
- if (parent.list().length == 0) {
- if (!FileUtil.deleteFile(parent)) {
- log.warn("Failed to remove root directory for component: " + componentName);
- }
- else {
- log.info("Removed root directory structure for component: " + componentName);
- }
+ File file = getComponentRootDirectory(componentName);
+ if (file != null) {
+ if (!FileUtil.deleteFile(file)) {
+ log.warn("Failed to remove directory structure for component [version]: " + componentName + " [" + file.getName() + ']');
+ }
+ else {
+ log.info("Removed directory structure for component [version]: " + componentName + " [" + file.getName() + ']');
+ File parent = file.getParentFile();
+ if (parent.list().length == 0) {
+ if (!FileUtil.deleteFile(parent)) {
+ log.warn("Failed to remove root directory for component: " + componentName);
+ }
+ else {
+ log.info("Removed root directory structure for component: " + componentName);
}
}
}
}
- catch (IOException e) {
- log.warn("Failed to remove directory structure for component: " + componentName, e);
- }
}
/**
@@ -516,7 +511,7 @@
* @return directory
* @throws IOException
*/
- public File createSharedLibraryDirectory(String name) throws IOException {
+ public File createSharedLibraryDirectory(String name) {
File result = FileUtil.getDirectoryPath(getSharedLibDir(), name);
FileUtil.buildDirectory(result);
return result;
@@ -527,7 +522,7 @@
* @param name
* @throws IOException
*/
- public void removeSharedLibraryDirectory(String name) throws IOException{
+ public void removeSharedLibraryDirectory(String name) {
File result = FileUtil.getDirectoryPath(getSharedLibDir(), name);
FileUtil.deleteFile(result);
}
@@ -605,6 +600,10 @@
helper.addAttribute(getObjectToManage(), "dumpStats", "Periodically dump Component statistics");
helper.addAttribute(getObjectToManage(), "statsInterval", "Interval (secs) before dumping statistics");
return AttributeInfoHelper.join(super.getAttributeInfos(), helper.getAttributeInfos());
+ }
+
+ public File getJbiRootDir() {
+ return jbiRootDir;
}
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/JBIContainer.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/JBIContainer.java?rev=382984&r1=382983&r2=382984&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/JBIContainer.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/container/JBIContainer.java Fri Mar 3 16:31:49 2006
@@ -63,7 +63,6 @@
import org.apache.servicemix.jbi.framework.AdminCommandsService;
import org.apache.servicemix.jbi.management.BaseLifeCycle;
import org.apache.servicemix.jbi.management.ManagementContext;
-import org.apache.servicemix.jbi.messaging.DeliveryChannelImpl;
import org.apache.servicemix.jbi.messaging.MessageExchangeImpl;
import org.apache.servicemix.jbi.nmr.Broker;
import org.apache.servicemix.jbi.nmr.flow.Flow;
@@ -784,7 +783,7 @@
Component component = registry.getComponent(cns);
LocalComponentConnector lcc = registry.getLocalComponentConnector(cns);
if (component != null && lcc != null) {
- lcc.getComponentMBean().shutDown();
+ lcc.getComponentMBean().shutDown();
lcc.unregisterMbeans(managementContext);
registry.deregisterComponent(component);
environmentContext.unreregister(lcc);
@@ -830,8 +829,7 @@
* @return the LocalComponentConnector
*/
public LocalComponentConnector getLocalComponentConnector(String componentName) {
- ComponentNameSpace cns = new ComponentNameSpace(name, componentName, componentName);
- return registry.getLocalComponentConnector(cns);
+ return registry.getLocalComponentConnector(componentName);
}
/**
@@ -922,7 +920,7 @@
* @throws JBIException
*/
public ObjectName activateComponent(Component component, ActivationSpec activationSpec) throws JBIException {
- return activateComponent(component, "POJO Component", activationSpec, true, true, true);
+ return activateComponent(component, "POJO Component", activationSpec, true, false, false);
}
/**
@@ -980,16 +978,16 @@
throws JBIException {
ObjectName result = null;
ComponentNameSpace cns = new ComponentNameSpace(getName(), activationSpec.getComponentName(), activationSpec.getId());
- log.info("Activating component for: " + cns + " with service: " + activationSpec.getService() + " component: "
- + component);
- DeliveryChannelImpl dc = new DeliveryChannelImpl(this, activationSpec.getComponentName());
- LocalComponentConnector lcc = registry.registerComponent(cns, description, component, dc, binding, service);
+ if (log.isDebugEnabled()) {
+ log.info("Activating component for: " + cns + " with service: " + activationSpec.getService() + " component: "
+ + component);
+ }
+ LocalComponentConnector lcc = registry.registerComponent(cns, description, component, binding, service);
if (lcc != null) {
- dc.setConnector(lcc);
lcc.setPojo(pojo);
ComponentEnvironment env = environmentContext.registerComponent(context.getEnvironment(),lcc);
env.setInstallRoot(installationDir);
- context.activate(component, dc, env, activationSpec);
+ context.activate(component, env, activationSpec);
lcc.setContext(context);
lcc.setActivationSpec(activationSpec);
@@ -1001,7 +999,7 @@
lcc.getComponentMBean().start();
}
} else {
- lcc.getComponentMBean().setCurrentState(LifeCycleMBean.SHUTDOWN);
+ lcc.getComponentMBean().doShutDown();
}
result = lcc.registerMBeans(managementContext);
}
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AdminCommandsService.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AdminCommandsService.java?rev=382984&r1=382983&r2=382984&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AdminCommandsService.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AdminCommandsService.java Fri Mar 3 16:31:49 2006
@@ -15,20 +15,20 @@
*/
package org.apache.servicemix.jbi.framework;
-import org.apache.servicemix.jbi.management.BaseSystemService;
-import org.apache.servicemix.jbi.management.OperationInfoHelper;
-import org.apache.servicemix.jbi.management.ParameterHelper;
-
-import javax.jbi.JBIException;
-import javax.jbi.management.DeploymentException;
-import javax.management.MBeanOperationInfo;
-import javax.management.JMException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
+import javax.jbi.JBIException;
+import javax.management.JMException;
+import javax.management.MBeanOperationInfo;
+
+import org.apache.servicemix.jbi.management.BaseSystemService;
+import org.apache.servicemix.jbi.management.OperationInfoHelper;
+import org.apache.servicemix.jbi.management.ParameterHelper;
+
public class AdminCommandsService extends BaseSystemService implements AdminCommandsServiceMBean {
/**
@@ -62,12 +62,9 @@
public String installComponent(String file, Properties props) throws Exception {
try {
container.getInstallationService().install(file);
- return success("installComponent", file);
-
- } catch (DeploymentException e) {
- throw new RuntimeException(failure("installComponent", file, null, e));
+ return ManagementSupport.createSuccessMessage("installComponent", file);
} catch (Exception e) {
- throw new RuntimeException(failure("installComponent", file, null, e));
+ throw ManagementSupport.failure("installComponent", file, e);
}
}
@@ -82,7 +79,7 @@
if (success) {
return success("uninstallComponent", name);
} else {
- return failure("uninstallComponent", name, "Failed", null);
+ return failure("uninstallComponent", name, null);
}
}
@@ -107,7 +104,7 @@
if (success) {
return success("uninstallSharedLibrary", name);
} else {
- return failure("uninstallSharedLibrary", name, "Failed", null);
+ return failure("uninstallSharedLibrary", name, null);
}
}
@@ -127,7 +124,7 @@
lcc.getComponentMBean().start();
return success("startComponent", name);
} catch (JBIException e) {
- throw new RuntimeException(failure("startComponent", name, null, e));
+ throw new RuntimeException(failure("startComponent", name, e));
}
}
@@ -147,7 +144,7 @@
lcc.getComponentMBean().stop();
return success("stopComponent", name);
} catch (JBIException e) {
- throw new RuntimeException(failure("stopComponent", name, null, e));
+ throw new RuntimeException(failure("stopComponent", name, e));
}
}
@@ -167,7 +164,7 @@
lcc.getComponentMBean().shutDown();
return success("shutdownComponent", name);
} catch (JBIException e) {
- throw new RuntimeException(failure("shutdownComponent", name, null, e));
+ throw new RuntimeException(failure("shutdownComponent", name, e));
}
}
@@ -178,13 +175,7 @@
* @return
*/
public String deployServiceAssembly(String file) throws Exception {
- try {
- container.getDeploymentService().deploy(file);
- return success("installComponent", file);
-
- } catch (Exception e) {
- throw new RuntimeException(failure("deployServiceAssembly", file, null, e));
- }
+ return container.getDeploymentService().deploy(file);
}
/**
@@ -199,7 +190,7 @@
return success("undeployServiceAssembly", name);
} catch (Exception e) {
- throw new RuntimeException(failure("undeployServiceAssembly", name, null, e));
+ throw new RuntimeException(failure("undeployServiceAssembly", name, e));
}
}
@@ -215,7 +206,7 @@
return success("startServiceAssembly", name);
} catch (Exception e) {
- throw new RuntimeException(failure("startServiceAssembly", name, null, e));
+ throw new RuntimeException(failure("startServiceAssembly", name, e));
}
}
@@ -231,7 +222,7 @@
return success("stopServiceAssembly", name);
} catch (Exception e) {
- throw new RuntimeException(failure("stopServiceAssembly", name, null, e));
+ throw new RuntimeException(failure("stopServiceAssembly", name, e));
}
}
@@ -247,7 +238,7 @@
return success("shutdownServiceAssembly", name);
} catch (Exception e) {
- throw new RuntimeException(failure("shutdownServiceAssembly", name, null, e));
+ throw new RuntimeException(failure("shutdownServiceAssembly", name, e));
}
}
@@ -265,7 +256,7 @@
return success("installArchive", location);
} catch (Exception e) {
- throw new RuntimeException(failure("shutdownServiceAssembly", location, null, e));
+ throw new RuntimeException(failure("shutdownServiceAssembly", location, e));
}
}
@@ -279,68 +270,42 @@
* @param serviceAssemblyName
* @return list of components in an XML blob
*/
- public String listComponents(boolean serviceEngines, boolean bindingComponents, String state, String sharedLibraryName, String serviceAssemblyName) throws Exception {
- return listAllComponents(serviceEngines, bindingComponents, state, sharedLibraryName, serviceAssemblyName, true);
- }
-
- /**
- * Prints information about all JBI components (Service Engine or Binding Component) installed
- *
- * @param serviceEngines
- * @param bindingComponents
- * @param state
- * @param sharedLibraryName
- * @param serviceAssemblyName
- * @return
- */
- public String listJBIComponents(boolean serviceEngines, boolean bindingComponents, String state, String sharedLibraryName, String serviceAssemblyName) throws Exception {
- return listAllComponents(serviceEngines, bindingComponents, state, sharedLibraryName, serviceAssemblyName, false);
- }
-
- /**
- * Prints information about all components (Service Engine or Binding Component) installed
- *
- * @param serviceEngines
- * @param bindingComponents
- * @param state
- * @param sharedLibraryName
- * @param serviceAssemblyName
- * @return
- */
- public String listAllComponents(boolean serviceEngines, boolean bindingComponents, String state, String sharedLibraryName, String serviceAssemblyName, boolean pojo) throws Exception {
+ public String listComponents(boolean excludeSEs,
+ boolean excludeBCs,
+ boolean excludePojos,
+ String requiredState,
+ String sharedLibraryName,
+ String serviceAssemblyName) throws Exception {
Collection connectors = container.getRegistry().getLocalComponentConnectors();
List components = new ArrayList();
for (Iterator iter = connectors.iterator(); iter.hasNext();) {
LocalComponentConnector lcc = (LocalComponentConnector) iter.next();
-
- // If we want SE, and it is not one, skip
- if (!serviceEngines && !lcc.isService()) {
+ // Skip SEs if needed
+ if (excludeSEs && lcc.isService()) {
continue;
}
- // If we want BC, and it is not one, skip
- if (!bindingComponents && !lcc.isBinding()) {
+ // Skip BCs if needed
+ if (excludeBCs && lcc.isBinding()) {
+ continue;
+ }
+ // Skip Pojos if needed
+ if (excludePojos && lcc.isPojo()) {
continue;
}
// Check status
- if (state != null && state.length() > 0 && !state.equals(lcc.getComponentMBean().getCurrentState())) {
- System.out.println("state passed");
+ if (requiredState != null && requiredState.length() > 0 && !requiredState.equals(lcc.getComponentMBean().getCurrentState())) {
continue;
}
-
// Check shared library
+ // TODO: check component dependency on SL
if (sharedLibraryName != null && sharedLibraryName.length() > 0 && !container.getInstallationService().containsSharedLibrary(sharedLibraryName)) {
continue;
}
-
// Check deployed service assembly
+ // TODO: check SA dependency on component
if (serviceAssemblyName != null && serviceAssemblyName.length() > 0 && !container.getDeploymentService().isSaDeployed(serviceAssemblyName)) {
continue;
}
-
- if (lcc.isPojo() && !pojo){
- continue;
- }
-
components.add(lcc);
}
@@ -369,38 +334,6 @@
}
/**
- * Prints information about all Pojo components installed
- * @return XML string
- */
- public String listPojoComponents() throws Exception {
- Collection connectors = container.getRegistry().getLocalComponentConnectors();
- List components = new ArrayList();
- for(Iterator iter=connectors.iterator();iter.hasNext();){
- LocalComponentConnector lcc=(LocalComponentConnector) iter.next();
- if(lcc.isPojo()){
- components.add(lcc);
- }
- }
-
- StringBuffer buffer = new StringBuffer();
- buffer.append("<?xml version='1.0'?>\n");
- buffer.append("<component-info-list xmlns='http://java.sun.com/xml/ns/jbi/component-info-list' version='1.0'>\n");
- for (Iterator iter = components.iterator(); iter.hasNext();) {
- LocalComponentConnector lcc = (LocalComponentConnector) iter.next();
- buffer.append(" name='" + lcc.getComponentNameSpace().getName() + "'");
- buffer.append(" state='" + lcc.getComponentMBean().getCurrentState() + "'>");
- if (lcc.getPacket().getDescription() != null) {
- buffer.append("\t\t<description>");
- buffer.append(lcc.getPacket().getDescription());
- buffer.append("<description>\n");
- }
- buffer.append("\t</component-info>\n");
- }
- buffer.append("</component-info-list>");
- return buffer.toString();
- }
-
- /**
* Prints information about shared libraries installed.
*
* @param componentName
@@ -430,32 +363,32 @@
result = container.getRegistry().getDeployedServiceAssemblies();
}
- List components = new ArrayList();
+ List assemblies = new ArrayList();
for (int i = 0; i < result.length; i++) {
+ ServiceAssemblyLifeCycle sa = container.getRegistry().getServiceAssembly(result[i]);
// Check status
- if (state != null && state.length() > 0 && !state.equals(container.getRegistry().getServiceAssemblyState(result[i]))) {
+ if (state != null && state.length() > 0 && !state.equals(sa.getCurrentState())) {
continue;
}
- components.add(result[i]);
+ assemblies.add(sa);
}
StringBuffer buffer = new StringBuffer();
buffer.append("<?xml version='1.0'?>\n");
buffer.append("<service-assembly-info-list xmlns='http://java.sun.com/xml/ns/jbi/component-info-list' version='1.0'>\n");
- for (Iterator iter = components.iterator(); iter.hasNext();) {
- String name = (String) iter.next();
-
+ for (Iterator iter = assemblies.iterator(); iter.hasNext();) {
+ ServiceAssemblyLifeCycle sa = (ServiceAssemblyLifeCycle) iter.next();
buffer.append("\t<service-assembly-info");
- buffer.append(" name='" + name + "'");
- buffer.append(" state='" + container.getRegistry().getServiceAssemblyState(name) + "'/>");
- buffer.append(" <description>" + container.getRegistry().getServiceAssemblyDesc(name) + "</description>");
+ buffer.append(" name='" + sa.getName() + "'");
+ buffer.append(" state='" + sa.getCurrentState() + "'/>");
+ buffer.append(" <description>" + sa.getDescription() + "</description>");
buffer.append("\t</service-assembly-info>\n");
- String[] serviceUnitList = container.getRegistry().getSADeployedServiceUnitList(name);
+ ServiceUnitLifeCycle[] serviceUnitList = sa.getDeployedSUs();
for (int i = 0; i < serviceUnitList.length; i++) {
buffer.append("\t<service-unit-info");
- buffer.append(" name='" + serviceUnitList[i] + "'");
- buffer.append(" state='" + container.getRegistry().getSADeployedServiceUnitDesc(name, serviceUnitList[i]) + "/>");
+ buffer.append(" name='" + serviceUnitList[i].getName() + "'");
+ buffer.append(" state='" + serviceUnitList[i].getCurrentState() + "/>");
buffer.append("\t</service-unit-info");
}
}
@@ -464,24 +397,22 @@
return buffer.toString();
}
- public String failure(String task, String componentName, String info, Exception e) {
+ public String failure(String task, String location, Exception e) {
ManagementSupport.Message msg = new ManagementSupport.Message();
- msg.setComponent(componentName);
msg.setTask(task);
msg.setResult("FAILED");
msg.setType("ERROR");
msg.setException(e);
- msg.setMessage(info);
- return ManagementSupport.createComponentMessage(msg);
+ msg.setMessage(location);
+ return ManagementSupport.createFrameworkMessage(msg, (List) null);
}
- public String success(String task, String componentName) {
+ public String success(String task, String location) {
ManagementSupport.Message msg = new ManagementSupport.Message();
- msg.setComponent(componentName);
msg.setTask(task);
+ msg.setMessage(location);
msg.setResult("SUCCESS");
- // TODO: change the generated xml
- return ManagementSupport.createComponentMessage(msg);
+ return ManagementSupport.createFrameworkMessage(msg, (List) null);
}
public MBeanOperationInfo[] getOperationInfos() throws JMException {
@@ -500,7 +431,6 @@
ph = helper.addOperation(getObjectToManage(), "installArchive", 1, "install an archive (component/SA etc)");
ph.setDescription(0, "location", "file name or url to the location");
-
ph = helper.addOperation(getObjectToManage(), "startComponent", 1, "start a component");
ph.setDescription(0, "name", "name of component to start");
@@ -527,21 +457,13 @@
ph.setDescription(0, "name", "name of service assembly to shutdown");
ph = helper.addOperation(getObjectToManage(), "listComponents", 5, "list all components installed");
- ph.setDescription(0, "serviceEngines", "if true will list service engines");
- ph.setDescription(1, "bindingComponents", "if true will list binding components");
- ph.setDescription(2, "state", "component state to list, if null will list all");
- ph.setDescription(3, "sharedLibraryName", "shared library name to list");
- ph.setDescription(4, "serviceAssemblyName", "service assembly name to list");
-
- ph = helper.addOperation(getObjectToManage(), "listJBIComponents", 5, "list JBI components installed");
- ph.setDescription(0, "serviceEngines", "if true will list service engines");
- ph.setDescription(1, "bindingComponents", "if true will list binding components");
- ph.setDescription(2, "state", "component state to list, if null will list all");
+ ph.setDescription(0, "excludeSEs", "if true will exclude service engines");
+ ph.setDescription(1, "excludeBCs", "if true will exclude binding components");
+ ph.setDescription(1, "excludePojos", "if true will exclude pojos components");
+ ph.setDescription(2, "requiredState", "component state to list, if null will list all");
ph.setDescription(3, "sharedLibraryName", "shared library name to list");
ph.setDescription(4, "serviceAssemblyName", "service assembly name to list");
- ph = helper.addOperation(getObjectToManage(), "listPojoComponents", "list all POJO Components");
-
ph = helper.addOperation(getObjectToManage(), "listSharedLibraries", 2, "list shared library");
ph.setDescription(0, "componentName", "component name");
ph.setDescription(1, "sharedLibraryName", "shared library name");
@@ -550,11 +472,6 @@
ph.setDescription(0, "state", "service assembly state to list");
ph.setDescription(1, "componentName", "component name");
ph.setDescription(2, "serviceAssemblyName", "service assembly name");
-
-
-
-
-
return OperationInfoHelper.join(super.getOperationInfos(), helper.getOperationInfos());
}
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AdminCommandsServiceMBean.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AdminCommandsServiceMBean.java?rev=382984&r1=382983&r2=382984&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AdminCommandsServiceMBean.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AdminCommandsServiceMBean.java Fri Mar 3 16:31:49 2006
@@ -19,7 +19,8 @@
*
* @version $Revision: 657 $
*/
-public interface AdminCommandsServiceMBean extends LifeCycleMBean{
+public interface AdminCommandsServiceMBean extends LifeCycleMBean {
+
String installComponent(String file) throws Exception;
String installComponent(String file,Properties properties) throws Exception;
@@ -48,15 +49,17 @@
String installArchive(String location) throws Exception;
- String listComponents(boolean serviceEngines,boolean bindingComponents,String state,String sharedLibraryName,
- String serviceAssemblyName) throws Exception;
-
- String listJBIComponents(boolean serviceEngines,boolean bindingComponents,String state,String sharedLibraryName,
- String serviceAssemblyName) throws Exception;
-
- String listPojoComponents() throws Exception;
-
- String listSharedLibraries(String componentName,String sharedLibraryName) throws Exception;
-
- String listServiceAssemblies(String state,String componentName,String serviceAssemblyName) throws Exception;
+ String listComponents(boolean excludeSEs,
+ boolean excludeBCs,
+ boolean excludePojos,
+ String requiredState,
+ String sharedLibraryName,
+ String serviceAssemblyName) throws Exception;
+
+ String listSharedLibraries(String componentName,
+ String sharedLibraryName) throws Exception;
+
+ String listServiceAssemblies(String state,
+ String componentName,
+ String serviceAssemblyName) throws Exception;
}
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AutoDeploymentService.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AutoDeploymentService.java?rev=382984&r1=382983&r2=382984&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AutoDeploymentService.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/AutoDeploymentService.java Fri Mar 3 16:31:49 2006
@@ -15,8 +15,11 @@
*/
package org.apache.servicemix.jbi.framework;
+import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
@@ -61,7 +64,6 @@
public class AutoDeploymentService extends BaseSystemService implements AutoDeploymentServiceMBean {
private static final Log log = LogFactory.getLog(AutoDeploymentService.class);
- private static final String MONITOR_STATE_FILE = ".state.xml";
private EnvironmentContext environmentContext;
protected static final String DESCRIPTOR_FILE = "META-INF/jbi.xml";
private DeploymentService deploymentService;
@@ -203,7 +205,6 @@
String componentName = root.getComponent().getIdentification().getName();
entry.type = "component";
entry.name = componentName;
- log.info("Uninstalling Component: "+componentName);
installationService.unloadInstaller(componentName, true);
installationService.install(tmp, root, autoStart);
checkPendingSAs();
@@ -221,13 +222,13 @@
if (deploymentService.isSaDeployed(name)) {
deploymentService.shutDown(name);
deploymentService.undeploy(name);
- deploymentService.deploy(tmp,sa);
+ deploymentService.deployServiceAssembly(tmp, sa);
if (autoStart) {
deploymentService.start(name);
}
} else {
// see if components are installed
- entry.componentNames = deploymentService.getComponentNames(sa);
+ entry.componentNames = getComponentNames(sa);
String missings = null;
boolean canDeploy = true;
for (Iterator it = entry.componentNames.iterator(); it.hasNext();) {
@@ -242,11 +243,12 @@
}
}
if (canDeploy) {
- deploymentService.deploy(tmp, sa);
+ deploymentService.deployServiceAssembly(tmp, sa);
if (autoStart){
deploymentService.start(name);
}
} else {
+ // TODO: check that the assembly is not already pending
entry.pending = true;
log.info("Components " + missings + " are not installed yet - adding ServiceAssembly "
+ name + " to pending list");
@@ -265,15 +267,26 @@
}
}
+ protected Set getComponentNames(ServiceAssembly sa) {
+ Set names = null;
+ if (sa.getServiceUnits() != null && sa.getServiceUnits().length > 0) {
+ names = new HashSet();
+ for (int i = 0; i < sa.getServiceUnits().length; i++) {
+ names.add(sa.getServiceUnits()[i].getTarget().getComponentName());
+ }
+ }
+ return names;
+ }
+
/**
* Remove an archive location
*
* @param location
* @throws DeploymentException
*/
- public void removeArchive(ArchiveEntry entry) throws DeploymentException{
+ public void removeArchive(ArchiveEntry entry) throws DeploymentException {
log.info("Attempting to remove archive at: " + entry.location);
- try{
+ try{
container.getBroker().suspend();
if ("component".equals(entry.type)) {
log.info("Uninstalling component: " + entry.name);
@@ -287,14 +300,14 @@
installationService.uninstallSharedLibrary(entry.name);
}
if ("assembly".equals(entry.type)) {
- log.info("Removing service assembly " + entry.name);
+ log.info("Undeploying service assembly " + entry.name);
try{
if(deploymentService.isSaDeployed(entry.name)){
deploymentService.shutDown(entry.name);
deploymentService.undeploy(entry.name);
}
} catch(Exception e) {
- String errStr="Failed to update service assembly: "+ entry.name;
+ String errStr = "Failed to update service assembly: "+ entry.name;
log.error(errStr,e);
throw new DeploymentException(errStr,e);
}
@@ -327,7 +340,7 @@
deployedSas.add(tmp);
try {
Descriptor root = AutoDeploymentService.buildDescriptor(tmp);
- deploymentService.deploy(tmp, root.getServiceAssembly());
+ deploymentService.deployServiceAssembly(tmp, root.getServiceAssembly());
deploymentService.start(root.getServiceAssembly().getIdentification().getName());
} catch (Exception e) {
String errStr = "Failed to update Service Assembly: " + tmp.getName();
@@ -348,41 +361,6 @@
}
/**
- * Check to see if an archive is installed
- *
- * @param location
- * @return the Descriptor if installed
- */
- protected Descriptor getInstalledDescriptor(String location) throws JBIException{
- Descriptor result=null;
- boolean exists=false;
- try{
- File tmp=AutoDeploymentService.unpackLocation(environmentContext.getTmpDir(),location);
- Descriptor root=AutoDeploymentService.buildDescriptor(tmp);
- if(root.getComponent()!=null){
- String componentName=root.getComponent().getIdentification().getName();
- exists=container.getRegistry().isLocalComponentRegistered(componentName);
- }else if(root.getServiceAssembly()!=null){
- ServiceAssembly sa=root.getServiceAssembly();
- String name=sa.getIdentification().getName();
- exists=deploymentService.isSaDeployed(name);
- }else if(root.getSharedLibrary()!=null){
- String name=root.getSharedLibrary().getIdentification().getName();
- exists=installationService.containsSharedLibrary(name);
- }
- if(exists){
- result=root;
- }else{
- FileUtil.deleteFile(tmp);
- }
- }catch(DeploymentException e){
- result=null;
- log.error("Could not process "+location,e);
- }
- return result;
- }
-
- /**
* Get an array of MBeanAttributeInfo
*
* @return array of AttributeInfos
@@ -403,62 +381,84 @@
* @return the Descriptor object
*/
protected static Descriptor buildDescriptor(File tmpDir){
- Descriptor root=null;
- File descriptorFile=new File(tmpDir,DESCRIPTOR_FILE);
- if(descriptorFile.exists()){
- ClassLoader cl=Thread.currentThread().getContextClassLoader();
- try{
+ Descriptor root = null;
+ File descriptorFile = new File(tmpDir, DESCRIPTOR_FILE);
+ if (descriptorFile.exists()) {
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ try {
Thread.currentThread().setContextClassLoader(AutoDeploymentService.class.getClassLoader());
- FileSystemXmlApplicationContext context=new FileSystemXmlApplicationContext("file:///"
- +descriptorFile.getAbsolutePath(),Arrays.asList(new Object[] { new XBeanProcessor() }));
- root=(Descriptor) context.getBean("jbi");
- }finally{
+ FileSystemXmlApplicationContext context = new FileSystemXmlApplicationContext(
+ "file:///" + descriptorFile.getAbsolutePath(),
+ Arrays.asList(new Object[] { new XBeanProcessor() }));
+ root = (Descriptor) context.getBean("jbi");
+ } finally {
Thread.currentThread().setContextClassLoader(cl);
}
}
return root;
}
+
+ protected static String getDescriptorAsText(File tmpDir) {
+ File descriptorFile = new File(tmpDir, DESCRIPTOR_FILE);
+ if (descriptorFile.exists()) {
+ try {
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ InputStream is = new FileInputStream(descriptorFile);
+ FileUtil.copyInputStream(is, os);
+ return os.toString();
+ } catch (Exception e) {
+ log.debug("Error reading jbi descritor: " + descriptorFile, e);
+ }
+ }
+ return null;
+ }
/**
- * Unpack a location into a temp file directory
+ * Unpack a location into a temp file directory.
+ * If the location does not contain a jbi descritor, no unpacking occurs.
*
* @param location
- * @return tmp directory
+ * @return tmp directory (if location contains a jbi descriptor)
* @throws DeploymentException
*/
- protected static File unpackLocation(File tmpRoot,String location) throws DeploymentException{
- File tmpDir=null;
- try{
- File file=new File(location);
- if(file.isDirectory()){
- log.info("Deploying an exploded jar/zip, we will create a temporary jar for it.");
+ protected static File unpackLocation(File tmpRoot, String location) throws DeploymentException {
+ File tmpDir = null;
+ try {
+ File file = new File(location);
+ if (file.isDirectory()) {
+ if (log.isDebugEnabled()) {
+ log.debug("Deploying an exploded jar/zip, we will create a temporary jar for it.");
+ }
// If we have a directory then we should move it over
- File newFile=new File(tmpRoot.getAbsolutePath()+"/exploded.jar");
+ File newFile = new File(tmpRoot.getAbsolutePath() + "/exploded.jar");
newFile.delete();
- FileUtil.zipDir(file.getAbsolutePath(),newFile.getAbsolutePath());
- file=newFile;
- log.info("Deployment will now work from "+file.getAbsolutePath());
+ FileUtil.zipDir(file.getAbsolutePath(), newFile.getAbsolutePath());
+ file = newFile;
+ if (log.isDebugEnabled()) {
+ log.debug("Deployment will now work from " + file.getAbsolutePath());
+ }
}
- if(!file.exists()){
+ if (!file.exists()) {
// assume it's a URL
try{
- URL url=new URL(location);
- String fileName=url.getFile();
- if(fileName==null||(!fileName.endsWith(".zip")&&!fileName.endsWith(".jar"))){
- throw new DeploymentException("Location: "+location+" is not an archive");
+ URL url = new URL(location);
+ String fileName = url.getFile();
+ if (fileName == null || (!fileName.endsWith(".zip") && !fileName.endsWith(".jar"))) {
+ throw new DeploymentException("Location: " + location + " is not an archive");
}
- file=FileUtil.unpackArchive(url,tmpRoot);
- }catch(MalformedURLException e){
+ file = FileUtil.unpackArchive(url,tmpRoot);
+ } catch (MalformedURLException e) {
throw new DeploymentException(e);
}
}
- if(FileUtil.archiveContainsEntry(file,AutoDeploymentService.DESCRIPTOR_FILE)){
- tmpDir=FileUtil.createUniqueDirectory(tmpRoot,file.getName());
- FileUtil.unpackArchive(file,tmpDir);
- log.info("Unpacked archive "+location+" to "+tmpDir);
+ if (FileUtil.archiveContainsEntry(file, AutoDeploymentService.DESCRIPTOR_FILE)) {
+ tmpDir = FileUtil.createUniqueDirectory(tmpRoot, file.getName());
+ FileUtil.unpackArchive(file, tmpDir);
+ if (log.isDebugEnabled()) {
+ log.debug("Unpacked archive " + location + " to " + tmpDir);
+ }
}
- }catch(IOException e){
- log.error("I/O error installing archive",e);
+ } catch (IOException e) {
throw new DeploymentException(e);
}
return tmpDir;
@@ -554,26 +554,26 @@
}
}
- private void persistState(File root,Map map){
- try{
- File file = FileUtil.getDirectoryPath(root,MONITOR_STATE_FILE);
+ private void persistState(File root, Map map) {
+ try {
+ File file = new File(environmentContext.getJbiRootDir(), root.getName() + ".xml");
XmlPersistenceSupport.write(file, map);
- }catch(IOException e){
- log.error("Failed to persist file state to: "+root,e);
+ } catch (IOException e) {
+ log.error("Failed to persist file state to: " + root, e);
}
}
- private Map readState(File root){
+ private Map readState(File root) {
Map result = new HashMap();
- try{
- File file = FileUtil.getDirectoryPath(root,MONITOR_STATE_FILE);
- if(file.exists()) {
+ try {
+ File file = new File(environmentContext.getJbiRootDir(), root.getName() + ".xml");
+ if (file.exists()) {
result = (Map) XmlPersistenceSupport.read(file);
- }else {
+ } else {
log.debug("State file doesn't exist: " + file.getPath());
}
- }catch(Exception e){
- log.error("Failed to read file state from: "+root,e);
+ } catch (Exception e) {
+ log.error("Failed to read file state from: " + root, e);
}
return result;
}
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentContextImpl.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentContextImpl.java?rev=382984&r1=382983&r2=382984&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentContextImpl.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentContextImpl.java Fri Mar 3 16:31:49 2006
@@ -15,16 +15,8 @@
*/
package org.apache.servicemix.jbi.framework;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.servicemix.jbi.container.ActivationSpec;
-import org.apache.servicemix.jbi.container.ComponentEnvironment;
-import org.apache.servicemix.jbi.container.JBIContainer;
-import org.apache.servicemix.jbi.container.SubscriptionSpec;
-import org.apache.servicemix.jbi.messaging.DeliveryChannelImpl;
-import org.apache.servicemix.jbi.servicedesc.InternalEndpoint;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentFragment;
+import java.util.MissingResourceException;
+import java.util.logging.Logger;
import javax.jbi.JBIException;
import javax.jbi.component.Component;
@@ -39,8 +31,15 @@
import javax.resource.spi.work.WorkManager;
import javax.xml.namespace.QName;
-import java.util.MissingResourceException;
-import java.util.logging.Logger;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.servicemix.jbi.container.ActivationSpec;
+import org.apache.servicemix.jbi.container.ComponentEnvironment;
+import org.apache.servicemix.jbi.container.JBIContainer;
+import org.apache.servicemix.jbi.container.SubscriptionSpec;
+import org.apache.servicemix.jbi.servicedesc.InternalEndpoint;
+import org.w3c.dom.Document;
+import org.w3c.dom.DocumentFragment;
/**
* This context provides access to data needed by all JBI components running in the JBI environment.
@@ -77,13 +76,11 @@
* @param spec
* @param installRoot
*/
- public void activate(Component component, DeliveryChannelImpl channel, ComponentEnvironment env,
+ public void activate(Component component, ComponentEnvironment env,
ActivationSpec spec) {
this.component = component;
- this.deliveryChannel = channel;
this.environment = env;
this.activationSpec = spec;
- channel.setContext(this);
activated = true;
//activate and subscriptions
container.getRegistry().registerSubscriptions(this, spec);
@@ -129,7 +126,9 @@
*/
public ServiceEndpoint activateEndpoint(QName serviceName, String endpointName) throws JBIException {
checkActivated();
- log.info("Component: " + componentName.getName() + " activated endpoint: " + serviceName + " : " + endpointName);
+ if (log.isDebugEnabled()) {
+ log.debug("Component: " + componentName.getName() + " activated endpoint: " + serviceName + " : " + endpointName);
+ }
return container.getRegistry().activateEndpoint(this, serviceName, endpointName);
}
@@ -199,7 +198,7 @@
* @return the Delivery Channel
* @throws MessagingException
*/
- public DeliveryChannel getDeliveryChannel() throws MessagingException {
+ public DeliveryChannel getDeliveryChannel() {
return deliveryChannel;
}
@@ -301,9 +300,8 @@
/**
* @param deliveryChannel The deliveryChannel to set.
*/
- public void setDeliveryChannel(DeliveryChannelImpl deliveryChannel) {
+ public void setDeliveryChannel(DeliveryChannel deliveryChannel) {
this.deliveryChannel = deliveryChannel;
- deliveryChannel.setContext(this);
}
/**
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBean.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBean.java?rev=382984&r1=382983&r2=382984&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBean.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBean.java Fri Mar 3 16:31:49 2006
@@ -23,40 +23,6 @@
*/
public interface ComponentMBean extends ComponentLifeCycleMBean {
-
- /**
- * Get the Inbound MessageExchange count
- *
- * @return inbound count
- */
- public long getInboundExchangeCount();
-
- /**
- * Get the Inbound MessageExchange rate (number/sec)
- *
- * @return the inbound exchange rate
- */
- public double getInboundExchangeRate();
-
- /**
- * Get the Outbound MessageExchange count
- *
- * @return outbound count
- */
- public long getOutboundExchangeCount();
-
- /**
- * Get the Outbound MessageExchange rate (number/sec)
- *
- * @return the outbound exchange rate
- */
- public double getOutboundExchangeRate();
-
- /**
- * reset all stats counters
- */
- public void reset();
-
/**
* Is MessageExchange sender throttling enabled ?
* @return true if throttling enabled
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java?rev=382984&r1=382983&r2=382984&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentMBeanImpl.java Fri Mar 3 16:31:49 2006
@@ -16,6 +16,7 @@
package org.apache.servicemix.jbi.framework;
import javax.jbi.JBIException;
+import javax.jbi.management.DeploymentException;
import javax.management.JMException;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanOperationInfo;
@@ -23,6 +24,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.servicemix.jbi.container.JBIContainer;
import org.apache.servicemix.jbi.management.AttributeInfoHelper;
import org.apache.servicemix.jbi.management.BaseLifeCycle;
import org.apache.servicemix.jbi.management.OperationInfoHelper;
@@ -35,7 +37,6 @@
private static Log log = LogFactory.getLog(ComponentMBeanImpl.class);
private LocalComponentConnector connector;
- private ObjectName objectName;
/**
@@ -61,13 +62,6 @@
}
/**
- * Get the ObjectName for this mbean
- * @return the ObjectName
- */
- public ObjectName getObjectName(){
- return objectName;
- }
- /**
* Get the name of the item
* @return the name
*/
@@ -96,7 +90,8 @@
}
- public void init() throws JBIException{
+ public void init() throws JBIException {
+ log.info("Initializing component: " + connector.getContext().getComponentName());
connector.init();
super.init();
}
@@ -107,6 +102,7 @@
* @exception javax.jbi.JBIException if the item fails to start.
*/
public void start() throws javax.jbi.JBIException {
+ log.info("Starting component: " + connector.getContext().getComponentName());
try {
doStart();
connector.writeRunningState();
@@ -128,6 +124,7 @@
* @exception javax.jbi.JBIException if the item fails to stop.
*/
public void stop() throws javax.jbi.JBIException {
+ log.info("Stopping component: " + connector.getContext().getComponentName());
try {
doStop();
connector.writeRunningState();
@@ -149,6 +146,7 @@
* @exception javax.jbi.JBIException if the item fails to shut down.
*/
public void shutDown() throws javax.jbi.JBIException {
+ log.info("Shutting down component: " + connector.getContext().getComponentName());
try {
doShutDown();
connector.writeRunningState();
@@ -164,6 +162,10 @@
}
}
+ public void setShutdownStateAfterInstall() {
+ setCurrentState(SHUTDOWN);
+ }
+
/**
* Start the item - doesn't persist the state
*
@@ -177,6 +179,8 @@
if (!isStarted()) {
connector.getLifeCycle().start();
super.start();
+ initServiceAssemblies();
+ startServiceAssemblies();
}
}
@@ -188,10 +192,10 @@
*/
public void doStop() throws javax.jbi.JBIException {
if (isUnknown() || isStarted()) {
+ stopServiceAssemblies();
connector.getLifeCycle().stop();
super.stop();
}
-
}
/**
@@ -200,11 +204,16 @@
* @exception javax.jbi.JBIException if the item fails to shut down.
*/
public void doShutDown() throws javax.jbi.JBIException {
- doStop();
// Transition from UNKNOWN to SHUTDOWN is done at installation time
// In this case or if the component is already shut down, do nothing
- if (!getCurrentState().equals(UNKNOWN) && !getCurrentState().equals(SHUTDOWN)) {
+ if (!isUnknown() && !isShutDown()) {
+ doStop();
+ shutDownServiceAssemblies();
connector.getLifeCycle().shutDown();
+ if (connector.getDeliveryChannel() != null) {
+ connector.getDeliveryChannel().close();
+ connector.setDeliveryChannel(null);
+ }
}
super.shutDown();
}
@@ -228,60 +237,15 @@
/**
- * Get the Inbound MessageExchange count
- *
- * @return inbound count
- */
- public long getInboundExchangeCount() {
- return connector.getDeliveryChannel().getMessagingStats().getInboundExchanges().getCount();
- }
-
- /**
- * Get the Inbound MessageExchange rate (number/sec)
- *
- * @return the inbound exchange rate
- */
- public double getInboundExchangeRate() {
- return connector.getDeliveryChannel().getMessagingStats().getInboundExchangeRate().getAveragePerSecond();
- }
-
- /**
- * Get the Outbound MessageExchange count
- *
- * @return outbound count
- */
- public long getOutboundExchangeCount() {
- return connector.getDeliveryChannel().getMessagingStats().getOutboundExchanges().getCount();
- }
-
- /**
- * Get the Outbound MessageExchange rate (number/sec)
- *
- * @return the outbound exchange rate
- */
- public double getOutboundExchangeRate() {
- return connector.getDeliveryChannel().getMessagingStats().getOutboundExchangeRate().getAveragePerSecond();
- }
-
- /**
- * reset all stats counters
- */
- public void reset() {
- connector.getDeliveryChannel().getMessagingStats().getOutboundExchangeRate().reset();
- }
-
- /**
- * @return size of the inbound Queue
- */
- public int getInboundQueueSize(){
- return connector.getDeliveryChannel().getQueueSize();
- }
-
- /**
* @return the capacity of the inbound queue
*/
public int getInboundQueueCapacity(){
- return connector.getDeliveryChannel().getQueueCapacity();
+ // TODO: should not be on the delivery channel
+ if (connector.getDeliveryChannel() != null) {
+ return connector.getDeliveryChannel().getQueueCapacity();
+ } else {
+ return 0;
+ }
}
/**
@@ -289,7 +253,10 @@
* @param value
*/
public void setInboundQueueCapacity(int value){
- connector.getDeliveryChannel().setQueueCapacity(value);
+ // TODO: should not be on the delivery channel
+ if (connector.getDeliveryChannel() != null) {
+ connector.getDeliveryChannel().setQueueCapacity(value);
+ }
}
/**
@@ -297,7 +264,7 @@
* @return true if throttling enabled
*/
public boolean isExchangeThrottling(){
- return connector.getDeliveryChannel().isExchangeThrottling();
+ return connector.isExchangeThrottling();
}
/**
@@ -306,7 +273,7 @@
*
*/
public void setExchangeThrottling(boolean value){
- connector.getDeliveryChannel().setExchangeThrottling(value);
+ connector.setExchangeThrottling(value);
}
/**
@@ -314,7 +281,7 @@
* @return throttling tomeout (ms)
*/
public long getThrottlingTimeout(){
- return connector.getDeliveryChannel().getThrottlingTimeout();
+ return connector.getThrottlingTimeout();
}
/**
@@ -322,7 +289,7 @@
* @param value (ms)
*/
public void setThrottlingTimeout(long value){
- connector.getDeliveryChannel().setThrottlingTimeout(value);
+ connector.setThrottlingTimeout(value);
}
/**
@@ -331,7 +298,7 @@
* @return interval for throttling
*/
public int getThrottlingInterval(){
- return connector.getDeliveryChannel().getThrottlingInterval();
+ return connector.getThrottlingInterval();
}
/**
@@ -340,14 +307,14 @@
* @param value
*/
public void setThrottlingInterval(int value){
- connector.getDeliveryChannel().setThrottlingInterval(value);
+ connector.setThrottlingInterval(value);
}
/**
* @return the ObjectName for the stats MBean for this Component - or null if it doesn't exist
*/
public ObjectName getStatsMBeanName(){
- return connector.getStatsMbeanName();
+ return connector.getStatsMBeanName();
}
/**
* Get an array of MBeanAttributeInfo
@@ -363,7 +330,7 @@
helper.addAttribute(getObjectToManage(), "throttlingInterval", "exchange intervals before throttling");
helper.addAttribute(getObjectToManage(), "extensionMBeanName", "extension mbean name");
helper.addAttribute(getObjectToManage(), "statsMBeanName", "Statistics mbean name");
- return AttributeInfoHelper.join(super.getAttributeInfos(),helper.getAttributeInfos());
+ return AttributeInfoHelper.join(super.getAttributeInfos(), helper.getAttributeInfos());
}
/**
@@ -374,17 +341,52 @@
*/
public MBeanOperationInfo[] getOperationInfos() throws JMException {
OperationInfoHelper helper = new OperationInfoHelper();
- helper.addOperation(getObjectToManage(), "reset", "reset statistic counters");
- return OperationInfoHelper.join(super.getOperationInfos(),helper.getOperationInfos());
+ return OperationInfoHelper.join(super.getOperationInfos(), helper.getOperationInfos());
}
- public void setObjectName(ObjectName objectName) {
- this.objectName = objectName;
- }
-
public void firePropertyChanged(String name, Object oldValue, Object newValue) {
super.firePropertyChanged(name, oldValue, newValue);
}
+ protected void initServiceAssemblies() throws DeploymentException {
+ }
+
+ protected void startServiceAssemblies() throws DeploymentException {
+ }
+
+ protected void stopServiceAssemblies() throws DeploymentException {
+ Registry registry = connector.getContainer().getRegistry();
+ String componentName = connector.getContext().getComponentName();
+ String[] sas = registry.getDeployedServiceAssembliesForComponent(componentName);
+ for (int i = 0; i < sas.length; i++) {
+ ServiceAssemblyLifeCycle sa = registry.getServiceAssembly(sas[i]);
+ if (sa.isStarted()) {
+ try {
+ sa.stop(false);
+ // TODO: add sa to a list of pending sa
+ } catch (Exception e) {
+ log.error("Error stopping service assembly " + sas[i]);
+ }
+ }
+ }
+ }
+
+ protected void shutDownServiceAssemblies() throws DeploymentException {
+ JBIContainer container = connector.getContainer();
+ Registry registry = container.getRegistry();
+ String componentName = connector.getContext().getComponentName();
+ String[] sas = registry.getDeployedServiceAssembliesForComponent(componentName);
+ for (int i = 0; i < sas.length; i++) {
+ ServiceAssemblyLifeCycle sa = registry.getServiceAssembly(sas[i]);
+ if (sa.isStopped()) {
+ try {
+ sa.shutDown(false);
+ // TODO: add sa to a list of pending sa
+ } catch (Exception e) {
+ log.error("Error shutting down service assembly " + sas[i]);
+ }
+ }
+ }
+ }
}
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentRegistry.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentRegistry.java?rev=382984&r1=382983&r2=382984&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentRegistry.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentRegistry.java Fri Mar 3 16:31:49 2006
@@ -15,13 +15,6 @@
*/
package org.apache.servicemix.jbi.framework;
-import edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.servicemix.jbi.messaging.DeliveryChannelImpl;
-
-import javax.jbi.JBIException;
-import javax.jbi.component.Component;
-
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
@@ -29,6 +22,11 @@
import java.util.Map;
import java.util.Set;
+import javax.jbi.JBIException;
+import javax.jbi.component.Component;
+
+import edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap;
+
/**
* Registry for Components
*
@@ -62,12 +60,11 @@
public LocalComponentConnector registerComponent(ComponentNameSpace name,
String description,
Component component,
- DeliveryChannelImpl dc,
boolean binding,
boolean service) {
LocalComponentConnector result = null;
if (!componentMap.containsKey(component)) {
- result = new LocalComponentConnector(name, description, component, dc, binding, service);
+ result = new LocalComponentConnector(registry.getContainer(), name, description, component, binding, service);
componentMap.put(component, result);
localIdMap.put(name, result);
addComponentConnector(result);
@@ -101,6 +98,7 @@
LocalComponentConnector lcc = (LocalComponentConnector) i.next();
lcc.getComponentMBean().doStop();
}
+ runningStateInitialized = false;
}
/**
@@ -112,9 +110,7 @@
for (Iterator i = getLocalComponentConnectors().iterator();i.hasNext();) {
LocalComponentConnector lcc = (LocalComponentConnector) i.next();
lcc.getComponentMBean().persistRunningState();
- lcc.getComponentMBean().doStop();
lcc.getComponentMBean().doShutDown();
- lcc.getDeliveryChannel().close();
}
}
@@ -239,7 +235,6 @@
return localIdMap.values();
}
-
/**
*
* @return Collection of ComponentConnectors held by the registry
@@ -247,6 +242,7 @@
public Collection getComponentConnectors() {
return idMap.values();
}
+
/**
* @return Returns the containerName.
*/
Copied: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStats.java (from r381300, incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBeanImpl.java)
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStats.java?p2=incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStats.java&p1=incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBeanImpl.java&r1=381300&r2=382984&rev=382984&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBeanImpl.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStats.java Fri Mar 3 16:31:49 2006
@@ -18,7 +18,7 @@
import javax.management.JMException;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanOperationInfo;
-import javax.management.ObjectName;
+
import org.apache.servicemix.jbi.management.AttributeInfoHelper;
import org.apache.servicemix.jbi.management.BaseLifeCycle;
import org.apache.servicemix.jbi.management.OperationInfoHelper;
@@ -26,30 +26,19 @@
/**
* Defines basic statistics on the Component
*/
-public class ComponentStatsMBeanImpl extends BaseLifeCycle implements ComponentStatsMBean {
+public class ComponentStats extends BaseLifeCycle implements ComponentStatsMBean {
+
private LocalComponentConnector connector;
- private ObjectName objectName;
-
/**
* Constructor
*
* @param lcc
*/
- public ComponentStatsMBeanImpl(LocalComponentConnector lcc) {
+ public ComponentStats(LocalComponentConnector lcc) {
this.connector = lcc;
}
-
- /**
- * Get the ObjectName for this mbean
- * @return the ObjectName
- */
- public ObjectName getObjectName(){
- return objectName;
- }
-
-
/**
* Get the type of the item
* @return the type
@@ -57,41 +46,34 @@
public String getType() {
return "Component";
}
-
+
public String getSubType() {
return "Statistics";
}
-
+
/**
* Get the name of the item
* @return the name
*/
- public String getName(){
+ public String getName() {
return connector.getComponentNameSpace().getName();
}
-
- /**
+
+ /**
* Get the Description of the item
* @return the description
*/
- public String getDescription(){
+ public String getDescription() {
return "Statistics for " + connector.getComponentPacket().getDescription();
}
-
-
-
-
-
-
-
/**
* Get the Inbound MessageExchange count
*
* @return inbound count
*/
public long getInboundExchangeCount() {
- return connector.getDeliveryChannel().getMessagingStats().getInboundExchanges().getCount();
+ return connector.getMessagingStats().getInboundExchanges().getCount();
}
/**
@@ -100,7 +82,7 @@
* @return the inbound exchange rate
*/
public double getInboundExchangeRate() {
- return connector.getDeliveryChannel().getMessagingStats().getInboundExchangeRate().getAverageTime();
+ return connector.getMessagingStats().getInboundExchangeRate().getAverageTime();
}
/**
@@ -109,7 +91,7 @@
* @return outbound count
*/
public long getOutboundExchangeCount() {
- return connector.getDeliveryChannel().getMessagingStats().getOutboundExchanges().getCount();
+ return connector.getMessagingStats().getOutboundExchanges().getCount();
}
/**
@@ -118,20 +100,27 @@
* @return the outbound exchange rate
*/
public double getOutboundExchangeRate() {
- return connector.getDeliveryChannel().getMessagingStats().getOutboundExchangeRate().getAverageTime();
+ return connector.getMessagingStats().getOutboundExchangeRate().getAverageTime();
}
-
-
/**
* @return size of the inbound Queue
*/
- public int getInboundQueueSize(){
- return connector.getDeliveryChannel().getQueueSize();
+ public int getInboundQueueSize() {
+ if (connector.getDeliveryChannel() != null) {
+ return connector.getDeliveryChannel().getQueueSize();
+ } else {
+ return 0;
+ }
}
-
-
-
+
+ /**
+ * Reset all stats counters
+ */
+ public void reset() {
+ connector.getMessagingStats().reset();
+ }
+
/**
* Get an array of MBeanAttributeInfo
*
@@ -147,7 +136,7 @@
helper.addAttribute(getObjectToManage(), "outboundExchangeRate", "rate of outbound exchanges/sec");
return helper.getAttributeInfos();
}
-
+
/**
* Get an array of MBeanOperationInfo
*
@@ -155,19 +144,8 @@
*/
public MBeanOperationInfo[] getOperationInfos() {
OperationInfoHelper helper = new OperationInfoHelper();
+ helper.addOperation(getObjectToManage(), "reset", "reset statistic counters");
return helper.getOperationInfos();
}
-
-
- /**
- * Set the object name
- * @param objectName
- */
- public void setObjectName(ObjectName objectName) {
- this.objectName = objectName;
- }
-
-
-
}
Modified: incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBean.java
URL: http://svn.apache.org/viewcvs/incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBean.java?rev=382984&r1=382983&r2=382984&view=diff
==============================================================================
--- incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBean.java (original)
+++ incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/framework/ComponentStatsMBean.java Fri Mar 3 16:31:49 2006
@@ -55,4 +55,8 @@
*/
public int getInboundQueueSize();
+ /**
+ * reset all stats counters
+ */
+ public void reset();
}