rt/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/Http.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Mon, 09 Jun 2014 19:17:41 +0200
changeset 1623 d9cdfd8ef694
parent 797 7b5a053c6763
child 1787 ea12a3bb4b33
permissions -rw-r--r--
Remove the dirty hacks with names. The fix with the compiler should be good enough.
     1 /**
     2  * Back 2 Browser Bytecode Translator
     3  * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     4  *
     5  * This program is free software: you can redistribute it and/or modify
     6  * it under the terms of the GNU General Public License as published by
     7  * the Free Software Foundation, version 2 of the License.
     8  *
     9  * This program is distributed in the hope that it will be useful,
    10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  * GNU General Public License for more details.
    13  *
    14  * You should have received a copy of the GNU General Public License
    15  * along with this program. Look for COPYING file in the top folder.
    16  * If not, see http://opensource.org/licenses/GPL-2.0.
    17  */
    18 package org.apidesign.bck2brwsr.vmtest;
    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  * Exposes an {@link Resource HTTP page} or a set of {@link #value() pages} to the running {@link BrwsrTest}.
    27  *
    28  * @author Jaroslav Tulach <jtulach@netbeans.org>
    29  */
    30 @Retention(RetentionPolicy.RUNTIME)
    31 @Target({ElementType.METHOD, ElementType.TYPE})
    32 public @interface Http {
    33     /** Set of pages to make available */
    34     public Resource[] value();
    35     
    36     /** Describes single HTTP page to the running {@link BrwsrTest}, so it can be 
    37      * accessed under the specified {@link #path() relative path}. The page
    38      * content can either be specified inline via {@link #content()} or as
    39      * an external {@link #resource() resource}.
    40      *
    41      * @author Jaroslav Tulach <jtulach@netbeans.org>
    42      */
    43     @Retention(RetentionPolicy.RUNTIME)
    44     @Target({})
    45     public @interface Resource {
    46         /** path on the server that the test can use to access the exposed resource */
    47         String path();
    48         /** the content of the <code>Http.Resource</code> */
    49         String content();
    50         /** resource relative to the class that should be used instead of <code>content</code>.
    51          * Leave content equal to empty string.
    52          */
    53         String resource() default "";
    54         /** mime type of the resource */
    55         String mimeType();
    56         /** query parameters. Can be referenced from the {@link #content} as
    57          * <code>$0</code>, <code>$1</code>, etc. The values will be extracted
    58          * from URL parameters of the request.
    59          */
    60         String[] parameters() default {};
    61     }
    62 }