Wednesday, December 7, 2011

svn commit: r1211734 - in /labs/magnet: core/ core/src/main/java/org/apache/labs/magnet/bbs/ core/src/main/java/org/apache/labs/magnet/service/ core/src/main/resources/META-INF/spring/ core/src/test/java/org/apache/labs/magnet/core/ magnet/

Author: hadrian
Date: Thu Dec 8 01:59:37 2011
New Revision: 1211734

URL: http://svn.apache.org/viewvc?rev=1211734&view=rev
Log:
Add bulletin processor as separate route. Minor jaxb improvements

Added:
labs/magnet/core/src/main/java/org/apache/labs/magnet/bbs/jaxb.index
labs/magnet/core/src/main/java/org/apache/labs/magnet/bbs/package-info.java
Modified:
labs/magnet/core/pom.xml
labs/magnet/core/src/main/java/org/apache/labs/magnet/service/BulletinBoardService.java
labs/magnet/core/src/main/resources/META-INF/spring/beans.xml
labs/magnet/core/src/test/java/org/apache/labs/magnet/core/RouteTest.java
labs/magnet/magnet/pom.xml

Modified: labs/magnet/core/pom.xml
URL: http://svn.apache.org/viewvc/labs/magnet/core/pom.xml?rev=1211734&r1=1211733&r2=1211734&view=diff
==============================================================================
--- labs/magnet/core/pom.xml (original)
+++ labs/magnet/core/pom.xml Thu Dec 8 01:59:37 2011
@@ -66,6 +66,10 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-jaxb</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-jackson</artifactId>
</dependency>

Added: labs/magnet/core/src/main/java/org/apache/labs/magnet/bbs/jaxb.index
URL: http://svn.apache.org/viewvc/labs/magnet/core/src/main/java/org/apache/labs/magnet/bbs/jaxb.index?rev=1211734&view=auto
==============================================================================
--- labs/magnet/core/src/main/java/org/apache/labs/magnet/bbs/jaxb.index (added)
+++ labs/magnet/core/src/main/java/org/apache/labs/magnet/bbs/jaxb.index Thu Dec 8 01:59:37 2011
@@ -0,0 +1,18 @@
+## ------------------------------------------------------------------------
+## 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.
+## ------------------------------------------------------------------------
+Bulletin
+BulletinList
\ No newline at end of file

Added: labs/magnet/core/src/main/java/org/apache/labs/magnet/bbs/package-info.java
URL: http://svn.apache.org/viewvc/labs/magnet/core/src/main/java/org/apache/labs/magnet/bbs/package-info.java?rev=1211734&view=auto
==============================================================================
--- labs/magnet/core/src/main/java/org/apache/labs/magnet/bbs/package-info.java (added)
+++ labs/magnet/core/src/main/java/org/apache/labs/magnet/bbs/package-info.java Thu Dec 8 01:59:37 2011
@@ -0,0 +1,19 @@
+/**
+ * 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.
+ */
+
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://labs.apache.org/magnet", elementFormDefault=javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.apache.labs.magnet.bbs;

Modified: labs/magnet/core/src/main/java/org/apache/labs/magnet/service/BulletinBoardService.java
URL: http://svn.apache.org/viewvc/labs/magnet/core/src/main/java/org/apache/labs/magnet/service/BulletinBoardService.java?rev=1211734&r1=1211733&r2=1211734&view=diff
==============================================================================
--- labs/magnet/core/src/main/java/org/apache/labs/magnet/service/BulletinBoardService.java (original)
+++ labs/magnet/core/src/main/java/org/apache/labs/magnet/service/BulletinBoardService.java Thu Dec 8 01:59:37 2011
@@ -16,46 +16,57 @@
*/
package org.apache.labs.magnet.service;

-import java.util.HashMap;
-import java.util.Map;
+import java.io.File;

import org.apache.labs.magnet.bbs.Bulletin;
import org.apache.labs.magnet.bbs.BulletinBoard;
import org.apache.labs.magnet.bbs.BulletinList;
import org.apache.labs.magnet.bbs.BulletinProcessor;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

