예제 #1
0
  public UMOComponent initialiseComponent(
      UMODescriptor descriptor, byte txBeginAction, EventCallback callback) throws Exception {
    JMSMessageToObject inTrans = new JMSMessageToObject();
    ObjectToJMSMessage outTrans = new ObjectToJMSMessage();

    UMOEndpoint endpoint =
        new MuleEndpoint(
            "testIn",
            getInDest(),
            connector,
            inTrans,
            UMOEndpoint.ENDPOINT_TYPE_RECEIVER,
            0,
            null,
            null);

    UMOTransactionConfig txConfig = new MuleTransactionConfig();
    txConfig.setFactory(getTransactionFactory());
    txConfig.setAction(txBeginAction);

    UMOEndpoint outProvider =
        new MuleEndpoint(
            "testOut",
            getOutDest(),
            connector,
            outTrans,
            UMOEndpoint.ENDPOINT_TYPE_SENDER,
            0,
            null,
            null);

    endpoint.setTransactionConfig(txConfig);

    descriptor.setOutboundEndpoint(outProvider);
    descriptor.setInboundEndpoint(endpoint);
    HashMap props = new HashMap();
    props.put("eventCallback", callback);
    descriptor.setProperties(props);
    UMOComponent component = MuleManager.getInstance().getModel().registerComponent(descriptor);
    // MuleManager.getInstance().registerConnector(connector);
    return component;
  }
예제 #2
0
  protected UMODescriptor getDefaultDescriptor() throws UMOException {
    // When the the beanFactory is refreshed all the beans get
    // reloaded so we need to unregister the component from Mule
    UMOModel model = MuleManager.getInstance().lookupModel(ModelHelper.SYSTEM_MODEL);
    if (model == null) {
      model = new SedaModel();
      model.setName(ModelHelper.SYSTEM_MODEL);
      MuleManager.getInstance().registerModel(model);
    }
    UMODescriptor descriptor = model.getDescriptor(EVENT_MULTICASTER_DESCRIPTOR_NAME);
    if (descriptor != null) {
      model.unregisterComponent(descriptor);
    }
    descriptor = new MuleDescriptor(EVENT_MULTICASTER_DESCRIPTOR_NAME);
    if (subscriptions == null) {
      logger.info("No receive endpoints have been set, using default '*'");
      descriptor.setInboundEndpoint(new MuleEndpoint("vm://*", true));
    } else {
      // Set multiple inbound subscriptions on the descriptor
      UMOInboundRouterCollection messageRouter = descriptor.getInboundRouter();

      for (int i = 0; i < subscriptions.length; i++) {
        String subscription = subscriptions[i];
        UMOEndpointURI endpointUri = new MuleEndpointURI(subscription);
        UMOEndpoint endpoint =
            MuleEndpoint.getOrCreateEndpointForUri(endpointUri, UMOEndpoint.ENDPOINT_TYPE_RECEIVER);
        if (!asynchronous) {
          endpoint.setSynchronous(true);
        }
        messageRouter.addEndpoint(endpoint);
      }
    }
    // set the implementation name to this bean so Mule will manage it
    descriptor.setImplementation(
        AbstractApplicationContext.APPLICATION_EVENT_MULTICASTER_BEAN_NAME);
    return descriptor;
  }