-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Nandana,
Please review before commit :) "import com.sun.corba.se.impl.javax.rmi.CORBA.Util;" - -- dims [EMAIL PROTECTED] wrote: > Author: nandana > Date: Mon Oct 20 07:28:04 2008 > New Revision: 706306 > > URL: http://svn.apache.org/viewvc?rev=706306&view=rev > Log: > mtompolicy module improvements > > Modified: > > webservices/axis2/trunk/java/modules/mtompolicy-mar/src/org/apache/axis2/mtompolicy/MTOMPolicy.java > > webservices/axis2/trunk/java/modules/mtompolicy-mar/src/org/apache/axis2/mtompolicy/Utils.java > > Modified: > webservices/axis2/trunk/java/modules/mtompolicy-mar/src/org/apache/axis2/mtompolicy/MTOMPolicy.java > URL: > http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mtompolicy-mar/src/org/apache/axis2/mtompolicy/MTOMPolicy.java?rev=706306&r1=706305&r2=706306&view=diff > ============================================================================== > --- > webservices/axis2/trunk/java/modules/mtompolicy-mar/src/org/apache/axis2/mtompolicy/MTOMPolicy.java > (original) > +++ > webservices/axis2/trunk/java/modules/mtompolicy-mar/src/org/apache/axis2/mtompolicy/MTOMPolicy.java > Mon Oct 20 07:28:04 2008 > @@ -5,6 +5,8 @@ > import org.apache.axis2.context.ConfigurationContext; > import org.apache.axis2.description.AxisDescription; > import org.apache.axis2.description.AxisModule; > +import org.apache.axis2.description.AxisService; > +import org.apache.axis2.description.Parameter; > import org.apache.axis2.modules.Module; > import org.apache.axis2.policy.model.MTOMAssertion; > import org.apache.commons.logging.Log; > @@ -12,6 +14,8 @@ > import org.apache.neethi.Assertion; > import org.apache.neethi.Policy; > > +import com.sun.corba.se.impl.javax.rmi.CORBA.Util; > + > public class MTOMPolicy implements Module { > > /* > @@ -48,22 +52,21 @@ > + axisDescription.getClass().getName()); > } > > - boolean isOptional = false; > - > - MTOMAssertion mtomAssertion = > Utils.getMTOMAssertion(axisDescription); > - > - if (mtomAssertion == null) { > + AxisService axisService = Utils.locateAxisService(axisDescription); > + > + if (axisService == null) { > + if (log.isDebugEnabled()) { > + log.debug("MTOMPolicy module couldn't find the Axis Service > "); > + } > return; > } > > - isOptional = mtomAssertion.isOptional(); > - > - if (isOptional) { > - axisDescription.addParameter(Constants.Configuration.ENABLE_MTOM, > - Constants.VALUE_OPTIONAL); > - } else { > - axisDescription.addParameter(Constants.Configuration.ENABLE_MTOM, > - Constants.VALUE_TRUE); > + Parameter param = > axisService.getParameter(Constants.Configuration.ENABLE_MTOM); > + > + Policy mtomPolicy = Utils.getMTOMPolicy(param); > + > + if (mtomPolicy != null) { > + Utils.applyPolicyToSOAPBindings(axisService, mtomPolicy); > } > > } > > Modified: > webservices/axis2/trunk/java/modules/mtompolicy-mar/src/org/apache/axis2/mtompolicy/Utils.java > URL: > http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/mtompolicy-mar/src/org/apache/axis2/mtompolicy/Utils.java?rev=706306&r1=706305&r2=706306&view=diff > ============================================================================== > --- > webservices/axis2/trunk/java/modules/mtompolicy-mar/src/org/apache/axis2/mtompolicy/Utils.java > (original) > +++ > webservices/axis2/trunk/java/modules/mtompolicy-mar/src/org/apache/axis2/mtompolicy/Utils.java > Mon Oct 20 07:28:04 2008 > @@ -3,40 +3,110 @@ > import java.util.ArrayList; > import java.util.List; > > +import org.apache.axis2.AxisFault; > +import org.apache.axis2.Constants; > +import org.apache.axis2.description.AxisBinding; > import org.apache.axis2.description.AxisDescription; > +import org.apache.axis2.description.AxisEndpoint; > import org.apache.axis2.description.AxisService; > +import org.apache.axis2.description.Parameter; > +import org.apache.axis2.description.WSDL2Constants; > +import org.apache.axis2.description.java2wsdl.Java2WSDLConstants; > +import org.apache.axis2.policy.model.MTOM10Assertion; > import org.apache.axis2.policy.model.MTOMAssertion; > import org.apache.axis2.util.PolicyUtil; > import org.apache.neethi.Assertion; > import org.apache.neethi.Policy; > > public class Utils { > - > - public static MTOMAssertion getMTOMAssertion (AxisDescription > axisDescription) { > - > + > + private static final String MTOM_ASSERTION_APPLIED = > "MTOM_ASSERTION_APPLIED"; > + > + public static MTOMAssertion getMTOMAssertion(AxisDescription > axisDescription) { > + > if (axisDescription == null) { > return null; > } > - > + > ArrayList policyList = new ArrayList(); > - > policyList.addAll(axisDescription.getPolicySubject().getAttachedPolicyComponents()); > - > + policyList.addAll(axisDescription.getPolicySubject() > + .getAttachedPolicyComponents()); > + > Policy policy = PolicyUtil.getMergedPolicy(policyList, > axisDescription); > - > + > if (policy == null) { > return null; > } > - > - List<Assertion> list = > (List<Assertion>)policy.getAlternatives().next(); > - > + > + List<Assertion> list = (List<Assertion>) policy.getAlternatives() > + .next(); > + > for (Assertion assertion : list) { > if (assertion instanceof MTOMAssertion) { > - return (MTOMAssertion)assertion; > + return (MTOMAssertion) assertion; > } > } > - > + > return null; > + > + } > + > + public static AxisService locateAxisService(AxisDescription > axisDescription) { > + > + if (axisDescription == null || axisDescription instanceof > AxisService) { > + return (AxisService) axisDescription; > + } else { > + return locateAxisService(axisDescription.getParent()); > + } > + } > + > + public static Policy getMTOMPolicy(Parameter param) { > + > + if (param == null) { > + return null; > + } > + > + MTOMAssertion mtom10; > + > + if (Constants.VALUE_TRUE.equals(param.getValue())) { > + mtom10 = new MTOM10Assertion(); > + } else if (Constants.VALUE_OPTIONAL.equals(param.getValue())) { > + mtom10 = new MTOM10Assertion(); > + mtom10.setOptional(true); > + } else { > + return null; > + } > + > + Policy policy = new Policy(); > + policy.addAssertion(mtom10); > + > + return policy; > + > + } > + > + public static void applyPolicyToSOAPBindings(AxisService axisService, > + Policy policy) throws AxisFault { > > + Parameter param = axisService.getParameter(MTOM_ASSERTION_APPLIED); > + > + if ( policy == null || (param != null && > Constants.VALUE_TRUE.equals(param.getValue()))) { > + return; > + } > + > + for (Object obj : axisService.getEndpoints().values()) { > + > + AxisEndpoint endpoint = (AxisEndpoint) obj; > + AxisBinding binding = endpoint.getBinding(); > + > + if (Java2WSDLConstants.TRANSPORT_URI.equals(binding.getType()) > + || > WSDL2Constants.URI_WSDL2_SOAP.equals(binding.getType())) { > + binding.getPolicySubject().attachPolicy(policy); > + } > + } > + > + axisService > + .addParameter("MTOM_ASSERTION_APPLIED", > Constants.VALUE_TRUE); > + > } > > } > > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFI/JbmgNg6eWEDv1kRAtwmAJwJ0PwPSYLfSy/1V8kkZdyDkVP4IQCfbCel j2f7YcHirsOJi/Zk8jRF2xE= =jfsr -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
