01: /*
02: * Copyright (c) 2002-2003 by OpenSymphony
03: * All rights reserved.
04: */
05: package com.opensymphony.workflow.soap;
06:
07: import com.opensymphony.workflow.Workflow;
08:
09: import org.codehaus.xfire.aegis.AegisBindingProvider;
10: import org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry;
11: import org.codehaus.xfire.aegis.type.TypeMappingRegistry;
12: import org.codehaus.xfire.service.Service;
13: import org.codehaus.xfire.service.ServiceRegistry;
14: import org.codehaus.xfire.service.binding.BeanInvoker;
15: import org.codehaus.xfire.service.binding.BindingProvider;
16: import org.codehaus.xfire.service.binding.ObjectServiceFactory;
17: import org.codehaus.xfire.transport.http.XFireServlet;
18:
19: import javax.servlet.ServletException;
20:
21: /**
22: * @author Hani Suleiman
23: * Date: Nov 10, 2005
24: * Time: 1:58:35 PM
25: */
26: public class SOAPWorkflowServlet extends XFireServlet {
27: //~ Methods ////////////////////////////////////////////////////////////////
28:
29: public void init() throws ServletException {
30: super .init();
31:
32: ServiceRegistry registry = getXFire().getServiceRegistry();
33: TypeMappingRegistry typeRegistry = new DefaultTypeMappingRegistry(
34: true);
35: BindingProvider binding = new AegisBindingProvider(typeRegistry);
36: ObjectServiceFactory factory = new ObjectServiceFactory(
37: getXFire().getTransportManager(), binding);
38: Service service = factory.create(Workflow.class);
39: service.setInvoker(new BeanInvoker(new XFireSOAPWorkflow()));
40: registry.register(service);
41:
42: // TypeMapping mapping = typeRegistry.getTypeMapping("http://workflow.opensymphony.com");
43: // BeanTypeInfo info = new BeanTypeInfo(FieldExpression.class, false);
44: // BeanType beanType = new BeanType(info);
45: //
46: // beanType.setSchemaType(createQName(FieldExpression.class));
47: // mapping.register(Expression.class, createQName(Expression.class), new ObjectType(Collections.singleton(beanType), true));
48: }
49:
50: // protected QName createQName(Class javaType) {
51: // String clsName = javaType.getName();
52: //
53: // String ns = NamespaceHelper.makeNamespaceFromClassName(clsName, "http");
54: // String localName = ServiceUtils.makeServiceNameFromClassName(javaType);
55: //
56: // return new QName(ns, localName);
57: // }
58: }
|