You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/05/23 17:56:22 UTC
svn commit: r1341915 - in /camel/branches/camel-2.9.x: ./
camel-core/src/main/java/org/apache/camel/impl/
camel-core/src/main/java/org/apache/camel/management/
components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/
Author: davsclaus
Date: Wed May 23 15:56:21 2012
New Revision: 1341915
URL: http://svn.apache.org/viewvc?rev=1341915&view=rev
Log:
CAMEL-5299: Fixed camel-blueprint to not inject CamelContextAware as the context is not ready yet. Improved startup of management using event notifiers, to inject camel context if aware.
Modified:
camel/branches/camel-2.9.x/ (props changed)
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java
camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/ManagementStrategyFactory.java
camel/branches/camel-2.9.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1341908
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=1341915&r1=1341914&r2=1341915&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java Wed May 23 15:56:21 2012
@@ -1459,7 +1459,12 @@ public class DefaultCamelContext extends
}
// start management strategy before lifecycles are started
- getManagementStrategy().start();
+ ManagementStrategy managementStrategy = getManagementStrategy();
+ // inject CamelContext if aware
+ if (managementStrategy instanceof CamelContextAware) {
+ ((CamelContextAware) managementStrategy).setCamelContext(this);
+ }
+ ServiceHelper.startService(managementStrategy);
// start lifecycle strategies
ServiceHelper.startServices(lifecycleStrategies);
Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java?rev=1341915&r1=1341914&r2=1341915&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java Wed May 23 15:56:21 2012
@@ -32,6 +32,7 @@ import org.apache.camel.spi.ManagementAg
import org.apache.camel.spi.ManagementNamingStrategy;
import org.apache.camel.spi.ManagementObjectStrategy;
import org.apache.camel.spi.ManagementStrategy;
+import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.ServiceHelper;
/**
@@ -58,6 +59,13 @@ public class DefaultManagementStrategy i
private ManagementStatisticsLevel statisticsLevel = ManagementStatisticsLevel.All;
private CamelContext camelContext;
+ public DefaultManagementStrategy() {
+ }
+
+ public DefaultManagementStrategy(CamelContext camelContext) {
+ this.camelContext = camelContext;
+ }
+
public List<EventNotifier> getEventNotifiers() {
return eventNotifiers;
}
@@ -182,9 +190,21 @@ public class DefaultManagementStrategy i
}
public void start() throws Exception {
+ ObjectHelper.notNull(camelContext, "CamelContext");
+
if (eventNotifiers != null) {
- ServiceHelper.startServices(eventNotifiers);
+ for (EventNotifier notifier : eventNotifiers) {
+
+ // inject CamelContext if the service is aware
+ if (notifier instanceof CamelContextAware) {
+ CamelContextAware aware = (CamelContextAware) notifier;
+ aware.setCamelContext(camelContext);
+ }
+
+ ServiceHelper.startService(notifier);
+ }
}
+
if (managementAgent != null) {
managementAgent.start();
// set the naming strategy using the domain name from the agent
Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java?rev=1341915&r1=1341914&r2=1341915&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java Wed May 23 15:56:21 2012
@@ -54,11 +54,13 @@ public class ManagedManagementStrategy e
public ManagedManagementStrategy() {
}
- public ManagedManagementStrategy(CamelContext camelContext) {
- this(new DefaultManagementAgent(camelContext));
+ @Deprecated
+ public ManagedManagementStrategy(ManagementAgent managementAgent) {
+ setManagementAgent(managementAgent);
}
- public ManagedManagementStrategy(ManagementAgent managementAgent) {
+ public ManagedManagementStrategy(CamelContext camelContext, ManagementAgent managementAgent) {
+ setCamelContext(camelContext);
setManagementAgent(managementAgent);
}
Modified: camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/ManagementStrategyFactory.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/ManagementStrategyFactory.java?rev=1341915&r1=1341914&r2=1341915&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/ManagementStrategyFactory.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/main/java/org/apache/camel/management/ManagementStrategyFactory.java Wed May 23 15:56:21 2012
@@ -36,7 +36,7 @@ public class ManagementStrategyFactory {
} else {
try {
log.info("JMX enabled. Using ManagedManagementStrategy.");
- answer = new ManagedManagementStrategy(new DefaultManagementAgent(context));
+ answer = new ManagedManagementStrategy(context, new DefaultManagementAgent(context));
// must start it to ensure JMX works and can load needed Spring JARs
ServiceHelper.startService(answer);
// prefer to have it at first strategy
@@ -48,7 +48,7 @@ public class ManagementStrategyFactory {
}
if (answer == null) {
- answer = new DefaultManagementStrategy();
+ answer = new DefaultManagementStrategy(context);
}
return answer;
}
Modified: camel/branches/camel-2.9.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java?rev=1341915&r1=1341914&r2=1341915&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java (original)
+++ camel/branches/camel-2.9.x/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java Wed May 23 15:56:21 2012
@@ -45,7 +45,6 @@ import org.apache.aries.blueprint.mutabl
import org.apache.aries.blueprint.mutable.MutableRefMetadata;
import org.apache.aries.blueprint.mutable.MutableReferenceMetadata;
import org.apache.camel.CamelContext;
-import org.apache.camel.CamelContextAware;
import org.apache.camel.EndpointInject;
import org.apache.camel.Produce;
import org.apache.camel.blueprint.BlueprintCamelContext;
@@ -521,17 +520,9 @@ public class CamelNamespaceHandler imple
public Object beforeInit(Object bean, String beanName, BeanCreator beanCreator, BeanMetadata beanMetadata) {
injectFields(bean, beanName);
injectMethods(bean, beanName);
- if (bean instanceof CamelContextAware) {
- ((CamelContextAware) bean).setCamelContext(getCamelContext());
- }
return bean;
}
- @Override
- public CamelContext getCamelContext() {
- return (CamelContext) blueprintContainer.getComponentInstance(camelContextName);
- }
-
/**
* A strategy method to allow implementations to perform some custom JBI
* based injection of the POJO
@@ -616,14 +607,14 @@ public class CamelNamespaceHandler imple
}
}
- public Object afterInit(Object o, String s, BeanCreator beanCreator, BeanMetadata beanMetadata) {
- return o;
+ public Object afterInit(Object bean, String beanName, BeanCreator beanCreator, BeanMetadata beanMetadata) {
+ return bean;
}
- public void beforeDestroy(Object o, String s) {
+ public void beforeDestroy(Object bean, String beanName) {
}
- public void afterDestroy(Object o, String s) {
+ public void afterDestroy(Object bean, String beanName) {
}
}