1 /*
2 * Copyright 2009, Josh Devins, Jitr.org.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 package org.jitr.annotation;
18
19 import java.lang.annotation.Documented;
20 import java.lang.annotation.ElementType;
21 import java.lang.annotation.Inherited;
22 import java.lang.annotation.Retention;
23 import java.lang.annotation.RetentionPolicy;
24 import java.lang.annotation.Target;
25
26 import org.jitr.core.Defaults;
27 import org.jitr.core.OperationalMode;
28
29 /**
30 * Test classes that want to customize how Jitr runs will need to be annotated with this annotation.
31 * If your test class is not annotated with this, it will use the Jitr defaults as defined here.
32 */
33 @Documented
34 @Inherited
35 @Retention(RetentionPolicy.RUNTIME)
36 @Target(value = { ElementType.TYPE })
37 public @interface JitrConfiguration {
38
39 /**
40 * Sets the type of container you want Jitr to use.
41 */
42 Class<?> containerClass() default Object.class;
43
44 /**
45 * Sets the relative path of the working directory for the container. The default container work
46 * path will be correct for Maven projects.
47 *
48 * <p>
49 * Default value: <code>target</code>
50 * </p>
51 */
52 String containerWorkPath() default Defaults.DEFAULT_CONTAINER_WORK_PATH;
53
54 /**
55 * Context path for the war.
56 *
57 * <p>
58 * Default value: <code>/</code>
59 * </p>
60 */
61 String contextPath() default Defaults.DEFAULT_CONTEXT_PATH;
62
63 /**
64 * Operational mode to run in.
65 *
66 * <p>
67 * Default value: {@link OperationalMode#INTERNAL}
68 * </p>
69 */
70 OperationalMode mode() default OperationalMode.INTERNAL;
71
72 /**
73 * Set the port number for the container to use. To let Jitr choose a random, unused port, do
74 * not set this value.
75 *
76 * <p>
77 * Default value: <code>-1</code>
78 * </p>
79 */
80 int port() default Defaults.DEFAULT_PORT;
81
82 /**
83 * The path to the unpacked war. This is relative to the running location. The default war path
84 * will be correct for Maven projects.
85 *
86 * <p>
87 * Default value: <code>src/main/webapp</code>
88 * </p>
89 */
90 String warPath() default Defaults.DEFAULT_WAR_PATH;
91 }