Author: norman
Date: Thu Jun 30 13:54:51 2011
New Revision: 1141539

URL: http://svn.apache.org/viewvc?rev=1141539&view=rev
Log:
Add osgi meta-data and service declaration for queue-jms and queue-activemq. 
See JAMES-835

Added:
    james/server/trunk/queue-activemq/src/main/resources/
    james/server/trunk/queue-activemq/src/main/resources/META-INF/
    james/server/trunk/queue-activemq/src/main/resources/META-INF/spring/
    
james/server/trunk/queue-activemq/src/main/resources/META-INF/spring/activemq-queue-context.xml
    
james/server/trunk/queue-activemq/src/main/resources/META-INF/spring/activemq-queue-osgi.xml
    james/server/trunk/queue-jms/src/main/resources/
    james/server/trunk/queue-jms/src/main/resources/META-INF/
    james/server/trunk/queue-jms/src/main/resources/META-INF/spring/
Modified:
    james/server/trunk/queue-activemq/pom.xml
    james/server/trunk/queue-jms/pom.xml

Modified: james/server/trunk/queue-activemq/pom.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/queue-activemq/pom.xml?rev=1141539&r1=1141538&r2=1141539&view=diff
==============================================================================
--- james/server/trunk/queue-activemq/pom.xml (original)
+++ james/server/trunk/queue-activemq/pom.xml Thu Jun 30 13:54:51 2011
@@ -27,6 +27,26 @@
   <groupId>org.apache.james</groupId>
   <artifactId>james-server-queue-activemq</artifactId>
   <name>Apache James Server ActiveMQ Queue</name>
+  <properties>
+      <!-- OSGI stuff -->
+    <james.osgi.export>
+      org.apache.james.queue.activemq.*
+    </james.osgi.export>
+    <!-- Add the needed imports for ActiveMQ and Spring which are needed to 
startup the bundle-->
+    <james.osgi.import>
+      org.apache.activemq.xbean,
+      org.apache.activemq.broker,
+      org.apache.activemq.pool,
+      org.apache.activemq.broker.region.policy,
+      org.apache.activemq.broker.jmx,
+      org.apache.activemq.store.amq,
+      org.apache.activemq.plugin,
+      org.apache.activemq.spring,
+      org.springframework.jms.connection.*,
+      org.springframework.transaction.support.*,
+      *
+    </james.osgi.import>
+  </properties> 
   <dependencies>
     <dependency>
       <groupId>org.apache.james</groupId>

Added: 
james/server/trunk/queue-activemq/src/main/resources/META-INF/spring/activemq-queue-context.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/queue-activemq/src/main/resources/META-INF/spring/activemq-queue-context.xml?rev=1141539&view=auto
==============================================================================
--- 
james/server/trunk/queue-activemq/src/main/resources/META-INF/spring/activemq-queue-context.xml
 (added)
+++ 
james/server/trunk/queue-activemq/src/main/resources/META-INF/spring/activemq-queue-context.xml
 Thu Jun 30 13:54:51 2011
