All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.cxf.annotations.UseAsyncMethod Maven / Gradle / Ivy

/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

package org.apache.cxf.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
 * Instructs the runtime to dispatch using the async method
 * on service if continuations are available.  This only applies
 * to the JAX-WS frontend at this time.
 * 
 * Instead of calling the "X methodName(Y, Z...) method, it will
 * call the "Future methodName(Y, Z, ... AsyncHandler)"
 * method passing in an AsyncHandler that you will need to call when
 * the response is ready.   An example would be:
 * 
 * 
 * public Future greetMeAsync(final String requestType,
 *                               final AsyncHandler asyncHandler) {
 *     final ServerAsyncResponse r = new ServerAsyncResponse();
 *     new Thread() {
 *         public void run() {
 *            //do some work on a backgound thread to generate the response...
 *            GreetMeResponse resp = new GreetMeResponse();
 *            resp.setResponseType("Hello " + requestType);
 *            r.set(resp);
 *            asyncHandler.handleResponse(r);                    
 *         }
 *    } .start();
 *    return r;
 * }
 * 
* * The use of the org.apache.cxf.jaxws.ServerAsyncResponse class for the response * as shown above can simplify things and is recommended. */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.METHOD }) public @interface UseAsyncMethod { /** * By default, if continuations are not available, * it will use the non-async method. If you ALWAYS * want the async method called, set this to true. However, * that can cause threads to block. */ boolean always() default false; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy