[jira] [Created] (CAMEL-8274) The maxResults option has no effect on the number of results

2015-01-23 Thread Emilien (JIRA)
Emilien created CAMEL-8274:
--

 Summary: The maxResults option has no effect on the number of 
results
 Key: CAMEL-8274
 URL: https://issues.apache.org/jira/browse/CAMEL-8274
 Project: Camel
  Issue Type: Bug
  Components: camel-hbase
Affects Versions: 2.14.0
Reporter: Emilien


The max result option defined on the endpoint does not stop the hbase scanner. 
To be more convenient, the max result should also be dynamicaly passed as a 
header (for example with a CamelHBaseMaxScanResults header). 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CAMEL-8275) Propagation of in message headers

2015-01-23 Thread Emilien (JIRA)
Emilien created CAMEL-8275:
--

 Summary: Propagation of in message headers
 Key: CAMEL-8275
 URL: https://issues.apache.org/jira/browse/CAMEL-8275
 Project: Camel
  Issue Type: Improvement
  Components: camel-hbase
Affects Versions: 2.14.0
Reporter: Emilien


By default, the input exchange message headers are not propagated when the 
get/scan method is called. It is not convenient in routes if you want to call 
others endpoints after the hbase enpoint. Instead of extending the 
HeaderMappingStrategy or implementing your own strategy, the 
HeaderMappingStrategy should propagates input message headers.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CAMEL-8274) The maxResults option has no effect on the number of results

2015-01-23 Thread Emilien (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8274?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Emilien updated CAMEL-8274:
---
Attachment: camel-hbase.patch

Here the patch that fix bugs :
https://issues.apache.org/jira/browse/CAMEL-8277
https://issues.apache.org/jira/browse/CAMEL-8276
https://issues.apache.org/jira/browse/CAMEL-8275
https://issues.apache.org/jira/browse/CAMEL-8274
https://issues.apache.org/jira/browse/CAMEL-8268

 The maxResults option has no effect on the number of results
 

 Key: CAMEL-8274
 URL: https://issues.apache.org/jira/browse/CAMEL-8274
 Project: Camel
  Issue Type: Bug
  Components: camel-hbase
Affects Versions: 2.14.0
Reporter: Emilien
 Attachments: camel-hbase.patch


 The max result option defined on the endpoint does not stop the hbase 
 scanner. To be more convenient, the max result should also be dynamicaly 
 passed as a header (for example with a CamelHBaseMaxScanResults header). 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CAMEL-8268) camel-hbase - The scan method is not thread safe when using a filter list

2015-01-23 Thread Emilien (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8268?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Emilien updated CAMEL-8268:
---
Attachment: camel-hbase.patch

Here the patch that fix bugs :
https://issues.apache.org/jira/browse/CAMEL-8277
https://issues.apache.org/jira/browse/CAMEL-8276
https://issues.apache.org/jira/browse/CAMEL-8275
https://issues.apache.org/jira/browse/CAMEL-8274
https://issues.apache.org/jira/browse/CAMEL-8268

 camel-hbase - The scan method is not thread safe when using a filter list
 -

 Key: CAMEL-8268
 URL: https://issues.apache.org/jira/browse/CAMEL-8268
 Project: Camel
  Issue Type: Bug
  Components: camel-hbase
Affects Versions: 2.14.0
Reporter: Emilien
 Fix For: 2.14.2, 2.15.0

 Attachments: camel-hbase.patch


 The scan method is not thread safe when using a filter list. A concurrent 
 call on the endpoint will produce wrong values because the same FilterList is 
 used between threads. Cloning the passed filter list solve the problem.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CAMEL-8276) Add timestamp on returned HBase objects

2015-01-23 Thread Emilien (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Emilien updated CAMEL-8276:
---
Attachment: camel-hbase.patch

Here the patch that fix bugs :
https://issues.apache.org/jira/browse/CAMEL-8277
https://issues.apache.org/jira/browse/CAMEL-8276
https://issues.apache.org/jira/browse/CAMEL-8275
https://issues.apache.org/jira/browse/CAMEL-8274
https://issues.apache.org/jira/browse/CAMEL-8268

 Add timestamp on returned HBase objects
 ---

 Key: CAMEL-8276
 URL: https://issues.apache.org/jira/browse/CAMEL-8276
 Project: Camel
  Issue Type: Improvement
  Components: camel-hbase
Affects Versions: 2.14.0
Reporter: Emilien
 Attachments: camel-hbase.patch


 The returned objects for scan / get methods does not contains the HBase 
 timestamp. A timestamp field could be added on HBaseRow/HBaseCell classes to 
 allow to get access to timestamps in mapping strategies / routes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CAMEL-8275) Propagation of in message headers

2015-01-23 Thread Emilien (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8275?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Emilien updated CAMEL-8275:
---
Attachment: camel-hbase.patch

Here the patch that fix bugs :
https://issues.apache.org/jira/browse/CAMEL-8277
https://issues.apache.org/jira/browse/CAMEL-8276
https://issues.apache.org/jira/browse/CAMEL-8275
https://issues.apache.org/jira/browse/CAMEL-8274
https://issues.apache.org/jira/browse/CAMEL-8268

 Propagation of in message headers
 -

 Key: CAMEL-8275
 URL: https://issues.apache.org/jira/browse/CAMEL-8275
 Project: Camel
  Issue Type: Improvement
  Components: camel-hbase
Affects Versions: 2.14.0
Reporter: Emilien
 Attachments: camel-hbase.patch


 By default, the input exchange message headers are not propagated when the 
 get/scan method is called. It is not convenient in routes if you want to call 
 others endpoints after the hbase enpoint. Instead of extending the 
 HeaderMappingStrategy or implementing your own strategy, the 
 HeaderMappingStrategy should propagates input message headers.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CAMEL-8276) Add timestamp on returned HBase objects

2015-01-23 Thread Emilien (JIRA)
Emilien created CAMEL-8276:
--

 Summary: Add timestamp on returned HBase objects
 Key: CAMEL-8276
 URL: https://issues.apache.org/jira/browse/CAMEL-8276
 Project: Camel
  Issue Type: Improvement
  Components: camel-hbase
Affects Versions: 2.14.0
Reporter: Emilien


The returned objects for scan / get methods does not contains the HBase 
timestamp. A timestamp field could be added on HBaseRow/HBaseCell classes to 
allow to get access to timestamps in mapping strategies / routes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CAMEL-8277) Provide a row prefix filter for the scan method

2015-01-23 Thread Emilien (JIRA)
Emilien created CAMEL-8277:
--

 Summary: Provide a row prefix filter for the scan method
 Key: CAMEL-8277
 URL: https://issues.apache.org/jira/browse/CAMEL-8277
 Project: Camel
  Issue Type: Improvement
  Components: camel-hbase
Affects Versions: 2.14.0
Reporter: Emilien


It can be useful to perform some scan requests based on a HBase row prefix 
filter. A ModelAwareRowPrefixMatchingFilter filter could be added to the 
existing set of available filters. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CAMEL-8277) Provide a row prefix filter for the scan method

2015-01-23 Thread Emilien (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8277?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Emilien updated CAMEL-8277:
---
Attachment: camel-hbase.patch

Here the patch that fix bugs :
https://issues.apache.org/jira/browse/CAMEL-8277
https://issues.apache.org/jira/browse/CAMEL-8276
https://issues.apache.org/jira/browse/CAMEL-8275
https://issues.apache.org/jira/browse/CAMEL-8274
https://issues.apache.org/jira/browse/CAMEL-8268

 Provide a row prefix filter for the scan method
 ---

 Key: CAMEL-8277
 URL: https://issues.apache.org/jira/browse/CAMEL-8277
 Project: Camel
  Issue Type: Improvement
  Components: camel-hbase
Affects Versions: 2.14.0
Reporter: Emilien
 Attachments: camel-hbase.patch


 It can be useful to perform some scan requests based on a HBase row prefix 
 filter. A ModelAwareRowPrefixMatchingFilter filter could be added to the 
 existing set of available filters. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CAMEL-8268) The scan method is not thread safe when using a filter list

