Author: sagara Date: Mon Jan 30 07:34:02 2012 New Revision: 1237553 URL: http://svn.apache.org/viewvc?rev=1237553&view=rev Log: Applied patch for AXIS2-5234 and AXIS2-5235.
Added: axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/ axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/axis2.xml (with props) axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/ axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService1/ axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService1/META-INF/ axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService1/META-INF/services.xml (with props) axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService2/ axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService2/META-INF/ axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService2/META-INF/services.xml (with props) axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService3/ axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService3/META-INF/ axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService3/META-INF/services.xml (with props) axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/DummyTransportListener.java (with props) axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/ExposedTransportsTest.java (with props) Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java Modified: axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java?rev=1237553&r1=1237552&r2=1237553&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java (original) +++ axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java Mon Jan 30 07:34:02 2012 @@ -338,14 +338,22 @@ public class ServiceBuilder extends Desc while (transport_itr.hasNext()) { OMElement trsEle = (OMElement) transport_itr.next(); String transportName = trsEle.getText().trim(); - trs.add(transportName); if (axisConfig.getTransportIn(transportName) == null) { - throw new AxisFault("Service [ " + service.getName() + log.warn("Service [ " + service.getName() + "] is trying to expose in a transport : " - + transports + + transportName + " and which is not available in Axis2"); - } + } else { + trs.add(transportName); + } } + + if(trs.isEmpty()){ + throw new AxisFault("Service [" + service.getName() + + "] is trying expose in tranpsorts: " + + transports + + " and which is/are not available in Axis2"); + } service.setExposedTransports(trs); } // processing operations Added: axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/axis2.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/axis2.xml?rev=1237553&view=auto ============================================================================== --- axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/axis2.xml (added) +++ axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/axis2.xml Mon Jan 30 07:34:02 2012 @@ -0,0 +1,456 @@ +<!-- + ~ 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">true</parameter> + + <parameter name="userName">admin</parameter> + <parameter name="password">axis2</parameter> + + <parameter name="seralizeLocation">./target</parameter> + + + <!-- ================================================= --> + <!-- Message Receivers --> + <!-- ================================================= --> + <!-- This is the Deafult Message Receiver for the Request Response style Operations --> + <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> + + <!-- ================================================= --> + <!-- Transport Ins --> + <!-- ================================================= --> + <transportReceiver name="http" + class="org.apache.axis2.deployment.DummyTransportListener"> + <parameter name="port">6071</parameter> + <!--If you want to give your own host address for EPR generation--> + <!--uncomment following parameter , and set as you required.--> + <!--<parameter name="hostname">http://myApp.com/ws</parameter>--> + </transportReceiver> + + <transportReceiver name="jms" + class="org.apache.axis2.deployment.DummyTransportListener"> + <parameter name="port">6072</parameter> + <!--If you want to give your own host address for EPR generation--> + <!--uncomment following parameter , and set as you required.--> + <!--<parameter name="hostname">http://myApp.com/ws</parameter>--> + </transportReceiver> + + + <phaseOrder type="InFlow"> + <!-- System pre defined phases --> + <phase name="Transport"> + <handler name="RequestURIBasedDispatcher" + class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/> + <handler name="SOAPActionBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/> + </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="SOAPMessageBodyBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/> + </phase> + <!-- System pre defined phases --> + <!-- After Postdispatch phase module author or or service author can add any phase he want --> + <phase name="OperationInPhase"/> + </phaseOrder> + <phaseOrder type="OutFlow"> + <!-- user can add his own phases to this area --> + <phase name="OperationOutPhase"/> + <!--system predefined phase--> + <!--these phase will run irrespective of the service--> + <phase name="PolicyDetermination"/> + <phase name="MessageOut"/> + </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="SOAPMessageBodyBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/> + </phase> + <!-- user can add his own phases to this area --> + <phase name="OperationInFaultPhase"/> + </phaseOrder> + <phaseOrder type="OutFaultFlow"> + <!-- user can add his own phases to this area --> + <phase name="OperationOutFaultPhase"/> + <phase name="PolicyDetermination"/> + <phase name="MessageOut"/> + </phaseOrder> +</axisconfig> + +<!-- + ~ 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">true</parameter> + + <parameter name="userName">admin</parameter> + <parameter name="password">axis2</parameter> + + <parameter name="seralizeLocation">./target</parameter> + + + <!-- ================================================= --> + <!-- Message Receivers --> + <!-- ================================================= --> + <!-- This is the Deafult Message Receiver for the Request Response style Operations --> + <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> + + <!-- ================================================= --> + <!-- Transport Ins --> + <!-- ================================================= --> + <transportReceiver name="http" + class="org.apache.axis2.deployment.DummyTransportListener"> + <parameter name="port">6071</parameter> + <!--If you want to give your own host address for EPR generation--> + <!--uncomment following parameter , and set as you required.--> + <!--<parameter name="hostname">http://myApp.com/ws</parameter>--> + </transportReceiver> + + <transportReceiver name="jms" + class="org.apache.axis2.deployment.DummyTransportListener"> + <parameter name="port">6072</parameter> + <!--If you want to give your own host address for EPR generation--> + <!--uncomment following parameter , and set as you required.--> + <!--<parameter name="hostname">http://myApp.com/ws</parameter>--> + </transportReceiver> + + + <phaseOrder type="InFlow"> + <!-- System pre defined phases --> + <phase name="Transport"> + <handler name="RequestURIBasedDispatcher" + class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/> + <handler name="SOAPActionBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/> + </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="SOAPMessageBodyBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/> + </phase> + <!-- System pre defined phases --> + <!-- After Postdispatch phase module author or or service author can add any phase he want --> + <phase name="OperationInPhase"/> + </phaseOrder> + <phaseOrder type="OutFlow"> + <!-- user can add his own phases to this area --> + <phase name="OperationOutPhase"/> + <!--system predefined phase--> + <!--these phase will run irrespective of the service--> + <phase name="PolicyDetermination"/> + <phase name="MessageOut"/> + </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="SOAPMessageBodyBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/> + </phase> + <!-- user can add his own phases to this area --> + <phase name="OperationInFaultPhase"/> + </phaseOrder> + <phaseOrder type="OutFaultFlow"> + <!-- user can add his own phases to this area --> + <phase name="OperationOutFaultPhase"/> + <phase name="PolicyDetermination"/> + <phase name="MessageOut"/> + </phaseOrder> +</axisconfig> + +<!-- + ~ 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">true</parameter> + + <parameter name="userName">admin</parameter> + <parameter name="password">axis2</parameter> + + <parameter name="seralizeLocation">./target</parameter> + + + <!-- ================================================= --> + <!-- Message Receivers --> + <!-- ================================================= --> + <!-- This is the Deafult Message Receiver for the Request Response style Operations --> + <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> + + <!-- ================================================= --> + <!-- Transport Ins --> + <!-- ================================================= --> + <transportReceiver name="http" + class="org.apache.axis2.deployment.DummyTransportListener"> + <parameter name="port">6071</parameter> + <!--If you want to give your own host address for EPR generation--> + <!--uncomment following parameter , and set as you required.--> + <!--<parameter name="hostname">http://myApp.com/ws</parameter>--> + </transportReceiver> + + <transportReceiver name="jms" + class="org.apache.axis2.deployment.DummyTransportListener"> + <parameter name="port">6072</parameter> + <!--If you want to give your own host address for EPR generation--> + <!--uncomment following parameter , and set as you required.--> + <!--<parameter name="hostname">http://myApp.com/ws</parameter>--> + </transportReceiver> + + + <phaseOrder type="InFlow"> + <!-- System pre defined phases --> + <phase name="Transport"> + <handler name="RequestURIBasedDispatcher" + class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/> + <handler name="SOAPActionBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/> + </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="SOAPMessageBodyBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/> + </phase> + <!-- System pre defined phases --> + <!-- After Postdispatch phase module author or or service author can add any phase he want --> + <phase name="OperationInPhase"/> + </phaseOrder> + <phaseOrder type="OutFlow"> + <!-- user can add his own phases to this area --> + <phase name="OperationOutPhase"/> + <!--system predefined phase--> + <!--these phase will run irrespective of the service--> + <phase name="PolicyDetermination"/> + <phase name="MessageOut"/> + </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="SOAPMessageBodyBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/> + </phase> + <!-- user can add his own phases to this area --> + <phase name="OperationInFaultPhase"/> + </phaseOrder> + <phaseOrder type="OutFaultFlow"> + <!-- user can add his own phases to this area --> + <phase name="OperationOutFaultPhase"/> + <phase name="PolicyDetermination"/> + <phase name="MessageOut"/> + </phaseOrder> +</axisconfig> + +<!-- + ~ 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">true</parameter> + + <parameter name="userName">admin</parameter> + <parameter name="password">axis2</parameter> + + <parameter name="seralizeLocation">./target</parameter> + + + <!-- ================================================= --> + <!-- Message Receivers --> + <!-- ================================================= --> + <!-- This is the Deafult Message Receiver for the Request Response style Operations --> + <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> + + <!-- ================================================= --> + <!-- Transport Ins --> + <!-- ================================================= --> + <transportReceiver name="http" + class="org.apache.axis2.deployment.DummyTransportListener"> + <parameter name="port">6071</parameter> + <!--If you want to give your own host address for EPR generation--> + <!--uncomment following parameter , and set as you required.--> + <!--<parameter name="hostname">http://myApp.com/ws</parameter>--> + </transportReceiver> + + <transportReceiver name="jms" + class="org.apache.axis2.deployment.DummyTransportListener"> + <parameter name="port">6072</parameter> + <!--If you want to give your own host address for EPR generation--> + <!--uncomment following parameter , and set as you required.--> + <!--<parameter name="hostname">http://myApp.com/ws</parameter>--> + </transportReceiver> + + + <phaseOrder type="InFlow"> + <!-- System pre defined phases --> + <phase name="Transport"> + <handler name="RequestURIBasedDispatcher" + class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/> + <handler name="SOAPActionBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/> + </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="SOAPMessageBodyBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/> + </phase> + <!-- System pre defined phases --> + <!-- After Postdispatch phase module author or or service author can add any phase he want --> + <phase name="OperationInPhase"/> + </phaseOrder> + <phaseOrder type="OutFlow"> + <!-- user can add his own phases to this area --> + <phase name="OperationOutPhase"/> + <!--system predefined phase--> + <!--these phase will run irrespective of the service--> + <phase name="PolicyDetermination"/> + <phase name="MessageOut"/> + </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="SOAPMessageBodyBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/> + </phase> + <!-- user can add his own phases to this area --> + <phase name="OperationInFaultPhase"/> + </phaseOrder> + <phaseOrder type="OutFaultFlow"> + <!-- user can add his own phases to this area --> + <phase name="OperationOutFaultPhase"/> + <phase name="PolicyDetermination"/> + <phase name="MessageOut"/> + </phaseOrder> +</axisconfig> + Propchange: axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/axis2.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService1/META-INF/services.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService1/META-INF/services.xml?rev=1237553&view=auto ============================================================================== --- axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService1/META-INF/services.xml (added) +++ axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService1/META-INF/services.xml Mon Jan 30 07:34:02 2012 @@ -0,0 +1,136 @@ +<!-- + ~ 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. + --> + +<serviceGroup> + <!-- EchoService1 should only be exposed on http --> + <service name="EchoService1"> + <description> + This service echo the given input , and this was developed to text the axis system working + correctly + </description> + + <transports> + <transport>http</transport> + </transports> + + <parameter name="ServiceClass">org.apache.axis2.sample.echo.EchoImpl</parameter> + </service> +</serviceGroup> +<!-- + ~ 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. + --> + +<serviceGroup> + <!-- EchoService1 should only be exposed on http --> + <service name="EchoService1"> + <description> + This service echo the given input , and this was developed to text the axis system working + correctly + </description> + + <transports> + <transport>http</transport> + </transports> + + <parameter name="ServiceClass">org.apache.axis2.sample.echo.EchoImpl</parameter> + </service> +</serviceGroup> +<!-- + ~ 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. + --> + +<serviceGroup> + <!-- EchoService1 should only be exposed on http --> + <service name="EchoService1"> + <description> + This service echo the given input , and this was developed to text the axis system working + correctly + </description> + + <transports> + <transport>http</transport> + </transports> + + <parameter name="ServiceClass">org.apache.axis2.sample.echo.EchoImpl</parameter> + </service> +</serviceGroup> +<!-- + ~ 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. + --> + +<serviceGroup> + <!-- EchoService1 should only be exposed on http --> + <service name="EchoService1"> + <description> + This service echo the given input , and this was developed to text the axis system working + correctly + </description> + + <transports> + <transport>http</transport> + </transports> + + <parameter name="ServiceClass">org.apache.axis2.sample.echo.EchoImpl</parameter> + </service> +</serviceGroup> \ No newline at end of file Propchange: axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService1/META-INF/services.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService2/META-INF/services.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService2/META-INF/services.xml?rev=1237553&view=auto ============================================================================== --- axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService2/META-INF/services.xml (added) +++ axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService2/META-INF/services.xml Mon Jan 30 07:34:02 2012 @@ -0,0 +1,148 @@ +<!-- + ~ 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. + --> + +<serviceGroup> + <!-- https transport is not available in Axis2. But the deployment of the EchoService2 should not fail. + and also EchoService2 should be deployed in http --> + <service name="EchoService2"> + <description> + This service echo the given input , and this was developed to text the axis system working + correctly + </description> + + <transports> + <transport>http</transport> + <transport>https</transport> + <transport>jms</transport> + </transports> + + <parameter name="ServiceClass">org.apache.axis2.sample.echo.EchoImpl</parameter> + </service> +</serviceGroup> +<!-- + ~ 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. + --> + +<serviceGroup> + <!-- https transport is not available in Axis2. But the deployment of the EchoService2 should not fail. + and also EchoService2 should be deployed in http --> + <service name="EchoService2"> + <description> + This service echo the given input , and this was developed to text the axis system working + correctly + </description> + + <transports> + <transport>http</transport> + <transport>https</transport> + <transport>jms</transport> + </transports> + + <parameter name="ServiceClass">org.apache.axis2.sample.echo.EchoImpl</parameter> + </service> +</serviceGroup> +<!-- + ~ 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. + --> + +<serviceGroup> + <!-- https transport is not available in Axis2. But the deployment of the EchoService2 should not fail. + and also EchoService2 should be deployed in http --> + <service name="EchoService2"> + <description> + This service echo the given input , and this was developed to text the axis system working + correctly + </description> + + <transports> + <transport>http</transport> + <transport>https</transport> + <transport>jms</transport> + </transports> + + <parameter name="ServiceClass">org.apache.axis2.sample.echo.EchoImpl</parameter> + </service> +</serviceGroup> +<!-- + ~ 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. + --> + +<serviceGroup> + <!-- https transport is not available in Axis2. But the deployment of the EchoService2 should not fail. + and also EchoService2 should be deployed in http --> + <service name="EchoService2"> + <description> + This service echo the given input , and this was developed to text the axis system working + correctly + </description> + + <transports> + <transport>http</transport> + <transport>https</transport> + <transport>jms</transport> + </transports> + + <parameter name="ServiceClass">org.apache.axis2.sample.echo.EchoImpl</parameter> + </service> +</serviceGroup> \ No newline at end of file Propchange: axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService2/META-INF/services.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService3/META-INF/services.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService3/META-INF/services.xml?rev=1237553&view=auto ============================================================================== --- axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService3/META-INF/services.xml (added) +++ axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService3/META-INF/services.xml Mon Jan 30 07:34:02 2012 @@ -0,0 +1,136 @@ +<!-- + ~ 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. + --> + +<serviceGroup> + <!-- https transport is not available in Axis2. Therefore the deployment of the EchoService2 should fail. --> + <service name="EchoService3"> + <description> + This service echo the given input , and this was developed to text the axis system working + correctly + </description> + + <transports> + <transport>https</transport> + </transports> + + <parameter name="ServiceClass">org.apache.axis2.sample.echo.EchoImpl</parameter> + </service> +</serviceGroup> +<!-- + ~ 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. + --> + +<serviceGroup> + <!-- https transport is not available in Axis2. Therefore the deployment of the EchoService2 should fail. --> + <service name="EchoService3"> + <description> + This service echo the given input , and this was developed to text the axis system working + correctly + </description> + + <transports> + <transport>https</transport> + </transports> + + <parameter name="ServiceClass">org.apache.axis2.sample.echo.EchoImpl</parameter> + </service> +</serviceGroup> +<!-- + ~ 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. + --> + +<serviceGroup> + <!-- https transport is not available in Axis2. Therefore the deployment of the EchoService2 should fail. --> + <service name="EchoService3"> + <description> + This service echo the given input , and this was developed to text the axis system working + correctly + </description> + + <transports> + <transport>https</transport> + </transports> + + <parameter name="ServiceClass">org.apache.axis2.sample.echo.EchoImpl</parameter> + </service> +</serviceGroup> +<!-- + ~ 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. + --> + +<serviceGroup> + <!-- https transport is not available in Axis2. Therefore the deployment of the EchoService2 should fail. --> + <service name="EchoService3"> + <description> + This service echo the given input , and this was developed to text the axis system working + correctly + </description> + + <transports> + <transport>https</transport> + </transports> + + <parameter name="ServiceClass">org.apache.axis2.sample.echo.EchoImpl</parameter> + </service> +</serviceGroup> \ No newline at end of file Propchange: axis/axis2/java/core/trunk/modules/kernel/test-resources/deployment/exposedTransportsRepo/services/echoService3/META-INF/services.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/DummyTransportListener.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/DummyTransportListener.java?rev=1237553&view=auto ============================================================================== --- axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/DummyTransportListener.java (added) +++ axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/DummyTransportListener.java Mon Jan 30 07:34:02 2012 @@ -0,0 +1,58 @@ +/* + * 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.deployment; + +import org.apache.axis2.AxisFault; +import org.apache.axis2.addressing.EndpointReference; +import org.apache.axis2.context.ConfigurationContext; +import org.apache.axis2.context.MessageContext; +import org.apache.axis2.context.SessionContext; +import org.apache.axis2.description.TransportInDescription; +import org.apache.axis2.transport.TransportListener; + +public class DummyTransportListener implements TransportListener { + public void init(ConfigurationContext axisConf, TransportInDescription transprtIn) throws AxisFault { + //To change body of implemented methods use File | Settings | File Templates. + } + + public void start() throws AxisFault { + //To change body of implemented methods use File | Settings | File Templates. + } + + public void stop() throws AxisFault { + //To change body of implemented methods use File | Settings | File Templates. + } + + public EndpointReference getEPRForService(String serviceName, String ip) throws AxisFault { + return null; //To change body of implemented methods use File | Settings | File Templates. + } + + public EndpointReference[] getEPRsForService(String serviceName, String ip) throws AxisFault { + return new EndpointReference[0]; //To change body of implemented methods use File | Settings | File Templates. + } + + public SessionContext getSessionContext(MessageContext messageContext) { + return null; //To change body of implemented methods use File | Settings | File Templates. + } + + public void destroy() { + //To change body of implemented methods use File | Settings | File Templates. + } +} Propchange: axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/DummyTransportListener.java ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/ExposedTransportsTest.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/ExposedTransportsTest.java?rev=1237553&view=auto ============================================================================== --- axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/ExposedTransportsTest.java (added) +++ axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/ExposedTransportsTest.java Mon Jan 30 07:34:02 2012 @@ -0,0 +1,99 @@ +/* + * 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.deployment; + +import junit.framework.TestCase; +import org.apache.axis2.AbstractTestCase; +import org.apache.axis2.AxisFault; +import org.apache.axis2.context.ConfigurationContextFactory; +import org.apache.axis2.description.AxisService; +import org.apache.axis2.engine.AxisConfiguration; + +import java.util.List; + +/** + * When you develop service, you can specify the list of transports on which you service should be exposed. + * This class will test this functionality. + */ +public class ExposedTransportsTest extends TestCase { + AxisConfiguration ar; + String repo = AbstractTestCase.basedir + "/test-resources/deployment/exposedTransportsRepo"; + + protected void setUp() throws Exception { + ar = ConfigurationContextFactory.createConfigurationContextFromFileSystem(repo, repo + "/axis2.xml") + .getAxisConfiguration(); + } + + /** + * EchoService1 should only be exposed on http + * @throws AxisFault in the case of an Error + */ + public void testExposedTransportsEchoService1() throws AxisFault { + AxisService service1 = ar.getService("EchoService1"); + assertNotNull(service1); + + List<String> exposedTransportsList = service1.getExposedTransports(); + assertFalse("Exposed Transports list should not be empty.", exposedTransportsList.isEmpty()); + + assertTrue("EchoService1 is not exposed on http.", checkExistenceInList(exposedTransportsList, "http")); + + assertEquals("EchoService1 should only be exposed on http.", 1, exposedTransportsList.size()); + } + + /** + * https transport is not available in Axis2. But the deployment of the EchoService2 should not fail. + * and also EchoService2 should be deployed in http + * @throws AxisFault in the case of an Error + */ + public void testExposedTransportsEchoService2() throws AxisFault { + + AxisService service1 = ar.getService("EchoService2"); + assertNotNull(service1); + + List<String> exposedTransportsList = service1.getExposedTransports(); + assertFalse("Exposed Transport list should not be empty.", exposedTransportsList.isEmpty()); + + assertFalse("EchoService2 should not be exposed on https.", checkExistenceInList(exposedTransportsList, "https")); + + assertTrue("EchoService2 is not exposed on http.", checkExistenceInList(exposedTransportsList, "http")); + + assertTrue("EchoService2 is not exposed on jms.", checkExistenceInList(exposedTransportsList, "jms")); + + assertEquals("EchoService1 should only be exposed on http.", 2, exposedTransportsList.size()); + } + + /** + * https transport is not available in Axis2. Therefore the deployment of the EchoService2 should fail. + * @throws AxisFault in the case of an Error + */ + public void testExposedTransportsEchoService3() throws AxisFault { + AxisService service1 = ar.getService("EchoService3"); + assertNull("EchoService3 deployment should fail, because it has been exposed in unavailable transports.", service1); + } + + private boolean checkExistenceInList(List<String> exposedTransportsList, String value){ + for(String transportName : exposedTransportsList){ + if(value.equalsIgnoreCase(transportName)) { + return true; + } + } + return false; + } +} Propchange: axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/deployment/ExposedTransportsTest.java ------------------------------------------------------------------------------ svn:eol-style = native