cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bimargul...@apache.org
Subject svn commit: r613174 - in /incubator/cxf/trunk: rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/ rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/ rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/mtom/ rt/databindi...
Date Fri, 18 Jan 2008 14:33:37 GMT
Author: bimargulies
Date: Fri Jan 18 06:33:34 2008
New Revision: 613174

URL: http://svn.apache.org/viewvc?rev=613174&view=rev
Log:
Work on the state of MTOM in Aegis.

Added:
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/aegis/mtom/
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/aegis/mtom/MtomTest.java
  (with props)
    incubator/cxf/trunk/systests/src/test/resources/mtomTestBeans.xml   (with props)
Modified:
    incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/AbstractAegisIoImpl.java
    incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/AegisContext.java
    incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/Context.java
    incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java
    incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/mtom/AbstractXOPType.java
    incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/inheritance/intf/InterfaceInheritanceTest.java
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java
    incubator/cxf/trunk/testutils/src/main/resources/wsdl/mtom_xop.wsdl

Modified: incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/AbstractAegisIoImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/AbstractAegisIoImpl.java?rev=613174&r1=613173&r2=613174&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/AbstractAegisIoImpl.java
(original)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/AbstractAegisIoImpl.java
Fri Jan 18 06:33:34 2008
@@ -24,7 +24,6 @@
 
 import javax.xml.validation.Schema;
 
-import org.apache.cxf.common.util.SOAPConstants;
 import org.apache.cxf.databinding.DataReader;
 import org.apache.cxf.interceptor.Fault;
 
@@ -57,13 +56,7 @@
         
     /** {@inheritDoc}*/
     public void setProperty(String prop, Object value) {
-        if (SOAPConstants.MTOM_ENABLED.equals(prop)) {
-            if (value instanceof String) {
-                context.setMtomEnabled(Boolean.valueOf((String)value));
-            } else if (value instanceof Boolean) {
-                context.setMtomEnabled((Boolean)value);
-            }
-        } else if (DataReader.FAULT.equals(prop)) { 
+        if (DataReader.FAULT.equals(prop)) { 
             context.setFault((Fault)value);
         }
     }

Modified: incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/AegisContext.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/AegisContext.java?rev=613174&r1=613173&r2=613174&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/AegisContext.java
(original)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/AegisContext.java
Fri Jan 18 06:33:34 2008
@@ -81,6 +81,7 @@
     private Set<Type> rootTypes;
     private Map<Class<?>, String> beanImplementationMap;
     private Configuration configuration;
+    private boolean mtomEnabled;
     
     /**
      * Construct a context.
@@ -319,6 +320,18 @@
 
     public void setRootClasses(Set<Class<?>> rootClasses) {
         this.rootClasses = rootClasses;
+    }
+
+    /**
+     * Is MTOM enabled in this context?
+     * @return
+     */
+    public boolean isMtomEnabled() {
+        return mtomEnabled;
+    }
+
+    public void setMtomEnabled(boolean mtomEnabled) {
+        this.mtomEnabled = mtomEnabled;
     }
 
 }

Modified: incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/Context.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/Context.java?rev=613174&r1=613173&r2=613174&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/Context.java
(original)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/Context.java
Fri Jan 18 06:33:34 2008
@@ -37,7 +37,6 @@
     private AegisContext globalContext;
     private Collection<Attachment> attachments;
     private Fault fault;
-    private boolean mtomEnabled;
     private Map<Class<?>, Object> properties;
     
     public Context(AegisContext aegisContext) {
@@ -78,13 +77,9 @@
     }
 
     public boolean isMtomEnabled() {
-        return mtomEnabled;
+        return globalContext.isMtomEnabled();
     }
 
-    public void setMtomEnabled(boolean isMtomEnabled) {
-        this.mtomEnabled = isMtomEnabled;
-    }
-    
     // bus-style properties for internal state management.
     public <T> T getProperty(Class<T> key) {
         return key.cast(properties.get(key));

Modified: incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java?rev=613174&r1=613173&r2=613174&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java
(original)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java
Fri Jan 18 06:33:34 2008
@@ -101,6 +101,7 @@
     private boolean isInitialized;
     private Set<String> overrideTypes;
     private Configuration configuration;
+    private boolean mtomEnabled;
 
     public AegisDatabinding() {
         super();
@@ -121,6 +122,9 @@
                 if (configuration != null) {
                     aegisContext.setConfiguration(configuration);
                 }
+                if (mtomEnabled) {
+                    aegisContext.setMtomEnabled(true);
+                }
                 aegisContext.initialize();
             }
             isInitialized = true;
@@ -553,5 +557,13 @@
     
     public void setConfiguration(Configuration configuration) {
         this.configuration = configuration;
+    }
+
+    public boolean isMtomEnabled() {
+        return mtomEnabled;
+    }
+
+    public void setMtomEnabled(boolean mtomEnabled) {
+        this.mtomEnabled = mtomEnabled;
     }
 }

