You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cs...@apache.org on 2011/08/25 15:19:05 UTC

svn commit: r1161554 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/management/mbean/ camel-core/src/main/java/org/apache/camel/model/ camel-core/src/main/java/org/apache/camel/util/ camel-core/src/test/java/org/apache/camel/util/ platfor...

Author: cschneider
Date: Thu Aug 25 13:19:04 2011
New Revision: 1161554

URL: http://svn.apache.org/viewvc?rev=1161554&view=rev
Log:
Move ModelHelper from util to model to avoid references from util to model

Added:
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java
Removed:
    camel/trunk/camel-core/src/main/java/org/apache/camel/util/ModelHelper.java
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlAggregateRouteTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlChoiceFilterRouteTest.java
    camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/InfoRouteCommand.java
    camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ShowRouteCommand.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java?rev=1161554&r1=1161553&r2=1161554&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java Thu Aug 25 13:19:04 2011
@@ -27,13 +27,13 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.ServiceStatus;
+import org.apache.camel.model.ModelHelper;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.RoutesDefinition;
 import org.apache.camel.spi.ManagementStrategy;
 import org.apache.camel.spi.management.ManagedAttribute;
 import org.apache.camel.spi.management.ManagedOperation;
 import org.apache.camel.spi.management.ManagedResource;
-import org.apache.camel.util.ModelHelper;
 
 /**
  * @version 

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java?rev=1161554&r1=1161553&r2=1161554&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java Thu Aug 25 13:19:04 2011
@@ -24,12 +24,12 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.ManagementStatisticsLevel;
 import org.apache.camel.Route;
 import org.apache.camel.ServiceStatus;
+import org.apache.camel.model.ModelHelper;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.spi.RoutePolicy;
 import org.apache.camel.spi.management.ManagedAttribute;
 import org.apache.camel.spi.management.ManagedOperation;
 import org.apache.camel.spi.management.ManagedResource;
-import org.apache.camel.util.ModelHelper;
 import org.apache.camel.util.ObjectHelper;
 
 @ManagedResource(description = "Managed Route")

Added: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java?rev=1161554&view=auto
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java (added)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java Thu Aug 25 13:19:04 2011
@@ -0,0 +1,81 @@
+/**
+ * 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.camel.model;
+
+import java.io.StringReader;
+import java.io.StringWriter;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.Unmarshaller;
+
+import org.apache.camel.CamelContext;
+
+/**
+ * Helper for the Camel {@link org.apache.camel.model model} classes.
+ */
+public final class ModelHelper {
+
+    private ModelHelper() {
+        // utility class
+    }
+
+    /**
+     * Dumps the definition as XML
+     *
+     * @param definition  the definition, such as a {@link org.apache.camel.model.RouteDefinition}
+     * @return            the output in XML (is formatted)
+     * @throws JAXBException is throw if error marshalling to XML
+     */
+    public static String dumpModelAsXml(OptionalIdentifiedDefinition definition) throws JAXBException {
+        // create a new jaxb context
+        // must use classloader from CamelContext to have JAXB working
+        JAXBContext jaxbContext = JAXBContext.newInstance(Constants.JAXB_CONTEXT_PACKAGES, CamelContext.class.getClassLoader());
+
+        Marshaller marshaller = jaxbContext.createMarshaller();
+        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
+        StringWriter buffer = new StringWriter();
+        marshaller.marshal(definition, buffer);
+
+        return buffer.toString();
+    }
+
+    /**
+     * Marshal the xml to the model definition
+     *
+     * @param xml the xml
+     * @param type the definition type to return, will throw a {@link ClassCastException} if not the expected type
+     * @return the model definition
+     * @throws javax.xml.bind.JAXBException is thrown if error unmarshalling from xml to model
+     */
+    public static <T extends OptionalIdentifiedDefinition> T createModelFromXml(String xml, Class<T> type) throws JAXBException {
+        // create a new jaxb context
+        // must use classloader from CamelContext to have JAXB working
+        JAXBContext jaxbContext = JAXBContext.newInstance(Constants.JAXB_CONTEXT_PACKAGES, CamelContext.class.getClassLoader());
+
+        StringReader reader = new StringReader(xml);
+        Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
+        Object result = unmarshaller.unmarshal(reader);
+        reader.close();
+
+        if (result == null) {
+            throw new JAXBException("Cannot unmarshal to " + type + " using JAXB from XML: " + xml);
+        }
+
+        return type.cast(result);
+    }
+}

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlAggregateRouteTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlAggregateRouteTest.java?rev=1161554&r1=1161553&r2=1161554&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlAggregateRouteTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlAggregateRouteTest.java Thu Aug 25 13:19:04 2011
@@ -18,6 +18,7 @@ package org.apache.camel.util;
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.model.ModelHelper;
 
 /**
  *

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlChoiceFilterRouteTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlChoiceFilterRouteTest.java?rev=1161554&r1=1161553&r2=1161554&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlChoiceFilterRouteTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlChoiceFilterRouteTest.java Thu Aug 25 13:19:04 2011
@@ -18,6 +18,7 @@ package org.apache.camel.util;
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.model.ModelHelper;
 
 /**
  *

Modified: camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/InfoRouteCommand.java
URL: http://svn.apache.org/viewvc/camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/InfoRouteCommand.java?rev=1161554&r1=1161553&r2=1161554&view=diff
==============================================================================
--- camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/InfoRouteCommand.java (original)
+++ camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/InfoRouteCommand.java Thu Aug 25 13:19:04 2011
@@ -20,14 +20,15 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.Set;
+
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Route;
 import org.apache.camel.management.DefaultManagementAgent;
+import org.apache.camel.model.ModelHelper;
 import org.apache.camel.model.RouteDefinition;
-import org.apache.camel.util.ModelHelper;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
 import org.apache.karaf.shell.console.OsgiCommandSupport;

Modified: camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ShowRouteCommand.java
URL: http://svn.apache.org/viewvc/camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ShowRouteCommand.java?rev=1161554&r1=1161553&r2=1161554&view=diff
==============================================================================
--- camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ShowRouteCommand.java (original)
+++ camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ShowRouteCommand.java Thu Aug 25 13:19:04 2011
@@ -17,8 +17,8 @@
 package org.apache.camel.karaf.commands;
 
 import org.apache.camel.Route;
+import org.apache.camel.model.ModelHelper;
 import org.apache.camel.model.RouteDefinition;
-import org.apache.camel.util.ModelHelper;
 import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
 import org.apache.karaf.shell.console.OsgiCommandSupport;