Package org.apache.jaxrs

Source Code of org.apache.jaxrs.Service

/*
* 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    
   }



}


TOP

Related Classes of org.apache.jaxrs.Service

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.