2015-01-23 Thread Claus Ibsen (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8268?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen updated CAMEL-8268:
---
Fix Version/s: 2.15.0
   2.14.2

 The scan method is not thread safe when using a filter list
 ---

 Key: CAMEL-8268
 URL: https://issues.apache.org/jira/browse/CAMEL-8268
 Project: Camel
  Issue Type: Bug
  Components: camel-hbase
Affects Versions: 2.14.0
Reporter: Emilien
 Fix For: 2.14.2, 2.15.0


 The scan method is not thread safe when using a filter list. A concurrent 
 call on the endpoint will produce wrong values because the same FilterList is 
 used between threads. Cloning the passed filter list solve the problem.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CAMEL-8268) The scan method is not thread safe when using a filter list

2015-01-23 Thread Claus Ibsen (JIRA)

[ 
https://issues.apache.org/jira/browse/CAMEL-8268?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14289013#comment-14289013
 ] 

Claus Ibsen commented on CAMEL-8268:


Thanks for reporting. Do you work on a patch?

 The scan method is not thread safe when using a filter list
 ---

 Key: CAMEL-8268
 URL: https://issues.apache.org/jira/browse/CAMEL-8268
 Project: Camel
  Issue Type: Bug
  Components: camel-hbase
Affects Versions: 2.14.0
Reporter: Emilien
 Fix For: 2.14.2, 2.15.0


 The scan method is not thread safe when using a filter list. A concurrent 
 call on the endpoint will produce wrong values because the same FilterList is 
 used between threads. Cloning the passed filter list solve the problem.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CAMEL-8268) camel-hbase - The scan method is not thread safe when using a filter list

2015-01-23 Thread Claus Ibsen (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8268?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen updated CAMEL-8268:
---
Summary: camel-hbase - The scan method is not thread safe when using a 
filter list  (was: The scan method is not thread safe when using a filter list)

 camel-hbase - The scan method is not thread safe when using a filter list
 -

 Key: CAMEL-8268
 URL: https://issues.apache.org/jira/browse/CAMEL-8268
 Project: Camel
  Issue Type: Bug
  Components: camel-hbase
Affects Versions: 2.14.0
Reporter: Emilien
 Fix For: 2.14.2, 2.15.0


 The scan method is not thread safe when using a filter list. A concurrent 
 call on the endpoint will produce wrong values because the same FilterList is 
 used between threads. Cloning the passed filter list solve the problem.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CAMEL-8264) camel-swagger - Add karaf feature

2015-01-23 Thread Claus Ibsen (JIRA)

[ 
https://issues.apache.org/jira/browse/CAMEL-8264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14289011#comment-14289011
 ] 

Claus Ibsen commented on CAMEL-8264:


We need a new bundle release of swagger as the current one does not work

 camel-swagger - Add karaf feature
 -

 Key: CAMEL-8264
 URL: https://issues.apache.org/jira/browse/CAMEL-8264
 Project: Camel
  Issue Type: Task
  Components: camel-swagger
Reporter: Claus Ibsen
 Fix For: 2.15.0


 So its installable in karaf containers out of the box.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (CAMEL-8272) Camel-box socks proxy implementation is incomplete

2015-01-23 Thread Julian Cable (JIRA)

[ 
https://issues.apache.org/jira/browse/CAMEL-8272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14289126#comment-14289126
 ] 

Julian Cable edited comment on CAMEL-8272 at 1/23/15 11:49 AM:
---

{quote}
Index: 
src/main/java/org/apache/camel/component/box/internal/BoxClientHelper.java
===
--- src/main/java/org/apache/camel/component/box/internal/BoxClientHelper.java  
(revision 1598081)
+++ src/main/java/org/apache/camel/component/box/internal/BoxClientHelper.java  
(working copy)
@@ -36,12 +36,19 @@
 import org.apache.camel.component.box.BoxConfiguration;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.jsse.SSLContextParameters;
+import org.apache.http.HttpHost;
 import org.apache.http.client.HttpClient;
 import org.apache.http.conn.ClientConnectionManager;
 import org.apache.http.conn.scheme.Scheme;
 import org.apache.http.conn.scheme.SchemeRegistry;
 import org.apache.http.conn.ssl.SSLSocketFactory;
+import org.apache.http.conn.params.ConnRoutePNames;
 import org.apache.http.params.HttpParams;
+import org.apache.http.protocol.HttpContext;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.Proxy;
+import javax.net.ssl.SSLContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

