You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2019/06/18 05:50:13 UTC

[camel] branch master updated: CAMEL-13655: Allow to plug a custom ProcessorReifier

This is an automated email from the ASF dual-hosted git repository.

lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new bc9eabb  CAMEL-13655: Allow to plug a custom ProcessorReifier
bc9eabb is described below

commit bc9eabb2ebb8a919e947aaee82a1552074cffed9
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Mon Jun 17 17:12:09 2019 +0200

    CAMEL-13655: Allow to plug a custom ProcessorReifier
---
 .../org/apache/camel/reifier/ProcessorReifier.java |  6 ++++-
 .../{refier => reifier}/DataFormatReifierTest.java | 20 +++++++++------
 .../ProcessorReifierTest.java}                     | 29 +++++++++++-----------
 3 files changed, 33 insertions(+), 22 deletions(-)

diff --git a/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java b/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
index 9d18764..1ecb803 100644
--- a/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
+++ b/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
@@ -187,11 +187,15 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> {
     protected final Logger log = LoggerFactory.getLogger(getClass());
 
     protected final T definition;
-    
+
     public ProcessorReifier(T definition) {
         this.definition = definition;
     }
 
+    public static void registerReifier(Class<?> processorClass, Function<ProcessorDefinition<?>, ProcessorReifier<? extends ProcessorDefinition<?>>> creator) {
+        PROCESSORS.put(processorClass, creator);
+    }
+
     public static ProcessorReifier<? extends ProcessorDefinition<?>> reifier(ProcessorDefinition<?> definition) {
         Function<ProcessorDefinition<?>, ProcessorReifier<? extends ProcessorDefinition<?>>> reifier = PROCESSORS.get(definition.getClass());
         if (reifier != null) {
diff --git a/core/camel-core/src/test/java/org/apache/camel/refier/DataFormatReifierTest.java b/core/camel-core/src/test/java/org/apache/camel/reifier/DataFormatReifierTest.java
similarity index 74%
copy from core/camel-core/src/test/java/org/apache/camel/refier/DataFormatReifierTest.java
copy to core/camel-core/src/test/java/org/apache/camel/reifier/DataFormatReifierTest.java
index 820e905..06c4a03 100644
--- a/core/camel-core/src/test/java/org/apache/camel/refier/DataFormatReifierTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/reifier/DataFormatReifierTest.java
@@ -14,22 +14,28 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.refier;
+package org.apache.camel.reifier;
 
 import org.apache.camel.model.dataformat.CustomDataFormat;
 import org.apache.camel.reifier.dataformat.CustomDataFormatReifier;
 import org.apache.camel.reifier.dataformat.DataFormatReifier;
+import org.junit.FixMethodOrder;
 import org.junit.Test;
+import org.junit.runners.MethodSorters;
 
+import static junit.framework.TestCase.fail;
+
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
 public class DataFormatReifierTest {
+    @Test
+    public void testHandleCustomDataFormat() {
+        try {
+            DataFormatReifier.reifier(new MyDataFormat());
 
-    @Test(expected = IllegalStateException.class)
-    public void shouldNotHandleCustomDataFormat() {
-        DataFormatReifier.reifier(new MyDataFormat());
-    }
+            fail("Should throw IllegalStateException instead");
+        } catch (IllegalStateException e) {
+        }
 
-    @Test
-    public void shouldHandleCustomDataFormat() {
         DataFormatReifier.registerReifier(MyDataFormat.class, CustomDataFormatReifier::new);
         DataFormatReifier.reifier(new MyDataFormat());
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/refier/DataFormatReifierTest.java b/core/camel-core/src/test/java/org/apache/camel/reifier/ProcessorReifierTest.java
similarity index 55%
rename from core/camel-core/src/test/java/org/apache/camel/refier/DataFormatReifierTest.java
rename to core/camel-core/src/test/java/org/apache/camel/reifier/ProcessorReifierTest.java
index 820e905..e2c953c 100644
--- a/core/camel-core/src/test/java/org/apache/camel/refier/DataFormatReifierTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/reifier/ProcessorReifierTest.java
@@ -14,26 +14,27 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.refier;
+package org.apache.camel.reifier;
 
-import org.apache.camel.model.dataformat.CustomDataFormat;
-import org.apache.camel.reifier.dataformat.CustomDataFormatReifier;
-import org.apache.camel.reifier.dataformat.DataFormatReifier;
+import org.apache.camel.model.ProcessDefinition;
 import org.junit.Test;
 
-public class DataFormatReifierTest {
-
-    @Test(expected = IllegalStateException.class)
-    public void shouldNotHandleCustomDataFormat() {
-        DataFormatReifier.reifier(new MyDataFormat());
-    }
+import static junit.framework.TestCase.fail;
 
+public class ProcessorReifierTest {
     @Test
-    public void shouldHandleCustomDataFormat() {
-        DataFormatReifier.registerReifier(MyDataFormat.class, CustomDataFormatReifier::new);
-        DataFormatReifier.reifier(new MyDataFormat());
+    public void testHandleCustomProcessorDefinition() {
+        try {
+            ProcessorReifier.reifier(new MyProcessor());
+
+            fail("Should throw IllegalStateException instead");
+        } catch (IllegalStateException e) {
+        }
+
+        ProcessorReifier.registerReifier(MyProcessor.class, ProcessReifier::new);
+        ProcessorReifier.reifier(new ProcessDefinition());
     }
 
-    public static class MyDataFormat extends CustomDataFormat {
+    public static class MyProcessor extends ProcessDefinition {
     }
 }