Hi. How can I specify a proxy address for a task  ? I created a simple task, 
but it just calls the main sequence instead of the proxy URL passed in the "to" 
parameter. 

For instance, I want to choose the proxy service for the task, each proxy has a 
different sequence. It just keeps calling the main sequence...

Here is the task class I created:

import org.apache.axis2.addressing.EndpointReference;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.ManagedLifecycle;
import org.apache.synapse.MessageContext;
import org.apache.synapse.core.SynapseEnvironment;
import org.apache.synapse.startup.Task;
import org.apache.synapse.util.PayloadHelper;

/**
 * Injects a Message in to the Synapse environment
 */
public class MessageInjector implements Task, ManagedLifecycle {

    /**
     * Holds the logger for logging purposes
     */
    private Log log = LogFactory.getLog(MessageInjector.class);

    /**
     * Holds the to address for the message to be injected
     */
    private String to = null;

    /**
     * Holds the SynapseEnv to which the message will be injected
     */
    private SynapseEnvironment synapseEnvironment;

    /**
     * Initializes the Injector
     *
     * @param se
     *          SynapseEnvironment of synapse
     */
    public void init(SynapseEnvironment se) {
                synapseEnvironment = se;
        }

    /**
     * Set the to address of the message to be injected
     *
     * @param url
     *          String containing the to address
     */
    public void setTo(String url) {
                to = url;
        }

    /**
     * This will be invoked by the schedular to inject the message
     * in to the SynapseEnvironment
     */
    public void execute() {
        String message = "Hello world !";
        
                log.debug("execute");
                if (synapseEnvironment == null) {
                        log.error("Synapse Environment not set");
                        return;
                }
                if (message == null) {
                        log.error("message not set");
                        return;

                }
                if (to == null) {
                        log.error("to address not set");
                        return;

                }
        
                MessageContext mc = synapseEnvironment.createMessageContext();
        mc.setTo(new EndpointReference(to));
        PayloadHelper.setTextPayload(mc, message);                
        synapseEnvironment.injectMessage(mc);

        }

    /**
     * Destroys the Injector
     */
    public void destroy() {
        }
}

Here is the config file:

<?xml version="1.0" encoding="UTF-8"?>
<syn:definitions xmlns:syn="http://ws.apache.org/ns/synapse";>
    <syn:registry provider="org.wso2.esb.registry.ESBRegistry">
        <syn:parameter name="root">file:registry</syn:parameter>
        <syn:parameter name="cachableDuration">15000</syn:parameter>
    </syn:registry>
    <syn:proxy name="AnotherProxy" transports="http" startOnLoad="true" 
statistics="enable" trace="enable">
        <syn:target inSequence="main2">
            <syn:endpoint>
                <syn:address uri="vfs:file:///home/remsy/test/out"/>
            </syn:endpoint>
            <syn:outSequence>
                <syn:send>
                    <syn:endpoint>
                        <syn:address uri="vfs:file:///home/remsy/test/out"/>
                    </syn:endpoint>
                </syn:send>
            </syn:outSequence>
        </syn:target>
    </syn:proxy>
    <syn:proxy name="Transformer" transports="http vfs" startOnLoad="true" 
statistics="enable" trace="enable">
        <syn:target inSequence="main">
            <syn:endpoint>
                <syn:address uri="vfs:file:///home/remsy/test/out"/>
            </syn:endpoint>
            <syn:outSequence>
                <syn:send>
                    <syn:endpoint>
                        <syn:address uri="vfs:file:///home/remsy/test/out"/>
                    </syn:endpoint>
                </syn:send>
            </syn:outSequence>
        </syn:target>
        <syn:parameter 
name="transport.vfs.ContentType">text/plain</syn:parameter>
        <syn:parameter 
name="transport.vfs.ActionAfterFailure">MOVE</syn:parameter>
        <syn:parameter 
name="transport.vfs.MoveAfterProcess">file:///home/remsy/test/original</syn:parameter>
        <syn:parameter 
name="transport.vfs.MoveAfterFailure">file:///home/remsy/test/original</syn:parameter>
        <syn:parameter 
name="transport.vfs.ActionAfterProcess">MOVE</syn:parameter>
        <syn:parameter 
name="transport.vfs.FileNamePattern">.*\.txt</syn:parameter>
        <syn:parameter 
name="transport.vfs.FileURI">file:///home/remsy/test/in</syn:parameter>
        <syn:parameter name="transport.PollInterval">15</syn:parameter>
    </syn:proxy>
    <syn:sequence statistics="enable" name="main" trace="enable">
        <syn:log level="full" separator=","/>
        <syn:class name="MediatorTest"/>
    </syn:sequence>
    <syn:sequence name="fault">
        <syn:log level="full">
            <syn:property name="MESSAGE" value="Executing default 
&quot;fault&quot; sequence"/>
            <syn:property name="ERROR_CODE" 
expression="get-property('ERROR_CODE')"/>
            <syn:property name="ERROR_MESSAGE" 
expression="get-property('ERROR_MESSAGE')"/>
        </syn:log>
        <syn:drop/>
    </syn:sequence>
    <syn:sequence statistics="enable" name="main2" trace="enable">
        <syn:log level="full" separator=","/>
    </syn:sequence>
    <syn:task name="TestInjector" class="MessageInjector">
        <syn:trigger once="true"/>
        <syn:property name="to" 
value="http://localhost:8280/soap/AnotherProxy"/>
    </syn:task>
</syn:definitions>

thanks

Remsy

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Paul Fremantle
Sent: September 18, 2008 11:50 AM
To: [email protected]
Subject: Re: [esb-java-user] MQ series message listener


Yes, Indika has got this working.

Indika - can you please post some instructions?

Thanks
Paul

Schmilinsky, Remsy wrote:
> Hi. Esb uses Active MQ for message listening, is it possible to adapt it for 
> IBM MQ ? Our current infrastructure only supports this method.
> 
> thanks
> 
> Remsy
> 
> _______________________________________________
> Esb-java-user mailing list
> [email protected]
> http://mailman.wso2.org/cgi-bin/mailman/listinfo/esb-java-user
> 

-- 
Paul Fremantle
CTO and Co-Founder, WSO2
OASIS WS-RX TC Co-chair
VP, Apache Synapse

Office: +44 844 484 8143
Cell: +44 798 447 4618

blog: http://pzf.fremantle.org
[EMAIL PROTECTED]

"Oxygenating the Web Service Platform", www.wso2.com

_______________________________________________
Esb-java-user mailing list
[email protected]
http://mailman.wso2.org/cgi-bin/mailman/listinfo/esb-java-user

_______________________________________________
Esb-java-user mailing list
[email protected]
http://mailman.wso2.org/cgi-bin/mailman/listinfo/esb-java-user

Reply via email to