1 package org.apache.beehive.controls.api.versioning; 2 /* 3 * Copyright 2004 The Apache Software Foundation. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 * $Header:$ 18 */ 19 20 import java.lang.annotation.ElementType; 21 import java.lang.annotation.Retention; 22 import java.lang.annotation.RetentionPolicy; 23 import java.lang.annotation.Target; 24 25 /** 26 * Specifies the maximum version of the control interface that this implementation 27 * supports. Allowed on control implementations (interfaces annotated with 28 * <sp>@ControlImplementation). This version requirement is enforced at compile time 29 * of the implementation, and at runtime when the implementation is classloaded. 30 */ 31 @Retention(RetentionPolicy.RUNTIME) 32 @Target({ElementType.TYPE}) 33 public @interface VersionSupported 34 { 35 /** 36 * The major version of the control interface that this implementation 37 * supports. Any version number less than or equal to this value will suffice, 38 * implying that this constraint is only valid when backwards compatibility 39 * is part of the contract when increasing the version number. Negative 40 * values mean that any major version is acceptable (in which case this 41 * annotation should probably just not be 42 * present). 43 */ 44 int major(); 45 46 /** 47 * The minor version of the control interface that this implementation 48 * supports. Any version number less than or equal to this value will suffice. 49 * Negative values mean that any minor version is acceptable (the default case). 50 */ 51 int minor() default -1; 52 } 53