You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2017/04/12 08:56:03 UTC

[17/18] camel git commit: Code generated by maven build

Code generated by maven build


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

Branch: refs/heads/master
Commit: 0f35f553c9ec911e22ed7afd82d741465ab14a04
Parents: a867b3c
Author: Jens Reimann <jr...@redhat.com>
Authored: Wed Apr 12 09:32:10 2017 +0200
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Wed Apr 12 10:55:27 2017 +0200

----------------------------------------------------------------------
 .../MiloClientComponentAutoConfiguration.java   | 111 +++++++
 .../MiloClientComponentConfiguration.java       | 300 +++++++++++++++++++
 .../MiloServerComponentAutoConfiguration.java   | 111 +++++++
 .../MiloServerComponentConfiguration.java       | 277 +++++++++++++++++
 ...dditional-spring-configuration-metadata.json |  16 +
 .../main/resources/META-INF/spring.factories    |  21 ++
 6 files changed, 836 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/0f35f553/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/client/springboot/MiloClientComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/client/springboot/MiloClientComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/client/springboot/MiloClientComponentAutoConfiguration.java
new file mode 100644
index 0000000..36e6961
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/client/springboot/MiloClientComponentAutoConfiguration.java
@@ -0,0 +1,111 @@
+/**
+ * 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.milo.client.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.milo.client.MiloClientComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.condition.ConditionMessage;
+import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.autoconfigure.condition.SpringBootCondition;
+import org.springframework.boot.bind.RelaxedPropertyResolver;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ConditionContext;
+import org.springframework.context.annotation.Conditional;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.core.type.AnnotatedTypeMetadata;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration")
+@Conditional(MiloClientComponentAutoConfiguration.Condition.class)
+@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
+@EnableConfigurationProperties(MiloClientComponentConfiguration.class)
+public class MiloClientComponentAutoConfiguration {
+
+    @Lazy
+    @Bean(name = "milo-client-component")
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(MiloClientComponent.class)
+    public MiloClientComponent configureMiloClientComponent(
+            CamelContext camelContext,
+            MiloClientComponentConfiguration configuration) throws Exception {
+        MiloClientComponent component = new MiloClientComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null,
+                false);
+        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
+            Object value = entry.getValue();
+            Class<?> paramClass = value.getClass();
+            if (paramClass.getName().endsWith("NestedConfiguration")) {
+                Class nestedClass = null;
+                try {
+                    nestedClass = (Class) paramClass.getDeclaredField(
+                            "CAMEL_NESTED_CLASS").get(null);
+                    HashMap<String, Object> nestedParameters = new HashMap<>();
+                    IntrospectionSupport.getProperties(value, nestedParameters,
+                            null, false);
+                    Object nestedProperty = nestedClass.newInstance();
+                    IntrospectionSupport.setProperties(camelContext,
+                            camelContext.getTypeConverter(), nestedProperty,
+                            nestedParameters);
+                    entry.setValue(nestedProperty);
+                } catch (NoSuchFieldException e) {
+                }
+            }
+        }
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+
+    public static class Condition extends SpringBootCondition {
+        @Override
+        public ConditionOutcome getMatchOutcome(
+                ConditionContext conditionContext,
+                AnnotatedTypeMetadata annotatedTypeMetadata) {
+            boolean groupEnabled = isEnabled(conditionContext,
+                    "camel.component.", true);
+            ConditionMessage.Builder message = ConditionMessage
+                    .forCondition("camel.component.milo-client");
+            if (isEnabled(conditionContext, "camel.component.milo-client.",
+                    groupEnabled)) {
+                return ConditionOutcome.match(message.because("enabled"));
+            }
+            return ConditionOutcome.noMatch(message.because("not enabled"));
+        }
+
+        private boolean isEnabled(
+                org.springframework.context.annotation.ConditionContext context,
+                java.lang.String prefix, boolean defaultValue) {
+            RelaxedPropertyResolver resolver = new RelaxedPropertyResolver(
+                    context.getEnvironment(), prefix);
+            return resolver.getProperty("enabled", Boolean.class, defaultValue);
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/0f35f553/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/client/springboot/MiloClientComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/client/springboot/MiloClientComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/client/springboot/MiloClientComponentConfiguration.java
new file mode 100644
index 0000000..7597469
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/client/springboot/MiloClientComponentConfiguration.java
@@ -0,0 +1,300 @@
+/**
+ * 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.milo.client.springboot;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * Camel OPC UA support
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.milo-client")
+public class MiloClientComponentConfiguration {
+
+    /**
+     * All default options for client
+     */
+    private MiloClientConfigurationNestedConfiguration defaultConfiguration;
+    /**
+     * Default application name
+     */
+    private String applicationName;
+    /**
+     * Default application URI
+     */
+    private String applicationUri;
+    /**
+     * Default product URI
+     */
+    private String productUri;
+    /**
+     * Default reconnect timeout
+     */
+    private Long reconnectTimeout;
+    /**
+     * Whether the component should resolve property placeholders on itself when
+     * starting. Only properties which are of String type can use property
+     * placeholders.
+     */
+    private Boolean resolvePropertyPlaceholders = true;
+
+    public MiloClientConfigurationNestedConfiguration getDefaultConfiguration() {
+        return defaultConfiguration;
+    }
+
+    public void setDefaultConfiguration(
+            MiloClientConfigurationNestedConfiguration defaultConfiguration) {
+        this.defaultConfiguration = defaultConfiguration;
+    }
+
+    public String getApplicationName() {
+        return applicationName;
+    }
+
+    public void setApplicationName(String applicationName) {
+        this.applicationName = applicationName;
+    }
+
+    public String getApplicationUri() {
+        return applicationUri;
+    }
+
+    public void setApplicationUri(String applicationUri) {
+        this.applicationUri = applicationUri;
+    }
+
+    public String getProductUri() {
+        return productUri;
+    }
+
+    public void setProductUri(String productUri) {
+        this.productUri = productUri;
+    }
+
+    public Long getReconnectTimeout() {
+        return reconnectTimeout;
+    }
+
+    public void setReconnectTimeout(Long reconnectTimeout) {
+        this.reconnectTimeout = reconnectTimeout;
+    }
+
+    public Boolean getResolvePropertyPlaceholders() {
+        return resolvePropertyPlaceholders;
+    }
+
+    public void setResolvePropertyPlaceholders(
+            Boolean resolvePropertyPlaceholders) {
+        this.resolvePropertyPlaceholders = resolvePropertyPlaceholders;
+    }
+
+    public static class MiloClientConfigurationNestedConfiguration {
+        public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.milo.client.MiloClientConfiguration.class;
+        private String endpointUri;
+        /**
+         * A virtual client id to force the creation of a new connection
+         * instance
+         */
+        private String clientId;
+        /**
+         * The application name
+         */
+        private String applicationName = "Apache Camel adapter for Eclipse Milo";
+        /**
+         * The application URI
+         */
+        private String applicationUri = "http://camel.apache.org/EclipseMilo/Client";
+        /**
+         * The product URI
+         */
+        private String productUri = "http://camel.apache.org/EclipseMilo";
+        /**
+         * Request timeout in milliseconds
+         */
+        private Long requestTimeout;
+        /**
+         * Channel lifetime in milliseconds
+         */
+        private Long channelLifetime;
+        /**
+         * Session name
+         */
+        private String sessionName;
+        /**
+         * Session timeout in milliseconds
+         */
+        private Long sessionTimeout;
+        /**
+         * The maximum number of pending publish requests
+         */
+        private Long maxPendingPublishRequests;
+        /**
+         * The maximum number of bytes a response message may have
+         */
+        private Long maxResponseMessageSize;
+        /**
+         * Whether secure channel re-authentication is enabled
+         */
+        private Boolean secureChannelReauthenticationEnabled;
+        /**
+         * The key store type
+         */
+        private String keyStoreType;
+        /**
+         * The name of the key in the keystore file
+         */
+        private String keyAlias;
+        /**
+         * The keystore password
+         */
+        private String keyStorePassword;
+        /**
+         * The key password
+         */
+        private String keyPassword;
+
+        public String getEndpointUri() {
+            return endpointUri;
+        }
+
+        public void setEndpointUri(String endpointUri) {
+            this.endpointUri = endpointUri;
+        }
+
+        public String getClientId() {
+            return clientId;
+        }
+
+        public void setClientId(String clientId) {
+            this.clientId = clientId;
+        }
+
+        public String getApplicationName() {
+            return applicationName;
+        }
+
+        public void setApplicationName(String applicationName) {
+            this.applicationName = applicationName;
+        }
+
+        public String getApplicationUri() {
+            return applicationUri;
+        }
+
+        public void setApplicationUri(String applicationUri) {
+            this.applicationUri = applicationUri;
+        }
+
+        public String getProductUri() {
+            return productUri;
+        }
+
+        public void setProductUri(String productUri) {
+            this.productUri = productUri;
+        }
+
+        public Long getRequestTimeout() {
+            return requestTimeout;
+        }
+
+        public void setRequestTimeout(Long requestTimeout) {
+            this.requestTimeout = requestTimeout;
+        }
+
+        public Long getChannelLifetime() {
+            return channelLifetime;
+        }
+
+        public void setChannelLifetime(Long channelLifetime) {
+            this.channelLifetime = channelLifetime;
+        }
+
+        public String getSessionName() {
+            return sessionName;
+        }
+
+        public void setSessionName(String sessionName) {
+            this.sessionName = sessionName;
+        }
+
+        public Long getSessionTimeout() {
+            return sessionTimeout;
+        }
+
+        public void setSessionTimeout(Long sessionTimeout) {
+            this.sessionTimeout = sessionTimeout;
+        }
+
+        public Long getMaxPendingPublishRequests() {
+            return maxPendingPublishRequests;
+        }
+
+        public void setMaxPendingPublishRequests(Long maxPendingPublishRequests) {
+            this.maxPendingPublishRequests = maxPendingPublishRequests;
+        }
+
+        public Long getMaxResponseMessageSize() {
+            return maxResponseMessageSize;
+        }
+
+        public void setMaxResponseMessageSize(Long maxResponseMessageSize) {
+            this.maxResponseMessageSize = maxResponseMessageSize;
+        }
+
+        public Boolean getSecureChannelReauthenticationEnabled() {
+            return secureChannelReauthenticationEnabled;
+        }
+
+        public void setSecureChannelReauthenticationEnabled(
+                Boolean secureChannelReauthenticationEnabled) {
+            this.secureChannelReauthenticationEnabled = secureChannelReauthenticationEnabled;
+        }
+
+        public String getKeyStoreType() {
+            return keyStoreType;
+        }
+
+        public void setKeyStoreType(String keyStoreType) {
+            this.keyStoreType = keyStoreType;
+        }
+
+        public String getKeyAlias() {
+            return keyAlias;
+        }
+
+        public void setKeyAlias(String keyAlias) {
+            this.keyAlias = keyAlias;
+        }
+
+        public String getKeyStorePassword() {
+            return keyStorePassword;
+        }
+
+        public void setKeyStorePassword(String keyStorePassword) {
+            this.keyStorePassword = keyStorePassword;
+        }
+
+        public String getKeyPassword() {
+            return keyPassword;
+        }
+
+        public void setKeyPassword(String keyPassword) {
+            this.keyPassword = keyPassword;
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/0f35f553/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/server/springboot/MiloServerComponentAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/server/springboot/MiloServerComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/server/springboot/MiloServerComponentAutoConfiguration.java
new file mode 100644
index 0000000..46d80a9
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/server/springboot/MiloServerComponentAutoConfiguration.java
@@ -0,0 +1,111 @@
+/**
+ * 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.milo.server.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.camel.CamelContext;
+import org.apache.camel.component.milo.server.MiloServerComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.condition.ConditionMessage;
+import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.autoconfigure.condition.SpringBootCondition;
+import org.springframework.boot.bind.RelaxedPropertyResolver;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ConditionContext;
+import org.springframework.context.annotation.Conditional;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.core.type.AnnotatedTypeMetadata;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Configuration
+@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration")
+@Conditional(MiloServerComponentAutoConfiguration.Condition.class)
+@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
+@EnableConfigurationProperties(MiloServerComponentConfiguration.class)
+public class MiloServerComponentAutoConfiguration {
+
+    @Lazy
+    @Bean(name = "milo-server-component")
+    @ConditionalOnClass(CamelContext.class)
+    @ConditionalOnMissingBean(MiloServerComponent.class)
+    public MiloServerComponent configureMiloServerComponent(
+            CamelContext camelContext,
+            MiloServerComponentConfiguration configuration) throws Exception {
+        MiloServerComponent component = new MiloServerComponent();
+        component.setCamelContext(camelContext);
+        Map<String, Object> parameters = new HashMap<>();
+        IntrospectionSupport.getProperties(configuration, parameters, null,
+                false);
+        for (Map.Entry<String, Object> entry : parameters.entrySet()) {
+            Object value = entry.getValue();
+            Class<?> paramClass = value.getClass();
+            if (paramClass.getName().endsWith("NestedConfiguration")) {
+                Class nestedClass = null;
+                try {
+                    nestedClass = (Class) paramClass.getDeclaredField(
+                            "CAMEL_NESTED_CLASS").get(null);
+                    HashMap<String, Object> nestedParameters = new HashMap<>();
+                    IntrospectionSupport.getProperties(value, nestedParameters,
+                            null, false);
+                    Object nestedProperty = nestedClass.newInstance();
+                    IntrospectionSupport.setProperties(camelContext,
+                            camelContext.getTypeConverter(), nestedProperty,
+                            nestedParameters);
+                    entry.setValue(nestedProperty);
+                } catch (NoSuchFieldException e) {
+                }
+            }
+        }
+        IntrospectionSupport.setProperties(camelContext,
+                camelContext.getTypeConverter(), component, parameters);
+        return component;
+    }
+
+    public static class Condition extends SpringBootCondition {
+        @Override
+        public ConditionOutcome getMatchOutcome(
+                ConditionContext conditionContext,
+                AnnotatedTypeMetadata annotatedTypeMetadata) {
+            boolean groupEnabled = isEnabled(conditionContext,
+                    "camel.component.", true);
+            ConditionMessage.Builder message = ConditionMessage
+                    .forCondition("camel.component.milo-server");
+            if (isEnabled(conditionContext, "camel.component.milo-server.",
+                    groupEnabled)) {
+                return ConditionOutcome.match(message.because("enabled"));
+            }
+            return ConditionOutcome.noMatch(message.because("not enabled"));
+        }
+
+        private boolean isEnabled(
+                org.springframework.context.annotation.ConditionContext context,
+                java.lang.String prefix, boolean defaultValue) {
+            RelaxedPropertyResolver resolver = new RelaxedPropertyResolver(
+                    context.getEnvironment(), prefix);
+            return resolver.getProperty("enabled", Boolean.class, defaultValue);
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/0f35f553/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/server/springboot/MiloServerComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/server/springboot/MiloServerComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/server/springboot/MiloServerComponentConfiguration.java
new file mode 100644
index 0000000..0aee3db
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/server/springboot/MiloServerComponentConfiguration.java
@@ -0,0 +1,277 @@
+/**
+ * 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.milo.server.springboot;
+
+import java.io.File;
+import java.util.Collection;
+import java.util.Set;
+import java.util.function.Supplier;
+import org.apache.camel.component.milo.KeyStoreLoader.Result;
+import org.eclipse.milo.opcua.stack.core.application.CertificateManager;
+import org.eclipse.milo.opcua.stack.core.application.CertificateValidator;
+import org.eclipse.milo.opcua.stack.core.security.SecurityPolicy;
+import org.eclipse.milo.opcua.stack.core.types.structured.BuildInfo;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.context.properties.NestedConfigurationProperty;
+
+/**
+ * OPC UA Server based endpoint
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@ConfigurationProperties(prefix = "camel.component.milo-server")
+public class MiloServerComponentConfiguration {
+
+    /**
+     * The URI of the namespace defaults to urn:org:apache:camel
+     */
+    private String namespaceUri;
+    /**
+     * The application name
+     */
+    private String applicationName;
+    /**
+     * The application URI
+     */
+    private String applicationUri;
+    /**
+     * The product URI
+     */
+    private String productUri;
+    /**
+     * The TCP port the server binds to
+     */
+    private Integer bindPort;
+    /**
+     * Set whether strict endpoint URLs are enforced
+     */
+    private Boolean strictEndpointUrlsEnabled = false;
+    /**
+     * Server name
+     */
+    private String serverName;
+    /**
+     * Server hostname
+     */
+    private String hostname;
+    /**
+     * Security policies
+     */
+    private Set<SecurityPolicy> securityPolicies;
+    /**
+     * Security policies by URI or name
+     */
+    private Collection<String> securityPoliciesById;
+    /**
+     * Set user password combinations in the form of user1:pwd1user2:pwd2
+     * Usernames and passwords will be URL decoded
+     */
+    private String userAuthenticationCredentials;
+    /**
+     * Enable anonymous authentication disabled by default
+     */
+    private Boolean enableAnonymousAuthentication = false;
+    /**
+     * Set the addresses of the local addresses the server should bind to
+     */
+    private String bindAddresses;
+    /**
+     * Server build info
+     */
+    @NestedConfigurationProperty
+    private BuildInfo buildInfo;
+    /**
+     * Server certificate
+     */
+    @NestedConfigurationProperty
+    private Result serverCertificate;
+    /**
+     * Server certificate manager
+     */
+    @NestedConfigurationProperty
+    private CertificateManager certificateManager;
+    /**
+     * Validator for client certificates
+     */
+    private Supplier<CertificateValidator> certificateValidator;
+    /**
+     * Validator for client certificates using default file based approach
+     */
+    private File defaultCertificateValidator;
+    /**
+     * Whether the component should resolve property placeholders on itself when
+     * starting. Only properties which are of String type can use property
+     * placeholders.
+     */
+    private Boolean resolvePropertyPlaceholders = true;
+
+    public String getNamespaceUri() {
+        return namespaceUri;
+    }
+
+    public void setNamespaceUri(String namespaceUri) {
+        this.namespaceUri = namespaceUri;
+    }
+
+    public String getApplicationName() {
+        return applicationName;
+    }
+
+    public void setApplicationName(String applicationName) {
+        this.applicationName = applicationName;
+    }
+
+    public String getApplicationUri() {
+        return applicationUri;
+    }
+
+    public void setApplicationUri(String applicationUri) {
+        this.applicationUri = applicationUri;
+    }
+
+    public String getProductUri() {
+        return productUri;
+    }
+
+    public void setProductUri(String productUri) {
+        this.productUri = productUri;
+    }
+
+    public Integer getBindPort() {
+        return bindPort;
+    }
+
+    public void setBindPort(Integer bindPort) {
+        this.bindPort = bindPort;
+    }
+
+    public Boolean getStrictEndpointUrlsEnabled() {
+        return strictEndpointUrlsEnabled;
+    }
+
+    public void setStrictEndpointUrlsEnabled(Boolean strictEndpointUrlsEnabled) {
+        this.strictEndpointUrlsEnabled = strictEndpointUrlsEnabled;
+    }
+
+    public String getServerName() {
+        return serverName;
+    }
+
+    public void setServerName(String serverName) {
+        this.serverName = serverName;
+    }
+
+    public String getHostname() {
+        return hostname;
+    }
+
+    public void setHostname(String hostname) {
+        this.hostname = hostname;
+    }
+
+    public Set<SecurityPolicy> getSecurityPolicies() {
+        return securityPolicies;
+    }
+
+    public void setSecurityPolicies(Set<SecurityPolicy> securityPolicies) {
+        this.securityPolicies = securityPolicies;
+    }
+
+    public Collection<String> getSecurityPoliciesById() {
+        return securityPoliciesById;
+    }
+
+    public void setSecurityPoliciesById(Collection<String> securityPoliciesById) {
+        this.securityPoliciesById = securityPoliciesById;
+    }
+
+    public String getUserAuthenticationCredentials() {
+        return userAuthenticationCredentials;
+    }
+
+    public void setUserAuthenticationCredentials(
+            String userAuthenticationCredentials) {
+        this.userAuthenticationCredentials = userAuthenticationCredentials;
+    }
+
+    public Boolean getEnableAnonymousAuthentication() {
+        return enableAnonymousAuthentication;
+    }
+
+    public void setEnableAnonymousAuthentication(
+            Boolean enableAnonymousAuthentication) {
+        this.enableAnonymousAuthentication = enableAnonymousAuthentication;
+    }
+
+    public String getBindAddresses() {
+        return bindAddresses;
+    }
+
+    public void setBindAddresses(String bindAddresses) {
+        this.bindAddresses = bindAddresses;
+    }
+
+    public BuildInfo getBuildInfo() {
+        return buildInfo;
+    }
+
+    public void setBuildInfo(BuildInfo buildInfo) {
+        this.buildInfo = buildInfo;
+    }
+
+    public Result getServerCertificate() {
+        return serverCertificate;
+    }
+
+    public void setServerCertificate(Result serverCertificate) {
+        this.serverCertificate = serverCertificate;
+    }
+
+    public CertificateManager getCertificateManager() {
+        return certificateManager;
+    }
+
+    public void setCertificateManager(CertificateManager certificateManager) {
+        this.certificateManager = certificateManager;
+    }
+
+    public Supplier<CertificateValidator> getCertificateValidator() {
+        return certificateValidator;
+    }
+
+    public void setCertificateValidator(
+            Supplier<CertificateValidator> certificateValidator) {
+        this.certificateValidator = certificateValidator;
+    }
+
+    public File getDefaultCertificateValidator() {
+        return defaultCertificateValidator;
+    }
+
+    public void setDefaultCertificateValidator(File defaultCertificateValidator) {
+        this.defaultCertificateValidator = defaultCertificateValidator;
+    }
+
+    public Boolean getResolvePropertyPlaceholders() {
+        return resolvePropertyPlaceholders;
+    }
+
+    public void setResolvePropertyPlaceholders(
+            Boolean resolvePropertyPlaceholders) {
+        this.resolvePropertyPlaceholders = resolvePropertyPlaceholders;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/0f35f553/platforms/spring-boot/components-starter/camel-milo-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-milo-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/platforms/spring-boot/components-starter/camel-milo-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json
new file mode 100644
index 0000000..c370957
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-milo-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json
@@ -0,0 +1,16 @@
+{
+  "properties": [
+    {
+      "defaultValue": true,
+      "name": "camel.component.milo-server.enabled",
+      "description": "Enable milo-server component",
+      "type": "java.lang.Boolean"
+    },
+    {
+      "defaultValue": true,
+      "name": "camel.component.milo-client.enabled",
+      "description": "Enable milo-client component",
+      "type": "java.lang.Boolean"
+    }
+  ]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/0f35f553/platforms/spring-boot/components-starter/camel-milo-starter/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-milo-starter/src/main/resources/META-INF/spring.factories b/platforms/spring-boot/components-starter/camel-milo-starter/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..a0065a0
--- /dev/null
+++ b/platforms/spring-boot/components-starter/camel-milo-starter/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,21 @@
+#
+# 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.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.camel.component.milo.server.springboot.MiloServerComponentAutoConfiguration,\
+org.apache.camel.component.milo.client.springboot.MiloClientComponentAutoConfiguration
+