Repository: camel
Updated Branches:
  refs/heads/master 812591a19 -> 2ca68387b


CAMEL-7999: More components include documentation


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

Branch: refs/heads/master
Commit: 2ca68387b75abeba143e65a0edba434c9f034661
Parents: 812591a
Author: Claus Ibsen <davscl...@apache.org>
Authored: Mon Jan 5 12:00:32 2015 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Mon Jan 5 12:00:32 2015 +0100

----------------------------------------------------------------------
 .../camel/component/crypto/CryptoOperation.java | 22 +++++++
 .../crypto/DigitalSignatureComponent.java       |  6 +-
 .../crypto/DigitalSignatureConfiguration.java   | 69 ++++++++++++++------
 .../crypto/DigitalSignatureEndpoint.java        | 21 ++++--
 .../processor/DigitalSignatureProcessor.java    |  2 +-
 .../crypto/processor/SigningProcessor.java      |  2 +-
 .../crypto/processor/VerifyingProcessor.java    |  4 +-
 7 files changed, 92 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/2ca68387/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/CryptoOperation.java
----------------------------------------------------------------------
diff --git 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/CryptoOperation.java
 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/CryptoOperation.java
new file mode 100644
index 0000000..b1c860f
--- /dev/null
+++ 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/CryptoOperation.java
@@ -0,0 +1,22 @@
+/**
+ * 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.crypto;
+
+public enum CryptoOperation {
+
+    sign, verify
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/2ca68387/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java
 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java
index 95ef3fb..9afe028 100644
--- 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java
+++ 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java
@@ -23,20 +23,22 @@ import java.util.Map;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.impl.UriEndpointComponent;
 import org.apache.camel.util.ObjectHelper;
 
 /**
  * <code>DigitalSignatureComponent</code>
  */
