You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Jason Dillon <ja...@planet57.com> on 2011/07/13 06:19:56 UTC

camel-jms w/o spring?

Is there an alternative to camel-jms which doesn't depend on spring?  Looks like using camel-jms pulls in most of the core spring dependencies... a pity when an application is not using spring itself (say instead using Guice instead).

I've not tried it yet, but I'm assuming that it will work outside of spring (ie. not booting the app+camel context up in a real spring container)... so its really just extra unneeded bytes laying around in the jvm that bother me.

--jason

Re: camel-jms w/o spring?

Posted by Hadrian Zbarcea <hz...@gmail.com>.
Christian, what about apache-commons? I suspect the guys there would 
support such an initiative. Let's discuss first what exactly we'd want 
in the project and cross check with other communities like cxf.

Hadrian

On 10/22/2011 01:46 AM, Christian Schneider wrote:
> In CXF there is the similar dependency on spring jms features.
>
> As we see a move to blueprint and other DI frameworks by users it makes
> sense to not depend on spring.
> On the other hand spring provides some good features we build on.
>
> So I think it makes sense to create an apache project outside camel and
> cxf to provide these functions.
>
> Christian
>
>
> Am 13.07.2011 06:19, schrieb Jason Dillon:
>> Is there an alternative to camel-jms which doesn't depend on spring?
>> Looks like using camel-jms pulls in most of the core spring
>> dependencies... a pity when an application is not using spring itself
>> (say instead using Guice instead).
>>
>> I've not tried it yet, but I'm assuming that it will work outside of
>> spring (ie. not booting the app+camel context up in a real spring
>> container)... so its really just extra unneeded bytes laying around in
>> the jvm that bother me.
>>
>> --jason
>
>

Re: camel-jms w/o spring?

Posted by Christian Schneider <ch...@die-schneider.net>.
In CXF there is the similar dependency on spring jms features.

As we see a move to blueprint and other DI frameworks by users it makes 
sense to not depend on spring.
On the other hand spring provides some good features we build on.

So I think it makes sense to create an apache project outside camel and 
cxf to provide these functions.

Christian


Am 13.07.2011 06:19, schrieb Jason Dillon:
> Is there an alternative to camel-jms which doesn't depend on spring?  Looks like using camel-jms pulls in most of the core spring dependencies... a pity when an application is not using spring itself (say instead using Guice instead).
>
> I've not tried it yet, but I'm assuming that it will work outside of spring (ie. not booting the app+camel context up in a real spring container)... so its really just extra unneeded bytes laying around in the jvm that bother me.
>
> --jason


-- 

Christian Schneider
http://www.liquid-reality.de

Open Source Architect
Talend Application Integration Division http://www.talend.com


Re: camel-jms w/o spring?

Posted by Eelco <ee...@gmail.com>.
Now that I have everything running here, and can configure everything I need
(I think) using Guice/ fluent API, I'm pretty happy using the provided
functionality. Would've been nice to not have the Spring dependencies, but
at least it's not in ones way (good job on that, not all frameworks have
taken that approach with Spring).

Thanks,

Eelco

--
View this message in context: http://camel.465427.n5.nabble.com/camel-jms-w-o-spring-tp4581489p4928615.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: camel-jms w/o spring?

Posted by Eelco <ee...@gmail.com>.
Hi,

