You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2014/02/03 10:39:28 UTC
[1/2] git commit: CAMEL-7161: camel-dozer - Can cause dead-lock in
init when using spring
Updated Branches:
refs/heads/camel-2.12.x c4b133165 -> ddabc95e6
refs/heads/master ed07738ac -> 30842e35c
CAMEL-7161: camel-dozer - Can cause dead-lock in init when using spring
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/30842e35
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/30842e35
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/30842e35
Branch: refs/heads/master
Commit: 30842e35c6086ec860674f31ca7148502fb0defa
Parents: ed07738
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Feb 3 10:39:44 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Feb 3 10:39:44 2014 +0100
----------------------------------------------------------------------
.../dozer/DozerTypeConverterLoader.java | 47 +++++++++++++++++---
1 file changed, 42 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/30842e35/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java
----------------------------------------------------------------------
diff --git a/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java b/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java
index 317dfa8..edad108 100644
--- a/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java
+++ b/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java
@@ -30,6 +30,8 @@ import org.apache.camel.CamelContextAware;
import org.apache.camel.TypeConverter;
import org.apache.camel.spi.ClassResolver;
import org.apache.camel.spi.TypeConverterRegistry;
+import org.apache.camel.support.ServiceSupport;
+import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.ReflectionHelper;
import org.apache.camel.util.ResourceHelper;
import org.dozer.DozerBeanMapper;
@@ -58,7 +60,7 @@ import static org.dozer.classmap.MappingDirection.ONE_WAY;
* The queried types are used to register the {@link TypeConverter} with the
* context via its {@link TypeConverterRegistry}.
*/
-public class DozerTypeConverterLoader implements CamelContextAware {
+public class DozerTypeConverterLoader extends ServiceSupport implements CamelContextAware {
private final Logger log = LoggerFactory.getLogger(getClass());
private CamelContext camelContext;
@@ -82,7 +84,12 @@ public class DozerTypeConverterLoader implements CamelContextAware {
* {@link DozerTypeConverter} in
*/
public DozerTypeConverterLoader(CamelContext camelContext) {
- init(camelContext, null);
+ this.camelContext = camelContext;
+ try {
+ camelContext.addService(this);
+ } catch (Exception e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ }
}
/**
@@ -111,7 +118,14 @@ public class DozerTypeConverterLoader implements CamelContextAware {
log.info("Using DozerBeanMapperConfiguration: {}", configuration);
DozerBeanMapper mapper = createDozerBeanMapper(configuration);
- init(camelContext, mapper);
+ this.camelContext = camelContext;
+ this.mapper = mapper;
+
+ try {
+ camelContext.addService(this);
+ } catch (Exception e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ }
}
/**
@@ -125,7 +139,14 @@ public class DozerTypeConverterLoader implements CamelContextAware {
*/
@Deprecated
public DozerTypeConverterLoader(CamelContext camelContext, DozerBeanMapper mapper) {
- init(camelContext, mapper);
+ this.camelContext = camelContext;
+ this.mapper = mapper;
+
+ try {
+ camelContext.addService(this);
+ } catch (Exception e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ }
}
/**
@@ -307,7 +328,14 @@ public class DozerTypeConverterLoader implements CamelContextAware {
* @param camelContext the CamelContext
*/
public void setCamelContext(CamelContext camelContext) {
- init(camelContext, null);
+ if (this.camelContext == null) {
+ this.camelContext = camelContext;
+ try {
+ camelContext.addService(this);
+ } catch (Exception e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ }
+ }
}
public DozerBeanMapper getMapper() {
@@ -332,4 +360,13 @@ public class DozerTypeConverterLoader implements CamelContextAware {
return url;
}
+ @Override
+ protected void doStart() throws Exception {
+ init(camelContext, mapper);
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
[2/2] git commit: CAMEL-7161: camel-dozer - Can cause dead-lock in
init when using spring
Posted by da...@apache.org.
CAMEL-7161: camel-dozer - Can cause dead-lock in init when using spring
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ddabc95e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ddabc95e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ddabc95e
Branch: refs/heads/camel-2.12.x
Commit: ddabc95e6e77bd9e8f3d4c0867981ed3fae3232b
Parents: c4b1331
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Feb 3 10:39:44 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Feb 3 10:40:16 2014 +0100
----------------------------------------------------------------------
.../dozer/DozerTypeConverterLoader.java | 47 +++++++++++++++++---
1 file changed, 42 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/ddabc95e/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java
----------------------------------------------------------------------
diff --git a/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java b/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java
index 317dfa8..edad108 100644
--- a/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java
+++ b/components/camel-dozer/src/main/java/org/apache/camel/converter/dozer/DozerTypeConverterLoader.java
@@ -30,6 +30,8 @@ import org.apache.camel.CamelContextAware;
import org.apache.camel.TypeConverter;
import org.apache.camel.spi.ClassResolver;
import org.apache.camel.spi.TypeConverterRegistry;
+import org.apache.camel.support.ServiceSupport;
+import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.ReflectionHelper;
import org.apache.camel.util.ResourceHelper;
import org.dozer.DozerBeanMapper;
@@ -58,7 +60,7 @@ import static org.dozer.classmap.MappingDirection.ONE_WAY;
* The queried types are used to register the {@link TypeConverter} with the
* context via its {@link TypeConverterRegistry}.
*/
-public class DozerTypeConverterLoader implements CamelContextAware {
+public class DozerTypeConverterLoader extends ServiceSupport implements CamelContextAware {
private final Logger log = LoggerFactory.getLogger(getClass());
private CamelContext camelContext;
@@ -82,7 +84,12 @@ public class DozerTypeConverterLoader implements CamelContextAware {
* {@link DozerTypeConverter} in
*/
public DozerTypeConverterLoader(CamelContext camelContext) {
- init(camelContext, null);
+ this.camelContext = camelContext;
+ try {
+ camelContext.addService(this);
+ } catch (Exception e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ }
}
/**
@@ -111,7 +118,14 @@ public class DozerTypeConverterLoader implements CamelContextAware {
log.info("Using DozerBeanMapperConfiguration: {}", configuration);
DozerBeanMapper mapper = createDozerBeanMapper(configuration);
- init(camelContext, mapper);
+ this.camelContext = camelContext;
+ this.mapper = mapper;
+
+ try {
+ camelContext.addService(this);
+ } catch (Exception e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ }
}
/**
@@ -125,7 +139,14 @@ public class DozerTypeConverterLoader implements CamelContextAware {
*/
@Deprecated
public DozerTypeConverterLoader(CamelContext camelContext, DozerBeanMapper mapper) {
- init(camelContext, mapper);
+ this.camelContext = camelContext;
+ this.mapper = mapper;
+
+ try {
+ camelContext.addService(this);
+ } catch (Exception e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ }
}
/**
@@ -307,7 +328,14 @@ public class DozerTypeConverterLoader implements CamelContextAware {
* @param camelContext the CamelContext
*/
public void setCamelContext(CamelContext camelContext) {
- init(camelContext, null);
+ if (this.camelContext == null) {
+ this.camelContext = camelContext;
+ try {
+ camelContext.addService(this);
+ } catch (Exception e) {
+ throw ObjectHelper.wrapRuntimeCamelException(e);
+ }
+ }
}
public DozerBeanMapper getMapper() {
@@ -332,4 +360,13 @@ public class DozerTypeConverterLoader implements CamelContextAware {
return url;
}
+ @Override
+ protected void doStart() throws Exception {
+ init(camelContext, mapper);
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}