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/01/21 16:06:47 UTC

svn commit: r736322 - in /camel/trunk/camel-core/src/main/java/org/apache/camel: component/dataset/ component/direct/ component/file/ component/jmx/ component/log/ component/seda/ component/timer/ impl/

Author: davsclaus
Date: Wed Jan 21 07:06:46 2009
New Revision: 736322

URL: http://svn.apache.org/viewvc?rev=736322&view=rev
Log:
CAMEL-1282: Endpoints in camel-core is nowe easier to create using spring beans in the spring xml files. There is a defualt no args constructor and then you can set all properties on the endpoint using spring.

Added:
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java   (with props)
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/jmx/JMXComponent.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProcessorEndpoint.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java?rev=736322&r1=736321&r2=736322&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java Wed Jan 21 07:06:46 2009
@@ -46,6 +46,9 @@
     private long startTime;
     private long preloadSize;
 
+    public DataSetEndpoint() {
+    }
+
     public DataSetEndpoint(String endpointUri, Component component, DataSet dataSet) {
         super(endpointUri, component);
         this.dataSet = dataSet;

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java?rev=736322&r1=736321&r2=736322&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java Wed Jan 21 07:06:46 2009
@@ -36,6 +36,9 @@
     private boolean allowMultipleConsumers = true;
     private final CopyOnWriteArrayList<DefaultConsumer> consumers = new CopyOnWriteArrayList<DefaultConsumer>();
 
+    public DirectEndpoint() {
+    }
+
     public DirectEndpoint(String uri, DirectComponent component) {
         super(uri, component);
     }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java?rev=736322&r1=736321&r2=736322&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java Wed Jan 21 07:06:46 2009
@@ -63,7 +63,7 @@
     private boolean noop;
     private boolean append = true;
     private boolean recursive;
-    private String regexPattern = "";
+    private String regexPattern;
     private String moveNamePrefix;
     private String moveNamePostfix;
     private String preMoveNamePrefix;

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/jmx/JMXComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/jmx/JMXComponent.java?rev=736322&r1=736321&r2=736322&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/jmx/JMXComponent.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/jmx/JMXComponent.java Wed Jan 21 07:06:46 2009
@@ -41,7 +41,6 @@
     }
 
     protected Endpoint createEndpoint(String uri, String remaining, Map parameters) throws Exception {
-
         JMXEndpoint result = new JMXEndpoint(remaining, this);
         setProperties(result, parameters);
         result.setMbeanServer(getMbeanServer());

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java?rev=736322&r1=736321&r2=736322&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java Wed Jan 21 07:06:46 2009
@@ -23,11 +23,10 @@
 
 import org.apache.camel.Consumer;
 import org.apache.camel.Exchange;
-import org.apache.camel.ExchangePattern;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultEndpoint;
-import org.apache.camel.impl.DefaultExchange;
+import org.apache.camel.util.ObjectHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -39,7 +38,6 @@
 public class JMXEndpoint extends DefaultEndpoint {
     private static final transient Log LOG = LogFactory.getLog(JMXEndpoint.class);
     private String name;
-    private ObjectName ourName;
     private String observedObjectName;
     private String attributeName;
     private long granularityPeriod = 5000;
@@ -48,7 +46,10 @@
     private MBeanServer mbeanServer;
     private CounterMonitor counterMonitor = new CounterMonitor();
 
-    protected JMXEndpoint(String endpointUri, JMXComponent component) {
+    public JMXEndpoint() {
+    }
+
+    public JMXEndpoint(String endpointUri, JMXComponent component) {
         super(endpointUri, component);
         observedObjectName = endpointUri;
     }
@@ -62,6 +63,8 @@
     }
 
     public Consumer createConsumer(Processor proc) throws Exception {
+        ObjectHelper.notNull(mbeanServer, "mbeanServer");
+
         ObjectName observedName = new ObjectName(observedObjectName);
         if (name == null) {
             String type = observedName.getKeyProperty("type");
@@ -70,7 +73,7 @@
         }
 
         JMXConsumer result = new JMXConsumer(this, proc);
-        ourName = new ObjectName(name);
+        ObjectName ourName = new ObjectName(name);
         counterMonitor.setNotify(true);
         counterMonitor.addObservedObject(observedName);
         counterMonitor.setObservedAttribute(attributeName);

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java?rev=736322&r1=736321&r2=736322&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java Wed Jan 21 07:06:46 2009
@@ -20,7 +20,6 @@
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.DefaultComponent;
-import org.apache.camel.impl.ProcessorEndpoint;
 import org.apache.camel.model.LoggingLevel;
 import org.apache.camel.processor.Logger;
 import org.apache.camel.processor.ThroughputLogger;
@@ -50,7 +49,9 @@
             logger.setFormatter(formatter);
         }
 
-        return new ProcessorEndpoint(uri, this, logger);
+        LogEndpoint endpoint = new LogEndpoint(uri, this);
+        setProperties(endpoint, parameters);
+        return new LogEndpoint(uri, this, logger);
     }
 
     /**

Added: camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java?rev=736322&view=auto
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java (added)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java Wed Jan 21 07:06:46 2009
@@ -0,0 +1,51 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.log;
+
+import org.apache.camel.Component;
+import org.apache.camel.impl.ProcessorEndpoint;
+import org.apache.camel.processor.Logger;
+
+/**
+ * Log endpoint.
+ */
+public class LogEndpoint extends ProcessorEndpoint {
+
+    private Logger logger;
+
+    public LogEndpoint() {
+    }
+
+    public LogEndpoint(String endpointUri, Component component) {
+        super(endpointUri, component);
+    }
+
+    public LogEndpoint(String endpointUri, Component component, Logger logger) {
+        super(endpointUri, component);
+        setLogger(logger);
+    }
+    
+    public Logger getLogger() {
+        return logger;
+    }
+
+    public void setLogger(Logger logger) {
+        this.logger = logger;
+        // the logger is the processor
+        setProcessor(this.logger);
+    }
+}

Propchange: camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java?rev=736322&r1=736321&r2=736322&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java Wed Jan 21 07:06:46 2009
@@ -20,6 +20,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.LinkedBlockingQueue;
 
 import org.apache.camel.Component;
 import org.apache.camel.Consumer;
@@ -28,7 +29,6 @@
 import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.BrowsableEndpoint;
-import org.apache.camel.util.ObjectHelper;
 
 /**
  * An implementation of the <a
@@ -39,6 +39,10 @@
  */
 public class SedaEndpoint extends DefaultEndpoint implements BrowsableEndpoint {
     private BlockingQueue<Exchange> queue;
+    private int size = 1000;
+
+    public SedaEndpoint() {
+    }
 
     public SedaEndpoint(String endpointUri, Component component, BlockingQueue<Exchange> queue) {
         super(endpointUri, component);
@@ -51,7 +55,6 @@
 
     public SedaEndpoint(String endpointUri, BlockingQueue<Exchange> queue) {
         super(endpointUri);
-        ObjectHelper.notNull(queue, "queue");
         this.queue = queue;
     }
 
@@ -63,10 +66,25 @@
         return new SedaConsumer(this, processor);
     }
 
-    public BlockingQueue<Exchange> getQueue() {
+    public synchronized BlockingQueue<Exchange> getQueue() {
+        if (queue == null) {
+            queue = new LinkedBlockingQueue<Exchange>(size);
+        }
         return queue;
     }
 
+    public void setQueue(BlockingQueue<Exchange> queue) {
+        this.queue = queue;
+    }
+
+    public int getSize() {
+        return size;
+    }
+
+    public void setSize(int size) {
+        this.size = size;
+    }
+
     public boolean isSingleton() {
         return true;
     }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java?rev=736322&r1=736321&r2=736322&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerComponent.java Wed Jan 21 07:06:46 2009
@@ -31,7 +31,7 @@
  * @version $Revision$
  */
 public class TimerComponent extends DefaultComponent {
-    private Map<String, Timer> timers = new HashMap<String, Timer>();
+    private final Map<String, Timer> timers = new HashMap<String, Timer>();
 
     public Timer getTimer(TimerEndpoint endpoint) {
         String key = endpoint.getTimerName();
@@ -39,10 +39,13 @@
             key = "nonDaemon:" + key;
         }
 
-        Timer answer = timers.get(key);
-        if (answer == null) {
-            answer = new Timer(endpoint.getTimerName(), endpoint.isDaemon());
-            timers.put(key, answer);
+        Timer answer;
+        synchronized (timers) {
+            answer = timers.get(key);
+            if (answer == null) {
+                answer = new Timer(endpoint.getTimerName(), endpoint.isDaemon());
+                timers.put(key, answer);
+            }
         }
         return answer;
     }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java?rev=736322&r1=736321&r2=736322&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java Wed Jan 21 07:06:46 2009
@@ -20,7 +20,6 @@
 import java.util.Timer;
 
 import org.apache.camel.Consumer;
-import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.RuntimeCamelException;
@@ -40,6 +39,9 @@
     private boolean daemon = true;
     private Timer timer;
 
+    public TimerEndpoint() {
+    }
+
     public TimerEndpoint(String fullURI, TimerComponent component, String timerName) {
         super(fullURI, component);
         this.timer = component.getTimer(this);

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProcessorEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProcessorEndpoint.java?rev=736322&r1=736321&r2=736322&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProcessorEndpoint.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProcessorEndpoint.java Wed Jan 21 07:06:46 2009
@@ -80,6 +80,10 @@
         return processor;
     }
 
+    public void setProcessor(Processor processor) {
+        this.processor = processor;
+    }
+
     protected Processor createProcessor() throws Exception {
         return new Processor() {
             public void process(Exchange exchange) throws Exception {