Count me in as an interested party for a Spring-less implementation :-) Is
there any progress on this? I am currently evaluating Camel to adopt in our
(new) architecture, and I really like it so far. We have been trying to keep
Spring out of the door (after booting it two years ago) and would like to
keep it that way. Now, it looks like developing your own modules isn't hard,
but judging from other discussions it seems that there are quite a few
gotchas doing this for JMS. So I'd be very interested in JMS support without
Spring. Oh, and I/ we would be happy to help (though no JMS experts in the
house I'm afraid).

Thanks,

Eelco

--
View this message in context: http://camel.465427.n5.nabble.com/camel-jms-w-o-spring-tp4581489p4926823.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: camel-jms w/o spring?

Posted by Claus Ibsen <cl...@gmail.com>.
Hi Jason

Welcome to the Camel community.

There is a few Camel component which uses Spring Framework as a 3rd
party API. On top of my head its
- jms
- mail
- xslt
- velocity
- freemarker
- stringtemplate

And for using JMX you need some Spring JARs for the Spring JMX annotations.

I am about to put up a discussion on @dev about reducing dependency on
Spring when not needed by Camel or the end user runs in an environment
where he dont use Spring as a corner stone.

A member of the community have already supplied patches for the mail
component to be able to use that without Spring. There is a JIRA
ticket.

Likewise the last 4 components on that list, can be migrated in Camel
2.9 as frankly loading template/resource files in OSGi blueprint don't
work well with Spring. So we had to add an adapter to make that run.

That leaves us with JMX and jms component. For JMX we should move the
support for Spring JMX annotations into the camel-spring component so
end users can still use those Spring JMX annotations if they like to
decorate their custom Camel components. The camel-core would then be
able to run JMX without the Spring JMX annotations on the classpath.

That leaves us back with the component you asked about the jms. It
uses the Spring DefaultMessageListenerContainer for consuming
messages. Currently we don't have an alternative in the short term.

I could imagine that we may want to build a new jms component that is
more light-weight, has less features, but don't depend on Spring or
any other 3rd party JARs. Frankly the JMS component seems to have to
many features etc. Just look at the options table (many of the options
origins from spring-jms)
http://camel.apache.org/jms

Feedback, ideas and contributions is of course much welcome
http://camel.apache.org/contributing.html





On Wed, Jul 13, 2011 at 6:19 AM, Jason Dillon <ja...@planet57.com> wrote:
> Is there an alternative to camel-jms which doesn't depend on spring?  Looks like using camel-jms pulls in most of the core spring dependencies... a pity when an application is not using spring itself (say instead using Guice instead).
>
> I've not tried it yet, but I'm assuming that it will work outside of spring (ie. not booting the app+camel context up in a real spring container)... so its really just extra unneeded bytes laying around in the jvm that bother me.
>
> --jason



-- 
Claus Ibsen
-----------------
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Re: camel-jms w/o spring?

Posted by Jason Dillon <ja...@planet57.com>.
BTW, for reference a shaded jar of a simple class that makes a
JmsComponent looks like it ends up needing the following from Spring.
This was generated using the maven-shade-plugin w/minimizeJar=true and
marking camel-jms as provided an a few other minor tweaks.  Its a
rough estimate for what is used only.  Its roughly 400k in size vs.
2.8m w/minimizeJar=false.

Obviously there are things in here that are not required, but just
wanted to get a rough idea of how much additional spring classes were
pulled simply by usage of the JmsTemplate and MessageListenerContainer
bits.

--jason


<snip>
META-INF/
META-INF/MANIFEST.MF
LocalJmsComponentFactory.class
META-INF/maven/
META-INF/maven/test/
META-INF/maven/test/camel-jms-springsize/
META-INF/maven/test/camel-jms-springsize/pom.xml
META-INF/maven/test/camel-jms-springsize/pom.properties
META-INF/DEPENDENCIES
META-INF/LICENSE
META-INF/LICENSE.txt
META-INF/NOTICE
META-INF/NOTICE.txt
META-INF/maven/org.apache.camel/
META-INF/maven/org.apache.camel/camel-spring/
META-INF/maven/org.apache.camel/camel-spring/pom.properties
META-INF/maven/org.apache.camel/camel-spring/pom.xml
META-INF/services/
META-INF/services/org/
META-INF/services/org/apache/
META-INF/services/org/apache/camel/
META-INF/services/org/apache/camel/TransactionPolicy
META-INF/services/org/apache/camel/component/
META-INF/services/org/apache/camel/component/spring-event
META-INF/services/org/apache/camel/component/test
META-INF/services/org/apache/camel/component/validator
META-INF/services/org/apache/camel/component/xslt
META-INF/services/org/apache/camel/language/
META-INF/services/org/apache/camel/language/spel
META-INF/spring.handlers
META-INF/spring.schemas
camel-osgi.xsd
camel-spring-v2.8.xsd
camel-spring.xsd
org/
org/apache/
org/apache/camel/
org/apache/camel/core/
org/apache/camel/core/xml/
org/apache/camel/core/xml/jaxb.index
org/apache/camel/core/xml/util/
org/apache/camel/core/xml/util/jsse/
org/apache/camel/core/xml/util/jsse/jaxb.index
org/apache/camel/osgi/
org/apache/camel/osgi/jaxb.index
org/apache/camel/spring/
org/apache/camel/spring/jaxb.index
org/apache/camel/util/
org/apache/camel/util/spring/
org/apache/camel/util/spring/jaxb.index
schema2.xsd
META-INF/spring.tooling
org/springframework/
org/springframework/aop/
org/springframework/aop/RawTargetAccess.class
org/springframework/aop/config/
org/springframework/aop/config/spring-aop-2.0.xsd
org/springframework/aop/config/spring-aop-2.5.xsd
org/springframework/aop/config/spring-aop-3.0.xsd
org/springframework/aop/config/spring-aop.gif
org/springframework/aop/framework/
org/springframework/aop/framework/autoproxy/
org/springframework/aop/framework/autoproxy/target/
org/springframework/aop/framework/autoproxy/target/package.html
org/springframework/aop/package-info.class
org/springframework/aop/scope/
org/springframework/aop/scope/ScopedObject.class
org/springframework/aop/scope/package-info.class
org/springframework/aop/target/
org/springframework/aop/target/dynamic/
org/springframework/aop/target/dynamic/package.html
org/springframework/aop/target/package.html
overview.html
org/springframework/jms/
org/springframework/jms/IllegalStateException.class
org/springframework/jms/InvalidClientIDException.class
org/springframework/jms/InvalidDestinationException.class
org/springframework/jms/InvalidSelectorException.class
org/springframework/jms/JmsException.class
org/springframework/jms/JmsSecurityException.class
org/springframework/jms/MessageEOFException.class
org/springframework/jms/MessageFormatException.class
org/springframework/jms/MessageNotReadableException.class
org/springframework/jms/MessageNotWriteableException.class
org/springframework/jms/ResourceAllocationException.class
org/springframework/jms/TransactionInProgressException.class
org/springframework/jms/TransactionRolledBackException.class
org/springframework/jms/UncategorizedJmsException.class
org/springframework/jms/config/
org/springframework/jms/config/spring-jms-2.5.xsd
org/springframework/jms/config/spring-jms-3.0.xsd
org/springframework/jms/config/spring-jms.gif
org/springframework/jms/connection/
org/springframework/jms/connection/ChainedExceptionListener.class
org/springframework/jms/connection/ConnectionFactoryUtils$1.class
org/springframework/jms/connection/ConnectionFactoryUtils$2.class
org/springframework/jms/connection/ConnectionFactoryUtils$3.class
org/springframework/jms/connection/ConnectionFactoryUtils$JmsResourceSynchronization.class
org/springframework/jms/connection/ConnectionFactoryUtils$ResourceFactory.class
org/springframework/jms/connection/ConnectionFactoryUtils.class
org/springframework/jms/connection/JmsResourceHolder.class
org/springframework/jms/connection/JmsTransactionManager$JmsTransactionObject.class
org/springframework/jms/connection/JmsTransactionManager.class
org/springframework/jms/connection/SessionProxy.class
org/springframework/jms/connection/SingleConnectionFactory$InternalChainedExceptionListener.class
org/springframework/jms/connection/SingleConnectionFactory$SharedConnectionInvocationHandler.class
org/springframework/jms/connection/SingleConnectionFactory.class
org/springframework/jms/connection/SmartConnectionFactory.class
org/springframework/jms/connection/SynchedLocalTransactionFailedException.class
org/springframework/jms/connection/TransactionAwareConnectionFactoryProxy$CloseSuppressingSessionInvocationHandler.class
org/springframework/jms/connection/TransactionAwareConnectionFactoryProxy$TransactionAwareConnectionInvocationHandler.class
org/springframework/jms/connection/TransactionAwareConnectionFactoryProxy.class
org/springframework/jms/connection/UserCredentialsConnectionFactoryAdapter$JmsUserCredentials.class
org/springframework/jms/connection/UserCredentialsConnectionFactoryAdapter.class
org/springframework/jms/connection/package-info.class
org/springframework/jms/core/
org/springframework/jms/core/BrowserCallback.class
org/springframework/jms/core/JmsOperations.class
org/springframework/jms/core/JmsTemplate$1.class
org/springframework/jms/core/JmsTemplate$10.class
org/springframework/jms/core/JmsTemplate$11.class
org/springframework/jms/core/JmsTemplate$12.class
org/springframework/jms/core/JmsTemplate$2.class
org/springframework/jms/core/JmsTemplate$3.class
org/springframework/jms/core/JmsTemplate$4.class
org/springframework/jms/core/JmsTemplate$5.class
org/springframework/jms/core/JmsTemplate$6.class
org/springframework/jms/core/JmsTemplate$7.class
org/springframework/jms/core/JmsTemplate$8.class
org/springframework/jms/core/JmsTemplate$9.class
org/springframework/jms/core/JmsTemplate$JmsTemplateResourceFactory.class
org/springframework/jms/core/JmsTemplate.class
org/springframework/jms/core/MessageCreator.class
org/springframework/jms/core/MessagePostProcessor.class
org/springframework/jms/core/ProducerCallback.class
org/springframework/jms/core/SessionCallback.class
org/springframework/jms/core/package-info.class
org/springframework/jms/listener/
org/springframework/jms/listener/AbstractJmsListeningContainer$SharedConnectionNotInitializedException.class
org/springframework/jms/listener/AbstractJmsListeningContainer.class
org/springframework/jms/listener/AbstractMessageListenerContainer$MessageRejectedWhileStoppingException.class
org/springframework/jms/listener/AbstractMessageListenerContainer.class
org/springframework/jms/listener/AbstractPollingMessageListenerContainer$MessageListenerContainerResourceFactory.class
org/springframework/jms/listener/AbstractPollingMessageListenerContainer.class
org/springframework/jms/listener/DefaultMessageListenerContainer$AsyncMessageListenerInvoker.class
org/springframework/jms/listener/DefaultMessageListenerContainer.class
org/springframework/jms/listener/LocallyExposedJmsResourceHolder.class
org/springframework/jms/listener/SessionAwareMessageListener.class
org/springframework/jms/listener/SimpleMessageListenerContainer$1$1.class
org/springframework/jms/listener/SimpleMessageListenerContainer$1.class
org/springframework/jms/listener/SimpleMessageListenerContainer$2.class
org/springframework/jms/listener/SimpleMessageListenerContainer.class
org/springframework/jms/listener/SubscriptionNameProvider.class
org/springframework/jms/listener/package-info.class
org/springframework/jms/package-info.class
org/springframework/jms/support/
org/springframework/jms/support/JmsAccessor.class
org/springframework/jms/support/JmsUtils.class
org/springframework/jms/support/converter/
org/springframework/jms/support/converter/MessageConversionException.class
org/springframework/jms/support/converter/MessageConverter.class
org/springframework/jms/support/converter/SimpleMessageConverter.class
org/springframework/jms/support/converter/package-info.class
org/springframework/jms/support/destination/
org/springframework/jms/support/destination/CachingDestinationResolver.class
org/springframework/jms/support/destination/DestinationResolver.class
org/springframework/jms/support/destination/DynamicDestinationResolver.class
org/springframework/jms/support/destination/JmsDestinationAccessor.class
org/springframework/jms/support/destination/package-info.class
org/springframework/jms/support/package-info.class
org/springframework/core/
org/springframework/core/ConstantException.class
org/springframework/core/Constants.class
org/springframework/core/ErrorCoded.class
org/springframework/core/GenericCollectionTypeResolver.class
org/springframework/core/GenericTypeResolver.class
org/springframework/core/InfrastructureProxy.class
org/springframework/core/MethodParameter.class
org/springframework/core/NamedThreadLocal.class
org/springframework/core/NestedExceptionUtils.class
org/springframework/core/NestedRuntimeException.class
org/springframework/core/OrderComparator.class
org/springframework/core/Ordered.class
org/springframework/core/ParameterNameDiscoverer.class
org/springframework/core/PriorityOrdered.class
org/springframework/core/io/
org/springframework/core/io/InputStreamSource.class
org/springframework/core/io/Resource.class
org/springframework/core/io/ResourceLoader.class
org/springframework/core/io/package-info.class
org/springframework/core/io/support/
org/springframework/core/io/support/ResourcePatternResolver.class
org/springframework/core/io/support/package-info.class
org/springframework/core/package-info.class
org/springframework/core/task/
org/springframework/core/task/AsyncTaskExecutor.class
org/springframework/core/task/SimpleAsyncTaskExecutor$ConcurrencyThrottleAdapter.class
org/springframework/core/task/SimpleAsyncTaskExecutor$ConcurrencyThrottlingRunnable.class
org/springframework/core/task/SimpleAsyncTaskExecutor.class
org/springframework/core/task/TaskExecutor.class
org/springframework/core/task/package-info.class
org/springframework/util/
org/springframework/util/Assert.class
org/springframework/util/ClassUtils.class
org/springframework/util/CollectionUtils$EnumerationIterator.class
org/springframework/util/CollectionUtils.class
org/springframework/util/ConcurrencyThrottleSupport.class
org/springframework/util/CustomizableThreadCreator$SerializableMonitor.class
org/springframework/util/CustomizableThreadCreator.class
org/springframework/util/ErrorHandler.class
org/springframework/util/ObjectUtils.class
org/springframework/util/ReflectionUtils$1.class
org/springframework/util/ReflectionUtils$2.class
org/springframework/util/ReflectionUtils$3.class
org/springframework/util/ReflectionUtils$4.class
org/springframework/util/ReflectionUtils$5.class
org/springframework/util/ReflectionUtils$FieldCallback.class
org/springframework/util/ReflectionUtils$FieldFilter.class
org/springframework/util/ReflectionUtils$MethodCallback.class
org/springframework/util/ReflectionUtils$MethodFilter.class
org/springframework/util/ReflectionUtils.class
org/springframework/util/StringUtils.class
org/springframework/util/package-info.class
org/apache/commons/
org/apache/commons/logging/
org/apache/commons/logging/Log.class
org/apache/commons/logging/LogConfigurationException.class
org/apache/commons/logging/LogFactory$1.class
org/apache/commons/logging/LogFactory$2.class
org/apache/commons/logging/LogFactory$3.class
org/apache/commons/logging/LogFactory$4.class
org/apache/commons/logging/LogFactory$5.class
org/apache/commons/logging/LogFactory$6.class
org/apache/commons/logging/LogFactory.class
META-INF/maven/commons-logging/
META-INF/maven/commons-logging/commons-logging/
META-INF/maven/commons-logging/commons-logging/pom.xml
META-INF/maven/commons-logging/commons-logging/pom.properties
org/springframework/context/
org/springframework/context/ApplicationContext.class
org/springframework/context/ApplicationContextAware.class
org/springframework/context/ApplicationEvent.class
org/springframework/context/ApplicationEventPublisher.class
org/springframework/context/Lifecycle.class
org/springframework/context/MessageSource.class
org/springframework/context/MessageSourceResolvable.class
org/springframework/context/NoSuchMessageException.class
org/springframework/context/Phased.class
org/springframework/context/SmartLifecycle.class
org/springframework/context/config/
org/springframework/context/config/spring-context-2.5.xsd
org/springframework/context/config/spring-context-3.0.xsd
org/springframework/context/config/spring-context.gif
org/springframework/context/package-info.class
org/springframework/ejb/
org/springframework/ejb/config/
org/springframework/ejb/config/spring-jee-2.0.xsd
org/springframework/ejb/config/spring-jee-2.5.xsd
org/springframework/ejb/config/spring-jee-3.0.xsd
org/springframework/ejb/config/spring-jee.gif
org/springframework/jmx/
org/springframework/jmx/export/
org/springframework/jmx/export/annotation/
org/springframework/jmx/export/annotation/ManagedAttribute.class
org/springframework/jmx/export/annotation/ManagedOperation.class
org/springframework/jmx/export/annotation/ManagedResource.class
org/springframework/jmx/export/annotation/package-info.class
org/springframework/jmx/export/package-info.class
org/springframework/jmx/package-info.class
org/springframework/remoting/
org/springframework/remoting/rmi/
org/springframework/remoting/rmi/RmiInvocationWrapperRTD.xml
org/springframework/scheduling/
org/springframework/scheduling/SchedulingAwareRunnable.class
org/springframework/scheduling/SchedulingTaskExecutor.class
org/springframework/scheduling/config/
org/springframework/scheduling/config/spring-task-3.0.xsd
org/springframework/scheduling/config/spring-task.gif
org/springframework/scheduling/package-info.class
org/springframework/scripting/
org/springframework/scripting/config/
org/springframework/scripting/config/spring-lang-2.0.xsd
org/springframework/scripting/config/spring-lang-2.5.xsd
org/springframework/scripting/config/spring-lang-3.0.xsd
org/springframework/scripting/config/spring-lang.gif
org/springframework/expression/
org/springframework/expression/spel/
org/springframework/expression/spel/generated/
org/springframework/expression/spel/generated/SpringExpressions.g
org/springframework/jca/
org/springframework/jca/context/
org/springframework/jca/context/ra.xml
org/springframework/transaction/
org/springframework/transaction/CannotCreateTransactionException.class
org/springframework/transaction/IllegalTransactionStateException.class
org/springframework/transaction/InvalidIsolationLevelException.class
org/springframework/transaction/InvalidTimeoutException.class
org/springframework/transaction/NestedTransactionNotSupportedException.class
org/springframework/transaction/PlatformTransactionManager.class
org/springframework/transaction/SavepointManager.class
org/springframework/transaction/TransactionDefinition.class
org/springframework/transaction/TransactionException.class
org/springframework/transaction/TransactionStatus.class
org/springframework/transaction/TransactionSuspensionNotSupportedException.class
org/springframework/transaction/TransactionSystemException.class
org/springframework/transaction/TransactionTimedOutException.class
org/springframework/transaction/TransactionUsageException.class
org/springframework/transaction/UnexpectedRollbackException.class
org/springframework/transaction/config/
org/springframework/transaction/config/spring-tx-2.0.xsd
org/springframework/transaction/config/spring-tx-2.5.xsd
org/springframework/transaction/config/spring-tx-3.0.xsd
org/springframework/transaction/config/spring-tx.gif
org/springframework/transaction/package-info.class
org/springframework/transaction/support/
org/springframework/transaction/support/AbstractPlatformTransactionManager$SuspendedResourcesHolder.class
org/springframework/transaction/support/AbstractPlatformTransactionManager.class
org/springframework/transaction/support/AbstractTransactionStatus.class
org/springframework/transaction/support/DefaultTransactionDefinition.class
org/springframework/transaction/support/DefaultTransactionStatus.class
org/springframework/transaction/support/ResourceHolder.class
org/springframework/transaction/support/ResourceHolderSupport.class
org/springframework/transaction/support/ResourceHolderSynchronization.class
org/springframework/transaction/support/ResourceTransactionManager.class
org/springframework/transaction/support/SmartTransactionObject.class
org/springframework/transaction/support/TransactionSynchronization.class
org/springframework/transaction/support/TransactionSynchronizationManager.class
org/springframework/transaction/support/TransactionSynchronizationUtils$ScopedProxyUnwrapper.class
org/springframework/transaction/support/TransactionSynchronizationUtils.class
org/springframework/transaction/support/package-info.class
org/springframework/beans/
org/springframework/beans/BeansException.class
org/springframework/beans/PropertyAccessException.class
org/springframework/beans/TypeConverter.class
org/springframework/beans/TypeMismatchException.class
org/springframework/beans/factory/
org/springframework/beans/factory/BeanFactory.class
org/springframework/beans/factory/BeanNameAware.class
org/springframework/beans/factory/DisposableBean.class
org/springframework/beans/factory/HierarchicalBeanFactory.class
org/springframework/beans/factory/InitializingBean.class
org/springframework/beans/factory/ListableBeanFactory.class
org/springframework/beans/factory/NoSuchBeanDefinitionException.class
org/springframework/beans/factory/config/
org/springframework/beans/factory/config/AutowireCapableBeanFactory.class
org/springframework/beans/factory/config/DependencyDescriptor.class
org/springframework/beans/factory/config/package-info.class
org/springframework/beans/factory/package-info.class
org/springframework/beans/factory/xml/
org/springframework/beans/factory/xml/spring-beans-2.0.dtd
org/springframework/beans/factory/xml/spring-beans-2.0.xsd
org/springframework/beans/factory/xml/spring-beans-2.5.xsd
org/springframework/beans/factory/xml/spring-beans-3.0.xsd
org/springframework/beans/factory/xml/spring-beans.dtd
org/springframework/beans/factory/xml/spring-beans.gif
org/springframework/beans/factory/xml/spring-tool-2.0.xsd
org/springframework/beans/factory/xml/spring-tool-2.5.xsd
org/springframework/beans/factory/xml/spring-tool-3.0.xsd
org/springframework/beans/factory/xml/spring-util-2.0.xsd
org/springframework/beans/factory/xml/spring-util-2.5.xsd
org/springframework/beans/factory/xml/spring-util-3.0.xsd
org/springframework/beans/factory/xml/spring-util.gif
org/springframework/beans/package-info.class
</snip>

Re: camel-jms w/o spring?

Posted by Jason Dillon <ja...@planet57.com>.
Has anyone gotten anywhere with making a rich JMS component w/o any
Spring dependencies?

I looked over the Jms* stuff recently and there is a bit of Spring
sprinkled though-out this module, but I'm not sure its so covered with
spring goodies that it wouldn't be possible to abstract out the spring
classes and hide them behind simple spi.

I've only thought about this a bit today so maybe I'm missing why this
is not feasible.  It doesn't look like all that much of Spring is
used... well obviously since you don't need to be running in an
application-context for this to work, but yet you need spring-core,
spring-beans, spring-context, spring-tx and spring-jms.

Does anyone think its technically not possible to abstract out the
spring specifics in to a org.apache.camel.component.jms.spring package
& access those bits via interfaces from the
Jms{Component|Configuration|Producer|Consumer} bits?

I'm mostly just curious as I was entertaining the idea of simply
writing my own JMS component to remove the need for all this spring
stuff, but I didn't realize just how much code this component has and
all of the stuff which it does that isn't really spring specific to
implement the endpoint.

--jason


On Tue, Jul 12, 2011 at 9:19 PM, Jason Dillon <ja...@planet57.com> wrote:
> Is there an alternative to camel-jms which doesn't depend on spring?  Looks like using camel-jms pulls in most of the core spring dependencies... a pity when an application is not using spring itself (say instead using Guice instead).
>
> I've not tried it yet, but I'm assuming that it will work outside of spring (ie. not booting the app+camel context up in a real spring container)... so its really just extra unneeded bytes laying around in the jvm that bother me.
>
> --jason