/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.utils.common.rpc;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Annotation to mark service interfaces that are allowed to be used by remote instances. All methods in these interfaces are intended for
* remote invocation. When it makes sense for a service implementation to provide both local and remote methods via service interface, it
* should implement both a local and a remote interface, with only the remote interface carrying this annotation.
* <p>
* To ensure explicit exception handling, every method in a {@link RemotableService} must declare {@link RemoteOperationException} as a
* checked exception. This requirement will be enforced by the RPC implementation once migration is complete.
*
* @author Robert Mischke
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface RemotableService {
}