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/09/09 18:23:37 UTC

svn commit: r1167279 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/ main/java/org/apache/camel/impl/ main/java/org/apache/camel/model/ main/java/org/apache/camel/spi/ test/java/org/apache/camel/impl/

Author: cschneider
Date: Fri Sep  9 16:23:36 2011
New Revision: 1167279

URL: http://svn.apache.org/viewvc?rev=1167279&view=rev
Log:
CAMEL-4428 Introduce NamedNode as Abstraction of OptionalIdentifiedDefinition. This avoids some references from api to model

Added:
    camel/trunk/camel-core/src/main/java/org/apache/camel/NamedNode.java
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultNodeIdFactory.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/spi/NodeIdFactory.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomIdFactoryTest.java

Added: camel/trunk/camel-core/src/main/java/org/apache/camel/NamedNode.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/NamedNode.java?rev=1167279&view=auto
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/NamedNode.java (added)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/NamedNode.java Fri Sep  9 16:23:36 2011
@@ -0,0 +1,38 @@
+/**
+ * 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;
+
+public interface NamedNode {
+
+    /**
+     * Gets the value of the id property.
+     */
+    String getId();
+
+    /**
+     * Returns a short name for this node which can be useful for ID generation or referring to related resources like images
+     *
+     * @return defaults to "node" but derived nodes should overload this to provide a unique name
+     */
+    String getShortName();
+
+    /**
+     * Returns the description text or null if there is no description text associated with this node
+     */
+    String getDescriptionText();
+
+}

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java?rev=1167279&r1=1167278&r2=1167279&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java Fri Sep  9 16:23:36 2011
@@ -28,6 +28,7 @@ import java.util.concurrent.ThreadPoolEx
 import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.NamedNode;
 import org.apache.camel.ThreadPoolRejectedPolicy;
 import org.apache.camel.builder.ThreadPoolProfileBuilder;
 import org.apache.camel.model.OptionalIdentifiedDefinition;
@@ -312,10 +313,10 @@ public class DefaultExecutorServiceManag
         String routeId = null;
 
         // extract id from source
-        if (source instanceof OptionalIdentifiedDefinition) {
+        if (source instanceof NamedNode) {
             id = ((OptionalIdentifiedDefinition) source).idOrCreate(this.camelContext.getNodeIdFactory());
             // and let source be the short name of the pattern
-            sourceId = ((OptionalIdentifiedDefinition) source).getShortName();
+            sourceId = ((NamedNode) source).getShortName();
         } else if (source instanceof String) {
             id = (String) source;
         } else if (source != null) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultNodeIdFactory.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultNodeIdFactory.java?rev=1167279&r1=1167278&r2=1167279&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultNodeIdFactory.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultNodeIdFactory.java Fri Sep  9 16:23:36 2011
@@ -20,7 +20,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.camel.model.OptionalIdentifiedDefinition;
+import org.apache.camel.NamedNode;
 import org.apache.camel.spi.NodeIdFactory;
 
 /**
@@ -32,7 +32,7 @@ public class DefaultNodeIdFactory implem
 
     protected static Map<String, AtomicInteger> nodeCounters = new HashMap<String, AtomicInteger>();
 
-    public String createId(OptionalIdentifiedDefinition<?> definition) {
+    public String createId(NamedNode definition) {
         String key = definition.getShortName();
         return key + getNodeCounter(key).incrementAndGet();
     }

Modified: 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=1167279&r1=1167278&r2=1167279&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java Fri Sep  9 16:23:36 2011
@@ -24,6 +24,7 @@ import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.NamedNode;
 
 /**
  * Helper for the Camel {@link org.apache.camel.model model} classes.
@@ -41,7 +42,7 @@ public final class ModelHelper {
      * @return            the output in XML (is formatted)
      * @throws JAXBException is throw if error marshalling to XML
      */
-    public static String dumpModelAsXml(OptionalIdentifiedDefinition definition) throws JAXBException {
+    public static String dumpModelAsXml(NamedNode 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());
@@ -62,7 +63,7 @@ public final class ModelHelper {
      * @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 {
+    public static <T extends NamedNode> 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());

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java?rev=1167279&r1=1167278&r2=1167279&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java Fri Sep  9 16:23:36 2011
@@ -26,6 +26,7 @@ import javax.xml.bind.annotation.XmlType
 import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
+import org.apache.camel.NamedNode;
 import org.apache.camel.spi.NodeIdFactory;
 
 /**
@@ -35,7 +36,7 @@ import org.apache.camel.spi.NodeIdFactor
  */
 @XmlType(name = "optionalIdentifiedDefinition")
 @XmlAccessorType(XmlAccessType.PROPERTY)
-public abstract class OptionalIdentifiedDefinition<T extends OptionalIdentifiedDefinition<T>> {
+public abstract class OptionalIdentifiedDefinition<T extends OptionalIdentifiedDefinition<T>> implements NamedNode {
     private String id;
     @XmlTransient
     private boolean customId;
@@ -44,6 +45,7 @@ public abstract class OptionalIdentified
     /**
      * Gets the value of the id property.
      */
+    @Override
     public String getId() {
         return id;
     }
@@ -73,6 +75,7 @@ public abstract class OptionalIdentified
      *
      * @return defaults to "node" but derived nodes should overload this to provide a unique name
      */
+    @Override
     public String getShortName() {
         return "node";
     }
@@ -140,6 +143,7 @@ public abstract class OptionalIdentified
     /**
      * Returns the description text or null if there is no description text associated with this node
      */
+    @Override
     public String getDescriptionText() {
         return (description != null) ? description.getText() : null;
     }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/spi/NodeIdFactory.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/spi/NodeIdFactory.java?rev=1167279&r1=1167278&r2=1167279&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/spi/NodeIdFactory.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/spi/NodeIdFactory.java Fri Sep  9 16:23:36 2011
@@ -16,7 +16,7 @@
  */
 package org.apache.camel.spi;
 
-import org.apache.camel.model.OptionalIdentifiedDefinition;
+import org.apache.camel.NamedNode;
 
 /**
  * Factory to generate unique ids for model nodes.
@@ -32,5 +32,5 @@ public interface NodeIdFactory {
      *        (its most likely a {@link org.apache.camel.model.OutputDefinition OutputDefinition} instance)
      * @return the id created
      */
-    String createId(OptionalIdentifiedDefinition<?> definition);
+    String createId(NamedNode definition);
 }

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomIdFactoryTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomIdFactoryTest.java?rev=1167279&r1=1167278&r2=1167279&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomIdFactoryTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/impl/CustomIdFactoryTest.java Fri Sep  9 16:23:36 2011
@@ -19,9 +19,9 @@ package org.apache.camel.impl;
 import org.apache.camel.CamelContext;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
+import org.apache.camel.NamedNode;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.model.OptionalIdentifiedDefinition;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.processor.DelegateProcessor;
 import org.apache.camel.spi.InterceptStrategy;
@@ -57,7 +57,7 @@ public class CustomIdFactoryTest extends
             public void configure() throws Exception {
                 // use our own id factory so we can generate the keys we like to use
                 context.setNodeIdFactory(new NodeIdFactory() {
-                    public String createId(OptionalIdentifiedDefinition<?> definition) {
+                    public String createId(NamedNode definition) {
                         return "#" + definition.getShortName() + ++counter + "#";
                     }
                 });