Author: davsclaus
Date: Fri Jul 15 07:34:35 2011
New Revision: 1146990

URL: http://svn.apache.org/viewvc?rev=1146990&view=rev
Log:
Fixed camel-hdfs not being able to install in osgi, or possible hot deploy in 
eg a web container due static code block.

Modified:
    
camel/trunk/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsComponent.java

Modified: 
camel/trunk/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsComponent.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsComponent.java?rev=1146990&r1=1146989&r2=1146990&view=diff
==============================================================================
--- 
camel/trunk/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsComponent.java
 (original)
+++ 
camel/trunk/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsComponent.java
 Fri Jul 15 07:34:35 2011
@@ -23,18 +23,20 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.DefaultComponent;
 import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class HdfsComponent extends DefaultComponent {
 
-    static {
-        URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
-    }
+    private static final Logger LOG = 
LoggerFactory.getLogger(HdfsComponent.class);
 
     public HdfsComponent() {
+        initHdfs();
     }
 
     public HdfsComponent(CamelContext context) {
         super(context);
+        initHdfs();
     }
 
     @SuppressWarnings("unchecked")
@@ -44,4 +46,13 @@ public class HdfsComponent extends Defau
         return hdfsEndpoint;
     }
 
+    protected void initHdfs() {
+        try {
+            URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
+        } catch (Throwable e) {
+            // ignore as its most likely already set
+            LOG.debug("Cannot set URLStreamHandlerFactory due " + 
e.getMessage() + ". This exception will be ignored.", e);
+        }
+    }
+
 }


Reply via email to