@@ -66,7 +73,7 @@
 final String userPassword = configuration.getUserPassword();

 if ((authSecureStorage == null  ObjectHelper.isEmpty(userPassword))
-|| ObjectHelper.isEmpty(userName) || 
ObjectHelper.isEmpty(clientId) || ObjectHelper.isEmpty(clientSecret)) {
+|| ObjectHelper.isEmpty(userName) || 
ObjectHelper.isEmpty(clientId) || ObjectHelper.isEmpty(clientSecret)) {
 throw new IllegalArgumentException(
 Missing one or more required properties 
 + clientId, clientSecret, userName and either 
authSecureStorage or userPassword);
@@ -76,13 +83,13 @@
 // if set, use configured connection manager builder
 final BoxConnectionManagerBuilder connectionManagerBuilder = 
configuration.getConnectionManagerBuilder();
 final BoxConnectionManagerBuilder connectionManager = 
connectionManagerBuilder != null
-? connectionManagerBuilder : new BoxConnectionManagerBuilder();
+? connectionManagerBuilder : new BoxConnectionManagerBuilder();

 // create REST client for BoxClient
 final ClientConnectionManager[] clientConnectionManager = new 
ClientConnectionManager[1];
 final IBoxRESTClient restClient = new 
BoxRESTClient(connectionManager.build()) {
-   @SuppressWarnings(deprecation)
-   @Override
+@SuppressWarnings(deprecation)
+@Override
 public HttpClient getRawHttpClient() {
 final HttpClient httpClient = super.getRawHttpClient();
 clientConnectionManager[0] = httpClient.getConnectionManager();
@@ -91,33 +98,48 @@
 if (sslContextParameters == null) {
 sslContextParameters = new SSLContextParameters();
 }
-try {
-final SSLSocketFactory socketFactory = new 
SSLSocketFactory(
-sslContextParameters.createSSLContext(),
-SSLSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
-schemeRegistry.register(new Scheme(https, socketFactory, 
443));
-} catch (GeneralSecurityException e) {
-throw ObjectHelper.wrapRuntimeCamelException(e);
-} catch (IOException e) {
-throw ObjectHelper.wrapRuntimeCamelException(e);
-}
-
-// set custom HTTP params
 final MapString, Object configParams = 
configuration.getHttpParams();
+boolean useSocksProxy = false;
+HttpHost proxyHost = null;
 if (configParams != null  !configParams.isEmpty()) {
+final Boolean socksProxy = (Boolean) 
configParams.get(http.route.socks-proxy);
+   if(socksProxy!=null  socksProxy) {
+   useSocksProxy = true;
+proxyHost = (HttpHost) 
configParams.get(ConnRoutePNames.DEFAULT_PROXY);
+}
+// set custom HTTP params
 LOG.debug(Setting {} HTTP Params, configParams.size());

 final HttpParams httpParams = httpClient.getParams();
 for (Map.EntryString, Object param : 
configParams.entrySet()) {
-httpParams.setParameter(param.getKey(), 
param.getValue());
+   // don't add proxy params if socks
+if(!(useSocksProxy  

[jira] [Issue Comment Deleted] (CAMEL-8272) Camel-box socks proxy implementation is incomplete

2015-01-23 Thread Julian Cable (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8272?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Cable updated CAMEL-8272:

Comment: was deleted

(was: {quote}
Index: 
src/main/java/org/apache/camel/component/box/internal/BoxClientHelper.java
===
--- src/main/java/org/apache/camel/component/box/internal/BoxClientHelper.java  
(revision 1598081)
+++ src/main/java/org/apache/camel/component/box/internal/BoxClientHelper.java  
(working copy)
@@ -36,12 +36,19 @@
 import org.apache.camel.component.box.BoxConfiguration;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.jsse.SSLContextParameters;
+import org.apache.http.HttpHost;
 import org.apache.http.client.HttpClient;
 import org.apache.http.conn.ClientConnectionManager;
 import org.apache.http.conn.scheme.Scheme;
 import org.apache.http.conn.scheme.SchemeRegistry;
 import org.apache.http.conn.ssl.SSLSocketFactory;
+import org.apache.http.conn.params.ConnRoutePNames;
 import org.apache.http.params.HttpParams;
+import org.apache.http.protocol.HttpContext;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.Proxy;
+import javax.net.ssl.SSLContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

@@ -66,7 +73,7 @@
 final String userPassword = configuration.getUserPassword();

 if ((authSecureStorage == null  ObjectHelper.isEmpty(userPassword))
-|| ObjectHelper.isEmpty(userName) || 
ObjectHelper.isEmpty(clientId) || ObjectHelper.isEmpty(clientSecret)) {
+|| ObjectHelper.isEmpty(userName) || 
ObjectHelper.isEmpty(clientId) || ObjectHelper.isEmpty(clientSecret)) {
 throw new IllegalArgumentException(
 Missing one or more required properties 
 + clientId, clientSecret, userName and either 
authSecureStorage or userPassword);
@@ -76,13 +83,13 @@
 // if set, use configured connection manager builder
 final BoxConnectionManagerBuilder connectionManagerBuilder = 
configuration.getConnectionManagerBuilder();
 final BoxConnectionManagerBuilder connectionManager = 
connectionManagerBuilder != null
-? connectionManagerBuilder : new BoxConnectionManagerBuilder();
+? connectionManagerBuilder : new BoxConnectionManagerBuilder();

 // create REST client for BoxClient
 final ClientConnectionManager[] clientConnectionManager = new 
ClientConnectionManager[1];
 final IBoxRESTClient restClient = new 
BoxRESTClient(connectionManager.build()) {
-   @SuppressWarnings(deprecation)
-   @Override
+@SuppressWarnings(deprecation)
+@Override
 public HttpClient getRawHttpClient() {
 final HttpClient httpClient = super.getRawHttpClient();
 clientConnectionManager[0] = httpClient.getConnectionManager();
@@ -91,33 +98,48 @@
 if (sslContextParameters == null) {
 sslContextParameters = new SSLContextParameters();
 }
-try {
-final SSLSocketFactory socketFactory = new 
SSLSocketFactory(
-sslContextParameters.createSSLContext(),
-SSLSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
-schemeRegistry.register(new Scheme(https, socketFactory, 
443));
-} catch (GeneralSecurityException e) {
-throw ObjectHelper.wrapRuntimeCamelException(e);
-} catch (IOException e) {
-throw ObjectHelper.wrapRuntimeCamelException(e);
-}
-
-// set custom HTTP params
 final MapString, Object configParams = 
configuration.getHttpParams();
+boolean useSocksProxy = false;
+HttpHost proxyHost = null;
 if (configParams != null  !configParams.isEmpty()) {
+final Boolean socksProxy = (Boolean) 
configParams.get(http.route.socks-proxy);
+   if(socksProxy!=null  socksProxy) {
+   useSocksProxy = true;
+proxyHost = (HttpHost) 
configParams.get(ConnRoutePNames.DEFAULT_PROXY);
+}
+// set custom HTTP params
 LOG.debug(Setting {} HTTP Params, configParams.size());

 final HttpParams httpParams = httpClient.getParams();
 for (Map.EntryString, Object param : 
configParams.entrySet()) {
-httpParams.setParameter(param.getKey(), 
param.getValue());
+   // don't add proxy params if socks
+if(!(useSocksProxy  
(param.getKey().equals(http.route.socks-proxy) || 
param.getKey().equals(ConnRoutePNames.DEFAULT_PROXY {
+ 

[jira] [Updated] (CAMEL-8272) Camel-box socks proxy implementation is incomplete

2015-01-23 Thread Julian Cable (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8272?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Cable updated CAMEL-8272:

Attachment: patch.txt

Patch to BoxClientHelper.java

 Camel-box socks proxy implementation is incomplete
 --

 Key: CAMEL-8272
 URL: https://issues.apache.org/jira/browse/CAMEL-8272
 Project: Camel
  Issue Type: Bug
Affects Versions: 2.14.1
 Environment: any
Reporter: Julian Cable
 Attachments: patch.txt


 org.apache.camel.component.box.internal.LoginAuthFlowUI looks for 
 http.route.socks-proxy and sets up a socks proxy for the webClient
 org.apache.camel.component.box.internal.BoxClientHelper just passes the 
 httpParams on to the underlying HttpClient but the box api uses a vanilla 
 DefaultHttpClient which doesn't talk SOCKS.
 The attached patch adds socks proxy support to the main restful box 
 transactions.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CAMEL-8273) More flexible selection of default documentType in XPath expressions

2015-01-23 Thread Stephan Siano (JIRA)
Stephan Siano created CAMEL-8273:


 Summary: More flexible selection of default documentType in XPath 
expressions
 Key: CAMEL-8273
 URL: https://issues.apache.org/jira/browse/CAMEL-8273
 Project: Camel
  Issue Type: Improvement
  Components: camel-core
Affects Versions: 2.15.0
Reporter: Stephan Siano


In the current implementation of XPath if no documentType is defined (likely in 
most cases) the document used for XPath evaluation is parsed into a (DOM) 
Document using the JDK XML parser before applying the XPath expression on it.

For large documents this might be resource intensive, especially if the XPath 
is evaluated using a more efficient parser like Saxon.

With the current implementation it is possible to workaround this by setting a 
documentType attribute to the XPath expression, but doing this efficiently 
requires some internal knowledge about the previous component in the camel 
route (which type it creates) and the qualities of the used XML parser (e.g. 
the JDK parser accepts only InputSource and Node as input types for XPath 
evaluation whereas Saxon does also support other types like SAXSource).

The attached patch will make the data type used by default for XPath evaluation 
more flexible (depending on the type of the input).

There are two cases to differentiate:
documentType is set on the XPath expression:
current implementation:
1. try to convert to the documentType
2. if that fails do some extra conversions for some additional data types 
(WrappedFile, BeanInvocation, String)
3. if that fails throw an exception
new implementation:
1. try to convert to the documentType
2. if that fails, use the message if it is of type Node, InputSource or 
DOMSource or do some type conversions for specific data types (WrappedFile, 
BeanInvocation, String, InputStream, Reader, byte[]...)
3. if that fails throw an exception

documentType is not set on the XPath expresson
old implementation:
this is actually the same as if documentType was set to Document
new implementation:
1. Use the message if it is of type Node, InputSource or DOMSource or do some 
type conversions for specific data types (WrappedFile, BeanInvocation, String, 
InputStream, Reader, byte[]...) (to InputSource)
2. If the old message is not of one of the types above, convert to DOM Document
3. If this fails throw an Exception



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CAMEL-8270) camel-rabbitmq: exchangeName in URI must be optional, i.e. default exchange

2015-01-23 Thread Hendy Irawan (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hendy Irawan updated CAMEL-8270:

Description: 
Leaving out the exchangeName i.e. {{rabbitmq://localhost/}} throws exception 
below.

However RabbitMQ has the default exchange  -so it's not required to specify 
{{amq.direct}} explicitly.-, and this makes it impossible to send to that 
exchange (which is different than {{amq.direct}}).

{code}
Exception in thread main 
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'camelContext' defined in class path resource 
[id/ac/itb/lumen/persistence/LumenCamelConfiguration.class]: Invocation of init 
method failed; nested exception is 
org.apache.camel.FailedToCreateRouteException: Failed to create route route1 
at:  To[rabbitmq://localhost/?connectionFactory=#amqpConnFactory]  in 
route: Route(route1)[[From[rabbitmq://localhost/amq.topic?connectio... because 
of Failed to resolve endpoint: 
rabbitmq://localhost/?connectionFactory=%23amqpConnFactory due to: No URI path 
as the exchangeName for the RabbitMQEndpoint, the URI is 
rabbitmq://localhost/?connectionFactory=%23amqpConnFactory
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1566)
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:762)
at 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at 
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691)
at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:961)
at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:950)
at org.springframework.boot.SpringApplication$run.call(Unknown Source)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at 
id.ac.itb.lumen.persistence.LumenPersistenceApplication.main(LumenPersistenceApplication.groovy:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create 
route route1 at:  
To[rabbitmq://localhost/?connectionFactory=#amqpConnFactory]  in route: 
Route(route1)[[From[rabbitmq://localhost/amq.topic?connectio... because of 
Failed to resolve endpoint: 
rabbitmq://localhost/?connectionFactory=%23amqpConnFactory due to: No URI path 
as the exchangeName for the RabbitMQEndpoint, the URI is 
rabbitmq://localhost/?connectionFactory=%23amqpConnFactory
at 
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:945)
at 
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:187)
at 
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:805)
at 
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:2174)
at 
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1906)
at 
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1767)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at 

[jira] [Commented] (CAMEL-7003) RabbitMQ Producer cannot create exchanges, queues

2015-01-23 Thread Hendy Irawan (JIRA)

[ 
https://issues.apache.org/jira/browse/CAMEL-7003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14289171#comment-14289171
 ] 

Hendy Irawan commented on CAMEL-7003:
-

This ticket conflates exchange/queue creation with the issue of not being able 
to send to default exchange.

I've created a ticket which is specifically about the default exchange : 
CAMEL-8270

 RabbitMQ Producer cannot create exchanges, queues
 -

 Key: CAMEL-7003
 URL: https://issues.apache.org/jira/browse/CAMEL-7003
 Project: Camel
  Issue Type: Bug
  Components: camel-rabbitmq
Affects Versions: 2.12.1
 Environment: RabbitMQ 3.2.0 on CentOS 6.4 (running in VMWare 
 Workstation 9.0.2 build-1031769)
 Camel 2.12.1 running in Eclipse Helios on Windows 7
Reporter: Jason Foster
Assignee: Willem Jiang

 There doesn't seem to be a way to have the producer declare an exchange or a 
 queue.  The following route demonstrates this problem:
   from(stream:in?promptMessage=Enter message payload: )
   
 .to(rabbitmq://server:port/direct?queue=defectusername=guestpassword=guest);
 There also is no way for the producer to use the default exchange, (which has 
 no name).  You cannot set an exchange name as a header with an empty string, 
 and specifying 'direct' on the exchange uri also doesn't work.  However, the 
 consumer appears to work and will declare at least queues, even on the 
 default exchange.
 The producer appears to only work with previously declared exchanges and 
 queues, which isn't practical, especially in recovery situations, since you 
 cannot guarantee the order things will start (producer vs. consumer) and the 
 producer doesn't attempt any type of re-delivery in the case that the 
 exchange/queue doesn't exist, nor does it indicate via logging or exceptions 
 that there is a problem with delivery.
 In Rabbit, creating exchanges and queues are both idempotent operations, so 
 it wouldn't hurt to call the methods to declare the exchange and queue, 
 regardless of whether they previously existed.  If you set up an endpoint to 
 a non-existent queue and want to use the default direct exchange, you can't 
 do that with this component.  
 If an exchange and queue are created outside the component, (say by a 
 consumer or using rabbitmq management console) then the producer works 
 correctly.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CAMEL-8272) Camel-box socks proxy implementation is incomplete

2015-01-23 Thread Julian Cable (JIRA)
Julian Cable created CAMEL-8272:
---

 Summary: Camel-box socks proxy implementation is incomplete
 Key: CAMEL-8272
 URL: https://issues.apache.org/jira/browse/CAMEL-8272
 Project: Camel
  Issue Type: Bug
Affects Versions: 2.14.1
 Environment: any
Reporter: Julian Cable


org.apache.camel.component.box.internal.LoginAuthFlowUI looks for 
http.route.socks-proxy and sets up a socks proxy for the webClient

org.apache.camel.component.box.internal.BoxClientHelper just passes the 
httpParams on to the underlying HttpClient but the box api uses a vanilla 
DefaultHttpClient which doesn't talk SOCKS.

The attached patch adds socks proxy support to the main restful box 
transactions.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CAMEL-8272) Camel-box socks proxy implementation is incomplete

2015-01-23 Thread Julian Cable (JIRA)

[ 
https://issues.apache.org/jira/browse/CAMEL-8272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14289126#comment-14289126
 ] 

Julian Cable commented on CAMEL-8272:
-

Index: 
src/main/java/org/apache/camel/component/box/internal/BoxClientHelper.java
===
--- src/main/java/org/apache/camel/component/box/internal/BoxClientHelper.java  
(revision 1598081)
+++ src/main/java/org/apache/camel/component/box/internal/BoxClientHelper.java  
(working copy)
@@ -36,12 +36,19 @@
 import org.apache.camel.component.box.BoxConfiguration;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.jsse.SSLContextParameters;
+import org.apache.http.HttpHost;
 import org.apache.http.client.HttpClient;
 import org.apache.http.conn.ClientConnectionManager;
 import org.apache.http.conn.scheme.Scheme;
 import org.apache.http.conn.scheme.SchemeRegistry;
 import org.apache.http.conn.ssl.SSLSocketFactory;
+import org.apache.http.conn.params.ConnRoutePNames;
 import org.apache.http.params.HttpParams;
+import org.apache.http.protocol.HttpContext;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.Proxy;
+import javax.net.ssl.SSLContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

@@ -66,7 +73,7 @@
 final String userPassword = configuration.getUserPassword();

 if ((authSecureStorage == null  ObjectHelper.isEmpty(userPassword))
-|| ObjectHelper.isEmpty(userName) || 
ObjectHelper.isEmpty(clientId) || ObjectHelper.isEmpty(clientSecret)) {
+|| ObjectHelper.isEmpty(userName) || 
ObjectHelper.isEmpty(clientId) || ObjectHelper.isEmpty(clientSecret)) {
 throw new IllegalArgumentException(
 Missing one or more required properties 
 + clientId, clientSecret, userName and either 
authSecureStorage or userPassword);
@@ -76,13 +83,13 @@
 // if set, use configured connection manager builder
 final BoxConnectionManagerBuilder connectionManagerBuilder = 
configuration.getConnectionManagerBuilder();
 final BoxConnectionManagerBuilder connectionManager = 
connectionManagerBuilder != null
-? connectionManagerBuilder : new BoxConnectionManagerBuilder();
+? connectionManagerBuilder : new BoxConnectionManagerBuilder();

 // create REST client for BoxClient
 final ClientConnectionManager[] clientConnectionManager = new 
ClientConnectionManager[1];
 final IBoxRESTClient restClient = new 
BoxRESTClient(connectionManager.build()) {
-   @SuppressWarnings(deprecation)
-   @Override
+@SuppressWarnings(deprecation)
+@Override
 public HttpClient getRawHttpClient() {
 final HttpClient httpClient = super.getRawHttpClient();
 clientConnectionManager[0] = httpClient.getConnectionManager();
@@ -91,33 +98,48 @@
 if (sslContextParameters == null) {
 sslContextParameters = new SSLContextParameters();
 }
-try {
-final SSLSocketFactory socketFactory = new 
SSLSocketFactory(
-sslContextParameters.createSSLContext(),
-SSLSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
-schemeRegistry.register(new Scheme(https, socketFactory, 
443));
-} catch (GeneralSecurityException e) {
-throw ObjectHelper.wrapRuntimeCamelException(e);
-} catch (IOException e) {
-throw ObjectHelper.wrapRuntimeCamelException(e);
-}
-
-// set custom HTTP params
 final MapString, Object configParams = 
configuration.getHttpParams();
+boolean useSocksProxy = false;
+HttpHost proxyHost = null;
 if (configParams != null  !configParams.isEmpty()) {
+final Boolean socksProxy = (Boolean) 
configParams.get(http.route.socks-proxy);
+   if(socksProxy!=null  socksProxy) {
+   useSocksProxy = true;
+proxyHost = (HttpHost) 
configParams.get(ConnRoutePNames.DEFAULT_PROXY);
+}
+// set custom HTTP params
 LOG.debug(Setting {} HTTP Params, configParams.size());

 final HttpParams httpParams = httpClient.getParams();
 for (Map.EntryString, Object param : 
configParams.entrySet()) {
-httpParams.setParameter(param.getKey(), 
param.getValue());
+   // don't add proxy params if socks
+if(!(useSocksProxy  
(param.getKey().equals(http.route.socks-proxy) || 

[jira] [Updated] (CAMEL-8270) camel-rabbitmq: exchangeName in URI should be optional, i.e. default exchange/amq.direct

2015-01-23 Thread Hendy Irawan (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hendy Irawan updated CAMEL-8270:

Priority: Major  (was: Trivial)

 camel-rabbitmq: exchangeName in URI should be optional, i.e. default 
 exchange/amq.direct
 

 Key: CAMEL-8270
 URL: https://issues.apache.org/jira/browse/CAMEL-8270
 Project: Camel
  Issue Type: Bug
  Components: camel-rabbitmq
Affects Versions: 2.14.1
Reporter: Hendy Irawan

 Leaving out the exchangeName i.e. {{rabbitmq://localhost/}} throws exception 
 below.
 However RabbitMQ supports the default exchange  so it's not required to 
 specify {{amq.direct}} explicitly.
 {code}
 Exception in thread main 
 org.springframework.beans.factory.BeanCreationException: Error creating bean 
 with name 'camelContext' defined in class path resource 
 [id/ac/itb/lumen/persistence/LumenCamelConfiguration.class]: Invocation of 
 init method failed; nested exception is 
 org.apache.camel.FailedToCreateRouteException: Failed to create route route1 
 at:  To[rabbitmq://localhost/?connectionFactory=#amqpConnFactory]  in 
 route: Route(route1)[[From[rabbitmq://localhost/amq.topic?connectio... 
 because of Failed to resolve endpoint: 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory due to: No URI 
 path as the exchangeName for the RabbitMQEndpoint, the URI is 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory
   at 
 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1566)
   at 
 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
   at 
 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
   at 
 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
   at 
 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
   at 
 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
   at 
 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
   at 
 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:762)
   at 
 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
   at 
 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
   at 
 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691)
   at 
 org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
   at 
 org.springframework.boot.SpringApplication.run(SpringApplication.java:961)
   at 
 org.springframework.boot.SpringApplication.run(SpringApplication.java:950)
   at org.springframework.boot.SpringApplication$run.call(Unknown Source)
   at 
 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
   at 
 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
   at 
 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
   at 
 id.ac.itb.lumen.persistence.LumenPersistenceApplication.main(LumenPersistenceApplication.groovy:38)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:483)
   at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
 Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create 
 route route1 at:  
 To[rabbitmq://localhost/?connectionFactory=#amqpConnFactory]  in route: 
 Route(route1)[[From[rabbitmq://localhost/amq.topic?connectio... because of 
 Failed to resolve endpoint: 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory due to: No URI 
 path as the exchangeName for the RabbitMQEndpoint, the URI is 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory
   at 
 org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:945)
   at 
 org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:187)
   at 
 org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:805)
   at 
 

[jira] [Updated] (CAMEL-8270) camel-rabbitmq: exchangeName in URI must be optional, i.e. default exchange

2015-01-23 Thread Hendy Irawan (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hendy Irawan updated CAMEL-8270:

Summary: camel-rabbitmq: exchangeName in URI must be optional, i.e. default 
 exchange  (was: camel-rabbitmq: exchangeName in URI should be optional, i.e. 
default exchange/amq.direct)

 camel-rabbitmq: exchangeName in URI must be optional, i.e. default  exchange
 --

 Key: CAMEL-8270
 URL: https://issues.apache.org/jira/browse/CAMEL-8270
 Project: Camel
  Issue Type: Bug
  Components: camel-rabbitmq
Affects Versions: 2.14.1
Reporter: Hendy Irawan

 Leaving out the exchangeName i.e. {{rabbitmq://localhost/}} throws exception 
 below.
 However RabbitMQ supports the default exchange  so it's not required to 
 specify {{amq.direct}} explicitly.
 {code}
 Exception in thread main 
 org.springframework.beans.factory.BeanCreationException: Error creating bean 
 with name 'camelContext' defined in class path resource 
 [id/ac/itb/lumen/persistence/LumenCamelConfiguration.class]: Invocation of 
 init method failed; nested exception is 
 org.apache.camel.FailedToCreateRouteException: Failed to create route route1 
 at:  To[rabbitmq://localhost/?connectionFactory=#amqpConnFactory]  in 
 route: Route(route1)[[From[rabbitmq://localhost/amq.topic?connectio... 
 because of Failed to resolve endpoint: 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory due to: No URI 
 path as the exchangeName for the RabbitMQEndpoint, the URI is 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory
   at 
 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1566)
   at 
 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
   at 
 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
   at 
 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
   at 
 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
   at 
 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
   at 
 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
   at 
 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:762)
   at 
 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
   at 
 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
   at 
 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691)
   at 
 org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
   at 
 org.springframework.boot.SpringApplication.run(SpringApplication.java:961)
   at 
 org.springframework.boot.SpringApplication.run(SpringApplication.java:950)
   at org.springframework.boot.SpringApplication$run.call(Unknown Source)
   at 
 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
   at 
 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
   at 
 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
   at 
 id.ac.itb.lumen.persistence.LumenPersistenceApplication.main(LumenPersistenceApplication.groovy:38)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:483)
   at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
 Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create 
 route route1 at:  
 To[rabbitmq://localhost/?connectionFactory=#amqpConnFactory]  in route: 
 Route(route1)[[From[rabbitmq://localhost/amq.topic?connectio... because of 
 Failed to resolve endpoint: 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory due to: No URI 
 path as the exchangeName for the RabbitMQEndpoint, the URI is 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory
   at 
 org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:945)
   at 
 org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:187)
   at 
 

[jira] [Updated] (CAMEL-8258) camel-twitter - Support Streaming from User Endpoint including Direct Messages

2015-01-23 Thread Claus Ibsen (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8258?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen updated CAMEL-8258:
---
Estimated Complexity: Novice  (was: Unknown)

 camel-twitter - Support Streaming from User Endpoint including Direct Messages
 --

 Key: CAMEL-8258
 URL: https://issues.apache.org/jira/browse/CAMEL-8258
 Project: Camel
  Issue Type: Improvement
  Components: camel-twitter
Affects Versions: 2.14.1
Reporter: Hendy Irawan
 Fix For: Future


 Please support streaming from User endpoint ({{twitter://streaming/filter}} 
 Camel URI?) including Direct Messages, which is supported by twitter4j but 
 currently ignored by camel-twitter.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CAMEL-8258) camel-twitter - Support Streaming from User Endpoint including Direct Messages

2015-01-23 Thread Claus Ibsen (JIRA)

[ 
https://issues.apache.org/jira/browse/CAMEL-8258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14289016#comment-14289016
 ] 

Claus Ibsen commented on CAMEL-8258:


People is welcome to work on a patch to implement this. We love contributions.

 camel-twitter - Support Streaming from User Endpoint including Direct Messages
 --

 Key: CAMEL-8258
 URL: https://issues.apache.org/jira/browse/CAMEL-8258
 Project: Camel
  Issue Type: Improvement
  Components: camel-twitter
Affects Versions: 2.14.1
Reporter: Hendy Irawan
 Fix For: Future


 Please support streaming from User endpoint ({{twitter://streaming/filter}} 
 Camel URI?) including Direct Messages, which is supported by twitter4j but 
 currently ignored by camel-twitter.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CAMEL-8258) camel-twitter - Support Streaming from User Endpoint including Direct Messages

2015-01-23 Thread Claus Ibsen (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8258?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen updated CAMEL-8258:
---
Fix Version/s: Future
  Summary: camel-twitter - Support Streaming from User Endpoint 
including Direct Messages  (was: Support Streaming from User Endpoint including 
Direct Messages)

 camel-twitter - Support Streaming from User Endpoint including Direct Messages
 --

 Key: CAMEL-8258
 URL: https://issues.apache.org/jira/browse/CAMEL-8258
 Project: Camel
  Issue Type: Improvement
  Components: camel-twitter
Affects Versions: 2.14.1
Reporter: Hendy Irawan
 Fix For: Future


 Please support streaming from User endpoint ({{twitter://streaming/filter}} 
 Camel URI?) including Direct Messages, which is supported by twitter4j but 
 currently ignored by camel-twitter.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CAMEL-8266) [camel-sftp] Allow directories which are un-readable to be ignored on permission error

2015-01-23 Thread Claus Ibsen (JIRA)

[ 
https://issues.apache.org/jira/browse/CAMEL-8266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14289015#comment-14289015
 ] 

Claus Ibsen commented on CAMEL-8266:


Yeah I think #1 is also the better. Looking forward to a patch. Mind that 
camel-ftp has 2 libraries one for regular and another for sftp, so you may need 
to thinker with the code in two places.

 [camel-sftp] Allow directories which are un-readable to be ignored on 
 permission error
 --

 Key: CAMEL-8266
 URL: https://issues.apache.org/jira/browse/CAMEL-8266
 Project: Camel
  Issue Type: Improvement
  Components: camel-sftp
Affects Versions: 2.14.1
Reporter: Shreyas Purohit
Priority: Minor
   Original Estimate: 8h
  Remaining Estimate: 8h

 When reading from SFTP server recursively it is possible that we read a 
 directory that are not having permission to be read. Specifically, lost+found 
 directory created by the OS with root permission. We should be able to ignore 
 these kind of errors. 
 I can fix this and submit patch but would need guidance towards the better 
 approach:
 1. Re-use IgnoreFileNotFoundOrPermissionError flag and extend its 
 functionality
 2. Add a new flag to ignore these errors
 I think the first approach is better as I consider directories to be also a 
 special type of files. I can work on this if you let me know which way to go 
 from someone in Apache Camel team.
 Thanks,
 Shreyas Purohit



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (CAMEL-8263) Add adapt(T) to CamelContext to use instead of type cast to ModelCamelContext

2015-01-23 Thread Claus Ibsen (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen resolved CAMEL-8263.

Resolution: Fixed

 Add adapt(T) to CamelContext to use instead of type cast to ModelCamelContext
 -

 Key: CAMEL-8263
 URL: https://issues.apache.org/jira/browse/CAMEL-8263
 Project: Camel
  Issue Type: Improvement
  Components: camel-core
Reporter: Claus Ibsen
Assignee: Claus Ibsen
 Fix For: 2.15.0


 .. and remove the @deprecation on the CamelContext api as it causes confusion 
 for people and just more work to work with 2 types.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CAMEL-8271) camel-rabbitmq: Builtin exchanges should not require autoDelete exchangeType properties

2015-01-23 Thread Hendy Irawan (JIRA)
Hendy Irawan created CAMEL-8271:
---

 Summary: camel-rabbitmq: Builtin exchanges should not require 
autoDelete  exchangeType properties
 Key: CAMEL-8271
 URL: https://issues.apache.org/jira/browse/CAMEL-8271
 Project: Camel
  Issue Type: Improvement
  Components: camel-rabbitmq
Affects Versions: 2.14.1
Reporter: Hendy Irawan
Priority: Trivial


Currently all exchanges must set the {{autoDelete}} and {{exchangeType}} 
properties, and cannot be left empty, otherwise camel-rabbitmq will complain 
that these don't match.

The RabbitMQ builtin exchanges have predefined behavior and should be usable 
from {{camel-rabbitmq}} without setting these properties:

1.  / amq.direct
2. amq.fanout
3. amq.topic
4. amq.match, amq.headers

Reference: https://www.rabbitmq.com/tutorials/amqp-concepts.html

Relates to CAMEL-8270



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (CAMEL-8254) camel-elasticsearch - Test hangs

2015-01-23 Thread Claus Ibsen (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8254?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen resolved CAMEL-8254.

Resolution: Fixed
  Assignee: Claus Ibsen

 camel-elasticsearch - Test hangs
 

 Key: CAMEL-8254
 URL: https://issues.apache.org/jira/browse/CAMEL-8254
 Project: Camel
  Issue Type: Test
  Components: camel-elasticsearch, tests
Affects Versions: 2.15.0
Reporter: Claus Ibsen
Assignee: Claus Ibsen
Priority: Minor
 Fix For: 2.15.0


 For some reason this test hangs on my laptop each time I do a full Camel test.
 {code}
 ---
  T E S T S
 ---
 Running 
 org.apache.camel.component.elasticsearch.ElasticsearchComponentConfigurationAndDocumentationTest
 Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.475 sec - 
 in 
 org.apache.camel.component.elasticsearch.ElasticsearchComponentConfigurationAndDocumentationTest
 Running org.apache.camel.component.elasticsearch.ElasticsearchComponentTest
 Results :
 Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
 {code}
 And maven just report some generic error.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CAMEL-8270) camel-rabbitmq: exchangeName in URI should be optional, i.e. default exchange/amq.direct

2015-01-23 Thread Hendy Irawan (JIRA)
Hendy Irawan created CAMEL-8270:
---

 Summary: camel-rabbitmq: exchangeName in URI should be optional, 
i.e. default exchange/amq.direct
 Key: CAMEL-8270
 URL: https://issues.apache.org/jira/browse/CAMEL-8270
 Project: Camel
  Issue Type: Bug
  Components: camel-rabbitmq
Affects Versions: 2.14.1
Reporter: Hendy Irawan
Priority: Trivial


Leaving out the exchangeName i.e. {{rabbitmq://localhost/}} throws exception 
below.

However RabbitMQ supports the default exchange  so it's not required to 
specify {{amq.direct}} explicitly.

{code}
Exception in thread main 
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'camelContext' defined in class path resource 
[id/ac/itb/lumen/persistence/LumenCamelConfiguration.class]: Invocation of init 
method failed; nested exception is 
org.apache.camel.FailedToCreateRouteException: Failed to create route route1 
at:  To[rabbitmq://localhost/?connectionFactory=#amqpConnFactory]  in 
route: Route(route1)[[From[rabbitmq://localhost/amq.topic?connectio... because 
of Failed to resolve endpoint: 
rabbitmq://localhost/?connectionFactory=%23amqpConnFactory due to: No URI path 
as the exchangeName for the RabbitMQEndpoint, the URI is 
rabbitmq://localhost/?connectionFactory=%23amqpConnFactory
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1566)
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:762)
at 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at 
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691)
at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:961)
at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:950)
at org.springframework.boot.SpringApplication$run.call(Unknown Source)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at 
id.ac.itb.lumen.persistence.LumenPersistenceApplication.main(LumenPersistenceApplication.groovy:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create 
route route1 at:  
To[rabbitmq://localhost/?connectionFactory=#amqpConnFactory]  in route: 
Route(route1)[[From[rabbitmq://localhost/amq.topic?connectio... because of 
Failed to resolve endpoint: 
rabbitmq://localhost/?connectionFactory=%23amqpConnFactory due to: No URI path 
as the exchangeName for the RabbitMQEndpoint, the URI is 
rabbitmq://localhost/?connectionFactory=%23amqpConnFactory
at 
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:945)
at 
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:187)
at 
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:805)
at 
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:2174)
at 
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1906)
at 

[jira] [Created] (CAMEL-8269) camel-salesforce: support for Salesforce Apex API

2015-01-23 Thread Daniel Pocock (JIRA)
Daniel Pocock created CAMEL-8269:


 Summary: camel-salesforce: support for Salesforce Apex API
 Key: CAMEL-8269
 URL: https://issues.apache.org/jira/browse/CAMEL-8269
 Project: Camel
  Issue Type: New Feature
  Components: camel-salesforce
Affects Versions: 2.14.1
 Environment: n/a
Reporter: Daniel Pocock


Salesforce provides a service that they call the Apex API.

Using Apex, a developer can write a script and upload it into Salesforce.com 
and have it executed in the server, similar to putting a stored procedure into 
a database.  The Apex language is very similar to Java and likely to be very 
accessible to Camel developers.

Here is an example:

http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_rest_code_sample_basic.htm

Notice that each method implementd in the Apex system can define new URLs for 
handling REST requests.  The URL, the format of input data and the format of 
the return value are arbitrary and at the discretion of the developer.  It is 
not uncommon for developers to use SObjects as input or output and the existing 
DTOs from the camel-salesforce component would be suitable for interaction with 
Apex.

A typical use case for the Apex API is implementing the convertLead method for 
REST.  The Salesforce SOAP API provides a mechanism for developers to request 
lead conversion.  The Salesforce REST API does not have the convertLead() 
method.  The simplest and most common way to work around this limitation is to 
implement convertLead() in Apex, here is an example:

http://stackoverflow.com/questions/19663119/is-there-any-rest-service-available-in-saleforce-to-convert-leads-into-accounts



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CAMEL-8270) camel-rabbitmq: exchangeName in URI must be optional, i.e. default exchange

2015-01-23 Thread Hendy Irawan (JIRA)

[ 
https://issues.apache.org/jira/browse/CAMEL-8270?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14289181#comment-14289181
 ] 

Hendy Irawan commented on CAMEL-8270:
-

Workaround:

{code}
it.out.headers['rabbitmq.EXCHANGE_NAME'] = ''
...
.to('rabbitmq://localhost/dummy?connectionFactory=#amqpConnFactoryautoDelete=false')
 // 'dummy' will be ignored
{code}

 camel-rabbitmq: exchangeName in URI must be optional, i.e. default  exchange
 --

 Key: CAMEL-8270
 URL: https://issues.apache.org/jira/browse/CAMEL-8270
 Project: Camel
  Issue Type: Bug
  Components: camel-rabbitmq
Affects Versions: 2.14.1
Reporter: Hendy Irawan

 Leaving out the exchangeName i.e. {{rabbitmq://localhost/}} throws exception 
 below.
 However RabbitMQ has the default exchange  -so it's not required to specify 
 {{amq.direct}} explicitly.-, and this makes it impossible to send to that 
 exchange (which is different than {{amq.direct}}).
 Should have been fixed by CAMEL-7031 (2.12.3) but still happens in 2.14.1 
 (probably regression)
 {code}
 Exception in thread main 
 org.springframework.beans.factory.BeanCreationException: Error creating bean 
 with name 'camelContext' defined in class path resource 
 [id/ac/itb/lumen/persistence/LumenCamelConfiguration.class]: Invocation of 
 init method failed; nested exception is 
 org.apache.camel.FailedToCreateRouteException: Failed to create route route1 
 at:  To[rabbitmq://localhost/?connectionFactory=#amqpConnFactory]  in 
 route: Route(route1)[[From[rabbitmq://localhost/amq.topic?connectio... 
 because of Failed to resolve endpoint: 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory due to: No URI 
 path as the exchangeName for the RabbitMQEndpoint, the URI is 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory
   at 
 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1566)
   at 
 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
   at 
 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
   at 
 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
   at 
 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
   at 
 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
   at 
 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
   at 
 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:762)
   at 
 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
   at 
 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
   at 
 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691)
   at 
 org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
   at 
 org.springframework.boot.SpringApplication.run(SpringApplication.java:961)
   at 
 org.springframework.boot.SpringApplication.run(SpringApplication.java:950)
   at org.springframework.boot.SpringApplication$run.call(Unknown Source)
   at 
 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
   at 
 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
   at 
 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
   at 
 id.ac.itb.lumen.persistence.LumenPersistenceApplication.main(LumenPersistenceApplication.groovy:38)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:483)
   at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
 Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create 
 route route1 at:  
 To[rabbitmq://localhost/?connectionFactory=#amqpConnFactory]  in route: 
 Route(route1)[[From[rabbitmq://localhost/amq.topic?connectio... because of 
 Failed to resolve endpoint: 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory due to: No URI 
 path as the exchangeName for the RabbitMQEndpoint, the URI is 
 

[jira] [Updated] (CAMEL-8270) camel-rabbitmq: exchangeName in URI must be optional, i.e. default exchange

2015-01-23 Thread Hendy Irawan (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hendy Irawan updated CAMEL-8270:

Description: 
Leaving out the exchangeName i.e. {{rabbitmq://localhost/}} throws exception 
below.

However RabbitMQ has the default exchange  -so it's not required to specify 
{{amq.direct}} explicitly.-, and this makes it impossible to send to that 
exchange (which is different than {{amq.direct}}).

Should have been fixed by CAMEL-7031 (2.12.3) but still happens in 2.14.1 
(probably regression)

{code}
Exception in thread main 
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'camelContext' defined in class path resource 
[id/ac/itb/lumen/persistence/LumenCamelConfiguration.class]: Invocation of init 
method failed; nested exception is 
org.apache.camel.FailedToCreateRouteException: Failed to create route route1 
at:  To[rabbitmq://localhost/?connectionFactory=#amqpConnFactory]  in 
route: Route(route1)[[From[rabbitmq://localhost/amq.topic?connectio... because 
of Failed to resolve endpoint: 
rabbitmq://localhost/?connectionFactory=%23amqpConnFactory due to: No URI path 
as the exchangeName for the RabbitMQEndpoint, the URI is 
rabbitmq://localhost/?connectionFactory=%23amqpConnFactory
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1566)
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:762)
at 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at 
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691)
at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:961)
at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:950)
at org.springframework.boot.SpringApplication$run.call(Unknown Source)
at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at 
id.ac.itb.lumen.persistence.LumenPersistenceApplication.main(LumenPersistenceApplication.groovy:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create 
route route1 at:  
To[rabbitmq://localhost/?connectionFactory=#amqpConnFactory]  in route: 
Route(route1)[[From[rabbitmq://localhost/amq.topic?connectio... because of 
Failed to resolve endpoint: 
rabbitmq://localhost/?connectionFactory=%23amqpConnFactory due to: No URI path 
as the exchangeName for the RabbitMQEndpoint, the URI is 
rabbitmq://localhost/?connectionFactory=%23amqpConnFactory
at 
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:945)
at 
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:187)
at 
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:805)
at 
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:2174)
at 
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1906)
at 
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1767)
at 

[jira] [Comment Edited] (CAMEL-7003) RabbitMQ Producer cannot create exchanges, queues

2015-01-23 Thread Hendy Irawan (JIRA)

[ 
https://issues.apache.org/jira/browse/CAMEL-7003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14289171#comment-14289171
 ] 

Hendy Irawan edited comment on CAMEL-7003 at 1/23/15 12:26 PM:
---

This ticket conflates exchange/queue creation with the issue of not being able 
to send to default exchange.

I've created a ticket which is specifically about the default exchange : 
CAMEL-8270, which should have been fixed by CAMEL-7031 (2.12.3) but still 
happens in 2.14.1 (probably regression)


was (Author: ceefour):
This ticket conflates exchange/queue creation with the issue of not being able 
to send to default exchange.

I've created a ticket which is specifically about the default exchange : 
CAMEL-8270

 RabbitMQ Producer cannot create exchanges, queues
 -

 Key: CAMEL-7003
 URL: https://issues.apache.org/jira/browse/CAMEL-7003
 Project: Camel
  Issue Type: Bug
  Components: camel-rabbitmq
Affects Versions: 2.12.1
 Environment: RabbitMQ 3.2.0 on CentOS 6.4 (running in VMWare 
 Workstation 9.0.2 build-1031769)
 Camel 2.12.1 running in Eclipse Helios on Windows 7
Reporter: Jason Foster
Assignee: Willem Jiang

 There doesn't seem to be a way to have the producer declare an exchange or a 
 queue.  The following route demonstrates this problem:
   from(stream:in?promptMessage=Enter message payload: )
   
 .to(rabbitmq://server:port/direct?queue=defectusername=guestpassword=guest);
 There also is no way for the producer to use the default exchange, (which has 
 no name).  You cannot set an exchange name as a header with an empty string, 
 and specifying 'direct' on the exchange uri also doesn't work.  However, the 
 consumer appears to work and will declare at least queues, even on the 
 default exchange.
 The producer appears to only work with previously declared exchanges and 
 queues, which isn't practical, especially in recovery situations, since you 
 cannot guarantee the order things will start (producer vs. consumer) and the 
 producer doesn't attempt any type of re-delivery in the case that the 
 exchange/queue doesn't exist, nor does it indicate via logging or exceptions 
 that there is a problem with delivery.
 In Rabbit, creating exchanges and queues are both idempotent operations, so 
 it wouldn't hurt to call the methods to declare the exchange and queue, 
 regardless of whether they previously existed.  If you set up an endpoint to 
 a non-existent queue and want to use the default direct exchange, you can't 
 do that with this component.  
 If an exchange and queue are created outside the component, (say by a 
 consumer or using rabbitmq management console) then the producer works 
 correctly.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CAMEL-8270) camel-rabbitmq: exchangeName in URI must be optional, i.e. default exchange

2015-01-23 Thread Hendy Irawan (JIRA)

[ 
https://issues.apache.org/jira/browse/CAMEL-8270?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14289178#comment-14289178
 ] 

Hendy Irawan commented on CAMEL-8270:
-

Should have been fixed by CAMEL-7031 (2.12.3) but still happens in 2.14.1 
(probably regression)

 camel-rabbitmq: exchangeName in URI must be optional, i.e. default  exchange
 --

 Key: CAMEL-8270
 URL: https://issues.apache.org/jira/browse/CAMEL-8270
 Project: Camel
  Issue Type: Bug
  Components: camel-rabbitmq
Affects Versions: 2.14.1
Reporter: Hendy Irawan

 Leaving out the exchangeName i.e. {{rabbitmq://localhost/}} throws exception 
 below.
 However RabbitMQ has the default exchange  -so it's not required to specify 
 {{amq.direct}} explicitly.-, and this makes it impossible to send to that 
 exchange (which is different than {{amq.direct}}).
 {code}
 Exception in thread main 
 org.springframework.beans.factory.BeanCreationException: Error creating bean 
 with name 'camelContext' defined in class path resource 
 [id/ac/itb/lumen/persistence/LumenCamelConfiguration.class]: Invocation of 
 init method failed; nested exception is 
 org.apache.camel.FailedToCreateRouteException: Failed to create route route1 
 at:  To[rabbitmq://localhost/?connectionFactory=#amqpConnFactory]  in 
 route: Route(route1)[[From[rabbitmq://localhost/amq.topic?connectio... 
 because of Failed to resolve endpoint: 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory due to: No URI 
 path as the exchangeName for the RabbitMQEndpoint, the URI is 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory
   at 
 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1566)
   at 
 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
   at 
 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
   at 
 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
   at 
 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
   at 
 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
   at 
 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
   at 
 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:762)
   at 
 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
   at 
 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
   at 
 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691)
   at 
 org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
   at 
 org.springframework.boot.SpringApplication.run(SpringApplication.java:961)
   at 
 org.springframework.boot.SpringApplication.run(SpringApplication.java:950)
   at org.springframework.boot.SpringApplication$run.call(Unknown Source)
   at 
 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
   at 
 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
   at 
 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
   at 
 id.ac.itb.lumen.persistence.LumenPersistenceApplication.main(LumenPersistenceApplication.groovy:38)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:483)
   at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
 Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create 
 route route1 at:  
 To[rabbitmq://localhost/?connectionFactory=#amqpConnFactory]  in route: 
 Route(route1)[[From[rabbitmq://localhost/amq.topic?connectio... because of 
 Failed to resolve endpoint: 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory due to: No URI 
 path as the exchangeName for the RabbitMQEndpoint, the URI is 
 rabbitmq://localhost/?connectionFactory=%23amqpConnFactory
   at 
 org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:945)
   at 
 

[jira] [Updated] (CAMEL-8273) More flexible selection of default documentType in XPath expressions

2015-01-23 Thread Stephan Siano (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8273?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephan Siano updated CAMEL-8273:
-
Attachment: 0001-CAMEL-8273-More-flexible-selection-of-default-docume.patch

 More flexible selection of default documentType in XPath expressions
 

 Key: CAMEL-8273
 URL: https://issues.apache.org/jira/browse/CAMEL-8273
 Project: Camel
  Issue Type: Improvement
  Components: camel-core
Affects Versions: 2.15.0
Reporter: Stephan Siano
 Attachments: 
 0001-CAMEL-8273-More-flexible-selection-of-default-docume.patch


 In the current implementation of XPath if no documentType is defined (likely 
 in most cases) the document used for XPath evaluation is parsed into a (DOM) 
 Document using the JDK XML parser before applying the XPath expression on it.
 For large documents this might be resource intensive, especially if the XPath 
 is evaluated using a more efficient parser like Saxon.
 With the current implementation it is possible to workaround this by setting 
 a documentType attribute to the XPath expression, but doing this efficiently 
 requires some internal knowledge about the previous component in the camel 
 route (which type it creates) and the qualities of the used XML parser (e.g. 
 the JDK parser accepts only InputSource and Node as input types for XPath 
 evaluation whereas Saxon does also support other types like SAXSource).
 The attached patch will make the data type used by default for XPath 
 evaluation more flexible (depending on the type of the input).
 There are two cases to differentiate:
 documentType is set on the XPath expression:
 current implementation:
 1. try to convert to the documentType
 2. if that fails do some extra conversions for some additional data types 
 (WrappedFile, BeanInvocation, String)
 3. if that fails throw an exception
 new implementation:
 1. try to convert to the documentType
 2. if that fails, use the message if it is of type Node, InputSource or 
 DOMSource or do some type conversions for specific data types (WrappedFile, 
 BeanInvocation, String, InputStream, Reader, byte[]...)
 3. if that fails throw an exception
 documentType is not set on the XPath expresson
 old implementation:
 this is actually the same as if documentType was set to Document
 new implementation:
 1. Use the message if it is of type Node, InputSource or DOMSource or do some 
 type conversions for specific data types (WrappedFile, BeanInvocation, 
 String, InputStream, Reader, byte[]...) (to InputSource)
 2. If the old message is not of one of the types above, convert to DOM 
 Document
 3. If this fails throw an Exception



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CAMEL-8273) More flexible selection of default documentType in XPath expressions

2015-01-23 Thread Stephan Siano (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-8273?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephan Siano updated CAMEL-8273:
-
Patch Info: Patch Available

 More flexible selection of default documentType in XPath expressions
 

 Key: CAMEL-8273
 URL: https://issues.apache.org/jira/browse/CAMEL-8273
 Project: Camel
  Issue Type: Improvement
  Components: camel-core
Affects Versions: 2.15.0
Reporter: Stephan Siano
 Attachments: 
 0001-CAMEL-8273-More-flexible-selection-of-default-docume.patch


 In the current implementation of XPath if no documentType is defined (likely 
 in most cases) the document used for XPath evaluation is parsed into a (DOM) 
 Document using the JDK XML parser before applying the XPath expression on it.
 For large documents this might be resource intensive, especially if the XPath 
 is evaluated using a more efficient parser like Saxon.
 With the current implementation it is possible to workaround this by setting 
 a documentType attribute to the XPath expression, but doing this efficiently 
 requires some internal knowledge about the previous component in the camel 
 route (which type it creates) and the qualities of the used XML parser (e.g. 
 the JDK parser accepts only InputSource and Node as input types for XPath 
 evaluation whereas Saxon does also support other types like SAXSource).
 The attached patch will make the data type used by default for XPath 
 evaluation more flexible (depending on the type of the input).
 There are two cases to differentiate:
 documentType is set on the XPath expression:
 current implementation:
 1. try to convert to the documentType
 2. if that fails do some extra conversions for some additional data types 
 (WrappedFile, BeanInvocation, String)
 3. if that fails throw an exception
 new implementation:
 1. try to convert to the documentType
 2. if that fails, use the message if it is of type Node, InputSource or 
 DOMSource or do some type conversions for specific data types (WrappedFile, 
 BeanInvocation, String, InputStream, Reader, byte[]...)
 3. if that fails throw an exception
 documentType is not set on the XPath expresson
 old implementation:
 this is actually the same as if documentType was set to Document
 new implementation:
 1. Use the message if it is of type Node, InputSource or DOMSource or do some 
 type conversions for specific data types (WrappedFile, BeanInvocation, 
 String, InputStream, Reader, byte[]...) (to InputSource)
 2. If the old message is not of one of the types above, convert to DOM 
 Document
 3. If this fails throw an Exception



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)