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/24 18:18:42 UTC

svn commit: r1342313 - in /camel/trunk: components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/ components/camel-core-xml/src/main/java/org/apache/camel/core/xml/ tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blu...

Author: davsclaus
Date: Thu May 24 16:18:42 2012
New Revision: 1342313

URL: http://svn.apache.org/viewvc?rev=1342313&view=rev
Log:
Blueprint namespace should lookup default blueprint camelcontext if not explict configured in the namespace.

Modified:
    camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
    camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java
    camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/CamelBlueprint8Test.java

Modified: camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java?rev=1342313&r1=1342312&r2=1342313&view=diff
==============================================================================
--- camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java (original)
+++ camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java Thu May 24 16:18:42 2012
@@ -526,9 +526,17 @@ public class CamelNamespaceHandler imple
             this.blueprintContainer = blueprintContainer;
         }
 
+        @Override
+        public CamelContext getCamelContext() {
+            if (blueprintContainer != null) {
+                CamelContext answer = (CamelContext) blueprintContainer.getComponentInstance(camelContextName);
+                return answer;
+            }
+            return null;
+        }
+
         public Object beforeInit(Object bean, String beanName, BeanCreator beanCreator, BeanMetadata beanMetadata) {
-            injectFields(bean, beanName);
-            injectMethods(bean, beanName);
+            // prefer to inject later in afterInit
             return bean;
         }
 
@@ -618,6 +626,8 @@ public class CamelNamespaceHandler imple
 
         public Object afterInit(Object bean, String beanName, BeanCreator beanCreator, BeanMetadata beanMetadata) {
             // we cannot inject CamelContextAware beans as the CamelContext may not be ready
+            injectFields(bean, beanName);
+            injectMethods(bean, beanName);
             return bean;
         }
 

Modified: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java?rev=1342313&r1=1342312&r2=1342313&view=diff
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java (original)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelFactoryBean.java Thu May 24 16:18:42 2012
@@ -23,6 +23,7 @@ import javax.xml.bind.annotation.XmlTran
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
+import org.apache.camel.NoSuchBeanException;
 import org.apache.camel.model.IdentifiedType;
 
 @XmlAccessorType(XmlAccessType.FIELD)
@@ -52,8 +53,13 @@ public abstract class AbstractCamelFacto
     }
 
     public CamelContext getCamelContext() {
+        // when getting CamelContext then we assume it must exists
+
         if (camelContext == null && camelContextId != null) {
             camelContext = getCamelContextWithId(camelContextId);
+            if (camelContext == null) {
+                throw new IllegalStateException("Cannot find CamelContext with id: " + camelContextId);
+            }
         }
         if (camelContext == null) {
             camelContext = discoverDefaultCamelContext();

Modified: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/CamelBlueprint8Test.java
URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/CamelBlueprint8Test.java?rev=1342313&r1=1342312&r2=1342313&view=diff
==============================================================================
--- camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/CamelBlueprint8Test.java (original)
+++ camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/CamelBlueprint8Test.java Thu May 24 16:18:42 2012
@@ -19,7 +19,6 @@ package org.apache.camel.itest.osgi.blue
 import java.lang.reflect.Method;
 
 import org.apache.camel.util.jsse.SSLContextParameters;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.ops4j.pax.exam.Option;
@@ -39,7 +38,6 @@ import static org.ops4j.pax.swissbox.tin
 public class CamelBlueprint8Test extends OSGiBlueprintTestSupport {
 
     @Test
-    @Ignore("Fix me")
     public void testEndpointInjection() throws Exception {
         getInstalledBundle("CamelBlueprintTestBundle10").start();
         BlueprintContainer ctn = getOsgiService(BlueprintContainer.class, "(osgi.blueprint.container.symbolicname=CamelBlueprintTestBundle10)", 10000);
@@ -91,12 +89,12 @@ public class CamelBlueprint8Test extends
         Option[] options = combine(
                 getDefaultCamelKarafOptions(),
 
-//                bundle(newBundle()
-//                        .add("OSGI-INF/blueprint/test.xml", OSGiBlueprintTestSupport.class.getResource("blueprint-10.xml"))
-//                        .add(TestProducer.class)
-//                        .set(Constants.BUNDLE_SYMBOLICNAME, "CamelBlueprintTestBundle10")
-//                        .set(Constants.DYNAMICIMPORT_PACKAGE, "*")
-//                        .build()).noStart(),
+                bundle(newBundle()
+                        .add("OSGI-INF/blueprint/test.xml", OSGiBlueprintTestSupport.class.getResource("blueprint-10.xml"))
+                        .add(TestProducer.class)
+                        .set(Constants.BUNDLE_SYMBOLICNAME, "CamelBlueprintTestBundle10")
+                        .set(Constants.DYNAMICIMPORT_PACKAGE, "*")
+                        .build()).noStart(),
 
 
                 bundle(newBundle()