Repository: camel Updated Branches: refs/heads/master 921ae155f -> 003d4d05c
Fixed json dataformat name to use the chosen library so the name is correct. Fixed OSGi unit test that tests this. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/3c97afe7 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/3c97afe7 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/3c97afe7 Branch: refs/heads/master Commit: 3c97afe7bcef40ca44d2f98d5f17133500c8df06 Parents: 921ae15 Author: Claus Ibsen <davscl...@apache.org> Authored: Fri Jan 23 09:04:09 2015 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Fri Jan 23 09:04:09 2015 +0100 ---------------------------------------------------------------------- .../java/org/apache/camel/model/DataFormatDefinition.java | 5 +++-- .../org/apache/camel/model/dataformat/JsonDataFormat.java | 6 ++++++ .../apache/camel/itest/osgi/blueprint/CamelBlueprintTest.java | 7 +++---- 3 files changed, 12 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/3c97afe7/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java b/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java index d8ad895..c4e9cf9 100644 --- a/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java +++ b/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java @@ -109,8 +109,9 @@ public class DataFormatDefinition extends IdentifiedType { * Factory method to create the data format instance */ protected DataFormat createDataFormat(RouteContext routeContext) { - if (dataFormatName != null) { - return routeContext.getCamelContext().resolveDataFormat(dataFormatName); + // must use getDataFormatName() as we need special logic in json dataformat + if (getDataFormatName() != null) { + return routeContext.getCamelContext().resolveDataFormat(getDataFormatName()); } return null; } http://git-wip-us.apache.org/repos/asf/camel/blob/3c97afe7/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java b/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java index 242bf0b..edd3a8c 100644 --- a/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java +++ b/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java @@ -190,6 +190,12 @@ public class JsonDataFormat extends DataFormatDefinition { } @Override + public String getDataFormatName() { + // json data format is special as the name can be from different bundles + return "json-" + library.name().toLowerCase(); + } + + @Override protected DataFormat createDataFormat(RouteContext routeContext) { if (library == JsonLibrary.XStream) { setProperty(routeContext.getCamelContext(), this, "dataFormatName", "json-xstream"); http://git-wip-us.apache.org/repos/asf/camel/blob/3c97afe7/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/CamelBlueprintTest.java ---------------------------------------------------------------------- diff --git a/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/CamelBlueprintTest.java b/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/CamelBlueprintTest.java index 9d6a158..d4ae39e 100644 --- a/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/CamelBlueprintTest.java +++ b/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/blueprint/CamelBlueprintTest.java @@ -72,8 +72,7 @@ public class CamelBlueprintTest extends OSGiBlueprintTestSupport { @Test public void testRouteWithMissingDataFormat() throws Exception { - // paxexam-karaf-container doesn't support start stop bundle well, the bundle is started when it is deployed by default. - /* + getInstalledBundle("CamelBlueprintTestBundle3").stop(); getInstalledBundle("org.apache.camel.camel-jackson").stop(); try { getOsgiService(BlueprintContainer.class, "(osgi.blueprint.container.symbolicname=CamelBlueprintTestBundle3)", 500); @@ -86,8 +85,8 @@ public class CamelBlueprintTest extends OSGiBlueprintTestSupport { fail("The blueprint container should not be available"); } catch (Exception e) { } - getInstalledBundle("org.apache.camel.camel-jackson").start();*/ - + + getInstalledBundle("org.apache.camel.camel-jackson").start(); getOsgiService(BlueprintContainer.class, "(osgi.blueprint.container.symbolicname=CamelBlueprintTestBundle3)", 10000); getOsgiService(CamelContext.class, "(camel.context.symbolicname=CamelBlueprintTestBundle3)", 10000); }