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 + "#";
}
});