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 2014/12/02 09:35:03 UTC
[2/3] camel git commit: CAMEL-7999: More components include
documentation
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/c4dc594a
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c4dc594a
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c4dc594a
Branch: refs/heads/master
Commit: c4dc594a591224a49b6bb2e5be4e0d84cb47e3e6
Parents: 5cb374b
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Dec 2 09:29:24 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Dec 2 09:29:24 2014 +0100
----------------------------------------------------------------------
.../component/bean/validator/BeanValidator.java | 88 ------------
.../bean/validator/BeanValidatorComponent.java | 47 ++-----
.../bean/validator/BeanValidatorEndpoint.java | 135 +++++++++++++++++++
.../bean/validator/BeanValidatorProducer.java | 70 ++++++++++
.../BeanValidatorConfigurationTest.java | 30 ++---
5 files changed, 223 insertions(+), 147 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/c4dc594a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidator.java
----------------------------------------------------------------------
diff --git a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidator.java b/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidator.java
deleted file mode 100644
index 1deb976..0000000
--- a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidator.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- * 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.bean.validator;
-
-import java.util.Set;
-
-import javax.validation.ConstraintValidatorFactory;
-import javax.validation.ConstraintViolation;
-import javax.validation.MessageInterpolator;
-import javax.validation.TraversableResolver;
-import javax.validation.Validator;
-import javax.validation.ValidatorFactory;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-
-/**
- * Bean validator that uses the JSR 303 reference implementation (Hibernate Validator).
- * Throws {@link BeanValidationException} if constrain violations are detected.
- */
-public class BeanValidator implements Processor {
-
- private ValidatorFactory validatorFactory;
- private Validator validator;
- private Class<?> group;
-
- public void process(Exchange exchange) throws Exception {
- Object bean = exchange.getIn().getBody();
- Set<ConstraintViolation<Object>> constraintViolations = null;
-
- if (this.group != null) {
- constraintViolations = validator.validate(bean, group);
- } else {
- constraintViolations = validator.validate(bean);
- }
-
- if (!constraintViolations.isEmpty()) {
- throw new BeanValidationException(exchange, constraintViolations, exchange.getIn().getBody());
- }
- }
-
- public ValidatorFactory getValidatorFactory() {
- return validatorFactory;
- }
-
- public void setValidatorFactory(ValidatorFactory validatorFactory) {
- this.validatorFactory = validatorFactory;
- this.validator = this.validatorFactory.getValidator();
- }
-
- public Validator getValidator() {
- return validator;
- }
-
- public Class<?> getGroup() {
- return group;
- }
-
- public void setGroup(Class<?> group) {
- this.group = group;
- }
-
- public MessageInterpolator getMessageInterpolator() {
- return this.validatorFactory.getMessageInterpolator();
- }
-
- public TraversableResolver getTraversableResolver() {
- return this.validatorFactory.getTraversableResolver();
- }
-
- public ConstraintValidatorFactory getConstraintValidatorFactory() {
- return this.validatorFactory.getConstraintValidatorFactory();
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/c4dc594a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorComponent.java b/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorComponent.java
index a70ab2e..f95f026 100644
--- a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorComponent.java
+++ b/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorComponent.java
@@ -18,52 +18,25 @@ package org.apache.camel.component.bean.validator;
import java.util.Map;
-import javax.validation.ConstraintValidatorFactory;
-import javax.validation.MessageInterpolator;
-import javax.validation.TraversableResolver;
-import javax.validation.ValidationProviderResolver;
-import javax.validation.ValidatorFactory;
-
import org.apache.camel.Endpoint;
-import org.apache.camel.impl.DefaultComponent;
-import org.apache.camel.impl.ProcessorEndpoint;
-import org.apache.camel.util.PlatformHelper;
-
-import static org.apache.camel.component.bean.validator.ValidatorFactories.buildValidatorFactory;
+import org.apache.camel.impl.UriEndpointComponent;
/**
* Bean Validator Component for validating Java beans against reference implementation of JSR 303 Validator (Hibernate
* Validator).
*/
-public class BeanValidatorComponent extends DefaultComponent {
-
- @Override
- protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
- BeanValidator beanValidator = new BeanValidator();
+public class BeanValidatorComponent extends UriEndpointComponent {
- ValidatorFactory validatorFactory = buildValidatorFactory(
- isOsgiContext(),
- resolveAndRemoveReferenceParameter(parameters, "validationProviderResolver", ValidationProviderResolver.class),
- resolveAndRemoveReferenceParameter(parameters, "messageInterpolator", MessageInterpolator.class),
- resolveAndRemoveReferenceParameter(parameters, "traversableResolver", TraversableResolver.class),
- resolveAndRemoveReferenceParameter(parameters, "constraintValidatorFactory", ConstraintValidatorFactory.class));
- beanValidator.setValidatorFactory(validatorFactory);
-
- String group = getAndRemoveParameter(parameters, "group", String.class);
- if (group != null) {
- beanValidator.setGroup(getCamelContext().getClassResolver().resolveMandatoryClass(group));
- }
-
- return new ProcessorEndpoint(uri, this, beanValidator);
+ public BeanValidatorComponent() {
+ super(BeanValidatorEndpoint.class);
}
- /**
- * Recognizes if component is executed in the OSGi environment.
- *
- * @return true if component is executed in the OSGi environment. False otherwise.
- */
- protected boolean isOsgiContext() {
- return PlatformHelper.isOsgiContext(getCamelContext());
+ @Override
+ protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
+ BeanValidatorEndpoint endpoint = new BeanValidatorEndpoint(uri, this);
+ endpoint.setLabel(remaining);
+ setProperties(endpoint, parameters);
+ return endpoint;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/c4dc594a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorEndpoint.java b/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorEndpoint.java
new file mode 100644
index 0000000..6583638
--- /dev/null
+++ b/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorEndpoint.java
@@ -0,0 +1,135 @@
+/**
+ * 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.bean.validator;
+
+import javax.validation.ConstraintValidatorFactory;
+import javax.validation.MessageInterpolator;
+import javax.validation.TraversableResolver;
+import javax.validation.ValidationProviderResolver;
+import javax.validation.ValidatorFactory;
+
+import org.apache.camel.Component;
+import org.apache.camel.Consumer;
+import org.apache.camel.Processor;
+import org.apache.camel.Producer;
+import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.spi.UriEndpoint;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriPath;
+import org.apache.camel.util.PlatformHelper;
+
+import static org.apache.camel.component.bean.validator.ValidatorFactories.buildValidatorFactory;
+
+@UriEndpoint(scheme = "bean-validator", label = "validation")
+public class BeanValidatorEndpoint extends DefaultEndpoint {
+
+ @UriPath(description = "Where label is an arbitrary text value describing the endpoint")
+ private String label;
+ @UriParam
+ private String group;
+ @UriParam
+ private ValidationProviderResolver validationProviderResolver;
+ @UriParam
+ private MessageInterpolator messageInterpolator;
+ @UriParam
+ private TraversableResolver traversableResolver;
+ @UriParam
+ private ConstraintValidatorFactory constraintValidatorFactory;
+
+ public BeanValidatorEndpoint(String endpointUri, Component component) {
+ super(endpointUri, component);
+ }
+
+ @Override
+ public Producer createProducer() throws Exception {
+ BeanValidatorProducer producer = new BeanValidatorProducer(this);
+ if (group != null) {
+ producer.setGroup(getCamelContext().getClassResolver().resolveMandatoryClass(group));
+ }
+ ValidatorFactory validatorFactory = buildValidatorFactory(isOsgiContext(),
+ validationProviderResolver, messageInterpolator, traversableResolver, constraintValidatorFactory);
+ producer.setValidatorFactory(validatorFactory);
+ return producer;
+ }
+
+ @Override
+ public Consumer createConsumer(Processor processor) throws Exception {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean isSingleton() {
+ return true;
+ }
+
+ /**
+ * Recognizes if component is executed in the OSGi environment.
+ *
+ * @return true if component is executed in the OSGi environment. False otherwise.
+ */
+ protected boolean isOsgiContext() {
+ return PlatformHelper.isOsgiContext(getCamelContext());
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+ public String getGroup() {
+ return group;
+ }
+
+ public void setGroup(String group) {
+ this.group = group;
+ }
+
+ public ValidationProviderResolver getValidationProviderResolver() {
+ return validationProviderResolver;
+ }
+
+ public void setValidationProviderResolver(ValidationProviderResolver validationProviderResolver) {
+ this.validationProviderResolver = validationProviderResolver;
+ }
+
+ public MessageInterpolator getMessageInterpolator() {
+ return messageInterpolator;
+ }
+
+ public void setMessageInterpolator(MessageInterpolator messageInterpolator) {
+ this.messageInterpolator = messageInterpolator;
+ }
+
+ public TraversableResolver getTraversableResolver() {
+ return traversableResolver;
+ }
+
+ public void setTraversableResolver(TraversableResolver traversableResolver) {
+ this.traversableResolver = traversableResolver;
+ }
+
+ public ConstraintValidatorFactory getConstraintValidatorFactory() {
+ return constraintValidatorFactory;
+ }
+
+ public void setConstraintValidatorFactory(ConstraintValidatorFactory constraintValidatorFactory) {
+ this.constraintValidatorFactory = constraintValidatorFactory;
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/c4dc594a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorProducer.java b/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorProducer.java
new file mode 100644
index 0000000..7fbc29d
--- /dev/null
+++ b/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorProducer.java
@@ -0,0 +1,70 @@
+/**
+ * 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.bean.validator;
+
+import java.util.Set;
+import javax.validation.ConstraintViolation;
+import javax.validation.ValidatorFactory;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.impl.DefaultProducer;
+
+/**
+ * Bean validator that uses the JSR 303 reference implementation (Hibernate Validator).
+ * Throws {@link BeanValidationException} if constrain violations are detected.
+ */
+public class BeanValidatorProducer extends DefaultProducer {
+
+ private ValidatorFactory validatorFactory;
+ private Class<?> group;
+
+ public BeanValidatorProducer(BeanValidatorEndpoint endpoint) {
+ super(endpoint);
+ }
+
+ public void process(Exchange exchange) throws Exception {
+ Object bean = exchange.getIn().getBody();
+ Set<ConstraintViolation<Object>> constraintViolations;
+
+ if (this.group != null) {
+ constraintViolations = validatorFactory.getValidator().validate(bean, group);
+ } else {
+ constraintViolations = validatorFactory.getValidator().validate(bean);
+ }
+
+ if (!constraintViolations.isEmpty()) {
+ throw new BeanValidationException(exchange, constraintViolations, exchange.getIn().getBody());
+ }
+ }
+
+ public ValidatorFactory getValidatorFactory() {
+ return validatorFactory;
+ }
+
+ public void setValidatorFactory(ValidatorFactory validatorFactory) {
+ this.validatorFactory = validatorFactory;
+ }
+
+ public Class<?> getGroup() {
+ return group;
+ }
+
+ public void setGroup(Class<?> group) {
+ this.group = group;
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/c4dc594a/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/BeanValidatorConfigurationTest.java
----------------------------------------------------------------------
diff --git a/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/BeanValidatorConfigurationTest.java b/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/BeanValidatorConfigurationTest.java
index b24a417..4242d39 100644
--- a/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/BeanValidatorConfigurationTest.java
+++ b/components/camel-bean-validator/src/test/java/org/apache/camel/component/bean/validator/BeanValidatorConfigurationTest.java
@@ -18,7 +18,6 @@ package org.apache.camel.component.bean.validator;
import java.lang.annotation.ElementType;
import java.util.Locale;
-
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorFactory;
import javax.validation.MessageInterpolator;
@@ -27,12 +26,7 @@ import javax.validation.Path.Node;
import javax.validation.TraversableResolver;
import org.apache.camel.impl.JndiRegistry;
-import org.apache.camel.impl.ProcessorEndpoint;
import org.apache.camel.test.junit4.CamelTestSupport;
-import org.hibernate.validator.internal.engine.ValidatorImpl;
-import org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorFactoryImpl;
-import org.hibernate.validator.internal.engine.resolver.DefaultTraversableResolver;
-import org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator;
import org.junit.Test;
/**
@@ -70,14 +64,8 @@ public class BeanValidatorConfigurationTest extends CamelTestSupport {
return;
}
- ProcessorEndpoint endpoint = context.getEndpoint("bean-validator://x", ProcessorEndpoint.class);
- BeanValidator processor = (BeanValidator) endpoint.getProcessor();
-
- assertNull(processor.getGroup());
- assertTrue(processor.getValidator() instanceof ValidatorImpl);
- assertTrue(processor.getMessageInterpolator() instanceof ResourceBundleMessageInterpolator);
- assertTrue(processor.getTraversableResolver() instanceof DefaultTraversableResolver);
- assertTrue(processor.getConstraintValidatorFactory() instanceof ConstraintValidatorFactoryImpl);
+ BeanValidatorEndpoint endpoint = context.getEndpoint("bean-validator://x", BeanValidatorEndpoint.class);
+ assertNull(endpoint.getGroup());
}
@Test
@@ -87,18 +75,16 @@ public class BeanValidatorConfigurationTest extends CamelTestSupport {
return;
}
- ProcessorEndpoint endpoint = context.getEndpoint("bean-validator://x"
+ BeanValidatorEndpoint endpoint = context.getEndpoint("bean-validator://x"
+ "?group=org.apache.camel.component.bean.validator.OptionalChecks"
+ "&messageInterpolator=#myMessageInterpolator"
+ "&traversableResolver=#myTraversableResolver"
- + "&constraintValidatorFactory=myConstraintValidatorFactory", ProcessorEndpoint.class);
- BeanValidator processor = (BeanValidator) endpoint.getProcessor();
+ + "&constraintValidatorFactory=#myConstraintValidatorFactory", BeanValidatorEndpoint.class);
- assertEquals("org.apache.camel.component.bean.validator.OptionalChecks", processor.getGroup().getName());
- assertTrue(processor.getValidator() instanceof ValidatorImpl);
- assertSame(processor.getMessageInterpolator(), this.messageInterpolator);
- assertSame(processor.getTraversableResolver(), this.traversableResolver);
- assertSame(processor.getConstraintValidatorFactory(), this.constraintValidatorFactory);
+ assertEquals("org.apache.camel.component.bean.validator.OptionalChecks", endpoint.getGroup());
+ assertSame(endpoint.getMessageInterpolator(), this.messageInterpolator);
+ assertSame(endpoint.getTraversableResolver(), this.traversableResolver);
+ assertSame(endpoint.getConstraintValidatorFactory(), this.constraintValidatorFactory);
}
class MyMessageInterpolator implements MessageInterpolator {