/**
 * Copyright (c) 2013-2016, The SeedStack authors <http://seedstack.org>
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */
package org.seedstack.netflix.hystrix.internal.annotation;

import java.lang.annotation.*;

/**
 * This annotation is used to specify some methods which should be processed as hystrix commands.
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface HystrixCommand {

    /**
     * Specifies a method to process fallback logic.
     * A fallback method should be defined in the same class where is HystrixCommand.
     * Also a fallback method should have the same signature to a method which was invoked as hystrix command.
     * For example:
     * <p>
     * <code>
     * {@literal @}HystrixCommand(fallbackMethod = "getByIdFallback")<br>
     * public String getById(String id) {...}<br>
     * <br>
     * private String getByIdFallback(String id) {...}
     * </code>
     * </p>
     * Also a fallback method can be annotated with {@link HystrixCommand}
     *
     * @return method name
     */
    String fallbackMethod() default "";

    /**
     * The command group key is used for grouping together commands such as for reporting,
     * alerting, dashboards or team/library ownership.
     * <p/>
     * default => the runtime name of annotated method (<code>Method#getName();</code>).
     *
     * @return group key
     * @see com.netflix.hystrix.HystrixCommandGroupKey
     */
    String groupKey() default "";

    /**
     * The Hystrix command key is used to identify a command instance for statistics, circuit-breaker, properties, etc.
     * <p/>
     * default => the runtime name of annotated method (<code>Method#getName();</code>).
     *
     * @return command key
     * @see com.netflix.hystrix.HystrixCommandKey
     */
    String commandKey() default "";

}

@@ -367,17 +367,187 @@
 otation.
-*
+Documented;%0Aimport java.lang.annotation.ElementType;%0Aimport java.lang.annotation.Retention;%0Aimport java.lang.annotation.RetentionPolicy;%0Aimport java.lang.annotation.Target
 ;%0A%0A/**%0A 
@@ -1356,16 +1356,17 @@
 Command%7D
+.
 %0A     *%0A
@@ -1598,38 +1598,20 @@
 hip.
-%0A     * %3Cp/%3E%0A     * d
+ D
 efault
- =%3E
+s to
  the
@@ -1632,32 +1632,39 @@
 of annotated
+%0A     *
  method 
 (%3Ccode%3EMetho
@@ -1643,39 +1643,57 @@
 d%0A     * method 
-(%3Ccode%3E
+%7B@link java.lang.reflect.
 Method#getName()
@@ -1688,33 +1688,25 @@
 od#getName()
-;%3C/code%3E)
+%7D
 .%0A     *%0A   
@@ -1964,30 +1964,19 @@
   * 
-%3Cp/%3E%0A     * d
+D
 efault
- =%3E
+s to
  the
@@ -2013,15 +2013,33 @@
 hod 
-(%3Ccode%3E
+%7B@link java.lang.reflect.
 Meth
@@ -2054,17 +2054,9 @@
 me()
-;%3C/code%3E)
+%7D
 .%0A  

Fix javadoc