Modified: incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/mtom/AbstractXOPType.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/mtom/AbstractXOPType.java?rev=613174&r1=613173&r2=613174&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/mtom/AbstractXOPType.java
(original)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/mtom/AbstractXOPType.java
Fri Jan 18 06:33:34 2008
@@ -95,12 +95,6 @@
 
         attachments.add(att);
 
-        String contentType = getContentType(object, context);
-        if (contentType != null) {
-            MessageWriter mt = writer.getAttributeWriter(XML_MIME_TYPE);
-            mt.writeValue(contentType);
-        }
-
         MessageWriter include = writer.getElementWriter(XOP_INCLUDE);
         MessageWriter href = include.getAttributeWriter(XOP_HREF);
         href.writeValue("cid:" + id);

Modified: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/inheritance/intf/InterfaceInheritanceTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/inheritance/intf/InterfaceInheritanceTest.java?rev=613174&r1=613173&r2=613174&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/inheritance/intf/InterfaceInheritanceTest.java
(original)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/inheritance/intf/InterfaceInheritanceTest.java
Fri Jan 18 06:33:34 2008
@@ -29,7 +29,7 @@
 import org.junit.Test;
 
 /**
- * This test ensures that we're handling inheritance of itnerfaces correctly.
+ * This test ensures that we're handling inheritance of interfaces correctly.
  * Since we can't do multiple parent inheritance in XML schema, which interfaces
  * require, we just don't allow interface inheritance period.
  * 

Added: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/aegis/mtom/MtomTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/aegis/mtom/MtomTest.java?rev=613174&view=auto
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/aegis/mtom/MtomTest.java
(added)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/aegis/mtom/MtomTest.java
Fri Jan 18 06:33:34 2008
@@ -0,0 +1,79 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.systest.aegis.mtom;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.activation.DataHandler;
+
+import org.apache.cxf.aegis.databinding.AegisDatabinding;
+import org.apache.cxf.frontend.ClientProxyFactoryBean;
+import org.apache.cxf.interceptor.LoggingOutInterceptor;
+import org.apache.cxf.systest.aegis.mtom.fortest.DataHandlerBean;
+import org.apache.cxf.systest.aegis.mtom.fortest.MtomTestImpl;
+import org.junit.Test;
+import org.springframework.test.AbstractDependencyInjectionSpringContextTests;
+
+/**
+ * 
+ */
+public class MtomTest extends AbstractDependencyInjectionSpringContextTests {
+    
+    private org.apache.cxf.systest.aegis.mtom.fortest.MtomTestImpl impl;
+    private org.apache.cxf.systest.aegis.mtom.fortest.MtomTest client;
+    
+    @Override
+    protected String[] getConfigLocations() {
+        return new String[] {"classpath:mtomTestBeans.xml"};
+    }
+    
+    private void getClient() throws Exception {
+        AegisDatabinding aegisBinding = new AegisDatabinding();
+        aegisBinding.setMtomEnabled(true);
+        ClientProxyFactoryBean proxyFac = new ClientProxyFactoryBean();
+        proxyFac.setDataBinding(aegisBinding);
+        proxyFac.setAddress("http://localhost:9002/mtom");
+        proxyFac.setServiceClass(org.apache.cxf.systest.aegis.mtom.fortest.MtomTest.class);
+        Map<String, Object> props = new HashMap<String, Object>();
+        props.put("mtom-enabled", Boolean.TRUE);
+        proxyFac.setProperties(props);
+        proxyFac.getOutInterceptors().add(new LoggingOutInterceptor());
+        client = (org.apache.cxf.systest.aegis.mtom.fortest.MtomTest)proxyFac.create();
+        impl = (MtomTestImpl)applicationContext.getBean("mtomImpl");
+    }
+    
+    @Test 
+    public void testAcceptDataHandler() throws Exception {
+        getClient();
+        DataHandlerBean dhBean = new DataHandlerBean();
+        dhBean.setName("some name");
+        // some day, we might need this to be higher than some threshold.
+        String someData = "This is the cereal shot from guns.";
+        DataHandler dataHandler = new DataHandler(someData, "text/plain;charset=utf-8");
+        dhBean.setDataHandler(dataHandler);
+        client.acceptDataHandler(dhBean);
+        DataHandlerBean accepted = impl.getLastDhBean();
+        assertNotNull(accepted);
+        String data = (String) accepted.getDataHandler().getContent();
+        assertNotNull(data);
+    }
+
+}

Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/aegis/mtom/MtomTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/aegis/mtom/MtomTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java?rev=613174&r1=613173&r2=613174&view=diff
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java
(original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/mtom/ClientMtomXopTest.java
Fri Jan 18 06:33:34 2008
@@ -34,6 +34,8 @@
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.endpoint.Client;
 import org.apache.cxf.endpoint.ClientImpl;
+import org.apache.cxf.interceptor.LoggingInInterceptor;
+import org.apache.cxf.interceptor.LoggingOutInterceptor;
 import org.apache.cxf.jaxws.JaxWsClientProxy;
 import org.apache.cxf.jaxws.binding.soap.SOAPBindingImpl;
 import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
@@ -104,7 +106,7 @@
         }
     }
 
