1 package jfun.yan.xfire; 2 3 import javax.servlet.ServletContext ; 4 5 import org.codehaus.xfire.service.Service; 6 7 import jfun.yan.Components; 8 import jfun.yan.Container; 9 import jfun.yan.factory.Factory; 10 import jfun.yan.web.YanLoader; 11 import jfun.yan.xml.NutsProcessor; 12 import jfun.yan.xml.nut.NutDescriptor; 13 import jfun.yan.xml.nut.NutIntrospector; 14 15 21 public class XFireLoader extends YanLoader { 22 private final Object xfire_name; 23 private static final NutIntrospector introspector = new NutIntrospector(); 24 protected void decorateProcessor(NutsProcessor processor, ServletContext ctxt) throws Exception { 25 super.decorateProcessor(processor, ctxt); 26 final NutDescriptor desc = introspector.getNutDescriptor(ServiceNut.class); 27 desc.setFactory(new Factory(){ 28 public Object create(){ 29 return new ServiceNut(Components.useKey(xfire_name)); 30 } 31 }); 32 processor.registerNut("service", desc); 33 } 34 public synchronized Container initContainer(ClassLoader cloader, ServletContext servletContext) { 35 final Container yan = super.initContainer(cloader, servletContext); 36 yan.getInstancesOfType(Service.class); 38 return yan; 39 } 40 44 public XFireLoader(Object xfire_name) { 45 this.xfire_name = xfire_name; 46 } 47 } 48 | Popular Tags |