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 2008/08/01 21:10:50 UTC

svn commit: r681784 - in /servicemix/components/engines/servicemix-drools/trunk: ./ src/main/java/org/apache/servicemix/drools/ src/main/java/org/apache/servicemix/drools/model/ src/main/resources/META-INF/ src/main/resources/META-INF/spring/

Author: gnodet
Date: Fri Aug  1 12:10:49 2008
New Revision: 681784

URL: http://svn.apache.org/viewvc?rev=681784&view=rev
Log:
SM-1387: make servicemix-drools OSGi friendly

Added:
    servicemix/components/engines/servicemix-drools/trunk/src/main/resources/META-INF/
    servicemix/components/engines/servicemix-drools/trunk/src/main/resources/META-INF/spring/
    servicemix/components/engines/servicemix-drools/trunk/src/main/resources/META-INF/spring/servicemix-drools.xml
Modified:
    servicemix/components/engines/servicemix-drools/trunk/pom.xml
    servicemix/components/engines/servicemix-drools/trunk/src/main/java/org/apache/servicemix/drools/DroolsEndpoint.java
    servicemix/components/engines/servicemix-drools/trunk/src/main/java/org/apache/servicemix/drools/model/JbiHelper.java

Modified: servicemix/components/engines/servicemix-drools/trunk/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-drools/trunk/pom.xml?rev=681784&r1=681783&r2=681784&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-drools/trunk/pom.xml (original)
+++ servicemix/components/engines/servicemix-drools/trunk/pom.xml Fri Aug  1 12:10:49 2008
@@ -44,6 +44,19 @@
     <servicemix-shared-version>4.0-SNAPSHOT</servicemix-shared-version>
 
     <drools-version>4.0.7</drools-version>
+
+    <servicemix.osgi.import>
+      org.apache.servicemix.common,
+      org.apache.servicemix.common.osgi,
+      org.apache.servicemix.executors.impl,
+      org.apache.xbean.spring.context.v2,
+      org.springframework.beans.factory.xml,
+      *
+    </servicemix.osgi.import>
+    <servicemix.osgi.export>
+      org.apache.servicemix.drools*;version=${project.version},
+      META-INF.services.org.apache.xbean.spring.http.servicemix.apache.org.drools
+    </servicemix.osgi.export>
   </properties>
 
   <dependencies>

Modified: servicemix/components/engines/servicemix-drools/trunk/src/main/java/org/apache/servicemix/drools/DroolsEndpoint.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-drools/trunk/src/main/java/org/apache/servicemix/drools/DroolsEndpoint.java?rev=681784&r1=681783&r2=681784&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-drools/trunk/src/main/java/org/apache/servicemix/drools/DroolsEndpoint.java (original)
+++ servicemix/components/engines/servicemix-drools/trunk/src/main/java/org/apache/servicemix/drools/DroolsEndpoint.java Fri Aug  1 12:10:49 2008
@@ -199,7 +199,6 @@
     
     protected WorkingMemory createWorkingMemory(MessageExchange exchange) throws Exception {
         return ruleBase.newStatefulSession();
-        //return ruleBase.newWorkingMemory();
     }
 
     protected void populateWorkingMemory(WorkingMemory memory, MessageExchange exchange) throws Exception {

Modified: servicemix/components/engines/servicemix-drools/trunk/src/main/java/org/apache/servicemix/drools/model/JbiHelper.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-drools/trunk/src/main/java/org/apache/servicemix/drools/model/JbiHelper.java?rev=681784&r1=681783&r2=681784&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-drools/trunk/src/main/java/org/apache/servicemix/drools/model/JbiHelper.java (original)
+++ servicemix/components/engines/servicemix-drools/trunk/src/main/java/org/apache/servicemix/drools/model/JbiHelper.java Fri Aug  1 12:10:49 2008
@@ -28,15 +28,13 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.servicemix.JbiConstants;
-import org.apache.servicemix.client.ServiceMixClient;
-import org.apache.servicemix.client.ServiceMixClientFacade;
 import org.apache.servicemix.common.EndpointSupport;
+import org.apache.servicemix.common.JbiConstants;
+import org.apache.servicemix.common.util.MessageUtil;
+import org.apache.servicemix.common.util.URIResolver;
 import org.apache.servicemix.drools.DroolsEndpoint;
 import org.apache.servicemix.jbi.jaxp.SourceTransformer;
 import org.apache.servicemix.jbi.jaxp.StringSource;
-import org.apache.servicemix.jbi.resolver.URIResolver;
-import org.apache.servicemix.jbi.util.MessageUtil;
 import org.drools.FactHandle;
 import org.drools.WorkingMemory;
 
@@ -58,7 +56,6 @@
         this.endpoint = endpoint;
         this.exchange = new Exchange(exchange, endpoint.getNamespaceContext());
         this.memory = memory;
-        //this.exchangeFactHandle = this.memory.assertObject(this.exchange);
         this.exchangeFactHandle = this.memory.insert(this.exchange);
     }
 