-    @org.junit.Ignore
+    @org.junit.Ignore // see CXF-1395
     @Test
     public void testMtoMString() throws Exception {
         TestMtom mtomPort = createPort(MTOM_SERVICE, MTOM_PORT, TestMtom.class, true, false);
@@ -141,6 +143,9 @@
             jaxwsEndpoint.getBinding().getInInterceptors().add(new TestMultipartMessageInterceptor());
             jaxwsEndpoint.getBinding().getOutInterceptors().add(new TestAttachmentOutInterceptor());
         }
+        
+        jaxwsEndpoint.getBinding().getInInterceptors().add(new LoggingInInterceptor());
+        jaxwsEndpoint.getBinding().getOutInterceptors().add(new LoggingOutInterceptor());
 
         Client client = new ClientImpl(bus, jaxwsEndpoint);
         InvocationHandler ih = new JaxWsClientProxy(client, jaxwsEndpoint.getJaxwsBinding());

Added: incubator/cxf/trunk/systests/src/test/resources/mtomTestBeans.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/resources/mtomTestBeans.xml?rev=613174&view=auto
==============================================================================
--- incubator/cxf/trunk/systests/src/test/resources/mtomTestBeans.xml (added)
+++ incubator/cxf/trunk/systests/src/test/resources/mtomTestBeans.xml Fri Jan 18 06:33:34
2008
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+	Licensed to the Apache Software Foundation (ASF) under one
+	or more contributor license agreements. See the NOTICE file
+	distributed with this work for additional information
+	regarding copyright ownership. The ASF licenses this file
+	to you under the Apache License, Version 2.0 (the
+	"License"); you may not use this file except in compliance
+	with the License. You may obtain a copy of the License at
+	
+	http://www.apache.org/licenses/LICENSE-2.0
+	
+	Unless required by applicable law or agreed to in writing,
+	software distributed under the License is distributed on an
+	"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+	KIND, either express or implied. See the License for the
+	specific language governing permissions and limitations
+	under the License.
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:simple="http://cxf.apache.org/simple"
+	xmlns:jaxws="http://cxf.apache.org/jaxws"
+	xsi:schemaLocation="
+http://www.springframework.org/schema/beans 
+http://www.springframework.org/schema/beans/spring-beans.xsd
+http://cxf.apache.org/simple
+http://cxf.apache.org/schemas/simple.xsd
+http://cxf.apache.org/jaxws
+http://cxf.apache.org/schemas/jaxws.xsd">
+
+	<import resource="classpath:META-INF/cxf/cxf.xml" />
+	<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
+	<import resource="classpath:META-INF/cxf/cxf-extension-http.xml" />
+	<import resource="classpath:META-INF/cxf/cxf-extension-http-jetty.xml" />
+
+	<bean id="mtomImpl"
+		class="org.apache.cxf.systest.aegis.mtom.fortest.MtomTestImpl" />
+
+	<simple:server address="http://localhost:9002/mtom"
+		serviceClass="org.apache.cxf.systest.aegis.mtom.fortest.MtomTest">
+		<simple:dataBinding>
+			<bean
+				class="org.apache.cxf.aegis.databinding.AegisDatabinding">
+				<property name="mtomEnabled" value="true" />
+			</bean>
+		</simple:dataBinding>
+		<simple:serviceBean>
+			<ref bean="mtomImpl" />
+		</simple:serviceBean>
+		<simple:serviceFactory>
+			<bean
+				class='org.apache.cxf.service.factory.ReflectionServiceFactoryBean'>
+				<property name="properties">
+					<map>
+						<entry key="mtom-enabled">
+							<list>
+								<value>true</value>
+							</list>
+						</entry>
+					</map>
+				</property>
+			</bean>
+		</simple:serviceFactory>
+	</simple:server>
+
+</beans>
\ No newline at end of file

Propchange: incubator/cxf/trunk/systests/src/test/resources/mtomTestBeans.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/systests/src/test/resources/mtomTestBeans.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/systests/src/test/resources/mtomTestBeans.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: incubator/cxf/trunk/testutils/src/main/resources/wsdl/mtom_xop.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/mtom_xop.wsdl?rev=613174&r1=613173&r2=613174&view=diff
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/resources/wsdl/mtom_xop.wsdl (original)
+++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/mtom_xop.wsdl Fri Jan 18 06:33:34
2008
@@ -36,7 +36,7 @@
             <complexType name="XopStringType">
                 <sequence>
                     <element name="name" type="xsd:string" />
-                    <element name="attachinfo" type="xsd:base64Binary" xmime:expectedContentTypes="text/plain"/>
+                    <element name="attachinfo" type="xsd:base64Binary" xmime:expectedContentTypes="text/plain;
charset=utf-8"/>
                 </sequence>
             </complexType>
             <element name="testXop" type="types:XopType" />



Mime
View raw message