@@ -0,0 +1,100 @@
+<?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:amq="http://activemq.apache.org/schema/core"; 
+       xmlns:osgix="http://www.springframework.org/schema/osgi-compendium";
+       xmlns:ctx="http://www.springframework.org/schema/context";
+       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+         http://activemq.apache.org/schema/core 
http://activemq.apache.org/schema/core/activemq-core.xsd       
+         http://www.springframework.org/schema/osgi-compendium 
http://www.springframework.org/schema/osgi-compendium/spring-osgi-compendium.xsd
+         http://www.springframework.org/schema/context 
+         http://www.springframework.org/schema/context/spring-context.xsd";>
+         
+    <!-- Import PostBeanProcessors -->
+    <import 
resource="classpath*:org/apache/james/container/spring/server-context.xml"/>
+    
+   <!-- Configuration Admin entries so the user can overwrite them if needed 
-->
+   <osgix:cm-properties id="cmProps" persistent-id="org.apache.james">
+      <prop key="amq.brokerURL">vm://james?create=false</prop>
+      <prop key="amq.sessionCacheSize">10</prop>      
+      <prop key="amq.baseDir">/var/store/activemq/</prop>      
+   </osgix:cm-properties>
+
+   <!-- placeholder configurer -->
+   <ctx:property-placeholder properties-ref="cmProps" />
+   
+    <!-- 
+    ===========================================================================
+       ActiveMQ Queue and Camel
+    ===========================================================================
+    -->
+          
+    <!-- 
+      James Mail Queue Factory
+     -->
+    <bean id="mailqueuefactory" 
class="org.apache.james.queue.activemq.ActiveMQMailQueueFactory" 
depends-on="broker"/>
+
+    <!-- 
+      ActiveMQ Broker, Connections, Blob
+     -->
+    <amq:broker useJmx="true" persistent="true" brokerName="james" 
dataDirectory="${amq.baseDir}/brokers" useShutdownHook="false" 
schedulerSupport="false" id="broker">
+        <amq:destinationPolicy>
+            <amq:policyMap>
+                <amq:policyEntries>
+                    <!-- Support priority handling of messages -->
+                    <!-- 
http://activemq.apache.org/how-can-i-support-priority-queues.html -->
+                    <amq:policyEntry queue=">" prioritizedMessages="true"/>
+                </amq:policyEntries>
+            </amq:policyMap>
+        </amq:destinationPolicy>
+        <amq:managementContext>
+            <amq:managementContext createConnector="false"/>
+        </amq:managementContext>
+        <amq:persistenceAdapter>
+            <amq:amqPersistenceAdapter/>
+        </amq:persistenceAdapter>
+        <amq:plugins>
+            <amq:statisticsBrokerPlugin/>
+        </amq:plugins>
+        <amq:transportConnectors>
+            <amq:transportConnector uri="tcp://localhost:0" />
+        </amq:transportConnectors>
+    </amq:broker>
+    <amq:connectionFactory id="amqConnectionFactory" 
brokerURL="${amq.brokerURL}">
+        <amq:prefetchPolicy>
+            <!-- Disable prefetch so slow consuming can not block other 
threads -->
+            <!-- See JAMES-1253 -->
+            <amq:prefetchPolicy queuePrefetch="0" topicPrefetch="0"/>
+        </amq:prefetchPolicy>
+        <property name="blobTransferPolicy" ref="blobTransferPolicy"/>
+    </amq:connectionFactory>
+    <bean id="blobTransferPolicy" 
class="org.apache.james.queue.activemq.FileSystemBlobTransferPolicy">
+        <property name="defaultUploadUrl" 
value="${amq.baseDir}/blob-transfer"/>
+    </bean>
+    <bean id="jmsConnectionFactory" 
class="org.springframework.jms.connection.CachingConnectionFactory">
+       <property name="targetConnectionFactory" ref="amqConnectionFactory"/>
+       <property name="sessionCacheSize" value="${amq.sessionCacheSize}"/>
+       <property name="cacheConsumers" value="false"/>
+       <property name="cacheProducers" value="true"/>
+    </bean>
+    <bean id="jmsTransactionManager" 
class="org.springframework.jms.connection.JmsTransactionManager">
+        <property name="connectionFactory" ref="jmsConnectionFactory"/>
+    </bean>
+
+</beans>

Added: 
james/server/trunk/queue-activemq/src/main/resources/META-INF/spring/activemq-queue-osgi.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/queue-activemq/src/main/resources/META-INF/spring/activemq-queue-osgi.xml?rev=1141539&view=auto
==============================================================================
--- 
james/server/trunk/queue-activemq/src/main/resources/META-INF/spring/activemq-queue-osgi.xml
 (added)
+++ 
james/server/trunk/queue-activemq/src/main/resources/META-INF/spring/activemq-queue-osgi.xml
 Thu Jun 30 13:54:51 2011
@@ -0,0 +1,36 @@
+<?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:beans                                                                   
         
+   xmlns="http://www.springframework.org/schema/osgi";                          
         
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+   xmlns:beans="http://www.springframework.org/schema/beans";             
+   xmlns:osgi="http://www.springframework.org/schema/osgi";                     
         
+   xsi:schemaLocation="http://www.springframework.org/schema/osgi  
+       http://www.springframework.org/schema/osgi/spring-osgi-1.2.xsd
+       http://www.springframework.org/schema/beans   
+       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd";>      
             
+
+    <osgi:service ref="mailqueuefactory">
+      <osgi:interfaces>
+       <beans:value> org.apache.james.queue.api.MailQueueFactory</beans:value>
+      </osgi:interfaces>
+    </osgi:service>         
+   
+</beans:beans>

Modified: james/server/trunk/queue-jms/pom.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/queue-jms/pom.xml?rev=1141539&r1=1141538&r2=1141539&view=diff
==============================================================================
--- james/server/trunk/queue-jms/pom.xml (original)
+++ james/server/trunk/queue-jms/pom.xml Thu Jun 30 13:54:51 2011
@@ -27,8 +27,16 @@
   <groupId>org.apache.james</groupId>
   <artifactId>james-server-queue-jms</artifactId>
   <name>Apache James Server JMS Mail Queue</name>
+  <properties>
+      <!-- OSGI stuff -->
+    <james.osgi.export>
+      org.apache.james.queue.jms*
+    </james.osgi.export>
+    <james.osgi.import>
+      *
+    </james.osgi.import>
+  </properties> 
   <dependencies>
-
     <dependency>
       <groupId>org.apache.james</groupId>
       <artifactId>james-server-queue-api</artifactId>



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to