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 2015/03/01 08:42:34 UTC

[07/11] camel git commit: CAMEL-8320: Component doc to include endpoint syntax.

CAMEL-8320: Component doc to include endpoint syntax.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/5c38e8b1
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5c38e8b1
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5c38e8b1

Branch: refs/heads/master
Commit: 5c38e8b1f664dc4ace5e2dacfe450f4a2dedba5d
Parents: f511c45
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Feb 28 19:03:25 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Feb 28 19:03:25 2015 +0100

----------------------------------------------------------------------
 .../org/apache/camel/component/feed/FeedEndpoint.java    |  5 +++--
 .../camel/component/routebox/RouteboxConfiguration.java  |  3 ++-
 .../camel/component/routebox/RouteboxEndpoint.java       |  2 +-
 .../java/org/apache/camel/component/rss/RssEndpoint.java |  2 +-
 .../camel/component/salesforce/SalesforceEndpoint.java   | 10 ++++++----
 .../camel/component/sap/netweaver/NetWeaverEndpoint.java |  5 +++--
 .../apache/camel/component/xquery/XQueryEndpoint.java    |  7 ++++---
 .../camel/component/schematron/SchematronEndpoint.java   |  7 ++++---
 .../org/apache/camel/component/sip/SipConfiguration.java |  3 ++-
 .../java/org/apache/camel/component/sip/SipEndpoint.java |  2 +-
 .../org/apache/camel/component/sjms/SjmsEndpoint.java    |  9 ++++++---
 .../apache/camel/component/smpp/SmppConfiguration.java   |  4 ++--
 .../org/apache/camel/component/smpp/SmppEndpoint.java    |  2 +-
 .../org/apache/camel/component/snmp/SnmpEndpoint.java    | 11 ++++++-----
 14 files changed, 42 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-atom/src/main/java/org/apache/camel/component/feed/FeedEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-atom/src/main/java/org/apache/camel/component/feed/FeedEndpoint.java b/components/camel-atom/src/main/java/org/apache/camel/component/feed/FeedEndpoint.java
index 9d8daa0..ef291d0 100644
--- a/components/camel-atom/src/main/java/org/apache/camel/component/feed/FeedEndpoint.java
+++ b/components/camel-atom/src/main/java/org/apache/camel/component/feed/FeedEndpoint.java
@@ -23,6 +23,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultPollingEndpoint;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.ObjectHelper;
@@ -32,7 +33,7 @@ import org.apache.camel.util.ObjectHelper;
  */
 public abstract class FeedEndpoint extends DefaultPollingEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     protected String feedUri;
     @UriParam(defaultValue = "true")
     protected boolean splitEntries = true;