@@ -74,10 +71,6 @@
         return getContext().getDeliveryChannel();
     }
 
-    public ServiceMixClient getClient() {
-        return new ServiceMixClientFacade(getContext());
-    }
-
     public Exchange getExchange() {
         return exchange;
     }
@@ -87,23 +80,10 @@
     }
 
     /**
-     * Forwards the inbound message to the given
+     * Forwards the inbound message to the given target
      *
      * @param uri
-     * @param localPart
      */
-    /*
-    public void forward(String uri) throws MessagingException {
-        if (exchange instanceof InOnly || exchange instanceof RobustInOnly) {
-            MessageExchange me = getChannel().createExchangeFactory().createExchange(exchange.getPattern());
-            URIResolver.configureExchange(me, getContext(), uri);
-            MessageUtil.transferToIn(in, me);
-            getChannel().sendSync(me);
-        } else {
-            throw new MessagingException("Only InOnly and RobustInOnly exchanges can be forwarded");
-        }
-    }
-    */
     public void route(String uri) throws MessagingException {
         Source src = null;
         routeTo(src, uri);
@@ -204,7 +184,6 @@
     }
 
     protected void update() {
-        // this.memory.modifyObject(this.exchangeFactHandle, this.exchange);
         this.memory.update(this.exchangeFactHandle, this.exchange);
     }
 

Added: servicemix/components/engines/servicemix-drools/trunk/src/main/resources/META-INF/spring/servicemix-drools.xml
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-drools/trunk/src/main/resources/META-INF/spring/servicemix-drools.xml?rev=681784&view=auto
==============================================================================
--- servicemix/components/engines/servicemix-drools/trunk/src/main/resources/META-INF/spring/servicemix-drools.xml (added)
+++ servicemix/components/engines/servicemix-drools/trunk/src/main/resources/META-INF/spring/servicemix-drools.xml Fri Aug  1 12:10:49 2008
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:osgi="http://www.springframework.org/schema/osgi"
+       xmlns:osgix="http://www.springframework.org/schema/osgi-compendium"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xsi:schemaLocation="
+  http://www.springframework.org/schema/beans
+  http://www.springframework.org/schema/beans/spring-beans.xsd
+  http://www.springframework.org/schema/util
+  http://www.springframework.org/schema/util/spring-util.xsd
+  http://www.springframework.org/schema/osgi
+  http://www.springframework.org/schema/osgi/spring-osgi.xsd
+  http://www.springframework.org/schema/osgi-compendium
+  http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd">
+
+    <bean id="servicemix-drools" class="org.apache.servicemix.drools.DroolsComponent">
+        <property name="executorFactory" ref="executorFactory" />
+    </bean>
+
+    <bean id="executorFactory" class="org.apache.servicemix.executors.impl.ExecutorFactoryImpl">
+        <property name="defaultConfig">
+            <bean class="org.apache.servicemix.executors.impl.ExecutorConfig">
+                <property name="corePoolSize" value="${threadPoolCorePoolSize}"/>
+                <property name="maximumPoolSize" value="${threadPoolMaximumPoolSize}"/>
+                <property name="queueSize" value="${threadPoolQueueSize}"/>
+            </bean>
+        </property>
+    </bean>
+
+    <bean id="endpoint-tracker" class="org.apache.servicemix.common.osgi.EndpointTracker">
+        <property name="component" ref="servicemix-drools" />
+    </bean>
+
+    <osgi:list id="endpoints"
+               interface="org.apache.servicemix.common.osgi.EndpointWrapper"
+               cardinality="0..N">
+        <osgi:listener ref="endpoint-tracker" bind-method="register" unbind-method="unregister" />
+    </osgi:list>
+
+    <osgi:service ref="servicemix-drools" interface="javax.jbi.component.Component">
+        <osgi:service-properties>
+            <entry key="NAME" value="servicemix-drools" />
+            <entry key="TYPE" value="service-engine" />
+        </osgi:service-properties>
+    </osgi:service>
+
+    <osgix:property-placeholder persistent-id="servicemix-drools">
+        <osgix:default-properties>
+            <prop key="threadPoolCorePoolSize">8</prop>
+            <prop key="threadPoolMaximumPoolSize">32</prop>
+            <prop key="threadPoolQueueSize">256</prop>
+        </osgix:default-properties>
+    </osgix:property-placeholder>
+
+</beans>