/* * Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com) * Licensed under the Apache License, Version 2.0 (the "License") * $Id: SoapXFireFactoryInvoker.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.engine.elements; import com.uwyn.rife.engine.ElementContext; import com.uwyn.rife.engine.ElementService; import org.codehaus.xfire.MessageContext; import org.codehaus.xfire.fault.XFireFault; import org.codehaus.xfire.service.invoker.FactoryInvoker; import org.codehaus.xfire.service.invoker.ScopePolicy; import org.codehaus.xfire.util.factory.Factory; // FIXME: needs a better implementation as soon as XFire 1.2.3 is released, the Invoker API is currently a bit broken class SoapXFireFactoryInvoker extends FactoryInvoker { public SoapXFireFactoryInvoker(Factory factory, ScopePolicy scope) { super(factory, scope); } public Object getServiceObject(MessageContext context) throws XFireFault { Object instance = super.getServiceObject(context); if (instance instanceof ElementService) { ((ElementService)instance).setRequestElement(ElementContext.getActiveElementSupport()); } return instance; } }