Dear All,

  [Had reference :
http://camel.465427.n5.nabble.com/How-to-programatically-add-remove-camel-route-td469238.html
  
without much success]

   I need some helping in generating a dynamic route. Please point out any
other places that I have done wrong.
Some background info: 
a.  An Icefaces projects packaged into a EAR and deployed on a 10.3 Weblogic
b.  A standalone camel application.

A

Project_Main
+src
++org/learning
+++PublisherBean
+++StandardRequestBean
+++AdHocRequestBean

Project_Web
+WEB-INF
++applicationContext.xml
++web.xml

some code extract of StandardRequestBean

@Component
public class StandardRequestBean extends PublisherBean implements
ApplcationContextAware
{    
     protected ApplicationContext applicationContext;
     protected SpringCamelContext  camelContext;
     protected String dynamicAddressKey = UUID.randomUUID().toString();
     protecte String dynamicAddress = "activemq:temp:topic:" +
dynamicAddressKey;
     protected IPublisherUtil publisherUtil;
     protected RouteBuilder routeBuilder;
     protected Request request;

    public StandardReuqestBean()
    {
                  routeBuilder = new RouteBuilder()
                  {
                            @Override
                             public void configure() throws Exception
                             {
                                  //how to get activemq:temp:topic from the
spring context?
                                  //create endpoint ??
                                 
from(activemq:temp:topic:dynamicAddress).bean(this,
"doWork").routeIddynamicAddressKey);
                             }             
                  }
    }

     @Override
     public void setApplicationContext(ApplicationContext
applicationContext;
     { 
               this.applicationContext =  applicationContext;
     }

   public void publishRequest(ActionEvent event)
   {
             System.out.println(this.applicationContext);     //This is
returning null
            
             /**
             if (  camelContext == null )
             {
                    camelContext  = (SpringCamelContext) applicationContext;
             }             
             routeBuilder.addRoutesToCamelContext(camelContext;);
             */             

           publisherUtil.publishRequest(request, dynamicAddress ); 
//Problem 3
   }

   public void doWork()
   {                              
   }  

  @Override
   public void dispose() throws Exception
   {  
                 //Remove the dynamic route cleanup
   }
     
}

_________________________________________--

public class CamelPublisher implements IPublisherUtil 
{
            ..................
              public  void publishRequest( Request request,  String
replyAddress)
              {
                        template.sendBodyAndHeader(destination, request, 
,"JMSReplyTo", dynamicAddress);  // Problem 3
                        //Taking almost 20 secs to return for a input that
took the camelContext b  (20 secs to process, simple cases.)
                        //Possbile to make camel context b return once it
consumed the jms endpoint and send to third party software?
              }
}

Problem 1:  My ApplicationContext for StandardRequestBean  is return null.
Problem 2:  How to create the endpoint for a dynamic temp topic/queue
instead of hardcoding the "activemq:temp:topic:"
Problem 3:  How do i get the JMSID after I have published (immediately)  
(Low priority since i showing the request ID)
(please note that the route in standalone camel context b, have 2 routes,
the first route consume from the activemq destination, and pass processing
to a third party software, which may take hours to complete.
the second route, consume from the returned xml files and will need to go
through more processing before sending a JMS message based on the 

JMSReplyTo set in the header.


My web.xml  in case its is wrongly set up
<web-app ....>
         <context-param>
               <param-name>contextConfigLoaction</param-name>
               <param-value>/WEB-INF/applicationContext.xml</param-value>   
        </context-param>
</web-app>

Thanks and Best Regards,
Zuff



--
View this message in context: 
http://camel.465427.n5.nabble.com/Dynamic-Routing-ApplicationContext-is-null-tp5720943.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to