Package org.mule.modules

Source Code of org.mule.modules.MyConnConnector

/**
* This file was automatically generated by the Mule Development Kit
*/
package org.mule.modules;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;

import net.sf.ehcache.Ehcache;
import net.sf.ehcache.Element;

import org.mule.api.annotations.Configurable;
import org.mule.api.annotations.Connector;
import org.mule.api.annotations.Processor;
import org.mule.api.annotations.Source;
import org.mule.api.annotations.Transformer;
import org.mule.api.annotations.param.Default;
import org.mule.api.annotations.param.InboundHeaders;
import org.mule.api.annotations.param.InvocationHeaders;
import org.mule.api.annotations.param.Optional;
import org.mule.api.annotations.param.Payload;
import org.mule.api.callback.SourceCallback;
import org.mule.tck.testmodels.fruit.Apple;
import org.mule.tck.testmodels.fruit.Banana;
import org.mule.tck.testmodels.fruit.Fruit;
import org.mule.tck.testmodels.fruit.FruitBowl;

//<start id="lis_13_connector-annotation"/>
@Connector//<co id="lis_13_connector-annotation-1_co"/>
  (name="myconn",
  friendlyName="MyConnector",
  schemaVersion="1.0-SNAPSHOT")
public class MyConnConnector//<end id="lis_13_connector-annotation"/>
{
//<start id="lis_13_connector-config"/>
@Configurable
private String parameterOne;

@Configurable
private String parameterTwo;
//<end id="lis_13_connector-config"/>

    public String getParameterOne() {
    return parameterOne;
  }

  public void setParameterOne(String parameterOne) {
    this.parameterOne = parameterOne;
  }

  public String getParameterTwo() {
    return parameterTwo;
  }

  public void setParameterTwo(String parameterTwo) {
    this.parameterTwo = parameterTwo;
  }

//<start id="lis_13_processor-annotation"/>
@Processor
public void myMethod() {
    // business logic
}
//<end id="lis_13_processor-annotation"/>

//<start id="lis_13_optional-annotation"/>
@Processor
public void myMethodWithDefaultArg(
  String requiredParam,
    @Optional @Default("1") int optionalParam) {
    // business logic
}
//<end id="lis_13_optional-annotation"/>   

//<start id="lis_13_payload-annotation"/>
@Processor
public String myMethodSetPayload() {
    return "I'm a String that will become payload";
}
//<end id="lis_13_payload-annotation"/>   

//<start id="lis_13_payload-annotation"/>
@Processor
public String myMethodWithPayload(
    @Payload String payload,
    @InboundHeaders("MULE_*") Map<?,?> muleHeaders,
    @InvocationHeaders("header1, optionalHeader2?")
    Map<?,?> otherHeaders) {
   
  return "I'm a String that will become payload";
}
//<end id="lis_13_payload-annotation"/>   


private Ehcache cache;

public void setCache(final Ehcache cache)//<co id="lis_12_interceptor_cache-6"/>
{
    this.cache = cache;
}

//<start id="lis_13_intercepting-processor"/>
@Processor(intercepting=true)//<co id="lis_13_intercepting-processor-1_co"/>
public Object process(SourceCallback afterChain,//<co id="lis_13_intercepting-processor-2_co"/>
    @Payload Object payload) throws Exception {
  Object key = payload;
  Element cachedElement = cache.get(key);
  if (cachedElement != null) {
    return cachedElement.getObjectValue();
  }
 
  // we don't synchronize so several threads can compete to fill
  // the cache for the same key: this is rare enough to be
  // acceptable
  Object result = afterChain.process();//<co id="lis_13_intercepting-processor-3_co"/>
  cache.put(new Element(key, result));
  return result;
}
//<end id="lis_13_intercepting-processor"/>

//<start id="lis_13_transformer"/>
@Transformer(sourceTypes = { Object[].class })
public static List transformArrayToList(@Payload Object[] payload) {
  return Arrays.asList(payload);
}
//<end id="lis_13_transformer"/>

//<start id="lis_13_transformer-sourcetypes"/>
@Transformer(sourceTypes = { Apple.class, Banana.class })
public static FruitBowl transformFruitToBowl(@Payload Fruit payload) {
  FruitBowl bowl = new FruitBowl();
  bowl.addFruit(payload);
  return bowl;
}
//<end id="lis_13_transformer-sourcetypes"/>

//<start id="lis_13_source"/>
@Source
public void subscribeTopic(
  int interval,
  final SourceCallback callback) {
 
  TimerTask task = new TimerTask() {
    public void run() {
      try {
        callback.process();//<co id="lis_13_source_1"/>
      } catch (Exception e) {
        // Process error
      }
    }
  };
  Timer timer = new Timer();
  timer.schedule(task, interval);
}
//<end id="lis_13_source"/>


@Processor()
public String myProcessor(String content) throws Exception {
  return "Another string";
}

}
TOP

Related Classes of org.mule.modules.MyConnConnector

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.