Author: dims Date: Tue Mar 4 11:13:31 2008 New Revision: 633594 URL: http://svn.apache.org/viewvc?rev=633594&view=rev Log: First pass at AXIS2-3566 - Ability to plugin a new Axiom LifecycleManager via axis2.xml
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java?rev=633594&r1=633593&r2=633594&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/builder/BuilderUtil.java Tue Mar 4 11:13:31 2008 @@ -20,6 +20,7 @@ package org.apache.axis2.builder; import org.apache.axiom.attachments.Attachments; +import org.apache.axiom.attachments.lifecycle.LifecycleManager; import org.apache.axiom.attachments.utils.IOUtils; import org.apache.axiom.om.OMAttribute; import org.apache.axiom.om.OMElement; @@ -42,6 +43,7 @@ import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder; import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; +import org.apache.axis2.deployment.DeploymentConstants; import org.apache.axis2.context.MessageContext; import org.apache.axis2.description.AxisMessage; import org.apache.axis2.description.AxisOperation; @@ -521,31 +523,45 @@ } } } - Attachments attachments = null; - if (contentLength > 0) { - if (log.isDebugEnabled()) { + if (log.isDebugEnabled()) { + if (contentLength > 0) { log.debug("Creating an Attachments map. The content-length is" + contentLength); - } - attachments = - new Attachments(inStream, - contentTypeString, - fileCacheForAttachments, - attachmentRepoDir, - attachmentSizeThreshold, - contentLength); - } else { - if (log.isDebugEnabled()) { + } else { log.debug("Creating an Attachments map."); } - attachments = - new Attachments(inStream, - contentTypeString, - fileCacheForAttachments, - attachmentRepoDir, - attachmentSizeThreshold); } - - return attachments; + return createAttachments(msgContext, + inStream, + contentTypeString, + fileCacheForAttachments, + attachmentRepoDir, + attachmentSizeThreshold, + contentLength); + } + + public static Attachments createAttachments(MessageContext msgContext, + InputStream inStream, + String contentTypeString, + boolean fileCacheForAttachments, + String attachmentRepoDir, + String attachmentSizeThreshold, + int contentLength) { + LifecycleManager manager = null; + try { + manager = (LifecycleManager) msgContext.getRootContext().getAxisConfiguration() + .getParameterValue(DeploymentConstants.ATTACHMENTS_LIFECYCLE_MANAGER); + } catch (Exception e){ + if(log.isDebugEnabled()){ + log.debug("Exception getting Attachments LifecycleManager", e); + } + } + return new Attachments(manager, + inStream, + contentTypeString, + fileCacheForAttachments, + attachmentRepoDir, + attachmentSizeThreshold, + contentLength); } /** Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java?rev=633594&r1=633593&r2=633594&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java Tue Mar 4 11:13:31 2008 @@ -23,6 +23,7 @@ import org.apache.axiom.om.OMAttribute; import org.apache.axiom.om.OMElement; import org.apache.axiom.soap.RolePlayer; +import org.apache.axiom.attachments.lifecycle.LifecycleManager; import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; import org.apache.axis2.builder.ApplicationXMLBuilder; @@ -232,6 +233,15 @@ if (deployerItr != null) { processDeployers(deployerItr); } + + //process Attachments Lifecycle manager configuration + OMElement attachmentsLifecycleManagerElement = + config_element + .getFirstChildWithName(new QName(ATTACHMENTS_LIFECYCLE_MANAGER)); + + if (attachmentsLifecycleManagerElement != null) { + processAttachmentsLifecycleManager(axisConfig, attachmentsLifecycleManagerElement); + } } catch (XMLStreamException e) { throw new DeploymentException(e); } @@ -256,6 +266,21 @@ e.getMessage()); } } + } + } + } + + private void processAttachmentsLifecycleManager(AxisConfiguration axisConfig, OMElement element) { + String className = element.getAttributeValue(new QName(TAG_CLASS_NAME)); + try { + Class classInstance = Loader.loadClass(className); + LifecycleManager manager = (LifecycleManager) classInstance.newInstance(); + axisConfig.addParameter(DeploymentConstants.ATTACHMENTS_LIFECYCLE_MANAGER, manager); + } catch (Exception e) { + if (log.isTraceEnabled()) { + log.trace( + "processAttachmentsLifecycleManager: Exception thrown initialising LifecycleManager: " + + e.getMessage()); } } } Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java?rev=633594&r1=633593&r2=633594&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java Tue Mar 4 11:13:31 2008 @@ -112,6 +112,9 @@ String EXTENSION = "extension"; String DEPLOYER = "deployer"; + //Attachments LifecycleManager + String ATTACHMENTS_LIFECYCLE_MANAGER = "attachmentsLifecycleManager"; + // for parameters String ATTRIBUTE_NAME = "name"; String ATTRIBUTE_WSADDRESSING = "wsaddressing"; --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]