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 2013/07/11 18:09:23 UTC
[1/3] git commit: Added unit test about using custom type converters
in camel-test-blueprint
Updated Branches:
refs/heads/master e42b0b9e5 -> dc281f360
Added unit test about using custom type converters in camel-test-blueprint
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a5b32962
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a5b32962
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a5b32962
Branch: refs/heads/master
Commit: a5b3296216b44c7cd08263b066b374a86c2b2b0f
Parents: e42b0b9
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Jul 11 11:43:16 2013 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Jul 11 18:04:38 2013 +0200
----------------------------------------------------------------------
.../org/apache/camel/test/blueprint/Foo.java | 39 +++++++++++++++++
.../converter/CustomConverterTest.java | 44 ++++++++++++++++++++
.../test/blueprint/converter/MyConverter.java | 34 +++++++++++++++
.../services/org/apache/camel/TypeConverter | 18 ++++++++
.../src/test/resources/log4j.properties | 1 +
.../blueprint/converter/CustomConverterTest.xml | 34 +++++++++++++++
6 files changed, 170 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/a5b32962/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/Foo.java
----------------------------------------------------------------------
diff --git a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/Foo.java b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/Foo.java
new file mode 100644
index 0000000..b6782d9
--- /dev/null
+++ b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/Foo.java
@@ -0,0 +1,39 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.test.blueprint;
+
+public class Foo {
+
+ private String first;
+ private String last;
+
+ public String getFirst() {
+ return first;
+ }
+
+ public void setFirst(String first) {
+ this.first = first;
+ }
+
+ public String getLast() {
+ return last;
+ }
+
+ public void setLast(String last) {
+ this.last = last;
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/a5b32962/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/converter/CustomConverterTest.java
----------------------------------------------------------------------
diff --git a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/converter/CustomConverterTest.java b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/converter/CustomConverterTest.java
new file mode 100644
index 0000000..1c1ce64
--- /dev/null
+++ b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/converter/CustomConverterTest.java
@@ -0,0 +1,44 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.test.blueprint.converter;
+
+import org.apache.camel.test.blueprint.CamelBlueprintTestSupport;
+import org.apache.camel.test.blueprint.Foo;
+import org.junit.Test;
+
+public class CustomConverterTest extends CamelBlueprintTestSupport {
+
+ @Override
+ protected String getBlueprintDescriptor() {
+ return "org/apache/camel/test/blueprint/converter/CustomConverterTest.xml";
+ }
+
+ @Test
+ public void testCustomConverter() throws Exception {
+ getMockEndpoint("mock:result").expectedMessageCount(1);
+ getMockEndpoint("mock:result").message(0).body().isInstanceOf(Foo.class);
+
+ template.sendBody("direct:start", "John,Doe");
+
+ assertMockEndpointsSatisfied();
+
+ Foo foo = getMockEndpoint("mock:result").getReceivedExchanges().get(0).getIn().getBody(Foo.class);
+ assertEquals("John", foo.getFirst());
+ assertEquals("Doe", foo.getLast());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/a5b32962/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/converter/MyConverter.java
----------------------------------------------------------------------
diff --git a/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/converter/MyConverter.java b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/converter/MyConverter.java
new file mode 100644
index 0000000..58131cc
--- /dev/null
+++ b/components/camel-test-blueprint/src/test/java/org/apache/camel/test/blueprint/converter/MyConverter.java
@@ -0,0 +1,34 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.test.blueprint.converter;
+
+import org.apache.camel.Converter;
+import org.apache.camel.test.blueprint.Foo;
+
+@Converter
+public class MyConverter {
+
+ @Converter
+ public static Foo convertToFoo(String data) {
+ String[] s = data.split(",");
+ Foo foo = new Foo();
+ foo.setFirst(s[0]);
+ foo.setLast(s[1]);
+ return foo;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/a5b32962/components/camel-test-blueprint/src/test/resources/META-INF/services/org/apache/camel/TypeConverter
----------------------------------------------------------------------
diff --git a/components/camel-test-blueprint/src/test/resources/META-INF/services/org/apache/camel/TypeConverter b/components/camel-test-blueprint/src/test/resources/META-INF/services/org/apache/camel/TypeConverter
new file mode 100644
index 0000000..2b0f5e5
--- /dev/null
+++ b/components/camel-test-blueprint/src/test/resources/META-INF/services/org/apache/camel/TypeConverter
@@ -0,0 +1,18 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+org.apache.camel.test.blueprint.converter.MyConverter
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/a5b32962/components/camel-test-blueprint/src/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/components/camel-test-blueprint/src/test/resources/log4j.properties b/components/camel-test-blueprint/src/test/resources/log4j.properties
index f090d64..8d8dd6b 100644
--- a/components/camel-test-blueprint/src/test/resources/log4j.properties
+++ b/components/camel-test-blueprint/src/test/resources/log4j.properties
@@ -23,6 +23,7 @@ log4j.rootLogger=INFO, file
#log4j.logger.de.kalpatec.pojosr=DEBUG
#log4j.logger.org.apache.camel.test.blueprint=DEBUG
#log4j.logger.org.apache.camel=DEBUG
+#log4j.logger.org.apache.camel.impl.osgi.Activator=DEBUG
#log4j.logger.org.apache.camel.blueprint=TRACE
#log4j.logger.org.apache.camel.core.osgi=TRACE
#log4j.logger.org.apache.aries.blueprint.container=DEBUG
http://git-wip-us.apache.org/repos/asf/camel/blob/a5b32962/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/converter/CustomConverterTest.xml
----------------------------------------------------------------------
diff --git a/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/converter/CustomConverterTest.xml b/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/converter/CustomConverterTest.xml
new file mode 100644
index 0000000..3b6f43b
--- /dev/null
+++ b/components/camel-test-blueprint/src/test/resources/org/apache/camel/test/blueprint/converter/CustomConverterTest.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
+
+ <camelContext xmlns="http://camel.apache.org/schema/blueprint">
+
+ <route>
+ <from uri="direct:start"/>
+ <convertBodyTo type="org.apache.camel.test.blueprint.Foo"/>
+ <to uri="mock:result"/>
+ </route>
+
+ </camelContext>
+
+</blueprint>
+
[3/3] git commit: CAMEL-6540: Added option to enrich Camel message
with client certificate information for SSL consumers.
Posted by da...@apache.org.
CAMEL-6540: Added option to enrich Camel message with client certificate information for SSL consumers.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/dc281f36
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/dc281f36
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/dc281f36
Branch: refs/heads/master
Commit: dc281f360e1e5548057409a7bb9120c70e59f085
Parents: 6406914
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Jul 11 18:04:18 2013 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Jul 11 18:04:39 2013 +0200
----------------------------------------------------------------------
.../camel/component/netty/NettyConstants.java | 5 ++
.../camel/component/netty/NettyEndpoint.java | 48 ++++++++++++-
.../NettyServerBootstrapConfiguration.java | 10 ++-
.../netty/NettySSLClientCertHeadersTest.java | 74 ++++++++++++++++++++
4 files changed, 134 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/dc281f36/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConstants.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConstants.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConstants.java
index 1ea260c..4082c7d 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConstants.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConstants.java
@@ -29,6 +29,11 @@ public final class NettyConstants {
public static final String NETTY_REMOTE_ADDRESS = "CamelNettyRemoteAddress";
public static final String NETTY_LOCAL_ADDRESS = "CamelNettyLocalAddress";
public static final String NETTY_SSL_SESSION = "CamelNettySSLSession";
+ public static final String NETTY_SSL_CLIENT_CERT_SUBJECT_NAME = "CamelNettySSLClientCertSubjectName";
+ public static final String NETTY_SSL_CLIENT_CERT_ISSUER_NAME = "CamelNettySSLClientCertIssuerName";
+ public static final String NETTY_SSL_CLIENT_CERT_SERIAL_NO = "CamelNettySSLClientCertSerialNumber";
+ public static final String NETTY_SSL_CLIENT_CERT_NOT_BEFORE = "CamelNettySSLClientCertNotBefore";
+ public static final String NETTY_SSL_CLIENT_CERT_NOT_AFTER = "CamelNettySSLClientCertNotAfter";
private NettyConstants() {
// Utility class
http://git-wip-us.apache.org/repos/asf/camel/blob/dc281f36/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
index a712b7e..7b464fa 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
@@ -16,7 +16,11 @@
*/
package org.apache.camel.component.netty;
+import java.math.BigInteger;
+import java.security.Principal;
+import javax.net.ssl.SSLPeerUnverifiedException;
import javax.net.ssl.SSLSession;
+import javax.security.cert.X509Certificate;
import org.apache.camel.Consumer;
import org.apache.camel.Exchange;
@@ -106,7 +110,7 @@ public class NettyEndpoint extends DefaultEndpoint {
}
return sslSession;
}
-
+
protected void updateMessageHeader(Message in, ChannelHandlerContext ctx, MessageEvent messageEvent) {
in.setHeader(NettyConstants.NETTY_CHANNEL_HANDLER_CONTEXT, ctx);
in.setHeader(NettyConstants.NETTY_MESSAGE_EVENT, messageEvent);
@@ -115,7 +119,47 @@ public class NettyEndpoint extends DefaultEndpoint {
if (configuration.isSsl()) {
// setup the SslSession header
- in.setHeader(NettyConstants.NETTY_SSL_SESSION, getSSLSession(ctx));
+ SSLSession sslSession = getSSLSession(ctx);
+ in.setHeader(NettyConstants.NETTY_SSL_SESSION, sslSession);
+
+ // enrich headers with details from the client certificate if option is enabled
+ if (configuration.isSslClientCertHeaders()) {
+ enrichWithClientCertInformation(sslSession, in);
+ }
+ }
+ }
+
+ /**
+ * Enriches the message with client certificate details such as subject name, serial number etc.
+ * <p/>
+ * If the certificate is unverified then the headers is not enriched.
+ *
+ * @param sslSession the SSL session
+ * @param message the message to enrich
+ */
+ protected void enrichWithClientCertInformation(SSLSession sslSession, Message message) {
+ try {
+ X509Certificate[] certificates = sslSession.getPeerCertificateChain();
+ if (certificates != null && certificates.length > 0) {
+ X509Certificate cert = certificates[0];
+
+ Principal subject = cert.getSubjectDN();
+ if (subject != null) {
+ message.setHeader(NettyConstants.NETTY_SSL_CLIENT_CERT_SUBJECT_NAME, subject.getName());
+ }
+ Principal issuer = cert.getIssuerDN();
+ if (issuer != null) {
+ message.setHeader(NettyConstants.NETTY_SSL_CLIENT_CERT_ISSUER_NAME, issuer.getName());
+ }
+ BigInteger serial = cert.getSerialNumber();
+ if (serial != null) {
+ message.setHeader(NettyConstants.NETTY_SSL_CLIENT_CERT_SERIAL_NO, serial.toString());
+ }
+ message.setHeader(NettyConstants.NETTY_SSL_CLIENT_CERT_NOT_BEFORE, cert.getNotBefore());
+ message.setHeader(NettyConstants.NETTY_SSL_CLIENT_CERT_NOT_AFTER, cert.getNotAfter());
+ }
+ } catch (SSLPeerUnverifiedException e) {
+ // ignore
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/dc281f36/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java
index 7df49b0..e7972fb 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java
@@ -18,7 +18,6 @@ package org.apache.camel.component.netty;
import java.io.File;
import java.util.Map;
-import java.util.concurrent.ExecutorService;
import org.apache.camel.util.jsse.SSLContextParameters;
import org.jboss.netty.channel.socket.nio.BossPool;
@@ -46,6 +45,7 @@ public class NettyServerBootstrapConfiguration implements Cloneable {
protected Map<String, Object> options;
// SSL options is also part of the server bootstrap as the server listener on port X is either plain or SSL
protected boolean ssl;
+ protected boolean sslClientCertHeaders;
protected SslHandler sslHandler;
protected SSLContextParameters sslContextParameters;
protected boolean needClientAuth;
@@ -187,6 +187,14 @@ public class NettyServerBootstrapConfiguration implements Cloneable {
this.ssl = ssl;
}
+ public boolean isSslClientCertHeaders() {
+ return sslClientCertHeaders;
+ }
+
+ public void setSslClientCertHeaders(boolean sslClientCertHeaders) {
+ this.sslClientCertHeaders = sslClientCertHeaders;
+ }
+
public SslHandler getSslHandler() {
return sslHandler;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/dc281f36/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettySSLClientCertHeadersTest.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettySSLClientCertHeadersTest.java b/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettySSLClientCertHeadersTest.java
new file mode 100644
index 0000000..7469d1c
--- /dev/null
+++ b/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettySSLClientCertHeadersTest.java
@@ -0,0 +1,74 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.netty;
+
+import java.io.File;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.JndiRegistry;
+import org.junit.Test;
+
+public class NettySSLClientCertHeadersTest extends BaseNettyTest {
+
+ @Override
+ protected JndiRegistry createRegistry() throws Exception {
+ JndiRegistry registry = super.createRegistry();
+ registry.bind("ksf", new File("src/test/resources/keystore.jks"));
+ registry.bind("tsf", new File("src/test/resources/keystore.jks"));
+ return registry;
+ }
+
+ @Override
+ public boolean isUseRouteBuilder() {
+ return false;
+ }
+
+ @Test
+ public void testSSLInOutWithNettyConsumer() throws Exception {
+ // ibm jdks dont have sun security algorithms
+ if (isJavaVendor("ibm")) {
+ return;
+ }
+
+ getMockEndpoint("mock:input").expectedMessageCount(1);
+
+ getMockEndpoint("mock:input").expectedHeaderReceived(NettyConstants.NETTY_SSL_CLIENT_CERT_SUBJECT_NAME,
+ "CN=arlu15, OU=Sun Java System Application Server, O=Sun Microsystems, L=Santa Clara, ST=California, C=US");
+ getMockEndpoint("mock:input").expectedHeaderReceived(NettyConstants.NETTY_SSL_CLIENT_CERT_ISSUER_NAME,
+ "CN=arlu15, OU=Sun Java System Application Server, O=Sun Microsystems, L=Santa Clara, ST=California, C=US");
+ getMockEndpoint("mock:input").expectedHeaderReceived(NettyConstants.NETTY_SSL_CLIENT_CERT_SERIAL_NO, "1210701502");
+
+ context.addRoutes(new RouteBuilder() {
+ public void configure() {
+ // needClientAuth=true so we can get the client certificate details
+ from("netty:tcp://localhost:{{port}}?sync=true&ssl=true&passphrase=changeit&keyStoreFile=#ksf&trustStoreFile=#tsf"
+ + "&needClientAuth=true&sslClientCertHeaders=true")
+ .to("mock:input")
+ .transform().constant("Bye World");
+ }
+ });
+ context.start();
+
+ String response = template.requestBody(
+ "netty:tcp://localhost:{{port}}?sync=true&ssl=true&passphrase=changeit&keyStoreFile=#ksf&trustStoreFile=#tsf",
+ "Hello World", String.class);
+ assertEquals("Bye World", response);
+
+ assertMockEndpointsSatisfied();
+ }
+
+}
[2/3] git commit: Fixed javadoc
Posted by da...@apache.org.
Fixed javadoc
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/64069141
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/64069141
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/64069141
Branch: refs/heads/master
Commit: 6406914121337a2e29cff0328e22c112b53c0cd2
Parents: a5b3296
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Jul 11 12:39:34 2013 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Jul 11 18:04:39 2013 +0200
----------------------------------------------------------------------
camel-core/src/main/java/org/apache/camel/util/OgnlHelper.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/64069141/camel-core/src/main/java/org/apache/camel/util/OgnlHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/OgnlHelper.java b/camel-core/src/main/java/org/apache/camel/util/OgnlHelper.java
index 099b76e..7ee557a 100644
--- a/camel-core/src/main/java/org/apache/camel/util/OgnlHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/OgnlHelper.java
@@ -81,10 +81,10 @@ public final class OgnlHelper {
}
/**
- * Tests whether or not the given Camel OGNL expression is using the Elvis operator or not.
+ * Tests whether or not the given Camel OGNL expression is using the null safe operator or not.
*
* @param ognlExpression the Camel OGNL expression
- * @return <tt>true</tt> if the Elvis operator is used, otherwise <tt>false</tt>.
+ * @return <tt>true</tt> if the null safe operator is used, otherwise <tt>false</tt>.
*/
public static boolean isNullSafeOperator(String ognlExpression) {
if (ObjectHelper.isEmpty(ognlExpression)) {