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 2011/01/31 18:40:29 UTC
svn commit: r1065694 [1/5] - in /camel/trunk/components:
camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/
camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/
camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/ ca...
Author: davsclaus
Date: Mon Jan 31 17:40:24 2011
New Revision: 1065694
URL: http://svn.apache.org/viewvc?rev=1065694&view=rev
Log:
CAMEL-3605: switching to slf4j logger. More migration done.
Removed:
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/onexception/SpringExceptionBuilderWithRetryLoggingLevelSetTest.java
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/onexception/exceptionBuilderWithRetryLoggingLevelSet.xml
Modified:
camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractDataFormat.java
camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractFactory.java
camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java
camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java
camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyKeyValuePairFactory.java
camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/BindyCsvDataFormat.java
camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java
camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/format/DatePatternFormat.java
camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/kvp/BindyKeyValuePairDataFormat.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/CommonBindyTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyDoubleQuotesCsvUnmarshallTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyInlinedQuotesCsvUnmarshallTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPojoSimpleCsvMarshallTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMandatoryFieldsUnmarshallTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallPositionModifiedTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvUnmarshallBadIntegerTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvUnmarshallPositionModifiedTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvUnmarshallTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySingleQuotesCsvUnmarshallTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fix/BindyComplexKeyValuePairStandaloneTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fix/BindySimpleKeyValuePairSortedMarshallTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fix/BindySimpleKeyValuePairWithoutSectionMarshallDslTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fixed/marshall/simple/BindySimpleFixedLengthMarshallTest.java
camel/trunk/components/camel-blueprint/pom.xml
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintCamelContext.java
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintComponentResolver.java
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintDataFormatResolver.java
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/BlueprintLanguageResolver.java
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/ContextScanRouteBuilderFinder.java
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/PackageScanRouteBuilderFinder.java
camel/trunk/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/handler/CamelNamespaceHandler.java
camel/trunk/components/camel-cache/pom.xml
camel/trunk/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheConsumer.java
camel/trunk/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheEventListener.java
camel/trunk/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheProducer.java
camel/trunk/components/camel-cache/src/main/java/org/apache/camel/processor/cache/CacheBasedMessageBodyReplacer.java
camel/trunk/components/camel-cache/src/main/java/org/apache/camel/processor/cache/CacheBasedTokenReplacer.java
camel/trunk/components/camel-cache/src/main/java/org/apache/camel/processor/cache/CacheBasedXPathReplacer.java
camel/trunk/components/camel-cache/src/main/java/org/apache/camel/processor/cache/CacheValidate.java
camel/trunk/components/camel-cache/src/test/java/org/apache/camel/component/cache/CacheConsumerTest.java
camel/trunk/components/camel-cache/src/test/java/org/apache/camel/component/cache/CacheProducerTest.java
camel/trunk/components/camel-cache/src/test/java/org/apache/camel/processor/cache/CacheBasedBodyReplacerTest.java
camel/trunk/components/camel-cache/src/test/java/org/apache/camel/processor/cache/CacheBasedTokenReplacerTest.java
camel/trunk/components/camel-cache/src/test/java/org/apache/camel/processor/cache/CacheBasedXPathElementReplacerTest.java
camel/trunk/components/camel-castor/pom.xml
camel/trunk/components/camel-cometd/pom.xml
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiCamelContextHelper.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiClassResolver.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiComponentResolver.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiDataFormatResolver.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiLanguageResolver.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiTypeConverter.java
camel/trunk/components/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/utils/BundleDelegatingClassLoader.java
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
camel/trunk/components/camel-crypto/pom.xml
camel/trunk/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/CryptoDataFormat.java
camel/trunk/components/camel-csv/pom.xml
camel/trunk/components/camel-dozer/ (props changed)
camel/trunk/components/camel-dozer/pom.xml
camel/trunk/components/camel-ejb/pom.xml
camel/trunk/components/camel-freemarker/pom.xml
camel/trunk/components/camel-ftp/pom.xml
camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java
camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpOperations.java
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpExclusiveReadNoneStrategyTest.java
camel/trunk/components/camel-http/pom.xml
camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/CamelServlet.java
camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
camel/trunk/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
camel/trunk/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java
camel/trunk/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java
camel/trunk/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/FallbackTypeConverter.java
camel/trunk/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java
camel/trunk/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/NonXmlCharFilterer.java
camel/trunk/components/camel-jetty/pom.xml
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/DefaultJettyHttpBinding.java
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpProducerJMXBeansIssueTest.java
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/SpringHttpsRouteTest.java
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/async/MyAsyncProducer.java
camel/trunk/components/camel-jms/pom.xml
camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java
camel/trunk/components/camel-ldap/pom.xml
camel/trunk/components/camel-mina/pom.xml
camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaComponent.java
camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java
camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaHelper.java
camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java
camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaUdpWithInOutUsingPlainSocketTest.java
camel/trunk/components/camel-nagios/pom.xml
camel/trunk/components/camel-netty/pom.xml
camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/DefaultClientPipelineFactory.java
camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/DefaultServerPipelineFactory.java
camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConsumer.java
camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyHelper.java
camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyProducer.java
camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ClientChannelHandler.java
camel/trunk/components/camel-netty/src/main/java/org/apache/camel/component/netty/handlers/ServerChannelHandler.java
camel/trunk/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyCustomPipelineFactoryAsynchTest.java
camel/trunk/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyCustomPipelineFactorySynchTest.java
camel/trunk/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettySSLTest.java
camel/trunk/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyTCPAsyncTest.java
camel/trunk/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyTCPSyncNotLazyChannelTest.java
camel/trunk/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyUDPAsyncTest.java
camel/trunk/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyUDPObjectSyncTest.java
camel/trunk/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyUDPSyncTest.java
camel/trunk/components/camel-netty/src/test/java/org/apache/camel/component/netty/NettyUdpWithInOutUsingPlainSocketTest.java
camel/trunk/components/camel-routebox/pom.xml
camel/trunk/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxConfiguration.java
camel/trunk/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxServiceSupport.java
camel/trunk/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/direct/RouteboxDirectProducer.java
camel/trunk/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/seda/RouteboxSedaConsumer.java
camel/trunk/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/strategy/RouteboxDispatcher.java
camel/trunk/components/camel-routebox/src/test/java/org/apache/camel/component/routebox/RouteboxDefaultContextAndRouteBuilderTest.java
camel/trunk/components/camel-routebox/src/test/java/org/apache/camel/component/routebox/RouteboxDirectProducerOnlyTest.java
camel/trunk/components/camel-routebox/src/test/java/org/apache/camel/component/routebox/RouteboxDirectTest.java
camel/trunk/components/camel-routebox/src/test/java/org/apache/camel/component/routebox/RouteboxDispatchMapTest.java
camel/trunk/components/camel-routebox/src/test/java/org/apache/camel/component/routebox/RouteboxSedaTest.java
camel/trunk/components/camel-routebox/src/test/java/org/apache/camel/component/routebox/demo/BookCatalog.java
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SLogProcessorTest.scala
camel/trunk/components/camel-spring/pom.xml
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/ResourceBasedComponent.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/ResourceBasedEndpoint.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/component/test/TestEndpoint.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/osgi/CamelContextFactory.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/osgi/CamelContextFactoryBean.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelBeanPostProcessor.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/ContextScanRouteBuilderFinder.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/PackageScanRouteBuilderFinder.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringCamelContext.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/util/MainRunner.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/util/SpringAntPathMatcherFileFilter.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/MainTest.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/EndpointUriSetFromSpringTest.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/XmlConfigTestSupport.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/example/MyCamel1Consumer.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/example/MyCamel2Consumer.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/example/MyCamel2RecipientList.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/example/MyConsumer.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/ContainerWideInterceptor.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/MisspelledRouteRefTest.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/postprocessor/MagicAnnotationPostProcessor.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/MyAggregator.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/produce/MyListenerService.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/remoting/SayService.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/remoting/SpringRemotingWithOneWayTest.java
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/logProcessorTest.xml
camel/trunk/components/camel-stream/pom.xml
camel/trunk/components/camel-test/pom.xml
Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractDataFormat.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractDataFormat.java?rev=1065694&r1=1065693&r2=1065694&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractDataFormat.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractDataFormat.java Mon Jan 31 17:40:24 2011
@@ -21,8 +21,8 @@ import java.util.Locale;
import org.apache.camel.dataformat.bindy.kvp.BindyKeyValuePairDataFormat;
import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.PackageScanClassResolver;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public abstract class BindyAbstractDataFormat implements DataFormat {
private String[] packages;
Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractFactory.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractFactory.java?rev=1065694&r1=1065693&r2=1065694&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractFactory.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractFactory.java Mon Jan 31 17:40:24 2011
@@ -27,15 +27,15 @@ import java.util.Set;
import org.apache.camel.dataformat.bindy.util.AnnotationModelLoader;
import org.apache.camel.spi.PackageScanClassResolver;
import org.apache.camel.util.ObjectHelper;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* The {@link BindyAbstractFactory} implements what its common to all the formats
* supported by Camel Bindy
*/
public abstract class BindyAbstractFactory implements BindyFactory {
- private static final transient Log LOG = LogFactory.getLog(BindyAbstractFactory.class);
+ private static final transient Logger LOG = LoggerFactory.getLogger(BindyAbstractFactory.class);
protected final Map<String, List<Field>> annotatedLinkFields = new LinkedHashMap<String, List<Field>>();
protected Set<Class<?>> models;
protected String crlf;
Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java?rev=1065694&r1=1065693&r2=1065694&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java Mon Jan 31 17:40:24 2011
@@ -35,8 +35,8 @@ import org.apache.camel.dataformat.bindy
import org.apache.camel.dataformat.bindy.util.Converter;
import org.apache.camel.spi.PackageScanClassResolver;
import org.apache.camel.util.ObjectHelper;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* The BindyCsvFactory is the class who allows to : Generate a model associated
@@ -46,7 +46,7 @@ import org.apache.commons.logging.LogFac
*/
public class BindyCsvFactory extends BindyAbstractFactory implements BindyFactory {
- private static final transient Log LOG = LogFactory.getLog(BindyCsvFactory.class);
+ private static final transient Logger LOG = LoggerFactory.getLogger(BindyCsvFactory.class);
boolean isOneToMany;
Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java?rev=1065694&r1=1065693&r2=1065694&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyFixedLengthFactory.java Mon Jan 31 17:40:24 2011
@@ -1,500 +1,500 @@
-/**
- * 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.dataformat.bindy;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.apache.camel.dataformat.bindy.annotation.DataField;
-import org.apache.camel.dataformat.bindy.annotation.FixedLengthRecord;
-import org.apache.camel.dataformat.bindy.annotation.Link;
-import org.apache.camel.dataformat.bindy.format.FormatException;
-import org.apache.camel.spi.PackageScanClassResolver;
-import org.apache.camel.util.ObjectHelper;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- * The BindyCsvFactory is the class who allows to : Generate a model associated
- * to a fixed length record, bind data from a record to the POJOs, export data of POJOs
- * to a fixed length record and format data into String, Date, Double, ... according to
- * the format/pattern defined
- */
-public class BindyFixedLengthFactory extends BindyAbstractFactory implements BindyFactory {
-
- private static final transient Log LOG = LogFactory.getLog(BindyFixedLengthFactory.class);
-
- boolean isOneToMany;
-
- private Map<Integer, DataField> dataFields = new LinkedHashMap<Integer, DataField>();
- private Map<Integer, Field> annotatedFields = new LinkedHashMap<Integer, Field>();
-
- private Map<Integer, List> results;
-
- private int numberOptionalFields;
- private int numberMandatoryFields;
- private int totalFields;
-
- private boolean hasHeader;
- private boolean hasFooter;
- private char paddingChar;
- private int recordLength;
-
- public BindyFixedLengthFactory(PackageScanClassResolver resolver, String... packageNames) throws Exception {
- super(resolver, packageNames);
-
- // initialize specific parameters of the fixed length model
- initFixedLengthModel();
- }
-
- /**
- * method uses to initialize the model representing the classes who will
- * bind the data. This process will scan for classes according to the
- * package name provided, check the annotated classes and fields
- */
- public void initFixedLengthModel() throws Exception {
-
- // Find annotated fields declared in the Model classes
- initAnnotatedFields();
-
- // initialize Fixed length parameter(s)
- // from @FixedLengthrecord annotation
- initFixedLengthRecordParameters();
- }
-
- public void initAnnotatedFields() {
-
- for (Class<?> cl : models) {
-
- List<Field> linkFields = new ArrayList<Field>();
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("Class retrieved: " + cl.getName());
- }
-
- for (Field field : cl.getDeclaredFields()) {
- DataField dataField = field.getAnnotation(DataField.class);
- if (dataField != null) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Position defined in the class: " + cl.getName()
- + ", position: " + dataField.pos() + ", Field: " + dataField.toString());
- }
-
- if (dataField.required()) {
- ++numberMandatoryFields;
- } else {
- ++numberOptionalFields;
- }
-
- dataFields.put(dataField.pos(), dataField);
- annotatedFields.put(dataField.pos(), field);
- }
-
- Link linkField = field.getAnnotation(Link.class);
-
- if (linkField != null) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Class linked: " + cl.getName() + ", Field: " + field.toString());
- }
- linkFields.add(field);
- }
-
- }
-
- if (!linkFields.isEmpty()) {
- annotatedLinkFields.put(cl.getName(), linkFields);
- }
-
- totalFields = numberMandatoryFields + numberOptionalFields;
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("Number of optional fields: " + numberOptionalFields);
- LOG.debug("Number of mandatory fields: " + numberMandatoryFields);
- LOG.debug("Total: " + totalFields);
- }
-
- }
- }
-
- // Will not be used in the case of a Fixed Length record
- // as we provide the content of the record and
- // we don't split it as this is the case for a CSV record
- @Override
- public void bind(List<String> data, Map<String, Object> model, int line) throws Exception {
- // noop
- }
-
- public void bind(String record, Map<String, Object> model, int line) throws Exception {
-
- int pos = 1;
- int counterMandatoryFields = 0;
- DataField dataField;
- StringBuilder result = new StringBuilder();
- String token;
- int offset;
- int length;
- Field field;
- String pattern;
-
- // Iterate through the list of positions
- // defined in the @DataField
- // and grab the data from the line
- Collection c = dataFields.values();
- Iterator itr = c.iterator();
-
- while (itr.hasNext()) {
- dataField = (DataField)itr.next();
- offset = dataField.pos();
- length = dataField.length();
-
- ObjectHelper.notNull(offset, "Position/offset is not defined for the field: " + dataField.toString());
- ObjectHelper.notNull(offset, "Length is not defined for the field: " + dataField.toString());
-
- if (offset - 1 <= -1) {
- throw new IllegalArgumentException("Offset/Position of the field " + dataField.toString()
- + " cannot be negative!");
- }
-
- token = record.substring(offset - 1, offset + length - 1);
-
- if (dataField.trim()) {
- token = token.trim();
- }
-
- // Check mandatory field
- if (dataField.required()) {
-
- // Increment counter of mandatory fields
- ++counterMandatoryFields;
-
- // Check if content of the field is empty
- // This is not possible for mandatory fields
- if (token.equals("")) {
- throw new IllegalArgumentException("The mandatory field defined at the position " + pos
- + " is empty for the line: " + line);
- }
- }
-
- // Get Field to be setted
- field = annotatedFields.get(offset);
- field.setAccessible(true);
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("Pos/Offset: " + offset + ", Data: " + token + ", Field type: " + field.getType());
- }
-
- Format<?> format;
-
- // Get pattern defined for the field
- pattern = dataField.pattern();
-
- // Create format object to format the field
- format = FormatFactory.getFormat(field.getType(), pattern, getLocale(), dataField.precision());
-
- // field object to be set
- Object modelField = model.get(field.getDeclaringClass().getName());
-
- // format the data received
- Object value = null;
-
- if (!token.equals("")) {
- try {
- value = format.parse(token);
- } catch (FormatException ie) {
- throw new IllegalArgumentException(ie.getMessage() + ", position: " + offset + ", line: " + line, ie);
- } catch (Exception e) {
- throw new IllegalArgumentException("Parsing error detected for field defined at the position/offset: " + offset + ", line: " + line, e);
- }
- } else {
- value = getDefaultValueForPrimitive(field.getType());
- }
-
- field.set(modelField, value);
-
- ++pos;
-
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("Counter mandatory fields: " + counterMandatoryFields);
- }
-
- if (pos < totalFields) {
- throw new IllegalArgumentException("Some fields are missing (optional or mandatory), line: " + line);
- }
-
- if (counterMandatoryFields < numberMandatoryFields) {
- throw new IllegalArgumentException("Some mandatory fields are missing, line: " + line);
- }
-
- }
-
- public String unbind(Map<String, Object> model) throws Exception {
-
- StringBuilder buffer = new StringBuilder();
- results = new HashMap<Integer, List>();
-
- for (Class clazz : models) {
-
- if (model.containsKey(clazz.getName())) {
-
- Object obj = model.get(clazz.getName());
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("Model object: " + obj + ", class: " + obj.getClass().getName());
- }
-
- if (obj != null) {
-
- // Generate Fixed Length table
- // containing the positions of the fields
- generateFixedLengthPositionMap(clazz, obj);
-
- }
- }
- }
-
- // Convert Map<Integer, List> into List<List>
- TreeMap<Integer, List> sortValues = new TreeMap<Integer, List>(results);
- for (Integer key : sortValues.keySet()) {
-
- // Get list of values
- List<String> val = sortValues.get(key);
- String value = val.get(0);
-
- buffer.append(value);
- }
-
- return buffer.toString();
- }
-
- /**
- *
- * Generate a table containing the data formatted and sorted with their position/offset
- * The result is placed in the Map<Integer, List> results
- */
-
- private void generateFixedLengthPositionMap(Class clazz, Object obj) throws Exception {
-
- String result = "";
-
- for (Field field : clazz.getDeclaredFields()) {
-
- field.setAccessible(true);
-
- DataField datafield = field.getAnnotation(DataField.class);
-
- if (datafield != null) {
-
- if (obj != null) {
-
- // Retrieve the format, pattern and precision associated to
- // the type
- Class type = field.getType();
- String pattern = datafield.pattern();
- int precision = datafield.precision();
-
-
-
- // Create format
- Format format = FormatFactory.getFormat(type, pattern, getLocale(), precision);
-
- // Get field value
- Object value = field.get(obj);
-
-
- result = formatString(format, value);
-
- // trim if enabled
- if (datafield.trim()) {
- result = result.trim();
- }
-
- // Get length of the field, alignment (LEFT or RIGHT), pad
- int fieldLength = datafield.length();
- String align = datafield.align();
- char padCharField = datafield.paddingChar();
- char padChar;
-
- if (fieldLength > 0) {
-
- StringBuilder temp = new StringBuilder();
-
- // Check if we must pad
- if (result.length() < fieldLength) {
-
- // No padding defined for the field
- if (padCharField == 0) {
- // We use the padding defined for the Record
- padChar = paddingChar;
- } else {
- padChar = padCharField;
- }
-
- if (align.contains("R")) {
- temp.append(generatePaddingChars(padChar, fieldLength, result.length()));
- temp.append(result);
- } else if (align.contains("L")) {
- temp.append(result);
- temp.append(generatePaddingChars(padChar, fieldLength, result.length()));
- } else {
- throw new IllegalArgumentException("Alignment for the field: " + field.getName()
- + " must be equal to R for RIGHT or L for LEFT !");
- }
-
- result = temp.toString();
- } else if (result.length() > fieldLength) {
- // we are bigger than allowed
-
- // is clipped enabled? if so clip the field
- if (datafield.clip()) {
- result = result.substring(0, fieldLength);
- } else {
- throw new IllegalArgumentException("Length for the " + field.getName()
- + " must not be larger than allowed, was: " + result.length() + ", allowed: " + fieldLength);
- }
- }
-
- } else {
- throw new IllegalArgumentException("Length of the field: " + field.getName()
- + " is a mandatory field and cannot be equal to zero or to be negative !");
- }
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("Value to be formatted: " + value + ", position: " + datafield.pos() + ", and its formatted value: " + result);
- }
-
- } else {
- result = "";
- }
-
- Integer key;
- key = datafield.pos();
-
- if (!results.containsKey(key)) {
- List list = new LinkedList();
- list.add(result);
- results.put(key, list);
- } else {
- List list = results.get(key);
- list.add(result);
- }
-
- }
-
- }
-
- }
-
- private String generatePaddingChars(char pad, int lengthField, int lengthString) {
- StringBuilder buffer = new StringBuilder();
- int size = lengthField - lengthString;
-
- for (int i = 0; i < size; i++) {
- buffer.append(Character.toString(pad));
- }
- return buffer.toString();
- }
-
- /**
- * Get parameters defined in @FixedLengthRecord annotation
- */
- private void initFixedLengthRecordParameters() {
-
- for (Class<?> cl : models) {
-
- // Get annotation @FixedLengthRecord from the class
- FixedLengthRecord record = cl.getAnnotation(FixedLengthRecord.class);
-
- if (record != null) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Fixed length record : " + record.toString());
- }
-
- // Get carriage return parameter
- crlf = record.crlf();
- if (LOG.isDebugEnabled()) {
- LOG.debug("Carriage return defined for the CSV : " + crlf);
- }
-
- // Get hasHeader parameter
- hasHeader = record.hasHeader();
- if (LOG.isDebugEnabled()) {
- LOG.debug("Has Header : " + hasHeader);
- }
-
- // Get hasFooter parameter
- hasFooter = record.hasFooter();
- if (LOG.isDebugEnabled()) {
- LOG.debug("Has Footer : " + hasFooter);
- }
-
- // Get padding character
- paddingChar = record.paddingChar();
- if (LOG.isDebugEnabled()) {
- LOG.debug("Padding char : " + paddingChar);
- }
-
- // Get length of the record
- recordLength = record.length();
- if (LOG.isDebugEnabled()) {
- LOG.debug("Length of the record : " + recordLength);
- }
-
- // Get length of the record
- recordLength = record.length();
- if (LOG.isDebugEnabled()) {
- LOG.debug("Length of the record : " + recordLength);
- }
- }
- }
- }
-
- /**
- * Flag indicating if we have a header
- */
- public boolean hasHeader() {
- return hasHeader;
- }
-
- /**
- * Flag indicating if we have a footer
- */
- public boolean hasFooter() {
- return hasFooter;
- }
-
- /**
- * Padding char used to fill the field
- */
- public char paddingchar() {
- return paddingChar;
- }
-
- public int recordLength() {
- return recordLength;
- }
-
-}
+/**
+ * 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.dataformat.bindy;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.apache.camel.dataformat.bindy.annotation.DataField;
+import org.apache.camel.dataformat.bindy.annotation.FixedLengthRecord;
+import org.apache.camel.dataformat.bindy.annotation.Link;
+import org.apache.camel.dataformat.bindy.format.FormatException;
+import org.apache.camel.spi.PackageScanClassResolver;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The BindyCsvFactory is the class who allows to : Generate a model associated
+ * to a fixed length record, bind data from a record to the POJOs, export data of POJOs
+ * to a fixed length record and format data into String, Date, Double, ... according to
+ * the format/pattern defined
+ */
+public class BindyFixedLengthFactory extends BindyAbstractFactory implements BindyFactory {
+
+ private static final transient Logger LOG = LoggerFactory.getLogger(BindyFixedLengthFactory.class);
+
+ boolean isOneToMany;
+
+ private Map<Integer, DataField> dataFields = new LinkedHashMap<Integer, DataField>();
+ private Map<Integer, Field> annotatedFields = new LinkedHashMap<Integer, Field>();
+
+ private Map<Integer, List> results;
+
+ private int numberOptionalFields;
+ private int numberMandatoryFields;
+ private int totalFields;
+
+ private boolean hasHeader;
+ private boolean hasFooter;
+ private char paddingChar;
+ private int recordLength;
+
+ public BindyFixedLengthFactory(PackageScanClassResolver resolver, String... packageNames) throws Exception {
+ super(resolver, packageNames);
+
+ // initialize specific parameters of the fixed length model
+ initFixedLengthModel();
+ }
+
+ /**
+ * method uses to initialize the model representing the classes who will
+ * bind the data. This process will scan for classes according to the
+ * package name provided, check the annotated classes and fields
+ */
+ public void initFixedLengthModel() throws Exception {
+
+ // Find annotated fields declared in the Model classes
+ initAnnotatedFields();
+
+ // initialize Fixed length parameter(s)
+ // from @FixedLengthrecord annotation
+ initFixedLengthRecordParameters();
+ }
+
+ public void initAnnotatedFields() {
+
+ for (Class<?> cl : models) {
+
+ List<Field> linkFields = new ArrayList<Field>();
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Class retrieved: " + cl.getName());
+ }
+
+ for (Field field : cl.getDeclaredFields()) {
+ DataField dataField = field.getAnnotation(DataField.class);
+ if (dataField != null) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Position defined in the class: " + cl.getName()
+ + ", position: " + dataField.pos() + ", Field: " + dataField.toString());
+ }
+
+ if (dataField.required()) {
+ ++numberMandatoryFields;
+ } else {
+ ++numberOptionalFields;
+ }
+
+ dataFields.put(dataField.pos(), dataField);
+ annotatedFields.put(dataField.pos(), field);
+ }
+
+ Link linkField = field.getAnnotation(Link.class);
+
+ if (linkField != null) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Class linked: " + cl.getName() + ", Field: " + field.toString());
+ }
+ linkFields.add(field);
+ }
+
+ }
+
+ if (!linkFields.isEmpty()) {
+ annotatedLinkFields.put(cl.getName(), linkFields);
+ }
+
+ totalFields = numberMandatoryFields + numberOptionalFields;
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Number of optional fields: " + numberOptionalFields);
+ LOG.debug("Number of mandatory fields: " + numberMandatoryFields);
+ LOG.debug("Total: " + totalFields);
+ }
+
+ }
+ }
+
+ // Will not be used in the case of a Fixed Length record
+ // as we provide the content of the record and
+ // we don't split it as this is the case for a CSV record
+ @Override
+ public void bind(List<String> data, Map<String, Object> model, int line) throws Exception {
+ // noop
+ }
+
+ public void bind(String record, Map<String, Object> model, int line) throws Exception {
+
+ int pos = 1;
+ int counterMandatoryFields = 0;
+ DataField dataField;
+ StringBuilder result = new StringBuilder();
+ String token;
+ int offset;
+ int length;
+ Field field;
+ String pattern;
+
+ // Iterate through the list of positions
+ // defined in the @DataField
+ // and grab the data from the line
+ Collection c = dataFields.values();
+ Iterator itr = c.iterator();
+
+ while (itr.hasNext()) {
+ dataField = (DataField)itr.next();
+ offset = dataField.pos();
+ length = dataField.length();
+
+ ObjectHelper.notNull(offset, "Position/offset is not defined for the field: " + dataField.toString());
+ ObjectHelper.notNull(offset, "Length is not defined for the field: " + dataField.toString());
+
+ if (offset - 1 <= -1) {
+ throw new IllegalArgumentException("Offset/Position of the field " + dataField.toString()
+ + " cannot be negative!");
+ }
+
+ token = record.substring(offset - 1, offset + length - 1);
+
+ if (dataField.trim()) {
+ token = token.trim();
+ }
+
+ // Check mandatory field
+ if (dataField.required()) {
+
+ // Increment counter of mandatory fields
+ ++counterMandatoryFields;
+
+ // Check if content of the field is empty
+ // This is not possible for mandatory fields
+ if (token.equals("")) {
+ throw new IllegalArgumentException("The mandatory field defined at the position " + pos
+ + " is empty for the line: " + line);
+ }
+ }
+
+ // Get Field to be setted
+ field = annotatedFields.get(offset);
+ field.setAccessible(true);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Pos/Offset: " + offset + ", Data: " + token + ", Field type: " + field.getType());
+ }
+
+ Format<?> format;
+
+ // Get pattern defined for the field
+ pattern = dataField.pattern();
+
+ // Create format object to format the field
+ format = FormatFactory.getFormat(field.getType(), pattern, getLocale(), dataField.precision());
+
+ // field object to be set
+ Object modelField = model.get(field.getDeclaringClass().getName());
+
+ // format the data received
+ Object value = null;
+
+ if (!token.equals("")) {
+ try {
+ value = format.parse(token);
+ } catch (FormatException ie) {
+ throw new IllegalArgumentException(ie.getMessage() + ", position: " + offset + ", line: " + line, ie);
+ } catch (Exception e) {
+ throw new IllegalArgumentException("Parsing error detected for field defined at the position/offset: " + offset + ", line: " + line, e);
+ }
+ } else {
+ value = getDefaultValueForPrimitive(field.getType());
+ }
+
+ field.set(modelField, value);
+
+ ++pos;
+
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Counter mandatory fields: " + counterMandatoryFields);
+ }
+
+ if (pos < totalFields) {
+ throw new IllegalArgumentException("Some fields are missing (optional or mandatory), line: " + line);
+ }
+
+ if (counterMandatoryFields < numberMandatoryFields) {
+ throw new IllegalArgumentException("Some mandatory fields are missing, line: " + line);
+ }
+
+ }
+
+ public String unbind(Map<String, Object> model) throws Exception {
+
+ StringBuilder buffer = new StringBuilder();
+ results = new HashMap<Integer, List>();
+
+ for (Class clazz : models) {
+
+ if (model.containsKey(clazz.getName())) {
+
+ Object obj = model.get(clazz.getName());
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Model object: " + obj + ", class: " + obj.getClass().getName());
+ }
+
+ if (obj != null) {
+
+ // Generate Fixed Length table
+ // containing the positions of the fields
+ generateFixedLengthPositionMap(clazz, obj);
+
+ }
+ }
+ }
+
+ // Convert Map<Integer, List> into List<List>
+ TreeMap<Integer, List> sortValues = new TreeMap<Integer, List>(results);
+ for (Integer key : sortValues.keySet()) {
+
+ // Get list of values
+ List<String> val = sortValues.get(key);
+ String value = val.get(0);
+
+ buffer.append(value);
+ }
+
+ return buffer.toString();
+ }
+
+ /**
+ *
+ * Generate a table containing the data formatted and sorted with their position/offset
+ * The result is placed in the Map<Integer, List> results
+ */
+
+ private void generateFixedLengthPositionMap(Class clazz, Object obj) throws Exception {
+
+ String result = "";
+
+ for (Field field : clazz.getDeclaredFields()) {
+
+ field.setAccessible(true);
+
+ DataField datafield = field.getAnnotation(DataField.class);
+
+ if (datafield != null) {
+
+ if (obj != null) {
+
+ // Retrieve the format, pattern and precision associated to
+ // the type
+ Class type = field.getType();
+ String pattern = datafield.pattern();
+ int precision = datafield.precision();
+
+
+
+ // Create format
+ Format format = FormatFactory.getFormat(type, pattern, getLocale(), precision);
+
+ // Get field value
+ Object value = field.get(obj);
+
+
+ result = formatString(format, value);
+
+ // trim if enabled
+ if (datafield.trim()) {
+ result = result.trim();
+ }
+
+ // Get length of the field, alignment (LEFT or RIGHT), pad
+ int fieldLength = datafield.length();
+ String align = datafield.align();
+ char padCharField = datafield.paddingChar();
+ char padChar;
+
+ if (fieldLength > 0) {
+
+ StringBuilder temp = new StringBuilder();
+
+ // Check if we must pad
+ if (result.length() < fieldLength) {
+
+ // No padding defined for the field
+ if (padCharField == 0) {
+ // We use the padding defined for the Record
+ padChar = paddingChar;
+ } else {
+ padChar = padCharField;
+ }
+
+ if (align.contains("R")) {
+ temp.append(generatePaddingChars(padChar, fieldLength, result.length()));
+ temp.append(result);
+ } else if (align.contains("L")) {
+ temp.append(result);
+ temp.append(generatePaddingChars(padChar, fieldLength, result.length()));
+ } else {
+ throw new IllegalArgumentException("Alignment for the field: " + field.getName()
+ + " must be equal to R for RIGHT or L for LEFT !");
+ }
+
+ result = temp.toString();
+ } else if (result.length() > fieldLength) {
+ // we are bigger than allowed
+
+ // is clipped enabled? if so clip the field
+ if (datafield.clip()) {
+ result = result.substring(0, fieldLength);
+ } else {
+ throw new IllegalArgumentException("Length for the " + field.getName()
+ + " must not be larger than allowed, was: " + result.length() + ", allowed: " + fieldLength);
+ }
+ }
+
+ } else {
+ throw new IllegalArgumentException("Length of the field: " + field.getName()
+ + " is a mandatory field and cannot be equal to zero or to be negative !");
+ }
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Value to be formatted: " + value + ", position: " + datafield.pos() + ", and its formatted value: " + result);
+ }
+
+ } else {
+ result = "";
+ }
+
+ Integer key;
+ key = datafield.pos();
+
+ if (!results.containsKey(key)) {
+ List list = new LinkedList();
+ list.add(result);
+ results.put(key, list);
+ } else {
+ List list = results.get(key);
+ list.add(result);
+ }
+
+ }
+
+ }
+
+ }
+
+ private String generatePaddingChars(char pad, int lengthField, int lengthString) {
+ StringBuilder buffer = new StringBuilder();
+ int size = lengthField - lengthString;
+
+ for (int i = 0; i < size; i++) {
+ buffer.append(Character.toString(pad));
+ }
+ return buffer.toString();
+ }
+
+ /**
+ * Get parameters defined in @FixedLengthRecord annotation
+ */
+ private void initFixedLengthRecordParameters() {
+
+ for (Class<?> cl : models) {
+
+ // Get annotation @FixedLengthRecord from the class
+ FixedLengthRecord record = cl.getAnnotation(FixedLengthRecord.class);
+
+ if (record != null) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Fixed length record : " + record.toString());
+ }
+
+ // Get carriage return parameter
+ crlf = record.crlf();
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Carriage return defined for the CSV : " + crlf);
+ }
+
+ // Get hasHeader parameter
+ hasHeader = record.hasHeader();
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Has Header : " + hasHeader);
+ }
+
+ // Get hasFooter parameter
+ hasFooter = record.hasFooter();
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Has Footer : " + hasFooter);
+ }
+
+ // Get padding character
+ paddingChar = record.paddingChar();
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Padding char : " + paddingChar);
+ }
+
+ // Get length of the record
+ recordLength = record.length();
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Length of the record : " + recordLength);
+ }
+
+ // Get length of the record
+ recordLength = record.length();
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Length of the record : " + recordLength);
+ }
+ }
+ }
+ }
+
+ /**
+ * Flag indicating if we have a header
+ */
+ public boolean hasHeader() {
+ return hasHeader;
+ }
+
+ /**
+ * Flag indicating if we have a footer
+ */
+ public boolean hasFooter() {
+ return hasFooter;
+ }
+
+ /**
+ * Padding char used to fill the field
+ */
+ public char paddingchar() {
+ return paddingChar;
+ }
+
+ public int recordLength() {
+ return recordLength;
+ }
+
+}
Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyKeyValuePairFactory.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyKeyValuePairFactory.java?rev=1065694&r1=1065693&r2=1065694&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyKeyValuePairFactory.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyKeyValuePairFactory.java Mon Jan 31 17:40:24 2011
@@ -34,8 +34,8 @@ import org.apache.camel.dataformat.bindy
import org.apache.camel.dataformat.bindy.util.Converter;
import org.apache.camel.spi.PackageScanClassResolver;
import org.apache.camel.util.ObjectHelper;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* The BindyKeyValuePairFactory is the class who allows to bind data of type key
@@ -46,7 +46,7 @@ import org.apache.commons.logging.LogFac
*/
public class BindyKeyValuePairFactory extends BindyAbstractFactory implements BindyFactory {
- private static final transient Log LOG = LogFactory.getLog(BindyKeyValuePairFactory.class);
+ private static final transient Logger LOG = LoggerFactory.getLogger(BindyKeyValuePairFactory.class);
private Map<Integer, KeyValuePairField> keyValuePairFields = new LinkedHashMap<Integer, KeyValuePairField>();
private Map<Integer, Field> annotedFields = new LinkedHashMap<Integer, Field>();
Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/BindyCsvDataFormat.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/BindyCsvDataFormat.java?rev=1065694&r1=1065693&r2=1065694&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/BindyCsvDataFormat.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/csv/BindyCsvDataFormat.java Mon Jan 31 17:40:24 2011
@@ -31,21 +31,20 @@ import org.apache.camel.Exchange;
import org.apache.camel.dataformat.bindy.BindyAbstractDataFormat;
import org.apache.camel.dataformat.bindy.BindyAbstractFactory;
import org.apache.camel.dataformat.bindy.BindyCsvFactory;
-import org.apache.camel.dataformat.bindy.BindyKeyValuePairFactory;
import org.apache.camel.dataformat.bindy.util.Converter;
import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.PackageScanClassResolver;
import org.apache.camel.util.IOHelper;
import org.apache.camel.util.ObjectHelper;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* A <a href="http://camel.apache.org/data-format.html">data format</a> (
* {@link DataFormat}) using Bindy to marshal to and from CSV files
*/
public class BindyCsvDataFormat extends BindyAbstractDataFormat {
- private static final transient Log LOG = LogFactory.getLog(BindyCsvDataFormat.class);
+ private static final transient Logger LOG = LoggerFactory.getLogger(BindyCsvDataFormat.class);
public BindyCsvDataFormat() {
}
Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java?rev=1065694&r1=1065693&r2=1065694&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java Mon Jan 31 17:40:24 2011
@@ -1,192 +1,192 @@
-/**
- * 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.dataformat.bindy.fixed;
-
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Scanner;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.dataformat.bindy.BindyFixedLengthFactory;
-import org.apache.camel.dataformat.bindy.util.Converter;
-import org.apache.camel.spi.DataFormat;
-import org.apache.camel.spi.PackageScanClassResolver;
-import org.apache.camel.util.IOHelper;
-import org.apache.camel.util.ObjectHelper;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- * A <a href="http://camel.apache.org/data-format.html">data format</a> (
- * {@link DataFormat}) using Bindy to marshal to and from Fixed Length
- */
-public class BindyFixedLengthDataFormat implements DataFormat {
- private static final transient Log LOG = LogFactory.getLog(BindyFixedLengthDataFormat.class);
-
- private String[] packages;
- private BindyFixedLengthFactory modelFactory;
-
- public BindyFixedLengthDataFormat() {
- }
-
- public BindyFixedLengthDataFormat(String... packages) {
- this.packages = packages;
- }
-
- @SuppressWarnings("unchecked")
- public void marshal(Exchange exchange, Object body, OutputStream outputStream) throws Exception {
-
- BindyFixedLengthFactory factory = getFactory(exchange.getContext().getPackageScanClassResolver());
- ObjectHelper.notNull(factory, "not instantiated");
-
- // Get CRLF
- byte[] bytesCRLF = Converter.getByteReturn(factory.getCarriageReturn());
-
- List<Map<String, Object>> models;
-
- // the body is not a prepared list so help a bit here and create one for us
- if (exchange.getContext().getTypeConverter().convertTo(List.class, body) == null) {
- models = new ArrayList<Map<String, Object>>();
- Iterator it = ObjectHelper.createIterator(body);
- while (it.hasNext()) {
- Object model = it.next();
- String name = model.getClass().getName();
- Map<String, Object> row = new HashMap<String, Object>();
- row.put(name, body);
- models.add(row);
- }
- } else {
- // cast to the expected type
- models = (List<Map<String, Object>>) body;
- }
-
- for (Map<String, Object> model : models) {
-
- String result = factory.unbind(model);
-
- byte[] bytes = exchange.getContext().getTypeConverter().convertTo(byte[].class, exchange, result);
- outputStream.write(bytes);
-
- // Add a carriage return
- outputStream.write(bytesCRLF);
- }
- }
-
- public Object unmarshal(Exchange exchange, InputStream inputStream) throws Exception {
- BindyFixedLengthFactory factory = getFactory(exchange.getContext().getPackageScanClassResolver());
- ObjectHelper.notNull(factory, "not instantiated");
-
- // List of Pojos
- List<Map<String, Object>> models = new ArrayList<Map<String, Object>>();
-
- // Pojos of the model
- Map<String, Object> model;
-
- InputStreamReader in = new InputStreamReader(inputStream);
-
- // Scanner is used to read big file
- Scanner scanner = new Scanner(in);
-
- int count = 0;
-
- try {
-
- // TODO Test if we have a Header
- // TODO Test if we have a Footer (containing by example checksum)
-
- while (scanner.hasNextLine()) {
- String line;
-
- // Read the line (should not trim as its fixed length)
- line = scanner.nextLine();
-
- if (ObjectHelper.isEmpty(line)) {
- // skip if line is empty
- continue;
- }
-
- // Increment counter
- count++;
-
- // Check if the record length corresponds to the parameter
- // provided in the @FixedLengthRecord
- if ((line.length() < factory.recordLength()) || (line.length() > factory.recordLength())) {
- throw new java.lang.IllegalArgumentException("Size of the record : " + line.length() + " is not equal to the value provided in the model : " + factory.recordLength() + " !");
- }
-
- // Create POJO where Fixed data will be stored
- model = factory.factory();
-
- // Bind data from Fixed record with model classes
- factory.bind(line, model, count);
-
- // Link objects together
- factory.link(model);
-
- // Add objects graph to the list
- models.add(model);
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("Graph of objects created : " + model);
- }
-
- }
-
- // Test if models list is empty or not
- // If this is the case (correspond to an empty stream, ...)
- if (models.size() == 0) {
- throw new java.lang.IllegalArgumentException("No records have been defined in the message !");
- } else {
- return models;
- }
-
- } finally {
- scanner.close();
- IOHelper.close(in, "in", LOG);
- }
-
- }
-
- /**
- * Method used to create the singleton of the BindyCsvFactory
- */
- public BindyFixedLengthFactory getFactory(PackageScanClassResolver resolver) throws Exception {
- if (modelFactory == null) {
- modelFactory = new BindyFixedLengthFactory(resolver, packages);
- }
- return modelFactory;
- }
-
- public void setModelFactory(BindyFixedLengthFactory modelFactory) {
- this.modelFactory = modelFactory;
- }
-
- public String[] getPackages() {
- return packages;
- }
-
- public void setPackages(String[] packages) {
- this.packages = packages;
- }
-
-}
+/**
+ * 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.dataformat.bindy.fixed;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Scanner;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.dataformat.bindy.BindyFixedLengthFactory;
+import org.apache.camel.dataformat.bindy.util.Converter;
+import org.apache.camel.spi.DataFormat;
+import org.apache.camel.spi.PackageScanClassResolver;
+import org.apache.camel.util.IOHelper;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A <a href="http://camel.apache.org/data-format.html">data format</a> (
+ * {@link DataFormat}) using Bindy to marshal to and from Fixed Length
+ */
+public class BindyFixedLengthDataFormat implements DataFormat {
+ private static final transient Logger LOG = LoggerFactory.getLogger(BindyFixedLengthDataFormat.class);
+
+ private String[] packages;
+ private BindyFixedLengthFactory modelFactory;
+
+ public BindyFixedLengthDataFormat() {
+ }
+
+ public BindyFixedLengthDataFormat(String... packages) {
+ this.packages = packages;
+ }
+
+ @SuppressWarnings("unchecked")
+ public void marshal(Exchange exchange, Object body, OutputStream outputStream) throws Exception {
+
+ BindyFixedLengthFactory factory = getFactory(exchange.getContext().getPackageScanClassResolver());
+ ObjectHelper.notNull(factory, "not instantiated");
+
+ // Get CRLF
+ byte[] bytesCRLF = Converter.getByteReturn(factory.getCarriageReturn());
+
+ List<Map<String, Object>> models;
+
+ // the body is not a prepared list so help a bit here and create one for us
+ if (exchange.getContext().getTypeConverter().convertTo(List.class, body) == null) {
+ models = new ArrayList<Map<String, Object>>();
+ Iterator it = ObjectHelper.createIterator(body);
+ while (it.hasNext()) {
+ Object model = it.next();
+ String name = model.getClass().getName();
+ Map<String, Object> row = new HashMap<String, Object>();
+ row.put(name, body);
+ models.add(row);
+ }
+ } else {
+ // cast to the expected type
+ models = (List<Map<String, Object>>) body;
+ }
+
+ for (Map<String, Object> model : models) {
+
+ String result = factory.unbind(model);
+
+ byte[] bytes = exchange.getContext().getTypeConverter().convertTo(byte[].class, exchange, result);
+ outputStream.write(bytes);
+
+ // Add a carriage return
+ outputStream.write(bytesCRLF);
+ }
+ }
+
+ public Object unmarshal(Exchange exchange, InputStream inputStream) throws Exception {
+ BindyFixedLengthFactory factory = getFactory(exchange.getContext().getPackageScanClassResolver());
+ ObjectHelper.notNull(factory, "not instantiated");
+
+ // List of Pojos
+ List<Map<String, Object>> models = new ArrayList<Map<String, Object>>();
+
+ // Pojos of the model
+ Map<String, Object> model;
+
+ InputStreamReader in = new InputStreamReader(inputStream);
+
+ // Scanner is used to read big file
+ Scanner scanner = new Scanner(in);
+
+ int count = 0;
+
+ try {
+
+ // TODO Test if we have a Header
+ // TODO Test if we have a Footer (containing by example checksum)
+
+ while (scanner.hasNextLine()) {
+ String line;
+
+ // Read the line (should not trim as its fixed length)
+ line = scanner.nextLine();
+
+ if (ObjectHelper.isEmpty(line)) {
+ // skip if line is empty
+ continue;
+ }
+
+ // Increment counter
+ count++;
+
+ // Check if the record length corresponds to the parameter
+ // provided in the @FixedLengthRecord
+ if ((line.length() < factory.recordLength()) || (line.length() > factory.recordLength())) {
+ throw new java.lang.IllegalArgumentException("Size of the record : " + line.length() + " is not equal to the value provided in the model : " + factory.recordLength() + " !");
+ }
+
+ // Create POJO where Fixed data will be stored
+ model = factory.factory();
+
+ // Bind data from Fixed record with model classes
+ factory.bind(line, model, count);
+
+ // Link objects together
+ factory.link(model);
+
+ // Add objects graph to the list
+ models.add(model);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Graph of objects created : " + model);
+ }
+
+ }
+
+ // Test if models list is empty or not
+ // If this is the case (correspond to an empty stream, ...)
+ if (models.size() == 0) {
+ throw new java.lang.IllegalArgumentException("No records have been defined in the message !");
+ } else {
+ return models;
+ }
+
+ } finally {
+ scanner.close();
+ IOHelper.close(in, "in", LOG);
+ }
+
+ }
+
+ /**
+ * Method used to create the singleton of the BindyCsvFactory
+ */
+ public BindyFixedLengthFactory getFactory(PackageScanClassResolver resolver) throws Exception {
+ if (modelFactory == null) {
+ modelFactory = new BindyFixedLengthFactory(resolver, packages);
+ }
+ return modelFactory;
+ }
+
+ public void setModelFactory(BindyFixedLengthFactory modelFactory) {
+ this.modelFactory = modelFactory;
+ }
+
+ public String[] getPackages() {
+ return packages;
+ }
+
+ public void setPackages(String[] packages) {
+ this.packages = packages;
+ }
+
+}
Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/format/DatePatternFormat.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/format/DatePatternFormat.java?rev=1065694&r1=1065693&r2=1065694&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/format/DatePatternFormat.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/format/DatePatternFormat.java Mon Jan 31 17:40:24 2011
@@ -23,8 +23,8 @@ import java.util.Locale;
import org.apache.camel.dataformat.bindy.PatternFormat;
import org.apache.camel.util.ObjectHelper;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class DatePatternFormat implements PatternFormat<Date> {
Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/kvp/BindyKeyValuePairDataFormat.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/kvp/BindyKeyValuePairDataFormat.java?rev=1065694&r1=1065693&r2=1065694&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/kvp/BindyKeyValuePairDataFormat.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/kvp/BindyKeyValuePairDataFormat.java Mon Jan 31 17:40:24 2011
@@ -34,8 +34,8 @@ import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.PackageScanClassResolver;
import org.apache.camel.util.IOHelper;
import org.apache.camel.util.ObjectHelper;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* A <a href="http://camel.apache.org/data-format.html">data format</a> (
@@ -43,7 +43,7 @@ import org.apache.commons.logging.LogFac
*/
public class BindyKeyValuePairDataFormat extends BindyAbstractDataFormat {
- private static final transient Log LOG = LogFactory.getLog(BindyKeyValuePairDataFormat.class);
+ private static final transient Logger LOG = LoggerFactory.getLogger(BindyKeyValuePairDataFormat.class);
public BindyKeyValuePairDataFormat() {
}
Modified: camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/CommonBindyTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/CommonBindyTest.java?rev=1065694&r1=1065693&r2=1065694&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/CommonBindyTest.java (original)
+++ camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/CommonBindyTest.java Mon Jan 31 17:40:24 2011
@@ -20,8 +20,8 @@ import org.apache.camel.EndpointInject;
import org.apache.camel.Produce;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
public class CommonBindyTest extends AbstractJUnit4SpringContextTests {
@@ -33,7 +33,7 @@ public class CommonBindyTest extends Abs
public static final String URI_FILE_FIX_SIMPLE = "file://src/test/data/fix_simple?noop=true";
public static final String URI_FILE_FIX_TAB = "file://src/test/data/fix_tab?noop=true";
- protected static final transient Log LOG = LogFactory.getLog(CommonBindyTest.class);
+ protected static final transient Logger LOG = LoggerFactory.getLogger(CommonBindyTest.class);
@Produce(uri = URI_DIRECT_START)
public ProducerTemplate template;