+
public class BulletinBoardService implements BulletinBoard {
private static final Logger LOG = LoggerFactory.getLogger(BulletinBoardService.class);

- private BulletinProcessor processor;
- private Map<String, Bulletin> store = new HashMap<String, Bulletin>();
+ private final File store;
+ private final BulletinProcessor processor;

- public BulletinBoardService() {
+ public BulletinBoardService(String path, BulletinProcessor processor) {
+ this.processor = processor;
+ store = new File(path);
+ if (!store.exists() || !store.isDirectory()) {
+ throw new IllegalArgumentException("Invalid directory location used to configure BulletinBoardService: " + path);
+ }
}

@Override
public Bulletin getBulletin(String id) {
- return store.get(id);
+ return new Bulletin(id);
}

@Override
public void addBulletin(Bulletin bulletin) throws Exception {
- String id = bulletin.getId();
- LOG.info("Add message id=\"{}\"", id);
- store.put(id, bulletin);
+ LOG.info("Add bulletin id=\"{}\"", bulletin.getId());
+ processor.process(bulletin);
}

@Override
public BulletinList listBulletins() {
- LOG.info("Currently holding {} messages.", store.size());
+ String[] ids = store.list();
+ LOG.info("Currently holding {} bulletins.", ids.length);
+
+ // TODO: something more sophisticated here like
+ // returning the complete content of the bulletin, maybe cache...
+ Bulletin[] items = new Bulletin[ids.length];
+ for (int i = 0; i < ids.length; i++) {
+ String id = ids[i];
+ int ext = id.lastIndexOf('.');
+ items[i] = new Bulletin(ext < 0 ? id : id.substring(0, ext));
+ }
BulletinList answer = new BulletinList();
- answer.setBulletin((Bulletin[])store.values().toArray(new Bulletin[]{}));
+ answer.setBulletin(items);
return answer;
}
-
- public void setMessageListener(BulletinProcessor processor) {
- this.processor = processor;
- }
}

Modified: labs/magnet/core/src/main/resources/META-INF/spring/beans.xml
URL: http://svn.apache.org/viewvc/labs/magnet/core/src/main/resources/META-INF/spring/beans.xml?rev=1211734&r1=1211733&r2=1211734&view=diff
==============================================================================
--- labs/magnet/core/src/main/resources/META-INF/spring/beans.xml (original)
+++ labs/magnet/core/src/main/resources/META-INF/spring/beans.xml Thu Dec 8 01:59:37 2011
@@ -65,10 +65,16 @@
<!-- Web Services -->
<jaxrs:server address="camel://direct:bbs" id="bbs-server">
<jaxrs:serviceBeans><ref bean="bbs-service" /></jaxrs:serviceBeans>
- <jaxrs:inInterceptors><bean class="org.apache.cxf.interceptor.LoggingOutInterceptor" /></jaxrs:inInterceptors>
+ <!-- jaxrs:inInterceptors><bean class="org.apache.cxf.interceptor.LoggingInInterceptor" /></jaxrs:inInterceptors -->
+ <!-- jaxrs:outInterceptors><bean class="org.apache.cxf.interceptor.LoggingOutInterceptor" /></jaxrs:outInterceptors -->
</jaxrs:server>

- <bean id="bbs-service" class="org.apache.labs.magnet.service.BulletinBoardService" />
+ <bean id="bbs-service" class="org.apache.labs.magnet.service.BulletinBoardService">
+ <constructor-arg value="/x1/apache/magnet" />
+ <constructor-arg ref="bbs-processor" />
+ </bean>
+
+ <bean id="bbs-processor" class="org.apache.labs.magnet.service.BulletinProcessorService" />

<!-- Camel configuration -->
<bean id="properties" class="org.apache.camel.component.properties.PropertiesComponent">
@@ -78,16 +84,17 @@
<camelContext trace="true" xmlns="http://camel.apache.org/schema/spring">
<package>org.apache.labs.magnet.core</package>

- <route id="sample" autoStartup="false">
- <from uri="{{schedule.task}}" />
- <to uri="log:task" />
- </route>
-
<route id="bbs">
<from uri="jetty:http://0.0.0.0:9100/bbs?matchOnUriPrefix=true" />
<to uri="direct://bbs" />
</route>

+ <route id="bbs-process">
+ <from uri="direct://bulletin-processor" />
+ <marshal><jaxb contextPath="org.apache.labs.magnet.bbs" /></marshal>
+ <to uri="file:/x1/apache/magnet" />
+ </route>
+
</camelContext>

</beans>

Modified: labs/magnet/core/src/test/java/org/apache/labs/magnet/core/RouteTest.java
URL: http://svn.apache.org/viewvc/labs/magnet/core/src/test/java/org/apache/labs/magnet/core/RouteTest.java?rev=1211734&r1=1211733&r2=1211734&view=diff
==============================================================================
--- labs/magnet/core/src/test/java/org/apache/labs/magnet/core/RouteTest.java (original)
+++ labs/magnet/core/src/test/java/org/apache/labs/magnet/core/RouteTest.java Thu Dec 8 01:59:37 2011
@@ -48,6 +48,6 @@ public class RouteTest extends CamelSpri
} finally {
httpclient.getConnectionManager().shutdown();
}
- // Thread.sleep(5000);
+ Thread.sleep(1000);
}
}

Modified: labs/magnet/magnet/pom.xml
URL: http://svn.apache.org/viewvc/labs/magnet/magnet/pom.xml?rev=1211734&r1=1211733&r2=1211734&view=diff
==============================================================================
--- labs/magnet/magnet/pom.xml (original)
+++ labs/magnet/magnet/pom.xml Thu Dec 8 01:59:37 2011
@@ -93,6 +93,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
+ <artifactId>camel-jaxb</artifactId>
+ <version>${camel.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
<artifactId>camel-jackson</artifactId>
<version>${camel.version}</version>
</dependency>

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org

No comments:

Post a Comment