/* * Copyright 2009 Toni Menzel * * Licensed 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.ops4j.pax.exam.junit; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * Annotation that marks methods belonging into a certain context (those methods marked with {@link org.junit.Test}). * For example, you can have multiple configuration (see {$link org.ops4j.pax.exam.junit.Configuration}) but they belong * to different contexts. So you annate both of them with this annotation. Then you annote the actual test method with * exactly the same annotation. * This approach makes configuration+test method coupling independent from nameing of methods (different from AppliesTo Annotation). * * @author Toni Menzel (toni@okidokiteam.com) * @since 0.3.0, January 9, 2009 */ @Retention( RetentionPolicy.RUNTIME ) @Target( ElementType.METHOD ) public @interface RequiresConfiguration { /** * A string that is matched against any other context marker. * By default (value not specified) the value is an empty string. * So if you skip the annotation completely it still glues together all methods. * (in this case you should not have clashing methods in your test class like multiple configurations). * * @return an arbitrary named string referencing this context. */ public abstract String[] value() default { "" }; }