示例#1
0
  public void process(Event event) {
    String serviceId = event.getServiceRequest().getServiceId();
    Service service = null;
    ServiceProviderInterface serviceProvider = null;

    for (ServiceProviderInterface provider : providers) {
      service = provider.getService(serviceId);
      if (service != null) {
        serviceProvider = provider;
        break;
      }
    }

    if (service != null) {
      serviceProvider.execute(service, event.getServiceRequest().getContext());
      // 回写Context,event返回时
      ServiceRegistryItem item = serviceProvider.getServiceRegistryItem(service);
      Context oldC = event.getServiceRequest().getContext();
      Context c = ContextFactory.getContext();
      for (Parameter p : item.getResults()) {
        if (("void").equals(p.getTitle()) || ("").equals(p.getTitle()) || p.getType() == null) {
        } else {
          String name = p.getName();
          c.put(name, oldC.get(name));
        }
      }
      event.getServiceRequest().setContext(c);
    } else {
      logger.logMessage(LogLevel.ERROR, "未找到合适的Service[id:{0}]", serviceId);
    }
  }
示例#2
0
 public static Context getContext(Event event, ServiceInfo info, ClassLoader loder) {
   Context c = new ContextImpl();
   Context oldContext = event.getServiceRequest().getContext();
   if (info.getParameters() == null) {
     return c;
   }
   for (Parameter p : info.getParameters()) {
     Object value = Context2ObjectUtil.getObject(p, oldContext, loder);
     if (value != null && !(value instanceof java.io.Serializable)) {
       throw new ParamNotSerializableException(
           event.getServiceRequest().getServiceId(), p.getName());
     }
     c.put(p.getName(), value);
   }
   return c;
 }
示例#3
0
 public void execute(Context context) {
   context.put(resultKey, a + b);
 }