@@ -42,7 +43,7 @@ public abstract class FeedEndpoint extends DefaultPollingEndpoint {
     protected boolean filter = true;
     @UriParam(defaultValue = "true")
     private boolean feedHeader = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean sortEntries;
     @UriParam(defaultValue = "true")
     private boolean throttleEntries = true;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxConfiguration.java b/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxConfiguration.java
index 2bbf409..34c8a23 100644
--- a/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxConfiguration.java
+++ b/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxConfiguration.java
@@ -27,6 +27,7 @@ import org.apache.camel.ProducerTemplate;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.routebox.strategy.RouteboxDispatchStrategy;
 import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
@@ -39,7 +40,7 @@ public class RouteboxConfiguration {
     private static final Logger LOG = LoggerFactory.getLogger(RouteboxConfiguration.class);
     private URI uri;
     private String authority;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String routeboxName;
     @UriParam
     private URI consumerUri;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxEndpoint.java b/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxEndpoint.java
index f4afcfe..cb7a719 100644
--- a/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxEndpoint.java
+++ b/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxEndpoint.java
@@ -22,7 +22,7 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
-@UriEndpoint(scheme = "routebox", consumerClass = RouteboxConsumer.class, label = "eventbus")
+@UriEndpoint(scheme = "routebox", syntax = "routebox:routeboxName", consumerClass = RouteboxConsumer.class, label = "eventbus")
 public abstract class RouteboxEndpoint extends DefaultEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java b/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java
index fb08af9..c3caccd 100644
--- a/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java
+++ b/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java
@@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Is used for polling rss feeds.
  */
-@UriEndpoint(scheme = "rss", consumerOnly = true, consumerClass = RssEntryPollingConsumer.class, label = "feeds")
+@UriEndpoint(scheme = "rss", syntax = "rss:feedUri", consumerOnly = true, consumerClass = RssEntryPollingConsumer.class, label = "feeds")
 public class RssEndpoint extends FeedEndpoint {
     protected static final Logger LOG = LoggerFactory.getLogger(RssEndpoint.class);
 

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceEndpoint.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceEndpoint.java
index 6043d2b..27e28f2 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceEndpoint.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceEndpoint.java
@@ -24,18 +24,20 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.impl.SynchronousDelegateProducer;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriPath;
 
 /**
  * Represents a Salesforce endpoint.
  */
-@UriEndpoint(scheme = "salesforce", consumerClass = SalesforceConsumer.class)
+@UriEndpoint(scheme = "salesforce", syntax = "salesforce:operationName:topicName", consumerClass = SalesforceConsumer.class)
 public class SalesforceEndpoint extends DefaultEndpoint {
 
-    @UriParam
-    private final SalesforceEndpointConfig config;
-
+    @UriPath
     private final OperationName operationName;
+    @UriPath
     private final String topicName;
+    @UriParam
+    private final SalesforceEndpointConfig config;
 
     public SalesforceEndpoint(String uri, SalesforceComponent salesforceComponent,
                               SalesforceEndpointConfig config, OperationName operationName, String topicName) {

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-sap-netweaver/src/main/java/org/apache/camel/component/sap/netweaver/NetWeaverEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-sap-netweaver/src/main/java/org/apache/camel/component/sap/netweaver/NetWeaverEndpoint.java b/components/camel-sap-netweaver/src/main/java/org/apache/camel/component/sap/netweaver/NetWeaverEndpoint.java
index 9349327..0670ef6 100644
--- a/components/camel-sap-netweaver/src/main/java/org/apache/camel/component/sap/netweaver/NetWeaverEndpoint.java
+++ b/components/camel-sap-netweaver/src/main/java/org/apache/camel/component/sap/netweaver/NetWeaverEndpoint.java
@@ -21,14 +21,15 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 
-@UriEndpoint(scheme = "sap-netweaver", producerOnly = true, label = "sap")
+@UriEndpoint(scheme = "sap-netweaver", syntax = "sap-netweaver:url", producerOnly = true, label = "sap")
 public class NetWeaverEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String url;
     @UriParam(defaultValue = "true")
     private boolean json = true;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java
index b0e3160..f468c11 100644
--- a/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java
+++ b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java
@@ -26,6 +26,7 @@ import net.sf.saxon.lib.ModuleURIResolver;
 import net.sf.saxon.query.StaticQueryContext;
 import org.apache.camel.Component;
 import org.apache.camel.impl.ProcessorEndpoint;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -34,14 +35,14 @@ import org.apache.camel.util.ServiceHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@UriEndpoint(scheme = "xquery", label = "transformation")
+@UriEndpoint(scheme = "xquery", syntax = "xquery:resourceUri", label = "transformation")
 public class XQueryEndpoint extends ProcessorEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(XQueryEndpoint.class);
 
     private volatile XQueryBuilder xquery;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String resourceUri;
     @UriParam
     private Configuration configuration;
@@ -61,7 +62,7 @@ public class XQueryEndpoint extends ProcessorEndpoint {
     private boolean stripsAllWhiteSpace = true;
     @UriParam
     private ModuleURIResolver moduleURIResolver;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean allowStAX;
     @UriParam
     private String headerName;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/SchematronEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/SchematronEndpoint.java b/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/SchematronEndpoint.java
index 4f562b5..7390bd7 100644
--- a/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/SchematronEndpoint.java
+++ b/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/SchematronEndpoint.java
@@ -26,6 +26,7 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.schematron.exception.SchematronConfigException;
 import org.apache.camel.component.schematron.processor.TemplatesFactory;
 import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -37,14 +38,14 @@ import org.slf4j.LoggerFactory;
 /**
  * Schematron Endpoint.
  */
-@UriEndpoint(scheme = "schematron", producerOnly = true, label = "validation")
+@UriEndpoint(scheme = "schematron", syntax = "schematron:path", producerOnly = true, label = "validation")
 public class SchematronEndpoint extends DefaultEndpoint {
 
     private Logger logger = LoggerFactory.getLogger(SchematronEndpoint.class);
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String path;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean abort;
     @UriParam
     private Templates rules;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipConfiguration.java b/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipConfiguration.java
index a9ab505..dc436b3 100644
--- a/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipConfiguration.java
+++ b/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipConfiguration.java
@@ -46,6 +46,7 @@ import javax.sip.header.ViaHeader;
 import javax.sip.message.MessageFactory;
 import javax.sip.message.Request;
 
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -58,7 +59,7 @@ import org.slf4j.LoggerFactory;
 public class SipConfiguration {    
     private static final Logger LOG = LoggerFactory.getLogger(SipConfiguration.class);
     private static final String IMPLEMENTATION = "gov.nist";
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private URI uri;
     private Map<String, Object> parameters;
     private SipComponent component;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipEndpoint.java b/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipEndpoint.java
index 9d7f953..e944ee3 100644
--- a/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipEndpoint.java
+++ b/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipEndpoint.java
@@ -24,7 +24,7 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
-@UriEndpoint(scheme = "sip", label = "messaging")
+@UriEndpoint(scheme = "sip", syntax = "sip:uri", label = "messaging")
 public class SipEndpoint extends DefaultEndpoint {
     @UriParam
     private SipConfiguration configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java
index 6841d77..5dbeb03 100644
--- a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java
+++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java
@@ -31,6 +31,7 @@ import org.apache.camel.component.sjms.producer.InOnlyProducer;
 import org.apache.camel.component.sjms.producer.InOutProducer;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -40,15 +41,17 @@ import org.slf4j.LoggerFactory;
 /**
  * A JMS Endpoint
  */
-@UriEndpoint(scheme = "sjms", consumerClass = SjmsConsumer.class, label = "messaging")
+@UriEndpoint(scheme = "sjms", syntax = "sjms:destinationType:destinationName", consumerClass = SjmsConsumer.class, label = "messaging")
 public class SjmsEndpoint extends DefaultEndpoint implements MultipleConsumersSupport {
     protected final Logger logger = LoggerFactory.getLogger(getClass());
 
-    @UriPath
+    @UriPath(enums = "queue,topic", defaultValue = "queue")
+    private String destinationType;
+    @UriPath @Metadata(required = "true")
     private String destinationName;
     @UriParam(defaultValue = "true")
     private boolean synchronous = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean transacted;
     @UriParam
     private String namedReplyTo;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
index a3b352a..3f29c25 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
@@ -41,9 +41,9 @@ import org.slf4j.LoggerFactory;
 public class SmppConfiguration implements Cloneable {
     private static final Logger LOG = LoggerFactory.getLogger(SmppConfiguration.class);
 
-    @UriPath
+    @UriPath(defaultValue = "localhost")
     private String host = "localhost";
-    @UriPath
+    @UriPath(defaultValue = "2775")
     private Integer port = 2775;
     @UriParam(defaultValue = "smppclient")
     private String systemId = "smppclient";

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java
index f9e0a20..3b2188b 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java
@@ -34,7 +34,7 @@ import org.jsmpp.bean.DeliverSm;
  * 
  * @version 
  */
-@UriEndpoint(scheme = "smpp", consumerClass = SmppConsumer.class, label = "mobile,messaging")
+@UriEndpoint(scheme = "smpp", syntax = "smpp:host:port", consumerClass = SmppConsumer.class, label = "mobile,messaging")
 public class SmppEndpoint extends DefaultEndpoint {
 
     private SmppBinding binding;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java b/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java
index e7b7040..39c253e 100644
--- a/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java
+++ b/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java
@@ -25,6 +25,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultExchange;
 import org.apache.camel.impl.DefaultPollingEndpoint;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -35,7 +36,7 @@ import org.snmp4j.PDU;
 import org.snmp4j.mp.SnmpConstants;
 import org.snmp4j.security.SecurityLevel;
 
-@UriEndpoint(scheme = "snmp", consumerOnly = true, label = "monitoring")
+@UriEndpoint(scheme = "snmp", syntax = "snmp:host:port", consumerOnly = true, label = "monitoring")
 public class SnmpEndpoint extends DefaultPollingEndpoint {
 
     public static final String DEFAULT_COMMUNITY = "public";
@@ -49,12 +50,12 @@ public class SnmpEndpoint extends DefaultPollingEndpoint {
 
     private transient String address;
 
-    @UriPath
-    private String protocol = "udp";
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String host;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private Integer port;
+    @UriParam(defaultValue = "udp")
+    private String protocol = "udp";
     @UriParam(defaultValue = "" + DEFAULT_SNMP_RETRIES)
     private int retries = DEFAULT_SNMP_RETRIES;
     @UriParam(defaultValue = "" + DEFAULT_SNMP_TIMEOUT)