Java tutorial
/** * Copyright (c) 2017, 2018 Contributors to the Eclipse Foundation * * See the NOTICE file(s) distributed with this work for additional * information regarding copyright ownership. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License 1.0 which is available at * https://www.eclipse.org/legal/epl-v10.html * * SPDX-License-Identifier: EPL-1.0 */ package org.eclipse.hono.adapter.kura; import org.eclipse.hono.client.RequestResponseClientConfigProperties; import org.eclipse.hono.config.ApplicationConfigProperties; import org.eclipse.hono.config.ClientConfigProperties; import org.eclipse.hono.service.AbstractAdapterConfig; import org.springframework.beans.factory.config.ObjectFactoryCreatingFactoryBean; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; /** * Spring Boot configuration for the Eclipse Kura protocol adapter. */ @Configuration public class Config extends AbstractAdapterConfig { private static final String CONTAINER_ID_KURA_ADAPTER = "Kura Adapter"; private static final String BEAN_NAME_KURA_PROTOCOL_ADAPTER = "kuraProtocolAdapter"; /** * Creates a new MQTT protocol adapter instance. * * @return The new instance. */ @Bean(name = BEAN_NAME_KURA_PROTOCOL_ADAPTER) @Scope("prototype") public KuraProtocolAdapter kuraProtocolAdapter() { return new KuraProtocolAdapter(); } @Override protected void customizeMessagingClientConfig(final ClientConfigProperties props) { if (props.getName() == null) { props.setName(CONTAINER_ID_KURA_ADAPTER); } } @Override protected void customizeRegistrationServiceClientConfig(final RequestResponseClientConfigProperties props) { if (props.getName() == null) { props.setName(CONTAINER_ID_KURA_ADAPTER); } } @Override protected void customizeCredentialsServiceClientConfig(final RequestResponseClientConfigProperties props) { if (props.getName() == null) { props.setName(CONTAINER_ID_KURA_ADAPTER); } } /** * Exposes properties for configuring the application properties as a Spring bean. * * @return The application configuration properties. */ @Bean @ConfigurationProperties(prefix = "hono.app") public ApplicationConfigProperties applicationConfigProperties() { return new ApplicationConfigProperties(); } /** * Exposes the Kura adapter's configuration properties as a Spring bean. * * @return The configuration properties. */ @Bean @ConfigurationProperties(prefix = "hono.kura") public KuraAdapterProperties adapterProperties() { return new KuraAdapterProperties(); } /** * Exposes a factory for creating MQTT adapter instances. * * @return The factory bean. */ @Bean public ObjectFactoryCreatingFactoryBean serviceFactory() { final ObjectFactoryCreatingFactoryBean factory = new ObjectFactoryCreatingFactoryBean(); factory.setTargetBeanName(BEAN_NAME_KURA_PROTOCOL_ADAPTER); return factory; } }