-public class DigitalSignatureComponent extends DefaultComponent {
+public class DigitalSignatureComponent extends UriEndpointComponent {
 
     private DigitalSignatureConfiguration configuration;
 
     public DigitalSignatureComponent() {
+        super(DigitalSignatureEndpoint.class);
     }
 
     public DigitalSignatureComponent(CamelContext context) {
-        super(context);
+        super(context, DigitalSignatureEndpoint.class);
     }
 
     protected Endpoint createEndpoint(String uri, String remaining, 
Map<String, Object> parameters) throws Exception {

http://git-wip-us.apache.org/repos/asf/camel/blob/2ca68387/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureConfiguration.java
----------------------------------------------------------------------
diff --git 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureConfiguration.java
 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureConfiguration.java
index 554db3b..d3ccf98 100644
--- 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureConfiguration.java
+++ 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureConfiguration.java
@@ -28,32 +28,54 @@ import java.security.cert.Certificate;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriParams;
+import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.jsse.KeyStoreParameters;
 
-
+@UriParams
 public class DigitalSignatureConfiguration implements Cloneable, 
CamelContextAware {
 
+    private CamelContext context;
+
+    @UriPath
+    private CryptoOperation cryptoOperation;
+    @UriParam
     private PrivateKey privateKey;
+    @UriParam
     private KeyStore keystore;
+    @UriParam
     private SecureRandom secureRandom;
+    @UriParam(defaultValue = "SHA1WithDSA")
     private String algorithm = "SHA1WithDSA";
-    private Integer bufferSize = Integer.valueOf(2048);
+    @UriParam(defaultValue = "" + 2048)
+    private Integer bufferSize = 2048;
+    @UriParam
     private String provider;
+    @UriParam
     private String signatureHeaderName;
+    @UriParam
     private String alias;
+    @UriParam
     private char[] password;
+    @UriParam
     private PublicKey publicKey;
+    @UriParam
     private Certificate certificate;
-    private CamelContext context;
 
     /** references that should be resolved when the context changes */
+    @UriParam
     private String publicKeyName;
+    @UriParam
     private String certificateName;
+    @UriParam
     private String privateKeyName;
+    @UriParam
     private String keystoreName;
+    @UriParam
     private String randomName;
+    @UriParam(defaultValue = "true")
     private boolean clearHeaders = true;
-    private String operation;
 
     public DigitalSignatureConfiguration copy() {
         try {
@@ -68,13 +90,14 @@ public class DigitalSignatureConfiguration implements 
Cloneable, CamelContextAwa
     }
 
     public void setCamelContext(CamelContext camelContext) {
+        // TODO: this is wrong a configuration should not have CamelContext
         this.context = camelContext;
         // try to retrieve the references once the context is available.
-        setKeystore(keystoreName);
-        setPublicKey(publicKeyName);
-        setPrivateKey(privateKeyName);
-        setCertificate(certificateName);
-        setSecureRandom(randomName);
+        setKeystoreName(keystoreName);
+        setPublicKeyName(publicKeyName);
+        setPrivateKeyName(privateKeyName);
+        setCertificateName(certificateName);
+        setSecureRandomName(randomName);
     }
 
     /**
@@ -155,7 +178,7 @@ public class DigitalSignatureConfiguration implements 
Cloneable, CamelContextAwa
     /**
      * Sets the reference name for a PrivateKey that can be fond in the 
registry.
      */
-    public void setPrivateKey(String privateKeyName) {
+    public void setPrivateKeyName(String privateKeyName) {
         if (context != null && privateKeyName != null) {
             PrivateKey pk = 
context.getRegistry().lookupByNameAndType(privateKeyName, PrivateKey.class);
             if (pk != null) {
@@ -177,7 +200,7 @@ public class DigitalSignatureConfiguration implements 
Cloneable, CamelContextAwa
     /**
      * Sets the reference name for a publicKey that can be fond in the 
registry.
      */
-    public void setPublicKey(String publicKeyName) {
+    public void setPublicKeyName(String publicKeyName) {
         if (context != null && publicKeyName != null) {
             PublicKey pk = 
context.getRegistry().lookupByNameAndType(publicKeyName, PublicKey.class);
             if (pk != null) {
@@ -229,14 +252,13 @@ public class DigitalSignatureConfiguration implements 
Cloneable, CamelContextAwa
      * exchange based on its payload.
      */
     public void setCertificate(Certificate certificate) {
-
         this.certificate = certificate;
     }
 
     /**
      * Sets the reference name for a PrivateKey that can be fond in the 
registry.
      */
-    public void setCertificate(String certificateName) {
+    public void setCertificateName(String certificateName) {
         if (context != null && certificateName != null) {
             Certificate certificate = 
context.getRegistry().lookupByNameAndType(certificateName, Certificate.class);
             if (certificate != null) {
@@ -275,7 +297,7 @@ public class DigitalSignatureConfiguration implements 
Cloneable, CamelContextAwa
     /**
      * Sets the reference name for a Keystore that can be fond in the registry.
      */
-    public void setKeystore(String keystoreName) {
+    public void setKeystoreName(String keystoreName) {
         if (context != null && keystoreName != null) {
             KeyStore keystore = 
context.getRegistry().lookupByNameAndType(keystoreName, KeyStore.class);
             if (keystore != null) {
@@ -318,7 +340,7 @@ public class DigitalSignatureConfiguration implements 
Cloneable, CamelContextAwa
     /**
      * Sets the reference name for a SecureRandom that can be fond in the 
registry.
      */
-    public void setSecureRandom(String randomName) {
+    public void setSecureRandomName(String randomName) {
         if (context != null && randomName != null) {
             SecureRandom random = 
context.getRegistry().lookupByNameAndType(randomName, SecureRandom.class);
             if (keystore != null) {
@@ -375,7 +397,7 @@ public class DigitalSignatureConfiguration implements 
Cloneable, CamelContextAwa
      * Get the name of the message header that should be used to store the
      * base64 encoded signature. This defaults to 'CamelDigitalSignature'
      */
-    public String getSignatureHeader() {
+    public String getSignatureHeaderName() {
         return signatureHeaderName != null ? signatureHeaderName : 
DigitalSignatureConstants.SIGNATURE;
     }
 
@@ -383,7 +405,7 @@ public class DigitalSignatureConfiguration implements 
Cloneable, CamelContextAwa
      * Set the name of the message header that should be used to store the
      * base64 encoded signature. This defaults to 'CamelDigitalSignature'
      */
-    public void setSignatureHeader(String signatureHeaderName) {
+    public void setSignatureHeaderName(String signatureHeaderName) {
         this.signatureHeaderName = signatureHeaderName;
     }
 
@@ -395,7 +417,7 @@ public class DigitalSignatureConfiguration implements 
Cloneable, CamelContextAwa
      *
      * @return true if the Signature headers should be unset, false otherwise
      */
-    public boolean getClearHeaders() {
+    public boolean isClearHeaders() {
         return clearHeaders;
     }
 
@@ -416,13 +438,18 @@ public class DigitalSignatureConfiguration implements 
Cloneable, CamelContextAwa
      * @param operation the operation supplied after the crypto scheme
      */
     public void setCryptoOperation(String operation) {
-        this.operation = operation;
+        this.cryptoOperation = CryptoOperation.valueOf(operation);
+    }
+
+    public void setCryptoOperation(CryptoOperation operation) {
+        this.cryptoOperation = operation;
     }
 
     /**
      * Gets the Crypto operation that was supplied in the the crypto scheme in 
the endpoint uri
      */
-    public String getCryptoOperation() {
-        return operation;
+    public CryptoOperation getCryptoOperation() {
+        return cryptoOperation;
     }
+
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/2ca68387/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureEndpoint.java
 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureEndpoint.java
index fd1558e..f4f1299 100644
--- 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureEndpoint.java
+++ 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureEndpoint.java
@@ -28,11 +28,15 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.crypto.processor.SigningProcessor;
 import org.apache.camel.component.crypto.processor.VerifyingProcessor;
 import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.spi.UriEndpoint;
+import org.apache.camel.spi.UriParam;
 
 /**
  * <code>DigitalSignatureEndpoint</code>
  */
+@UriEndpoint(scheme = "crypto", label = "security,transformation")
 public class DigitalSignatureEndpoint extends DefaultEndpoint {
+    @UriParam
     private DigitalSignatureConfiguration configuration;
 
     public DigitalSignatureEndpoint(String uri, DigitalSignatureComponent 
component, DigitalSignatureConfiguration configuration) {
@@ -41,8 +45,11 @@ public class DigitalSignatureEndpoint extends 
DefaultEndpoint {
     }
 
     public Producer createProducer() throws Exception {
-        return "sign".equals(configuration.getCryptoOperation())
-            ? new DigitalSignatureProducer(this, new 
SigningProcessor(configuration)) : new DigitalSignatureProducer(this, new 
VerifyingProcessor(configuration));
+        if (CryptoOperation.sign == configuration.getCryptoOperation()) {
+            return new DigitalSignatureProducer(this, new 
SigningProcessor(configuration));
+        } else {
+            return new DigitalSignatureProducer(this, new 
VerifyingProcessor(configuration));
+        }
     }
 
     public Consumer createConsumer(Processor processor) throws Exception {
@@ -74,7 +81,7 @@ public class DigitalSignatureEndpoint extends DefaultEndpoint 
{
     }
 
     public void setPublicKey(String publicKeyName) {
-        getConfiguration().setPublicKey(publicKeyName);
+        getConfiguration().setPublicKeyName(publicKeyName);
     }
 
     public Certificate getCertificate() throws Exception {
@@ -138,11 +145,11 @@ public class DigitalSignatureEndpoint extends 
DefaultEndpoint {
     }
 
     public String getSignatureHeader() {
-        return getConfiguration().getSignatureHeader();
+        return getConfiguration().getSignatureHeaderName();
     }
 
     public void setSignatureHeader(String signatureHeaderName) {
-        getConfiguration().setSignatureHeader(signatureHeaderName);
+        getConfiguration().setSignatureHeaderName(signatureHeaderName);
     }
 
     public String getAlias() {
@@ -153,8 +160,8 @@ public class DigitalSignatureEndpoint extends 
DefaultEndpoint {
         getConfiguration().setAlias(alias);
     }
 
-    public boolean getClearHeaders() {
-        return getConfiguration().getClearHeaders();
+    public boolean isClearHeaders() {
+        return getConfiguration().isClearHeaders();
     }
 
     public void setClearHeaders(boolean clearHeaders) {

http://git-wip-us.apache.org/repos/asf/camel/blob/2ca68387/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/DigitalSignatureProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/DigitalSignatureProcessor.java
 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/DigitalSignatureProcessor.java
index ae168f0..040f367 100644
--- 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/DigitalSignatureProcessor.java
+++ 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/DigitalSignatureProcessor.java
@@ -87,7 +87,7 @@ public abstract class DigitalSignatureProcessor implements 
Processor {
     }
 
     protected void clearMessageHeaders(Message in) {
-        if (config.getClearHeaders()) {
+        if (config.isClearHeaders()) {
             Map<String, Object> headers = in.getHeaders();
             for (Field f : DigitalSignatureConstants.class.getFields()) {
                 
headers.remove(ObjectHelper.lookupConstantFieldValue(DigitalSignatureConstants.class,
 f.getName()));

http://git-wip-us.apache.org/repos/asf/camel/blob/2ca68387/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/SigningProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/SigningProcessor.java
 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/SigningProcessor.java
index e7f39aa..4948dfb 100644
--- 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/SigningProcessor.java
+++ 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/SigningProcessor.java
@@ -44,7 +44,7 @@ public class SigningProcessor extends 
DigitalSignatureProcessor {
         clearMessageHeaders(in);
         Message out = exchange.getOut();
         out.copyFrom(in);
-        out.setHeader(config.getSignatureHeader(), new 
Base64().encode(signature));
+        out.setHeader(config.getSignatureHeaderName(), new 
Base64().encode(signature));
     }
 
     protected Signature initSignatureService(Exchange exchange) throws 
Exception {

http://git-wip-us.apache.org/repos/asf/camel/blob/2ca68387/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/VerifyingProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/VerifyingProcessor.java
 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/VerifyingProcessor.java
index 5780b0d..4190a19 100644
--- 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/VerifyingProcessor.java
+++ 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/processor/VerifyingProcessor.java
@@ -61,9 +61,9 @@ public class VerifyingProcessor extends 
DigitalSignatureProcessor {
     }
 
     private byte[] getSignatureFromExchange(Exchange exchange) throws 
Exception {
-        String encodedSignature = ExchangeHelper.getMandatoryHeader(exchange, 
config.getSignatureHeader(), String.class);
+        String encodedSignature = ExchangeHelper.getMandatoryHeader(exchange, 
config.getSignatureHeaderName(), String.class);
         if (encodedSignature == null) {
-            throw new IllegalStateException("Cannot verify exchange as no " + 
config.getSignatureHeader() + " header is present.");
+            throw new IllegalStateException("Cannot verify exchange as no " + 
config.getSignatureHeaderName() + " header is present.");
         }
         return new Base64().decode(encodedSignature);
     }

Reply via email to