| /* |
| * 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.jaxrs; |
| |
| import org.apache.axis2.context.MessageContext; |
| import org.apache.axis2.description.AxisService; |
| import org.apache.axis2.description.AxisBindingOperation; |
| import org.apache.axis2.description.AxisEndpoint; |
| import org.apache.axis2.description.AxisBinding; |
| import org.apache.axis2.description.WSDL2Constants; |
| |
| import javax.ws.rs.Consumes; |
| import javax.ws.rs.GET; |
| import javax.ws.rs.POST; |
| import javax.ws.rs.PUT; |
| import javax.ws.rs.DELETE; |
| import javax.ws.rs.Path; |
| import javax.ws.rs.Produces; |
| import javax.xml.namespace.QName; |
| import java.util.Iterator; |
| |
| //root level annotations. some of these can be overriden by method level annotations. |
| @Path("testroot/") |
| @Consumes(value={"text/xml","application/xml"}) |
| @Produces("text/xml") |
| public class Service { |
| /* |
| * These are some operations for testing with plain archive deployment. here we try to test |
| * proper functionality of http:location & http:method. since these values can be overriden in the Services xml |
| * there are some test methods to test that behaviour too. |
| */ |
| // uses the root path, root input-output serialization & default httpMethod |
| |
| @Path("add/{data1}") |
| public String addDataFromURL(String data1){ |
| |
| return data1+" created"; |
| } |
| |
| @POST |
| @Path("getFromBody/{data1}") |
| @Consumes("application/xml") |
| @Produces("text/xml") |
| public String addDataFromURLandBody(String data1,String data2){ |
| |
| return data1+" and "+data2+" created"; |
| |
| } |
| |
| @PUT |
| @Produces("application/xml") |
| @Path("update/{data1}") |
| public String updateDataFromURL(String data1){ |
| return data1+" updated"; |
| |
| } |
| |
| @PUT |
| @Path("getFromBody/{data1}") |
| public String updateDataFromURLandBody(String data1,String data2){ |
| |
| return data1+" and "+data2+" updated"; |
| } |
| |
| @GET |
| @Path("get/{data1}") |
| public String getDataFromURL(String data1){ |
| |
| return data1+" read"; |
| |
| |
| } |
| |
| @GET |
| @Path("getFromBody/{data1}") |
| public String getDataFromURLandBody(String data1,String data2){ |
| |
| return data1+" and "+data2+" read"; |
| } |
| |
| @DELETE |
| @Path("delete/{data1}") |
| public String deleteDataFromURL(String data1){ |
| |
| return data1+" deleted"; |
| } |
| |
| @DELETE |
| @Path("getFromBody/{data1}") |
| public String deleteDataFromURLandBody(String data1,String data2){ |
| |
| return data1+" and "+data2+" deleted"; |
| |
| } |
| |
| |
| @POST |
| @Path("wrong/error/{data1}") |
| public String checkServicesXMLoverriding(String data1,String data2){ |
| |
| return data1+" and "+data2+" correct"; |
| |
| } |
| |
| |
| public boolean checkTypePublishing(){ |
| |
| MessageContext msgctx= MessageContext.getCurrentMessageContext(); |
| AxisService axisServce= msgctx.getAxisService(); |
| AxisEndpoint axisEndpoint= axisServce.getEndpoint("AnnotationServiceHttpEndpoint"); |
| AxisBinding axisBinding=axisEndpoint.getBinding(); |
| AxisBindingOperation axisBindingOperation; |
| Iterator<AxisBindingOperation> iterator=axisBinding.getChildren(); |
| |
| |
| while(iterator.hasNext()){ |
| axisBindingOperation=iterator.next(); |
| if(axisBindingOperation.getName().equals(new QName("addDataFromURLandBody"))){ |
| if(!axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_LOCATION).equals("testroot/getFromBody/{data1}")){ |
| System.out.println("wrong http location : found : "+axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_LOCATION)+" expected : testroot/getFromBody/{data1}" ); |
| return false; |
| } |
| if(!axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_METHOD).equals("POST")){ |
| System.out.println("wrong http method : found : "+axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_METHOD)+" expected : POST" ); |
| return false; |
| } |
| |
| if(!axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_INPUT_SERIALIZATION).equals("application/xml")){ |
| System.out.println("INPUT SERIALIZATION TESTS"); |
| System.out.println("wrong input serialization : found : "+ axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_INPUT_SERIALIZATION) +" expected : application/xml" ); |
| return false; |
| } |
| |
| if(!axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_OUTPUT_SERIALIZATION).equals("text/xml")){ |
| System.out.println("OUTPUT SERIALIZATION TEST"); |
| System.out.println("wrong output serialization : found : "+axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_OUTPUT_SERIALIZATION)+" expected : text/xml" ); |
| return false; |
| } |
| System.out.println("Type publishing test \"addDataFromURLandBody\" OK........."); |
| } |
| |
| if(axisBindingOperation.getName().equals(new QName("updateDataFromURL"))){ |
| |
| if(!axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_LOCATION).equals("testroot/update/{data1}")){ |
| System.out.println("wrong http location : found : "+axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_LOCATION)+" expected : testroot/update/{data1}" ); |
| return false; |
| } |
| if(!axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_METHOD).equals("PUT")){ |
| System.out.println("wrong http method : found : "+axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_METHOD)+" expected : PUT" ); |
| return false; |
| } |
| if(!axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_INPUT_SERIALIZATION).equals("text/xml")){ |
| System.out.println("wrong input serialization : found : "+axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_INPUT_SERIALIZATION)+" expected : text/xml" ); |
| return false; |
| } |
| if(!axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_OUTPUT_SERIALIZATION).equals("application/xml")) { |
| System.out.println("wrong output serialization : found : "+axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_OUTPUT_SERIALIZATION)+" expected : application/xml" ); |
| return false; |
| } |
| System.out.println("Type publishing test \"updateDataFromURL\" OK........."); |
| } |
| |
| if(axisBindingOperation.getName().equals(new QName("checkServicesXMLoverriding"))){ |
| if(!axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_LOCATION).equals("serviceroot/check")){ |
| System.out.println("wrong http location : found : "+axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_LOCATION)+" expected : serviceroot/check" ); |
| return false; |
| } |
| if(!axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_METHOD).equals("POST")){ |
| System.out.println("wrong http method : found : "+axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_METHOD)+" expected : POST" ); |
| return false; |
| } |
| if(!axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_INPUT_SERIALIZATION).equals("application/xml")){ |
| System.out.println("wrong input serialization : found : "+axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_INPUT_SERIALIZATION)+" expected : application/xml" ); |
| return false; |
| } |
| if(!axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_OUTPUT_SERIALIZATION).equals("application/xml")) { |
| System.out.println("wrong output serialization : found : "+axisBindingOperation.getProperty(WSDL2Constants.ATTR_WHTTP_OUTPUT_SERIALIZATION)+" expected : application/xml" ); |
| return false; |
| } |
| System.out.println("Type publishing test \"checkServicesXMLoverriding\" OK........."); |
| } |
| } |
| return true; // all the test are ok |
| } |
| |
| |
| |
| } |
| |
| |
| |