You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2010/07/07 05:53:57 UTC
svn commit: r961099 - in /activemq/sandbox/activemq-apollo-actor: ./
activemq-jaxb/ activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/
activemq-jaxb/src/main/scala/ activemq-jaxb/src/main/scala/org/
activemq-jaxb/src/main/scala/org/apache/ ac...
Author: chirino
Date: Wed Jul 7 03:53:56 2010
New Revision: 961099
URL: http://svn.apache.org/viewvc?rev=961099&view=rev
Log:
converting jaxb module to scala
Added:
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/AsciiBufferAdapter.java
- copied, changed from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/AsciiBufferAdapter.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/BrokerConfig.java
- copied, changed from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/BrokerXml.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/KahaDBStoreConfig.java
- copied, changed from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/KahaDBStoreXml.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/MemoryStoreConfig.java
- copied, changed from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/MemoryStoreXml.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/PropertiesReader.java
- copied, changed from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/PropertiesReader.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/StoreXml.java
- copied, changed from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/StoreXml.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/VirtualHostConfig.java
- copied, changed from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/VirtualHostXml.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/XmlBrokerFactory.scala
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/package-info.java
- copied, changed from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/package-info.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/scala/
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/scala/org/
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/scala/org/apache/
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/scala/org/apache/activemq/
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/scala/org/apache/activemq/apollo/
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/scala/org/apache/activemq/apollo/jaxb/
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/scala/org/apache/activemq/apollo/jaxb/JAXBConfigTest.java
- copied, changed from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/java/org/apache/activemq/apollo/jaxb/JAXBConfigTest.java
Removed:
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/AsciiBufferAdapter.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/BrokerXml.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/JAXBBrokerFactory.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/KahaDBStoreXml.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/MemoryStoreXml.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/PropertiesReader.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/StoreXml.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/VirtualHostXml.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/package-info.java
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/java/org/apache/activemq/apollo/jaxb/JAXBConfigTest.java
Modified:
activemq/sandbox/activemq-apollo-actor/activemq-jaxb/pom.xml
activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/Root.scala
activemq/sandbox/activemq-apollo-actor/pom.xml
Modified: activemq/sandbox/activemq-apollo-actor/activemq-jaxb/pom.xml
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-jaxb/pom.xml?rev=961099&r1=961098&r2=961099&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/pom.xml (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-jaxb/pom.xml Wed Jul 7 03:53:56 2010
@@ -20,7 +20,7 @@
<parent>
<groupId>org.apache.activemq</groupId>
- <artifactId>activemq-project</artifactId>
+ <artifactId>activemq-scala</artifactId>
<version>6.0-SNAPSHOT</version>
</parent>
@@ -68,6 +68,21 @@
<version>4.0.0</version>
</dependency>
+ <!-- Scala Support -->
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-library</artifactId>
+ <scope>compile</scope>
+ <version>${scala-version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-compiler</artifactId>
+ <version>${scala-version}</version>
+ <scope>compile</scope>
+ <optional>true</optional>
+ </dependency>
+
<!-- Testing Dependencies -->
<dependency>
<groupId>junit</groupId>
@@ -76,12 +91,17 @@
<version>${junit-version}</version>
</dependency>
<dependency>
+ <groupId>org.scalatest</groupId>
+ <artifactId>scalatest</artifactId>
+ <version>${scalatest-version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<scope>test</scope>
<version>${log4j-version}</version>
</dependency>
-
</dependencies>
<build>
Copied: activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/AsciiBufferAdapter.java (from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/AsciiBufferAdapter.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/AsciiBufferAdapter.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/AsciiBufferAdapter.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/AsciiBufferAdapter.java&r1=961098&r2=961099&rev=961099&view=diff
==============================================================================
(empty)
Copied: activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/BrokerConfig.java (from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/BrokerXml.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/BrokerConfig.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/BrokerConfig.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/BrokerXml.java&r1=961098&r2=961099&rev=961099&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/BrokerXml.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/BrokerConfig.java Wed Jul 7 03:53:56 2010
@@ -25,65 +25,28 @@ import javax.xml.bind.annotation.XmlAttr
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
-import org.apache.activemq.apollo.broker.Broker;
-import org.apache.activemq.transport.TransportFactory;
-import org.apache.activemq.transport.TransportServer;
-
@XmlRootElement(name="broker")
@XmlAccessorType(XmlAccessType.FIELD)
-public class BrokerXml {
+public class BrokerConfig {
@XmlAttribute(name="name")
- String name;
+ public String name;
@XmlElement(name="virtual-host")
- private List<VirtualHostXml> virtualHosts = new ArrayList<VirtualHostXml>();
+ public List<VirtualHostConfig> virtualHosts = new ArrayList<VirtualHostConfig>();
@XmlElement(name="transport-server")
- private List<String> transportServers = new ArrayList<String>();
+ public List<String> transportServers = new ArrayList<String>();
@XmlElement(name="connect-uri")
- private List<String> connectUris = new ArrayList<String>();
-
-
- public BrokerXml() {
- }
-
- public BrokerXml(Broker broker) {
- }
-
+ public List<String> connectUris = new ArrayList<String>();
- public Broker createMessageBroker() throws Exception {
- Broker rc = new Broker();
- for (VirtualHostXml element : virtualHosts) {
- rc.addVirtualHost(element.createVirtualHost(this));
- }
- for (String element : transportServers) {
- TransportServer server;
- try {
- server = TransportFactory.bind(element);
- } catch (Exception e) {
- throw new Exception("Unable to bind transport server '"+element+" due to: "+e.getMessage(), e);
- }
- rc.transportServers().add(server);
- }
- for (String element : connectUris) {
- rc.connectUris().add(element);
- }
-
- return rc;
- }
-
- public VirtualHostXml getDefaultVirtualHost() {
- return null;
- }
- public List<VirtualHostXml> getVirtualHosts() {
+ public List<VirtualHostConfig> getVirtualHosts() {
return virtualHosts;
}
- public void setVirtualHosts(List<VirtualHostXml> virtualHosts) {
+ public void setVirtualHosts(List<VirtualHostConfig> virtualHosts) {
this.virtualHosts = virtualHosts;
}
-
public List<String> getTransportServers() {
return transportServers;
}
@@ -99,4 +62,11 @@ public class BrokerXml {
this.connectUris = connectUris;
}
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
}
Copied: activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/KahaDBStoreConfig.java (from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/KahaDBStoreXml.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/KahaDBStoreConfig.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/KahaDBStoreConfig.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/KahaDBStoreXml.java&r1=961098&r2=961099&rev=961099&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/KahaDBStoreXml.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/KahaDBStoreConfig.java Wed Jul 7 03:53:56 2010
@@ -28,7 +28,7 @@ import org.apache.activemq.broker.store.
@XmlRootElement(name="kahadb-store")
@XmlAccessorType(XmlAccessType.FIELD)
-public class KahaDBStoreXml extends StoreXml {
+public class KahaDBStoreConfig extends StoreXml {
@XmlAttribute(name="checkpoint-interval", required=false)
private Long checkpointInterval;
Copied: activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/MemoryStoreConfig.java (from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/MemoryStoreXml.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/MemoryStoreConfig.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/MemoryStoreConfig.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/MemoryStoreXml.java&r1=961098&r2=961099&rev=961099&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/MemoryStoreXml.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/MemoryStoreConfig.java Wed Jul 7 03:53:56 2010
@@ -25,7 +25,7 @@ import org.apache.activemq.broker.store.
@XmlRootElement(name="memory-store")
@XmlAccessorType(XmlAccessType.FIELD)
-public class MemoryStoreXml extends StoreXml {
+public class MemoryStoreConfig extends StoreXml {
public Store createStore() {
return new MemoryStore();
Copied: activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/PropertiesReader.java (from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/PropertiesReader.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/PropertiesReader.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/PropertiesReader.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/PropertiesReader.java&r1=961098&r2=961099&rev=961099&view=diff
==============================================================================
(empty)
Copied: activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/StoreXml.java (from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/StoreXml.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/StoreXml.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/StoreXml.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/StoreXml.java&r1=961098&r2=961099&rev=961099&view=diff
==============================================================================
(empty)
Copied: activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/VirtualHostConfig.java (from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/VirtualHostXml.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/VirtualHostConfig.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/VirtualHostConfig.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/VirtualHostXml.java&r1=961098&r2=961099&rev=961099&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/VirtualHostXml.java (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/VirtualHostConfig.java Wed Jul 7 03:53:56 2010
@@ -29,24 +29,14 @@ import org.apache.activemq.apollo.broker
@XmlRootElement(name = "virtual-host")
@XmlAccessorType(XmlAccessType.FIELD)
-public class VirtualHostXml {
+public class VirtualHostConfig {
@XmlElement(name="host-name", required=true)
- private ArrayList<String> hostNames = new ArrayList<String>();
+ public ArrayList<String> hostNames = new ArrayList<String>();
@XmlElementRef
- private StoreXml store;
+ public StoreXml store;
- public VirtualHost createVirtualHost(BrokerXml brokerXml) throws Exception {
- VirtualHost rc = new VirtualHost();
- rc.setNamesArray(hostNames);
- if( store != null ) {
- BrokerDatabase database = new BrokerDatabase();
- database.setVirtualHost(rc);
- database.setStore(store.createStore());
- rc.setDatabase(database);
- }
- return rc;
- }
+
}
Added: activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/XmlBrokerFactory.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/XmlBrokerFactory.scala?rev=961099&view=auto
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/XmlBrokerFactory.scala (added)
+++ activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/XmlBrokerFactory.scala Wed Jul 7 03:53:56 2010
@@ -0,0 +1,97 @@
+/**
+ * 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.
+ */
+package org.apache.activemq.apollo.jaxb
+
+import java.io.IOException
+import javax.xml.bind.JAXBContext
+import javax.xml.stream.XMLInputFactory
+import org.apache.activemq.apollo.broker.Broker
+import org.apache.activemq.apollo.broker.BrokerDatabase
+import org.apache.activemq.apollo.broker.BrokerFactory
+import org.apache.activemq.apollo.broker.VirtualHost
+import org.apache.activemq.transport.TransportFactory
+import org.apache.activemq.util.URISupport
+import java.net.{URL, URI}
+import collection.JavaConversions._
+
+class XmlBrokerFactory extends BrokerFactory.Handler {
+
+ def createBroker(value: String): Broker = {
+ try {
+ var brokerURI = new URI(value)
+ val context = JAXBContext.newInstance("org.apache.activemq.apollo.jaxb")
+ val unmarshaller = context.createUnmarshaller()
+
+ var configURL: URL = null
+ brokerURI = URISupport.stripScheme(brokerURI)
+ val scheme = brokerURI.getScheme()
+ if (scheme == null || "file".equals(scheme)) {
+ configURL = URISupport.changeScheme(URISupport.stripScheme(brokerURI), "file").toURL()
+ } else
+ if ("classpath".equals(scheme)) {
+ configURL = Thread.currentThread().getContextClassLoader().getResource(brokerURI.getSchemeSpecificPart())
+ } else {
+ configURL = URISupport.changeScheme(brokerURI, scheme).toURL()
+ }
+ if (configURL == null) {
+ throw new IOException("Cannot create broker from non-existent URI: " + brokerURI)
+ }
+ val factory = XMLInputFactory.newInstance()
+ val reader = factory.createXMLStreamReader(configURL.openStream())
+ val properties = new PropertiesReader(reader)
+ val xml = unmarshaller.unmarshal(properties).asInstanceOf[BrokerConfig]
+ return createMessageBroker(xml)
+ } catch {
+ case e: Exception =>
+ throw new RuntimeException("Cannot create broker from URI: " + value, e)
+ }
+ }
+
+ def createMessageBroker(brokerConfig: BrokerConfig): Broker = {
+ val rc = new Broker()
+ for (virtualHostConfig <- brokerConfig.virtualHosts) {
+ rc.addVirtualHost(createVirtualHost(virtualHostConfig))
+ }
+ for (element <- brokerConfig.transportServers) {
+ try {
+ val server = TransportFactory.bind(element)
+ rc.transportServers.add(server)
+ } catch {
+ case e:Exception=>
+ throw new Exception("Unable to bind transport server '" + element + " due to: " + e.getMessage(), e)
+ }
+ }
+ for (element <- brokerConfig.connectUris) {
+ rc.connectUris.add(element)
+ }
+ return rc
+ }
+
+
+ def createVirtualHost(virtualHostConfig: VirtualHostConfig): VirtualHost = {
+ val rc = new VirtualHost()
+ rc.setNamesArray(virtualHostConfig.hostNames)
+ if (virtualHostConfig.store != null) {
+ val database = new BrokerDatabase()
+ database.setVirtualHost(rc)
+// TODO:
+// database.setStore( )
+ rc.setDatabase(database)
+ }
+ return rc
+ }
+}
Copied: activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/package-info.java (from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/package-info.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/package-info.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/scala/org/apache/activemq/apollo/jaxb/package-info.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/main/java/org/apache/activemq/apollo/jaxb/package-info.java&r1=961098&r2=961099&rev=961099&view=diff
==============================================================================
(empty)
Copied: activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/scala/org/apache/activemq/apollo/jaxb/JAXBConfigTest.java (from r961098, activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/java/org/apache/activemq/apollo/jaxb/JAXBConfigTest.java)
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/scala/org/apache/activemq/apollo/jaxb/JAXBConfigTest.java?p2=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/scala/org/apache/activemq/apollo/jaxb/JAXBConfigTest.java&p1=activemq/sandbox/activemq-apollo-actor/activemq-jaxb/src/test/java/org/apache/activemq/apollo/jaxb/JAXBConfigTest.java&r1=961098&r2=961099&rev=961099&view=diff
==============================================================================
(empty)
Modified: activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/Root.scala
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/Root.scala?rev=961099&r1=961098&r2=961099&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/Root.scala (original)
+++ activemq/sandbox/activemq-apollo-actor/activemq-web/src/main/scala/org/apache/activemq/apollo/web/resources/Root.scala Wed Jul 7 03:53:56 2010
@@ -23,28 +23,33 @@ import javax.ws.rs._
import core.MediaType
import org.fusesource.scalate.util.Logging
import reflect.{BeanProperty, BeanInfo}
+import org.codehaus.jackson.annotate.JsonProperty
+import com.sun.jersey.api.view.ImplicitProduces
+import org.apache.activemq.apollo.jaxb.BrokerConfig
/**
* Defines the default representations to be used on resources
*/
-//@ImplicitProduces(Array("text/html;qs=5"))
-//@Produces(Array("application/json", "application/xml","text/xml"))
-@Consumes(Array(MediaType.APPLICATION_JSON))
-@Produces(Array(MediaType.APPLICATION_JSON))
-trait Resource extends Logging
+@ImplicitProduces(Array("text/html;qs=5"))
+@Produces(Array("application/json", "application/xml","text/xml"))
+trait Resource extends Logging {
+}
@Path("/")
class Root() extends Resource {
+ @GET
+ def get() = this
+
@BeanProperty
- var brokers: Array[Broker] = List(
+ var brokers: Array[Broker] = Array(
new Broker(this, "default"),
new Broker(this, "example")
- ).toArray[Broker]
+ )
@Path("{id}")
def broker(@PathParam("id") id : String): Broker = {
- if( id == "default" ) {
+ if( id == "default" || id=="example" ) {
new Broker(this, id)
} else {
throw new NotFoundException("Broker " + id + " not found")
@@ -52,64 +57,59 @@ class Root() extends Resource {
}
}
-case class Broker(parent:Root, @BeanProperty id: String) extends Resource {
- @Path("config")
- def config = BrokerConfig(this, id)
+case class Broker(parent:Root, @BeanProperty @BeanProperty id: String) extends Resource {
+ @GET
+ def get():AnyRef = {
+ if( id == "default") {
+ val config = new BrokerConfig();
+ config.setName(id);
+ return config
+ } else {
+ return null;
+ }
+ }
+
@Path("status")
def status = BrokerStatus(this, id)
}
-case class BrokerConfig(parent:Broker, @BeanProperty id:String) extends Resource {
+case class BrokerStatus(parent:Broker, @BeanProperty id:String) extends Resource {
+ @GET
+ def get() = this
@Path("virtual-hosts")
- def virtualHosts :List[VirtualHostConfig] = List(
- new VirtualHostConfig(this, "host1"),
- new VirtualHostConfig(this, "host2")
- )
+ def virtualHosts :Array[VirtualHostStatus] = null
@Path("virtual-hosts/{id}")
- def virtualHost(@PathParam("id") id : String):VirtualHostConfig = null
-
- @Path("connectors")
- def connectors :List[ConnectorConfig] = null
- @Path("connectors/{id}")
- def connector(@PathParam("id") id : String):ConnectorConfig = null
-}
-
-case class BrokerStatus(parent:Broker, @BeanProperty id:String) extends Resource {
- @Path("virtual-hosts")
- def virtualHosts :List[VirtualHostStatus] = null
- @Path("virtual-host/{id}")
def virtualHost(@PathParam("id") id : String):VirtualHostStatus = null
@Path("connectors")
- def connectors :List[ConnectorStatus] = null
+ def connectors :Array[ConnectorStatus] = null
@Path("connectors/{id}")
def connector(@PathParam("id") id : String):ConnectorStatus = null
@Path("connections")
- def connections :List[ConnectionStatus] = null
+ def connections :Array[ConnectionStatus] = null
@Path("connections/{id}")
def connection(@PathParam("id") id : String):ConnectionStatus = null
}
-case class VirtualHostConfig(parent:BrokerConfig, @BeanProperty id: String) extends Resource {
- var names:List[String] = null
-}
case class VirtualHostStatus(parent:BrokerStatus, @BeanProperty id: String) extends Resource {
var state:String = null
+ @GET
+ def get() = this
}
-case class ConnectorConfig(parent:BrokerConfig, @BeanProperty id:String) extends Resource {
- var uri:String = null;
- var connect:String = null;
-}
case class ConnectorStatus(parent:BrokerStatus, @BeanProperty id: String) extends Resource {
var state:String = "unknown";
var accepted:Long = 0;
+ @GET
+ def get() = this
}
case class ConnectionStatus(parent:BrokerStatus, @BeanProperty id:String) extends Resource {
var state:String = "unknown";
var readCounter:Long = 0;
var writeCounter:Long = 0;
+ @GET
+ def get() = this
}
Modified: activemq/sandbox/activemq-apollo-actor/pom.xml
URL: http://svn.apache.org/viewvc/activemq/sandbox/activemq-apollo-actor/pom.xml?rev=961099&r1=961098&r2=961099&view=diff
==============================================================================
--- activemq/sandbox/activemq-apollo-actor/pom.xml (original)
+++ activemq/sandbox/activemq-apollo-actor/pom.xml Wed Jul 7 03:53:56 2010
@@ -97,7 +97,7 @@
<jetty-plugin-version>7.0.1.v20091125</jetty-plugin-version>
<scalate-version>1.1-SNAPSHOT</scalate-version>
<servlet-api-version>2.5</servlet-api-version>
- <jackson-version>1.3.2</jackson-version>
+ <jackson-version>1.5.2</jackson-version>
<scala-version>2.8.0.Beta1</scala-version>
<scalatest-version>1.0.1-for-scala-2.8.0.Beta1-RC7-with-test-interfaces-0.3-SNAPSHOT</scalatest-version>