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 <lburgazz...@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 { } }