Yes, I'm aware of that. I added new tests to it to test the new
functionality, but when it tries to create a JBI instance, I get the
exception below. I'm using IntelliJ and I had to add the following to the VM
parameters:
-Djava.naming.factory.initial=org.apache.xbean.spring.jndi.SpringInitialContextFactory
-Djava.naming.provider.url=jndi.xml
The jndi.xml contains a dependency on a 'broker'. Is this defined in the
servicemix.xml? Is there some reason it's not loading? I have it in on the
classpath.
What configurations for the JBI instance am I missing?
Exception:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean
named 'broker' is defined
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:356)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:916)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:243)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:337)
at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
at
org.apache.xbean.spring.jndi.SpringInitialContextFactory.getInitialContext(SpringInitialContextFactory.java:83)
at
javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at
javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:175)
at
org.apache.servicemix.jbi.container.JBIContainer.init(JBIContainer.java:574)
at
org.apache.servicemix.drools.DroolsComponentTest.setUp(DroolsComponentTest.java:48)
at
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
INFO - JBIContainer - Shutting down ServiceMix JBI
Container (ServiceMix) stopped
Failed to shut down: java.lang.NullPointerException
Disconnected from the target VM, address: '127.0.0.1:2424', transport:
'socket'
Process finished with exit code -1
Gert Vanthienen wrote:
>
> Brian,
>
> The DroolsComponentTest is a JUnit test. It can be run manually from
> within Eclipse by choosing Run as... -> JUnit test or from a command
> line with 'mvn test' or 'mvn install'. These tests are also being run
> automatically as part of the continuous integration and release builds.
>
> Regards,
>
> Gert
>
> ObjectOrange wrote:
>> Gert,
>>
>> How do I get the DroolsComponentTest to load and start a JBI instance? I
>> added the servicemix /conf folder to the classpath, but now I'm being
>> told
>> the no 'broker' exists.
>>
>> Brian
>>
>>
>> Gert Vanthienen wrote:
>>
>>> Brian,
>>>
>>> The source for the servicemix-drools component is available at
>>> http://svn.apache.org/repos/asf/servicemix/components/engines/servicemix-drools/trunk/.
>>> You'll find some information on where to find our issue tracker and how
>>> to create patches on http://servicemix.apache.org/contributing.html.
>>>
>>> Regards,
>>>
>>> Gert
>>>
>>> ObjectOrange wrote:
>>>
>>>> Gert,
>>>>
>>>> Yes, the update checks to see if the Exchange has not been handled -
>>>> answer() nor route() have been called - AND the Exchange is an InOut
>>>> type
>>>> AND the endpoint is acting as a Provider prior to calling answer() from
>>>> the
>>>> Drools Endpoint.
>>>>
>>>> I'll add this as a patch once I figure out how! :) Do you know how to
>>>> get
>>>> the most recent source?
>>>>
>>>> Regards,
>>>>
>>>> Brian
>>>>
>>>>
>>>> Gert Vanthienen wrote:
>>>>
>>>>
>>>>> Brian,
>>>>>
>>>>> Sure, that's a valid use case. If answer isn't called in the drools
>>>>> file, the Exchange is never answered, so if you want to add an
>>>>> attribute
>>>>> to that endpoint for configuring automatic replies, that's totally
>>>>> cool! It was just a warning that some people are using the Drools
>>>>> component as a router and don't want the exchange to be answered
>>>>> before
>>>>> the exchange forwarded from drools is done.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Gert
>>>>>
>>>>> ObjectOrange wrote:
>>>>>
>>>>>
>>>>>> Gert,
>>>>>>
>>>>>> We're not using Drools as a router, only evaluating XML attributes
>>>>>> against
>>>>>> some rules and then making changes to XML attributes depending on the
>>>>>> results of those rules; we would like to not have to call answer() in
>>>>>> the
>>>>>> drools file as the people editing these through a GUI will not know
>>>>>> what
>>>>>> that means (business users). Presently, if answer() is not called in
>>>>>> a
>>>>>> drools file, will it get called and by what object?
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Brian
>>>>>>
>>>>>>
>>>>>> Gert Vanthienen wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Brian,
>>>>>>>
>>>>>>> The first one seems a nice addition to our Drools component, so by
>>>>>>> all
>>>>>>> means go ahead and supply a patch for it!
>>>>>>>
>>>>>>> Not sure what you want to do with the last one though. The answer
>>>>>>> method should already answer the exchange, setting the 'out'
>>>>>>> message.
>>>>>>> As for automatically responding with the request message, how will
>>>>>>> you
>>>>>>> know when to respond? The drools endpoint can send another exchange
>>>>>>> and
>>>>>>> that answer can trigger a real response later. Or would you propose
>>>>>>> to
>>>>>>> make this behavior optional (and configurable through a property)?
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Gert
>>>>>>>
>>>>>>> ObjectOrange wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> Thanks Gert,
>>>>>>>>
>>>>>>>> In the Message class:
>>>>>>>>
>>>>>>>> The ability to update the value of an XML attribute (identified by
>>>>>>>> an
>>>>>>>> XPath)
>>>>>>>> with a string value or another XML attribute's value (identified by
>>>>>>>> an
>>>>>>>> XPath) within a Message's body.
>>>>>>>>
>>>>>>>> In DroolsEndpoint.drools(MessageExchange):
>>>>>>>>
>>>>>>>> Ensure that if the Exchange was not handled and it's an InOut that
>>>>>>>> the
>>>>>>>> "out"
>>>>>>>> message gets returned (using DroolsExecutionContext.answer() - a
>>>>>>>> new
>>>>>>>> wrapper
>>>>>>>> method to the JBIHelper.answer()) or if the "out" message does not
>>>>>>>> exist
>>>>>>>> or
>>>>>>>> is empty, the "in" message.
>>>>>>>>
>>>>>>>> What do you think?
>>>>>>>>
>>>>>>>> Brian
>>>>>>>>
>>>>>>>>
>>>>>>>> Gert Vanthienen wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Brian,
>>>>>>>>>
>>>>>>>>> The best way to start contributing is by creating a JIRA issue to
>>>>>>>>> propose your change and then attach a patch file to it. You can
>>>>>>>>> find
>>>>>>>>> more information about this on
>>>>>>>>> http://servicemix.apache.org/contributing.html.
>>>>>>>>> What is it you would like to change on the servicemix-drools
>>>>>>>>> component?
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>>
>>>>>>>>> Gert
>>>>>>>>>
>>>>>>>>> ObjectOrange schreef:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Gert,
>>>>>>>>>>
>>>>>>>>>> If I make changes to the source, how can I get these into the
>>>>>>>>>> build?
>>>>>>>>>> Do
>>>>>>>>>> I
>>>>>>>>>> need to become a committer or can I request the changes to be
>>>>>>>>>> approved
>>>>>>>>>> by
>>>>>>>>>> committers?
>>>>>>>>>>
>>>>>>>>>> Brian
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Gert Vanthienen wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Brian,
>>>>>>>>>>>
>>>>>>>>>>> The version of the component that uses the
>>>>>>>>>>> DroolsExecutionContext
>>>>>>>>>>> is
>>>>>>>>>>> the
>>>>>>>>>>> most recent one. The addition of the DroolsExecutionContext is
>>>>>>>>>>> nothing
>>>>>>>>>>> but a simple refactoring, but this version of the component also
>>>>>>>>>>> uses
>>>>>>>>>>> Drools 4.0.x. It is part of ServiceMix 3.3 and will go into
>>>>>>>>>>> ServiceMix
>>>>>>>>>>> 4.
>>>>>>>>>>>
>>>>>>>>>>> This refactoring has not been backported to the ServiceMix 3.2
>>>>>>>>>>> branch
>>>>>>>>>>> and
>>>>>>>>>>> neither has the upgrade to Drools 4.0.x, so ServiceMix 3.2.x
>>>>>>>>>>> still
>>>>>>>>>>> uses
>>>>>>>>>>> Drools 3.x.
>>>>>>>>>>>
>>>>>>>>>>> Regards,
>>>>>>>>>>>
>>>>>>>>>>> Gert
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> ObjectOrange wrote:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> I've discovered two differing copies of source for the Drools
>>>>>>>>>>>> SE
>>>>>>>>>>>> component, one using the DroolsExecutionContext and one not.
>>>>>>>>>>>> Which
>>>>>>>>>>>> is
>>>>>>>>>>>> the
>>>>>>>>>>>> most recent?
>>>>>>>>>>>>
>>>>>>>>>>>> Thx!
>>>>>>>>>>>> Brian
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> -----
>>>>>>>>> ---
>>>>>>>>> Gert Vanthienen
>>>>>>>>> http://gertvanthienen.blogspot.com
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> -----
>>>>>>> ---
>>>>>>> Gert Vanthienen
>>>>>>> http://gertvanthienen.blogspot.com
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> -----
>>>>> ---
>>>>> Gert Vanthienen
>>>>> http://gertvanthienen.blogspot.com
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> -----
>>> ---
>>> Gert Vanthienen
>>> http://gertvanthienen.blogspot.com
>>>
>>>
>>
>>
>
>
>
> -----
> ---
> Gert Vanthienen
> http://gertvanthienen.blogspot.com
>
--
View this message in context:
http://www.nabble.com/ServiceMix-Drools-SE%3A-DroolsExecutionContext-tp20249810p20442105.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.