rineholt 02/02/12 04:46:23
Modified: java/src/org/apache/axis AxisEngine.java Message.java
java/src/org/apache/axis/client Call.java
Log:
Allow the attachment implementation to be pluggable.
Revision Changes Path
1.68 +18 -0 xml-axis/java/src/org/apache/axis/AxisEngine.java
Index: AxisEngine.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/AxisEngine.java,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -r1.67 -r1.68
--- AxisEngine.java 8 Feb 2002 03:09:25 -0000 1.67
+++ AxisEngine.java 12 Feb 2002 12:46:23 -0000 1.68
@@ -99,8 +99,11 @@
public static final String PROP_SYNC_CONFIG = "syncConfiguration";
public static final String PROP_SEND_XSI = "sendXsiTypes";
public static final String PROP_ATTACHMENT_DIR = "attachments.Directory";
+ public static final String PROP_ATTACHMENT_IMPLEMENTATION =
"attachments.implementation" ;
public static final String PROP_ATTACHMENT_CLEANUP =
"attachment.DirectoryCleanUp";
+ public static final String
DEFAULT_ATTACHMENT_IMPL="org.apache.axis.attachments.AttachmentsImpl";
+
// Default admin. password
private static final String DEFAULT_ADMIN_PASSWORD = "admin";
@@ -188,6 +191,21 @@
if (category.isDebugEnabled()) {
category.debug(JavaUtils.getMessage("exit00", "AxisEngine::init"));
+ }
+
+ /*Set the default attachment implementation */
+
+ String attachmentsImp= null;
+ try{
+ attachmentsImp=System.getProperty("axis." +
PROP_ATTACHMENT_IMPLEMENTATION );
+ if(null!=attachmentsImp)
+ setOption(PROP_ATTACHMENT_IMPLEMENTATION, attachmentsImp);
+ } catch(Throwable t){attachmentsImp= null;}
+
+ if(attachmentsImp == null ){
+ if((attachmentsImp= (String) getOption(PROP_ATTACHMENT_IMPLEMENTATION))
== null){
+ setOption(PROP_ATTACHMENT_IMPLEMENTATION,
DEFAULT_ATTACHMENT_IMPL);
+ }
}
}
1.59 +14 -3 xml-axis/java/src/org/apache/axis/Message.java
Index: Message.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/Message.java,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -r1.58 -r1.59
--- Message.java 12 Dec 2001 17:35:11 -0000 1.58
+++ Message.java 12 Feb 2002 12:46:23 -0000 1.59
@@ -184,20 +184,31 @@
private static boolean attachmentSupportEnabled = false;
- public static boolean isAttachmentSupportEnabled() {
+ public boolean isAttachmentSupportEnabled() {
if (checkForAttchmentSupport) {
//aviod testing and possibly failing everytime.
checkForAttchmentSupport = false;
Class mailapiclass = null;
Class dataHandlerclass = null;
try {
+ String attachImpName= AxisEngine.DEFAULT_ATTACHMENT_IMPL;
+ MessageContext mc= getMessageContext();
+ if(null != mc){
+ AxisEngine ae= mc.getAxisEngine();
+ if(null != ae){
+ attachImpName= (String)ae.getOption(
+ AxisEngine.PROP_ATTACHMENT_IMPLEMENTATION);
+ }
+ }
+ if(null == attachImpName){
+ attachImpName=AxisEngine.DEFAULT_ATTACHMENT_IMPL;
+ }
dataHandlerclass =
Class.forName("javax.activation.DataHandler");
mailapiclass =
Class.forName("javax.mail.internet.MimeMultipart");
attachImpl =
- Class.forName(
- "org.apache.axis.attachments.AttachmentsImpl");
+ Class.forName(attachImpName);
attachmentSupportEnabled = true;
} catch (ClassNotFoundException ex) {
// no support for it, leave mAttachments null.
1.72 +0 -3 xml-axis/java/src/org/apache/axis/client/Call.java
Index: Call.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/Call.java,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -r1.71 -r1.72
--- Call.java 11 Feb 2002 15:03:59 -0000 1.71
+++ Call.java 12 Feb 2002 12:46:23 -0000 1.72
@@ -1698,9 +1698,6 @@
*
*/
public void addAttachmentPart( Object attachment){
- if(!Message.isAttachmentSupportEnabled()){
- throw new RuntimeException("No support for attachments");
- }
attachmentParts.add(attachment);
}
}