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 2009/11/17 06:04:58 UTC
svn commit: r881156 -
/camel/trunk/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletEndpoint.java
Author: davsclaus
Date: Tue Nov 17 05:04:58 2009
New Revision: 881156
URL: http://svn.apache.org/viewvc?rev=881156&view=rev
Log:
CAMEL-2175: Fixed initialization of restlet endpoint not being threadsafe.
Modified:
camel/trunk/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletEndpoint.java
Modified: camel/trunk/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletEndpoint.java?rev=881156&r1=881155&r2=881156&view=diff
==============================================================================
--- camel/trunk/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletEndpoint.java (original)
+++ camel/trunk/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletEndpoint.java Tue Nov 17 05:04:58 2009
@@ -18,12 +18,12 @@
import java.util.List;
import java.util.Map;
-import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.camel.Consumer;
import org.apache.camel.ExchangePattern;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
+import org.apache.camel.Service;
import org.apache.camel.impl.DefaultEndpoint;
import org.apache.camel.spi.HeaderFilterStrategy;
import org.apache.camel.spi.HeaderFilterStrategyAware;
@@ -36,7 +36,7 @@
*
* @version $Revision$
*/
-public class RestletEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware {
+public class RestletEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware, Service {
private static final Log LOG = LogFactory.getLog(RestletEndpoint.class);
private static final int DEFAULT_PORT = 80;
@@ -61,7 +61,6 @@
private Map<String, String> restletRealm;
private HeaderFilterStrategy headerFilterStrategy;
private RestletBinding restletBinding;
- private AtomicBoolean bindingInitialized = new AtomicBoolean(false);
public RestletEndpoint(RestletComponent component, String remaining) throws Exception {
super(remaining, component);
@@ -134,23 +133,11 @@
}
public RestletBinding getRestletBinding() {
- if (restletBinding == null) {
- restletBinding = new DefaultRestletBinding();
- if (LOG.isDebugEnabled()) {
- LOG.debug("Create default Restlet Binding " + restletBinding);
- }
- }
-
- if (!bindingInitialized.getAndSet(true)
- && restletBinding instanceof HeaderFilterStrategyAware) {
- ((HeaderFilterStrategyAware)restletBinding).setHeaderFilterStrategy(getHeaderFilterStrategy());
- }
return restletBinding;
}
public void setRestletBinding(RestletBinding restletBinding) {
this.restletBinding = restletBinding;
- bindingInitialized.set(false);
}
public void setHeaderFilterStrategy(HeaderFilterStrategy headerFilterStrategy) {
@@ -161,12 +148,6 @@
}
public HeaderFilterStrategy getHeaderFilterStrategy() {
- if (headerFilterStrategy == null) {
- headerFilterStrategy = new RestletHeaderFilterStrategy();
- if (LOG.isDebugEnabled()) {
- LOG.debug("Create Restlet default header filter strategy " + headerFilterStrategy);
- }
- }
return headerFilterStrategy;
}
@@ -184,32 +165,35 @@
return ExchangePattern.InOut;
}
- /**
- * @param restletMethods the restletMethods to set
- */
public void setRestletMethods(Method[] restletMethods) {
this.restletMethods = restletMethods;
}
- /**
- * @return the restletMethods
- */
public Method[] getRestletMethods() {
return restletMethods;
}
- /**
- * @param restletUriPatterns the restletUriPatterns to set
- */
public void setRestletUriPatterns(List<String> restletUriPatterns) {
this.restletUriPatterns = restletUriPatterns;
}
- /**
- * @return the restletUriPatterns
- */
public List<String> getRestletUriPatterns() {
return restletUriPatterns;
}
+ public void start() throws Exception {
+ if (headerFilterStrategy == null) {
+ headerFilterStrategy = new RestletHeaderFilterStrategy();
+ }
+ if (restletBinding == null) {
+ restletBinding = new DefaultRestletBinding();
+ }
+ if (restletBinding instanceof HeaderFilterStrategyAware) {
+ ((HeaderFilterStrategyAware)restletBinding).setHeaderFilterStrategy(getHeaderFilterStrategy());
+ }
+ }
+
+ public void stop() throws Exception {
+ // noop
+ }
}