This is an automated email from the ASF dual-hosted git repository. robertlazarski pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git
commit 74dd7e60e0fe2317d53463ed6181bfd3bb13d781 Author: Robert Lazarski <[email protected]> AuthorDate: Sun Apr 19 20:39:38 2026 -1000 AXIS2-6105 Remove FastInfoset module Binary XML encoding (ITU-T X.891). Solved SOAP verbosity by making SOAP binary, but the industry solved it by switching to JSON. No known users — anyone needing binary efficiency uses gRPC/Protobuf. Removes module, dependency, fi.version property, and all references from distribution, webapp, apidocs, and assembly descriptors. --- apidocs/pom.xml | 6 +- modules/distribution/pom.xml | 6 +- .../src/main/assembly/bin-assembly.xml | 4 +- modules/fastinfoset/README.txt | 8 - modules/fastinfoset/pom.xml | 265 ------------------- .../axis2/fastinfoset/FastInfosetBuilder.java | 60 ----- .../fastinfoset/FastInfosetMessageFormatter.java | 155 ----------- .../axis2/fastinfoset/FastInfosetPOXBuilder.java | 60 ----- .../FastInfosetPOXMessageFormatter.java | 155 ----------- modules/fastinfoset/test-resources/axis2.xml | 286 --------------------- .../fastinfoset/FastInfosetInputOutputTest.java | 76 ------ .../apache/axis2/fastinfoset/FastInfosetTest.java | 124 --------- .../apache/axis2/fastinfoset/SimpleAddService.java | 38 --- .../axis2/fastinfoset/SimpleAddServiceClient.java | 128 --------- modules/webapp/pom.xml | 8 +- pom.xml | 10 +- 16 files changed, 7 insertions(+), 1382 deletions(-) diff --git a/apidocs/pom.xml b/apidocs/pom.xml index 3ee7f536b1..957dae5a7a 100644 --- a/apidocs/pom.xml +++ b/apidocs/pom.xml @@ -65,11 +65,7 @@ <artifactId>axis2-corba</artifactId> <version>${project.version}</version> </dependency> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>axis2-fastinfoset</artifactId> - <version>${project.version}</version> - </dependency> + <!-- axis2-fastinfoset removed: AXIS2-6105 --> <dependency> <groupId>${project.groupId}</groupId> <artifactId>axis2-java2wsdl</artifactId> diff --git a/modules/distribution/pom.xml b/modules/distribution/pom.xml index 4040d3c049..5562c35ae2 100644 --- a/modules/distribution/pom.xml +++ b/modules/distribution/pom.xml @@ -95,11 +95,7 @@ <version>${project.version}</version> </dependency> <!-- removed: AXIS2-6105 --> - <dependency> - <groupId>org.apache.axis2</groupId> - <artifactId>axis2-fastinfoset</artifactId> - <version>${project.version}</version> - </dependency> + <!-- axis2-fastinfoset removed: AXIS2-6105 --> <dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2-jaxbri-codegen</artifactId> diff --git a/modules/distribution/src/main/assembly/bin-assembly.xml b/modules/distribution/src/main/assembly/bin-assembly.xml index ff9d3539eb..ada7550b58 100755 --- a/modules/distribution/src/main/assembly/bin-assembly.xml +++ b/modules/distribution/src/main/assembly/bin-assembly.xml @@ -188,9 +188,7 @@ <exclude>org.apache.ant:ant:jar</exclude> <exclude>org.apache.ant:ant-launcher:jar</exclude> <exclude>aopalliance:aopalliance:jar</exclude> - <exclude>bsf:bsf:jar</exclude> - <exclude>com.sun.xml.fastinfoset:FastInfoset:jar</exclude> - <exclude>rhino:js:jar</exclude> + <!-- bsf, FastInfoset, rhino removed: AXIS2-6105 --> <exclude>javax.servlet:servlet-api</exclude> <!-- AXIS2-6051, why was this excluded and why is it needed now? diff --git a/modules/fastinfoset/README.txt b/modules/fastinfoset/README.txt deleted file mode 100644 index c49693707d..0000000000 --- a/modules/fastinfoset/README.txt +++ /dev/null @@ -1,8 +0,0 @@ -This module handles Fast Infoset (FI) binary serialization for Axis2. - -The fast infoset parser used here is from Fast Infoset Project @ https://fi.dev.java.net/ - -FI 1.1.x is targeted to JDK1.4 and is used in JAX-WS 2.0, JAXB 2.0. -FI 1.2.x is targeted to JDK1.5 and is used in JAX-WS 2.1, JAXB 2.1. - -The maven script automatically detects the JDK version and use the appropriate FI jar file. diff --git a/modules/fastinfoset/pom.xml b/modules/fastinfoset/pom.xml deleted file mode 100644 index 06c4e605da..0000000000 --- a/modules/fastinfoset/pom.xml +++ /dev/null @@ -1,265 +0,0 @@ -<?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. - --> - -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.apache.axis2</groupId> - <artifactId>axis2</artifactId> - <version>2.0.1-SNAPSHOT</version> - <relativePath>../../pom.xml</relativePath> - </parent> - - <artifactId>axis2-fastinfoset</artifactId> - - <name>Apache Axis2 - Fast Infoset</name> - <description>Axis2 Fast Infoset module</description> - <url>http://axis.apache.org/axis2/java/core/</url> - - <scm> - <connection>scm:git:https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git</connection> - <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git</developerConnection> - <url>https://gitbox.apache.org/repos/asf?p=axis-axis2-java-core.git;a=summary</url> - <tag>HEAD</tag> - </scm> - - <dependencies> - <dependency> - <groupId>com.sun.xml.fastinfoset</groupId> - <artifactId>FastInfoset</artifactId> - </dependency> - <dependency> - <groupId>org.apache.axis2</groupId> - <artifactId>axis2-kernel</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.axis2</groupId> - <artifactId>axis2-adb</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>wsdl4j</groupId> - <artifactId>wsdl4j</artifactId> - </dependency> - <dependency> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </dependency> - <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-fileupload2-core</artifactId> - </dependency> - <dependency> - <groupId>org.apache.ws.xmlschema</groupId> - <artifactId>xmlschema-core</artifactId> - </dependency> - <dependency> - <groupId>org.apache.axis2</groupId> - <artifactId>axis2-java2wsdl</artifactId> - <version>${project.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.axis2</groupId> - <artifactId>axis2-adb-codegen</artifactId> - <version>${project.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.neethi</groupId> - <artifactId>neethi</artifactId> - </dependency> - <dependency> - <groupId>org.apache.axis2</groupId> - <artifactId>addressing</artifactId> - <version>${project.version}</version> - <type>mar</type> - <scope>test</scope> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.ws.commons.axiom</groupId> - <artifactId>axiom-truth</artifactId> - <scope>test</scope> - </dependency> - </dependencies> - - <build> - <sourceDirectory>src</sourceDirectory> - <testSourceDirectory>test</testSourceDirectory> - <resources> - <resource> - <directory>conf</directory> - <includes> - <include>**/*.properties</include> - </includes> - </resource> - <resource> - <directory>src</directory> - <includes> - <include>**/*.properties</include> - <include>**/*.xml</include> - </includes> - </resource> - <resource> - <directory>resources</directory> - <includes> - <include>**/*</include> - </includes> - </resource> - </resources> - <testResources> - <testResource> - <directory>test</directory> - <includes> - <include>**/*.xml</include> - <include>**/*.wsdl</include> - <include>**/*.properties</include> - </includes> - </testResource> - <testResource> - <directory>${project.build.directory}/repo</directory> - </testResource> - </testResources> - <plugins> - <plugin> - <artifactId>maven-remote-resources-plugin</artifactId> - <executions> - <execution> - <goals> - <goal>process</goal> - </goals> - <configuration> - <resourceBundles> - <resourceBundle>org.apache.axis2:axis2-resource-bundle:${project.version}</resourceBundle> - </resourceBundles> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.axis2</groupId> - <artifactId>axis2-repo-maven-plugin</artifactId> - <executions> - <execution> - <goals> - <goal>create-test-repository</goal> - </goals> - <configuration> - <outputDirectory>${project.build.directory}/repo</outputDirectory> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-antrun-plugin</artifactId> - <executions> - <execution> - <id>gen-ts</id> - <phase>generate-test-sources</phase> - <configuration> - <target unless="maven.test.skip"> - <mkdir dir="target/test-classes" /> - - <property name="axis2.home" value="${basedir}/target" /> - <path id="maven.dependency.classpath"> - <path refid="maven.runtime.classpath" /> - </path> - <!-- compiling some custom wsdl files --> - <property name="wsdl.source.dir" value="test-resources/wsdl" /> - <property name="wsdl.output.base.dir" value="target/wsdl" /> - <!-- make the dirs --> - <mkdir dir="${wsdl.output.base.dir}" /> - <echo>Compiling Service class</echo> - <javac fork="true" destdir="target/test-classes" debug="on" release="${maven.compiler.release}" includeantruntime="false"> - <classpath refid="maven.dependency.classpath" /> - <classpath location="${compiled.classes.dir}" /> - <include name="**/*SimpleAddService.java" /> - <src path="test/" /> - </javac> - <echo>Generating the WSDL</echo> - <java classname="org.apache.ws.java2wsdl.Java2WSDL" fork="true"> - <classpath> - <path refid="maven.test.classpath" /> - <pathelement location="target/test-classes" /> - </classpath> - <arg line="-o target/test-classes -of SimpleAddService.wsdl -efd unqualified -cn org.apache.axis2.fastinfoset.SimpleAddService" /> - </java> - - <echo>Compiling SimpleAddService.wsdl</echo> - <mkdir dir="${wsdl.output.base.dir}/simpleAddService" /> - - <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true"> - <classpath refid="maven.test.classpath" /> - <classpath location="${compiled.classes.dir}" /> - <arg line="-uri target/test-classes/SimpleAddService.wsdl -o target/wsdl/simpleAddService -S . -or" /> - </java> - </target> - </configuration> - <goals> - <goal>run</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>build-helper-maven-plugin</artifactId> - <executions> - <execution> - <id>add-test-source</id> - <phase>generate-test-sources</phase> - <goals> - <goal>add-test-source</goal> - </goals> - <configuration> - <sources> - <source>${project.build.directory}/wsdl/simpleAddService</source> - </sources> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <artifactId>maven-surefire-plugin</artifactId> - <inherited>true</inherited> - <configuration> - <argLine>${argLine} -Xms256m -Xmx512m</argLine> - <!-- Enable the next 2 lines if you want to attach a debugger - <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006</argLine>--> - <includes> - <include>**/*Test.java</include> - </includes> - <systemPropertyVariables> - <build.repository>./target/test-classes</build.repository> - </systemPropertyVariables> - </configuration> - </plugin> - </plugins> - </build> -</project> diff --git a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetBuilder.java b/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetBuilder.java deleted file mode 100644 index 6b712f9d87..0000000000 --- a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetBuilder.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * 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.axis2.fastinfoset; - -import com.sun.xml.fastinfoset.stax.StAXDocumentParser; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMXMLBuilderFactory; -import org.apache.axiom.soap.SOAPModelBuilder; -import org.apache.axis2.AxisFault; -import org.apache.axis2.Constants; -import org.apache.axis2.builder.Builder; -import org.apache.axis2.context.MessageContext; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.io.InputStream; - -public class FastInfosetBuilder implements Builder { - - private static Log logger = LogFactory.getLog(FastInfosetBuilder.class); - - /** - * Returns a OMElement handler to the document element of the Fast Infoset message. - * - * @param inputStream InputStream to the message - * @param contentType Content type of the message - * @param messageContext MessageContext to be used - * - * @return OMElement handler to the document element - * - * @see org.apache.axis2.builder.Builder#processDocument(InputStream, String, MessageContext) - */ - public OMElement processDocument(InputStream inputStream, String contentType, - MessageContext messageContext) throws AxisFault { - if (logger.isDebugEnabled()) { - logger.debug("Processing a Document with the content type: " + contentType); - } - //Create a instance of the StAX Parser which can handle the fast infoset stream - SOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(new StAXDocumentParser(inputStream)); - messageContext.setProperty(Constants.BUILDER, builder); - return builder.getDocumentElement(); - } -} diff --git a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetMessageFormatter.java b/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetMessageFormatter.java deleted file mode 100644 index f2d1ecbf0a..0000000000 --- a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetMessageFormatter.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * 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.axis2.fastinfoset; - -import com.sun.xml.fastinfoset.stax.StAXDocumentSerializer; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMOutputFormat; -import org.apache.axis2.AxisFault; -import org.apache.axis2.Constants; -import org.apache.axis2.context.MessageContext; -import org.apache.axis2.kernel.MessageFormatter; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamWriter; -import java.io.OutputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Iterator; - -public class FastInfosetMessageFormatter implements MessageFormatter { - - private static Log logger = LogFactory.getLog(FastInfosetMessageFormatter.class); - - /** - * Fast Infoset message formatter doesn't need to handle SOAP. Hence do nothing. - * - * @see org.apache.axis2.kernel.MessageFormatter#formatSOAPAction(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.lang.String) - */ - public String formatSOAPAction(MessageContext messageContext, - OMOutputFormat format, String soapAction) { - - return null; - } - - /** - * Returns the content type - * - * @see org.apache.axis2.kernel.MessageFormatter#getContentType(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.lang.String) - */ - public String getContentType(MessageContext messageContext, - OMOutputFormat format, String soapAction) { - String contentType = (String) messageContext.getProperty(Constants.Configuration.CONTENT_TYPE); - String encoding = format.getCharSetEncoding(); - - //If the Content Type is not available with the property "Content Type" retrieve it from the property "Message Type" - if (contentType == null) { - contentType = (String) messageContext.getProperty(Constants.Configuration.MESSAGE_TYPE); - } - - if (encoding != null) { - contentType += "; charset=" + encoding; - } - - return contentType; - } - - /** - * Returns the target address to send the response - * FIXME This is very HTTP specific. What about other transport? - * - * @see org.apache.axis2.kernel.MessageFormatter#getTargetAddress(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.net.URL) - */ - public URL getTargetAddress(MessageContext messageContext, - OMOutputFormat format, URL targetURL) throws AxisFault { - String httpMethod = - (String) messageContext.getProperty(Constants.Configuration.HTTP_METHOD); - - URL targetAddress = targetURL; //Let's initialize to this - //if the http method is GET, parameters are attached to the target URL - if ((httpMethod != null) - && Constants.Configuration.HTTP_METHOD_GET.equalsIgnoreCase(httpMethod)) { - String param = getParam(messageContext); - - if (param.length() > 0) { - String returnURLFile = targetURL.getFile() + "?" + param; - try { - targetAddress = - new URL(targetURL.getProtocol(), targetURL.getHost(), targetURL.getPort(), returnURLFile); - } catch (MalformedURLException murle) { - logger.error(murle.getMessage()); - throw new AxisFault(murle.getMessage(), murle); - } - } - } - - return targetAddress; - } - - /** - * Write the SOAP envelop to the given OutputStream. - * - * @see org.apache.axis2.kernel.MessageFormatter#writeTo(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.io.OutputStream, boolean) - */ - public void writeTo(MessageContext messageContext, OMOutputFormat format, - OutputStream outputStream, boolean preserve) throws AxisFault { - OMElement element = messageContext.getEnvelope(); - - try { - //Create the StAX document serializer - XMLStreamWriter streamWriter = new StAXDocumentSerializer(outputStream); - streamWriter.writeStartDocument(); - element.serialize(streamWriter, preserve); -// TODO Looks like the SOAP envelop doesn't have a end document tag. Find out why? - streamWriter.writeEndDocument(); - } catch (XMLStreamException xmlse) { - logger.error(xmlse.getMessage()); - throw new AxisFault(xmlse.getMessage(), xmlse); - } - } - - /** - * Construct URL parameters like, "param1=value1¶m2=value2" - * FIXME This is very HTTP specific. What about other transports - * - * @param messageContext - * @return Formatted URL parameters - */ - private String getParam(MessageContext messageContext) { - - OMElement dataOut = messageContext.getEnvelope().getBody().getFirstElement(); - Iterator it = dataOut.getChildElements(); - StringBuffer paramBuffer = new StringBuffer(); - - while (it.hasNext()) { - OMElement element = (OMElement) it.next(); - String parameter = element.getLocalName() + "=" + element.getText(); - paramBuffer.append(parameter); - paramBuffer.append("&"); - } - //We don't need a '&' at the end - paramBuffer.deleteCharAt(paramBuffer.length() - 1); - - return paramBuffer.toString(); - } - -} diff --git a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetPOXBuilder.java b/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetPOXBuilder.java deleted file mode 100644 index 0ecdafee04..0000000000 --- a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetPOXBuilder.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * 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.axis2.fastinfoset; - -import com.sun.xml.fastinfoset.stax.StAXDocumentParser; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMXMLBuilderFactory; -import org.apache.axiom.om.OMXMLParserWrapper; -import org.apache.axis2.AxisFault; -import org.apache.axis2.Constants; -import org.apache.axis2.builder.Builder; -import org.apache.axis2.context.MessageContext; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.io.InputStream; - -public class FastInfosetPOXBuilder implements Builder { - - private static Log logger = LogFactory.getLog(FastInfosetBuilder.class); - - /** - * Returns a OMElement handler to the document element of the Fast Infoset message. - * - * @param inputStream InputStream to the message - * @param contentType Content type of the message - * @param messageContext MessageContext to be used - * - * @return OMElement handler to the document element - * - * @see org.apache.axis2.builder.Builder#processDocument(InputStream, String, MessageContext) - */ - public OMElement processDocument(InputStream inputStream, String contentType, - MessageContext messageContext) throws AxisFault { - if (logger.isDebugEnabled()) { - logger.debug("Processing a Document with the content type: " + contentType); - } - //Create a instance of the StAX Parser which can handle the fast infoset stream - OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(new StAXDocumentParser(inputStream)); - messageContext.setProperty(Constants.BUILDER, builder); - return builder.getDocumentElement(); - } -} diff --git a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetPOXMessageFormatter.java b/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetPOXMessageFormatter.java deleted file mode 100644 index 69a14c09ce..0000000000 --- a/modules/fastinfoset/src/org/apache/axis2/fastinfoset/FastInfosetPOXMessageFormatter.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * 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.axis2.fastinfoset; - -import com.sun.xml.fastinfoset.stax.StAXDocumentSerializer; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMOutputFormat; -import org.apache.axis2.AxisFault; -import org.apache.axis2.Constants; -import org.apache.axis2.context.MessageContext; -import org.apache.axis2.kernel.MessageFormatter; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.xml.stream.XMLStreamException; -import javax.xml.stream.XMLStreamWriter; -import java.io.OutputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Iterator; - -public class FastInfosetPOXMessageFormatter implements MessageFormatter { - - private static Log logger = LogFactory.getLog(FastInfosetMessageFormatter.class); - - /** - * Plain Fast Infoset message formatter doesn't need to handle SOAP. Hence do nothing. - * - * @see org.apache.axis2.kernel.MessageFormatter#formatSOAPAction(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.lang.String) - */ - public String formatSOAPAction(MessageContext messageContext, - OMOutputFormat format, String soapAction) { - - return null; - } - - /** - * Returns the content type - * - * @see org.apache.axis2.kernel.MessageFormatter#getContentType(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.lang.String) - */ - public String getContentType(MessageContext messageContext, - OMOutputFormat format, String soapAction) { - String contentType = (String) messageContext.getProperty(Constants.Configuration.CONTENT_TYPE); - String encoding = format.getCharSetEncoding(); - - //If the Content Type is not available with the property "Content Type" retrieve it from the property "Message Type" - if (contentType == null) { - contentType = (String) messageContext.getProperty(Constants.Configuration.MESSAGE_TYPE); - } - - if (encoding != null) { - contentType += "; charset=" + encoding; - } - - return contentType; - } - - /** - * Returns the target address to send the response - * FIXME This is very HTTP specific. What about other transport? - * - * @see org.apache.axis2.kernel.MessageFormatter#getTargetAddress(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.net.URL) - */ - public URL getTargetAddress(MessageContext messageContext, - OMOutputFormat format, URL targetURL) throws AxisFault { - String httpMethod = - (String) messageContext.getProperty(Constants.Configuration.HTTP_METHOD); - - URL targetAddress = targetURL; //Let's initialize to this - //if the http method is GET, parameters are attached to the target URL - if ((httpMethod != null) - && Constants.Configuration.HTTP_METHOD_GET.equalsIgnoreCase(httpMethod)) { - String param = getParam(messageContext); - - if (param.length() > 0) { - String returnURLFile = targetURL.getFile() + "?" + param; - try { - targetAddress = - new URL(targetURL.getProtocol(), targetURL.getHost(), targetURL.getPort(), returnURLFile); - } catch (MalformedURLException murle) { - logger.error(murle.getMessage()); - throw new AxisFault(murle.getMessage(), murle); - } - } - } - - return targetAddress; - } - - /** - * Write the SOAP envelop to the given OutputStream. - * - * @see org.apache.axis2.kernel.MessageFormatter#writeTo(org.apache.axis2.context.MessageContext, org.apache.axiom.om.OMOutputFormat, java.io.OutputStream, boolean) - */ - public void writeTo(MessageContext messageContext, OMOutputFormat format, - OutputStream outputStream, boolean preserve) throws AxisFault { - //For POX drop the SOAP envelope and use the message body - OMElement element = messageContext.getEnvelope().getBody().getFirstElement(); - - try { - //Create the StAX document serializer - XMLStreamWriter streamWriter = new StAXDocumentSerializer(outputStream); - //Since we drop the SOAP envelop we have to manually write the start document and the end document events - streamWriter.writeStartDocument(); - element.serialize(streamWriter, preserve); - streamWriter.writeEndDocument(); - } catch (XMLStreamException xmlse) { - logger.error(xmlse.getMessage()); - throw new AxisFault(xmlse.getMessage(), xmlse); - } - } - - /** - * Construct URL parameters like, "param1=value1¶m2=value2" - * FIXME This is very HTTP specific. What about other transports - * - * @param messageContext - * @return Formatted URL parameters - */ - private String getParam(MessageContext messageContext) { - - OMElement dataOut = messageContext.getEnvelope().getBody().getFirstElement(); - Iterator it = dataOut.getChildElements(); - StringBuffer paramBuffer = new StringBuffer(); - - while (it.hasNext()) { - OMElement element = (OMElement) it.next(); - String parameter = element.getLocalName() + "=" + element.getText(); - paramBuffer.append(parameter); - paramBuffer.append("&"); - } - //We don't need a '&' at the end - paramBuffer.deleteCharAt(paramBuffer.length() - 1); - - return paramBuffer.toString(); - } -} diff --git a/modules/fastinfoset/test-resources/axis2.xml b/modules/fastinfoset/test-resources/axis2.xml deleted file mode 100644 index 9d06c85e51..0000000000 --- a/modules/fastinfoset/test-resources/axis2.xml +++ /dev/null @@ -1,286 +0,0 @@ -<!-- - ~ 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. - --> - -<axisconfig name="AxisJava2.0"> - <!-- ================================================= --> - <!-- Parameters --> - <!-- ================================================= --> - <parameter name="hotdeployment">true</parameter> - <parameter name="hotupdate">false</parameter> - <parameter name="enableMTOM">false</parameter> - <parameter name="enableSwA">false</parameter> - - <!--Uncomment if you want to enable file caching for attachments --> - <!--parameter name="cacheAttachments">true</parameter> - <parameter name="attachmentDIR"></parameter> - <parameter name="sizeThreshold">4000</parameter--> - - <!--This will give out the timout of the configuration contexts, in milliseconds--> - <parameter name="ConfigContextTimeoutInterval">30000</parameter> - - <!--During a fault, stacktrace can be sent with the fault message. The following flag will control --> - <!--that behaviour.--> - <parameter name="sendStacktraceDetailsWithFaults">false</parameter> - - <!--If there aren't any information available to find out the fault reason, we set the message of the expcetion--> - <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be --> - <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag--> - <!--is set then, Axis2 tries to get the first exception and set its message as the faultreason/Reason.--> - <parameter name="DrillDownToRootCauseForFaultReason">false</parameter> - - <parameter name="userName"></parameter> - <parameter name="password"></parameter> - - <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.--> - <!--<parameter name="ServicesDirectory">service</parameter>--> - <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path--> - <!--<parameter name="ModulesDirectory">modules</parameter>--> - - - - <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context--> - <!--root which can configured using the following contextRoot parameter--> - <!--<parameter name="contextRoot">axis2</parameter>--> - - <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distingiush those endpoints--> - <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this --> - <!--context path to proper Axis2 servlets--> - <!--<parameter name="servicePath">services</parameter>--> - <!--<parameter name="restPath">rest</parameter>--> - - <!-- Following parameter will completely disable REST handling in Axis2--> - <parameter name="disableREST" locked="true">false</parameter> - - <!-- If you have a frontend host which exposes this webservice using a different public URL --> - <!-- use this parameter to override autodetected url --> - <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>--> - - - <!-- The way of adding listener to the system--> - <!-- <listener class="org.apache.axis2.ObserverIMPL">--> - <!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>--> - <!-- </listener>--> - - <!-- ================================================= --> - <!-- Message Receivers --> - <!-- ================================================= --> - <!--This is the Deafult Message Receiver for the system , if you want to have MessageReceivers for --> - <!--all the other MEP implement it and add the correct entry to here , so that you can refer from--> - <!--any operation --> - <!--Note : You can ovride this for particular service by adding the same element with your requirement--> - <messageReceivers> - <messageReceiver mep="http://www.w3.org/ns/wsdl/in-only" - class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/> - <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out" - class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> - </messageReceivers> - - <!-- ================================================= --> - <!-- Message Formatter --> - <!-- ================================================= --> - <!--Following content type to message formatter mapping can be used to implement support for different message --> - <!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. --> - <messageFormatters> - <messageFormatter contentType="application/x-www-form-urlencoded" - class="org.apache.axis2.kernel.http.XFormURLEncodedFormatter"/> - <messageFormatter contentType="multipart/form-data" - class="org.apache.axis2.kernel.http.MultipartFormDataFormatter"/> - <messageFormatter contentType="application/xml" - class="org.apache.axis2.kernel.http.ApplicationXMLFormatter"/> - <messageFormatter contentType="application/fastinfoset" - class="org.apache.axis2.fastinfoset.FastInfosetPOXMessageFormatter"/> - <messageFormatter contentType="application/soap+fastinfoset" - class="org.apache.axis2.fastinfoset.FastInfosetMessageFormatter"/> - </messageFormatters> - - <!-- ================================================= --> - <!-- Message Builders --> - <!-- ================================================= --> - <!--Following content type to builder mapping can be used to implement support for different message --> - <!--formats in Axis2. These message formats are expected to be resolved based on the content type. --> - <messageBuilders> - <messageBuilder contentType="application/xml" - class="org.apache.axis2.builder.ApplicationXMLBuilder"/> - <messageBuilder contentType="application/x-www-form-urlencoded" - class="org.apache.axis2.builder.XFormURLEncodedBuilder"/> - <messageBuilder contentType="multipart/form-data" - class="org.apache.axis2.builder.MultipartFormDataBuilder"/> - <messageBuilder contentType="application/fastinfoset" - class="org.apache.axis2.fastinfoset.FastInfosetPOXBuilder"/> - <messageBuilder contentType="application/soap+fastinfoset" - class="org.apache.axis2.fastinfoset.FastInfosetBuilder"/> - </messageBuilders> - - <!-- ================================================= --> - <!-- Transport Ins --> - <!-- ================================================= --> - <transportReceiver name="http" - class="org.apache.axis2.transport.http.SimpleHTTPServer"> - <parameter name="port">8080</parameter> - <!-- Here is the complete list of supported parameters (see example settings further below): - port: the port to listen on (default 6060) - hostname: if non-null, url prefix used in reply-to endpoint references (default null) - originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1") - requestTimeout: value in millis of time that requests can wait for data (default 20000) - requestTcpNoDelay: true to maximize performance and minimize latency (default true) - false to minimize bandwidth consumption by combining segments - requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25) - requestMaxThreadPoolSize: number of threads available for request processing if queue fills us (default 150) - note that default queue never fills up: see HttpFactory - threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180) - note that no such threads can exist with default unbounded request queue - threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS) - --> - <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> --> - <!-- <parameter name="originServer">My-Server/1.1</parameter> --> - <!-- <parameter name="requestTimeout">10000</parameter> --> - <!-- <parameter name="requestTcpNoDelay">false</parameter> --> - <!-- <parameter name="requestCoreThreadPoolSize">50</parameter> --> - <!-- <parameter name="requestMaxThreadPoolSize">100</parameter> --> - <!-- <parameter name="threadKeepAliveTime">240000</parameter> --> - <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter> --> - </transportReceiver> - - <!-- ================================================= --> - <!-- Transport Outs --> - <!-- ================================================= --> - - <transportSender name="local" - class="org.apache.axis2.transport.local.LocalTransportSender"/> - <transportSender name="http" - class="org.apache.axis2.transport.http.impl.httpclient5.HTTPClient5TransportSender"> - <parameter name="PROTOCOL">HTTP/1.1</parameter> - <parameter name="Transfer-Encoding">chunked</parameter> - - <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages --> - <!-- <parameter name="OmitSOAP12Action">true</parameter> --> - </transportSender> - - <transportSender name="https" - class="org.apache.axis2.transport.http.impl.httpclient5.HTTPClient5TransportSender"> - <parameter name="PROTOCOL">HTTP/1.1</parameter> - <parameter name="Transfer-Encoding">chunked</parameter> - </transportSender> - - <!-- ================================================= --> - <!-- Global Modules --> - <!-- ================================================= --> - <!-- Comment this to disable Addressing --> - <!--<module ref="addressing"/>--> - - <!--Configuring module , providing parameters for modules whether they refer or not--> - <!--<moduleConfig name="addressing">--> - <!--<parameter name="addressingPara">N/A</parameter>--> - <!--</moduleConfig>--> - - <!-- ================================================= --> - <!-- Clustering --> - <!-- ================================================= --> - <!-- Configure and uncomment following for preparing Axis2 to a clustered environment --> - <!-- - <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager"> - <parameter name="param1">value1</parameter> - <configurationManager class="org.apache.axis2.cluster.tribes.configuration.TribesConfigurationManager"> - <listeners> - </listeners> - </configurationManager> - <contextManager class="org.apache.axis2.cluster.tribes.context.TribesContextManager"> - <listeners> - </listeners> - </contextManager> - </cluster> - --> - - <!-- ================================================= --> - <!-- Phases --> - <!-- ================================================= --> - <phaseOrder type="InFlow"> - <!-- System pre defined phases --> - <phase name="Transport"> - <handler name="RequestURIBasedDispatcher" - class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"> - <order phase="Transport"/> - </handler> - <handler name="SOAPActionBasedDispatcher" - class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"> - <order phase="Transport"/> - </handler> - </phase> - <phase name="Security"/> - <phase name="PreDispatch"/> - <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase"> - <handler name="AddressingBasedDispatcher" - class="org.apache.axis2.dispatchers.AddressingBasedDispatcher"/> - <handler name="RequestURIOperationDispatcher" - class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/> - - <handler name="SOAPMessageBodyBasedDispatcher" - class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/> - - <handler name="HTTPLocationBasedDispatcher" - class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/> - </phase> - <!-- System pre defined phases --> - <!-- After Postdispatch phase module author or or service author can add any phase he want --> - <phase name="OperationInPhase"/> - <phase name="soapmonitorPhase"/> - </phaseOrder> - <phaseOrder type="OutFlow"> - <!-- user can add his own phases to this area --> - <phase name="soapmonitorPhase"/> - <phase name="OperationOutPhase"/> - <!--system predefined phase--> - <!--these phase will run irrespective of the service--> - <phase name="PolicyDetermination"/> - <phase name="MessageOut"/> - <phase name="Security"/> - </phaseOrder> - <phaseOrder type="InFaultFlow"> - <phase name="PreDispatch"/> - <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase"> - <handler name="RequestURIBasedDispatcher" - class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/> - - <handler name="SOAPActionBasedDispatcher" - class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/> - - <handler name="AddressingBasedDispatcher" - class="org.apache.axis2.dispatchers.AddressingBasedDispatcher"/> - <handler name="RequestURIOperationDispatcher" - class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/> - - <handler name="SOAPMessageBodyBasedDispatcher" - class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/> - - <handler name="HTTPLocationBasedDispatcher" - class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/> - </phase> - <!-- user can add his own phases to this area --> - <phase name="OperationInFaultPhase"/> - <phase name="soapmonitorPhase"/> - </phaseOrder> - <phaseOrder type="OutFaultFlow"> - <!-- user can add his own phases to this area --> - <phase name="soapmonitorPhase"/> - <phase name="OperationOutFaultPhase"/> - <phase name="PolicyDetermination"/> - <phase name="MessageOut"/> - </phaseOrder> -</axisconfig> - diff --git a/modules/fastinfoset/test/org/apache/axis2/fastinfoset/FastInfosetInputOutputTest.java b/modules/fastinfoset/test/org/apache/axis2/fastinfoset/FastInfosetInputOutputTest.java deleted file mode 100644 index d12c571923..0000000000 --- a/modules/fastinfoset/test/org/apache/axis2/fastinfoset/FastInfosetInputOutputTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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.axis2.fastinfoset; - -import com.sun.xml.fastinfoset.stax.StAXDocumentParser; -import com.sun.xml.fastinfoset.stax.StAXDocumentSerializer; - -import org.apache.axiom.blob.Blobs; -import org.apache.axiom.blob.MemoryBlob; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMXMLBuilderFactory; -import org.apache.axiom.om.OMXMLParserWrapper; -import org.junit.Test; - -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; - -import static com.google.common.truth.Truth.assertAbout; -import static org.apache.axiom.truth.xml.XMLTruth.xml; - -import java.io.FileInputStream; -import java.io.OutputStream; - -public class FastInfosetInputOutputTest { - - /** - * This is to test how fast infoset interoperate with Axiom. - * This is how this test is organized. - * <pre> - * de-ser(wstx) ser(fast-info) de-ser(fast-info) ser(wstx) - * XML --------> Axiom ------> binary file --------------> Axiom ---------> XML - * </pre> - * <p/> - * Then the initial XML file and the last XML will be compared to see whether they are the same. - */ - @Test - public void testInputOutput() throws Exception { - String inputFile = "pom.xml"; - - // first let's read the xml document in to Axiom - OMElement element = OMXMLBuilderFactory.createOMBuilder( - new FileInputStream(inputFile)).getDocumentElement(); - - // output it using binary xml outputter - MemoryBlob blob = Blobs.createMemoryBlob(); - OutputStream out = blob.getOutputStream(); - XMLStreamWriter streamWriter = new StAXDocumentSerializer(out); - streamWriter.writeStartDocument(); - element.serialize(streamWriter); - streamWriter.writeEndDocument(); - out.close(); - - // now let's read the binary file in to Axiom - XMLStreamReader streamReader = new StAXDocumentParser(blob.getInputStream()); - OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(streamReader); - - assertAbout(xml()).that(builder.getDocumentElement()).hasSameContentAs(element); - } -} diff --git a/modules/fastinfoset/test/org/apache/axis2/fastinfoset/FastInfosetTest.java b/modules/fastinfoset/test/org/apache/axis2/fastinfoset/FastInfosetTest.java deleted file mode 100644 index 10bf8ed282..0000000000 --- a/modules/fastinfoset/test/org/apache/axis2/fastinfoset/FastInfosetTest.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * 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.axis2.fastinfoset; - -import junit.extensions.TestSetup; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import org.apache.axis2.addressing.EndpointReference; -import org.apache.axis2.context.ConfigurationContext; -import org.apache.axis2.context.ConfigurationContextFactory; -import org.apache.axis2.description.AxisService; -import org.apache.axis2.transport.http.SimpleHTTPServer; - -import java.io.File; -import java.io.IOException; -import java.net.ServerSocket; -import java.net.SocketException; -import java.rmi.RemoteException; - -public class FastInfosetTest extends TestCase { - - private static SimpleHTTPServer server; - private static AxisService service; - private static EndpointReference target; - private static ConfigurationContext configurationContext; - - public void testAdd() throws RemoteException { - SimpleAddServiceClient client = new SimpleAddServiceClient(target); //Comment to test with tcpmon. -// SimpleAddServiceClient client = new SimpleAddServiceClient(); //Uncomment to test with tcpmon. - - String result = client.addStrings("Hello ", "World!"); - System.out.println("Output: " + result); - TestCase.assertEquals("Hello World!", result); - - int result1 = client.addInts(17, 33); - System.out.println("Output: " + result1); - TestCase.assertEquals(50, result1); - - float result2 = client.addFloats(17.64f, 32.36f); - System.out.println("Output: " + result2); - TestCase.assertEquals(50.0f, result2, 0.0005f); - } - - - public void testAdd2() throws RemoteException { - SimpleAddServiceClient client = new SimpleAddServiceClient(target, true); //Comment to test with tcpmon. -//// SimpleAddServiceClient client = new SimpleAddServiceClient(); //Uncomment to test with tcpmon. -//// - String result = client.addStrings("Hello ", "World!"); - System.out.println("Output: " + result); - TestCase.assertEquals("Hello World!", result); - - int result1 = client.addInts(17, 33); - System.out.println("Output: " + result1); - TestCase.assertEquals(50, result1); - - float result2 = client.addFloats(17.64f, 32.36f); - System.out.println("Output: " + result2); - TestCase.assertEquals(50.0f, result2, 0.0005f); - } - - private static int findAvailablePort() throws SocketException, IOException { - //Create a server socket on any free socket to find a free socket. - ServerSocket ss = new ServerSocket(0); - int port = ss.getLocalPort(); - ss.close(); - - return port; - } - - public static Test suite() { - return new TestSetup(new TestSuite(FastInfosetTest.class)) { - public void setUp() throws Exception { - - System.out.println("Setting up the Simple HTTP Server"); - - int port = findAvailablePort(); - port = 5555; //Uncomment to test with tcpmon - target = new EndpointReference("http://127.0.0.1:" + (port) - + "/axis2/services/SimpleAddService"); - - File configFile = new File(System.getProperty("basedir",".") + "/test-resources/axis2.xml"); - configurationContext = ConfigurationContextFactory - .createConfigurationContextFromFileSystem("target/test-classes", configFile - .getAbsolutePath()); - - server = new SimpleHTTPServer(configurationContext, port); - - server.start(); - - service = AxisService.createService("org.apache.axis2.fastinfoset.SimpleAddService", - server.getConfigurationContext().getAxisConfiguration()); - - server.getConfigurationContext().getAxisConfiguration().addService( - service); - - System.out.println("Simple HTTP Server is started"); - } - - public void tearDown() throws Exception { - server.stop(); - System.out.println("Stopped the Simple HTTP Server"); - } - }; - } -} diff --git a/modules/fastinfoset/test/org/apache/axis2/fastinfoset/SimpleAddService.java b/modules/fastinfoset/test/org/apache/axis2/fastinfoset/SimpleAddService.java deleted file mode 100644 index 3a5fd92a6b..0000000000 --- a/modules/fastinfoset/test/org/apache/axis2/fastinfoset/SimpleAddService.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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.axis2.fastinfoset; - -public class SimpleAddService { - - public int addInts(int val1, int val2) { - System.out.println("Received " + val1 + " & " + val2); - return val1 + val2; - } - - public float addFloats(float val1, float val2) { - System.out.println("Received " + val1 + " & " + val2); - return val1 + val2; - } - - public String addStrings(String val1, String val2) { - System.out.println("Received " + val1 + " & " + val2); - return val1 + val2; - } -} diff --git a/modules/fastinfoset/test/org/apache/axis2/fastinfoset/SimpleAddServiceClient.java b/modules/fastinfoset/test/org/apache/axis2/fastinfoset/SimpleAddServiceClient.java deleted file mode 100644 index 8f8011ff2d..0000000000 --- a/modules/fastinfoset/test/org/apache/axis2/fastinfoset/SimpleAddServiceClient.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * 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.axis2.fastinfoset; - -import org.apache.axis2.AxisFault; -import org.apache.axis2.Constants; -import org.apache.axis2.addressing.EndpointReference; -import org.apache.axis2.client.Options; -import org.apache.axis2.client.ServiceClient; -import org.apache.axis2.context.ConfigurationContext; -import org.apache.axis2.context.ConfigurationContextFactory; -import org.apache.axis2.fastinfoset.SimpleAddServiceStub; -import org.apache.axis2.fastinfoset.SimpleAddServiceStub.AddFloats; -import org.apache.axis2.fastinfoset.SimpleAddServiceStub.AddFloatsResponse; -import org.apache.axis2.fastinfoset.SimpleAddServiceStub.AddInts; -import org.apache.axis2.fastinfoset.SimpleAddServiceStub.AddIntsResponse; -import org.apache.axis2.fastinfoset.SimpleAddServiceStub.AddStrings; -import org.apache.axis2.fastinfoset.SimpleAddServiceStub.AddStringsResponse; - -import java.rmi.RemoteException; - -public class SimpleAddServiceClient { - - private SimpleAddServiceStub serviceStub; - - /** - * @param args - */ - public static void main(String[] args) { - try { - SimpleAddServiceClient client = new SimpleAddServiceClient(); - System.out.println("Response 1 is " + client.addStrings("Hello ", "World!")); - System.out.println("Response 2 is " + client.addInts(23, 27)); - System.out.println("Response 3 is " + client.addFloats(22.84f, 27.16f)); - } catch (AxisFault af) { - af.printStackTrace(); - } catch (RemoteException re) { - re.printStackTrace(); - } - } - - /** - * Contructor which uses "http://localhost:8081/axis2/services/SimpleAddService" as the target. - * When the serrver runs at port 8080, this can be use with tcpmon for debugging. - * - * @throws AxisFault - */ - public SimpleAddServiceClient() throws AxisFault { - this(new EndpointReference("http://localhost:8081/axis2/services/SimpleAddService")); - } - - /** - * Constructor used by the default JUnit test case. - * - * @param target - * @throws AxisFault - */ - public SimpleAddServiceClient(EndpointReference target) throws AxisFault { - ConfigurationContext context = - ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-classes", "test-resources/axis2.xml"); - serviceStub = new SimpleAddServiceStub(context, target.getAddress()); - //serviceStub = new SimpleAddServiceStub(); - ServiceClient client= serviceStub._getServiceClient(); - Options options = client.getOptions(); - options.setProperty(Constants.Configuration.MESSAGE_TYPE, "application/soap+fastinfoset"); - } - - /** - * Constructor used by the default JUnit test case. - * - * @param target - * @throws AxisFault - */ - public SimpleAddServiceClient(EndpointReference target, boolean pox) throws AxisFault { - ConfigurationContext context = - ConfigurationContextFactory.createConfigurationContextFromFileSystem("target/test-classes", "test-resources/axis2.xml"); - serviceStub = new SimpleAddServiceStub(context, target.getAddress()); - //serviceStub = new SimpleAddServiceStub(); - ServiceClient client= serviceStub._getServiceClient(); - Options options = client.getOptions(); - if (pox) { - options.setProperty(Constants.Configuration.MESSAGE_TYPE, "application/fastinfoset"); - } else { - options.setProperty(Constants.Configuration.MESSAGE_TYPE, "application/soap+fastinfoset"); - } - } - - public String addStrings(String param0, String param1) throws RemoteException { - AddStrings addStrings = new SimpleAddServiceStub.AddStrings(); - addStrings.setVal1(param0); - addStrings.setVal2(param1); - AddStringsResponse response1 = serviceStub.addStrings(addStrings); - return response1.get_return(); - } - - public int addInts(int param0, int param1) throws RemoteException { - AddInts addInts = new SimpleAddServiceStub.AddInts(); - addInts.setVal1(param0); - addInts.setVal2(param1); - AddIntsResponse response2 = serviceStub.addInts(addInts); - return response2.get_return(); - } - - public float addFloats(float param0, float param1) throws RemoteException { - AddFloats addFloats = new SimpleAddServiceStub.AddFloats(); - addFloats.setVal1(param0); - addFloats.setVal2(param1); - AddFloatsResponse response3 = serviceStub.addFloats(addFloats); - return response3.get_return(); - } -} diff --git a/modules/webapp/pom.xml b/modules/webapp/pom.xml index e43483a90b..1d2aa969fb 100644 --- a/modules/webapp/pom.xml +++ b/modules/webapp/pom.xml @@ -56,11 +56,7 @@ <artifactId>axis2-spring</artifactId> <version>${project.version}</version> </dependency> - <dependency> - <groupId>org.apache.axis2</groupId> - <artifactId>axis2-fastinfoset</artifactId> - <version>${project.version}</version> - </dependency> + <!-- axis2-fastinfoset removed: AXIS2-6105 --> <dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2-jaxws</artifactId> @@ -351,8 +347,6 @@ WEB-INF/lib/spring-core-*.jar, WEB-INF/lib/spring-web-*.jar, WEB-INF/lib/aopalliance-*.jar, - WEB-INF/lib/bsf-*.jar, - WEB-INF/lib/FastInfoset-*.jar, WEB-INF/lib/js-*.jar </packagingExcludes> <webResources> diff --git a/pom.xml b/pom.xml index d355ef6e06..1c286b4c8c 100644 --- a/pom.xml +++ b/pom.xml @@ -381,7 +381,7 @@ <module>modules/adb-tests</module> <module>modules/addressing</module> <module>modules/codegen</module> - <module>modules/fastinfoset</module> + <!-- FastInfoset removed: AXIS2-6105 (binary XML, superseded by JSON + gzip) --> <module>modules/integration</module> <module>modules/java2wsdl</module> <!-- JiBX modules removed: AXIS2-6105 (dead project, last release 2016) --> @@ -465,7 +465,7 @@ <bsf.version>2.4.0</bsf.version> <commons.fileupload.version>2.0.0-M5</commons.fileupload.version> <commons.logging.version>1.3.6</commons.logging.version> - <fi.version>2.1.1</fi.version> + <!-- fi.version removed: AXIS2-6105 --> <google.gson.version>2.13.2</google.gson.version> <groovy.version>5.0.5</groovy.version> <httpcore.version>5.4.2</httpcore.version> @@ -505,11 +505,7 @@ <dependencyManagement> <dependencies> - <dependency> - <groupId>com.sun.xml.fastinfoset</groupId> - <artifactId>FastInfoset</artifactId> - <version>${fi.version}</version> - </dependency> + <!-- FastInfoset dep removed: AXIS2-6105 --> <dependency> <groupId>xml-resolver</groupId> <artifactId>xml-resolver</artifactId>
