From 88e2f3915d7f984ce93f7bf763053935b6f73f82 Mon Sep 17 00:00:00 2001 From: Jesse McConnell Date: Mon, 23 Jul 2012 15:48:07 -0500 Subject: [PATCH] add proposed annotations to replace soupy Managed annotation --- .../util/annotation/ManagedAttribute.java | 71 +++++++++++++++++++ .../jetty/util/annotation/ManagedObject.java | 21 ++++++ .../util/annotation/ManagedOperation.java | 45 ++++++++++++ 3 files changed, 137 insertions(+) create mode 100644 jetty-util/src/main/java/org/eclipse/jetty/util/annotation/ManagedAttribute.java create mode 100644 jetty-util/src/main/java/org/eclipse/jetty/util/annotation/ManagedObject.java create mode 100644 jetty-util/src/main/java/org/eclipse/jetty/util/annotation/ManagedOperation.java diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/annotation/ManagedAttribute.java b/jetty-util/src/main/java/org/eclipse/jetty/util/annotation/ManagedAttribute.java new file mode 100644 index 00000000000..3e0279cbf6b --- /dev/null +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/annotation/ManagedAttribute.java @@ -0,0 +1,71 @@ +package org.eclipse.jetty.util.annotation; +//======================================================================== +//Copyright 2011-2012 Mort Bay Consulting Pty. Ltd. +//------------------------------------------------------------------------ +//All rights reserved. This program and the accompanying materials +//are made available under the terms of the Eclipse Public License v1.0 +//and Apache License v2.0 which accompanies this distribution. +//The Eclipse Public License is available at +//http://www.eclipse.org/legal/epl-v10.html +//The Apache License v2.0 is available at +//http://www.opensource.org/licenses/apache2.0.php +//You may elect to redistribute this code under either of these licenses. +//======================================================================== + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Target( { ElementType.METHOD, ElementType.FIELD } ) +public @interface ManagedAttribute +{ + /** + * Description of the Managed Object + * + * @return + */ + String value() default "Not Specified"; + + /** + * Is the managed field read-only? + * + * @return true if readonly + */ + boolean readonly() default false; + + /** + * Is the managed field itself a Managed Object? + * + * @return true if the target is a Managed Object + */ + boolean managed() default false; + + /** + * Does the managed field exist on a proxy object? + * + * + * @return true if a proxy object is involved + */ + boolean proxied() default false; + + /** + * If is a field references a getter that doesn't conform to standards for discovery + * it can be set here. + * + * @return the full name of the getter in question + */ + String getter() default ""; + + /** + * If is a field references a setter that doesn't conform to standards for discovery + * it can be set here. + * + * @return the full name of the setter in question + */ + String setter() default ""; + +} diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/annotation/ManagedObject.java b/jetty-util/src/main/java/org/eclipse/jetty/util/annotation/ManagedObject.java new file mode 100644 index 00000000000..f1412c644d7 --- /dev/null +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/annotation/ManagedObject.java @@ -0,0 +1,21 @@ +package org.eclipse.jetty.util.annotation; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Target( { ElementType.TYPE, ElementType.METHOD, ElementType.FIELD } ) +public @interface ManagedObject +{ + /** + * Description of the Managed Object + * + * @return + */ + String value() default "Not Specified"; + +} diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/annotation/ManagedOperation.java b/jetty-util/src/main/java/org/eclipse/jetty/util/annotation/ManagedOperation.java new file mode 100644 index 00000000000..b133a682e33 --- /dev/null +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/annotation/ManagedOperation.java @@ -0,0 +1,45 @@ +package org.eclipse.jetty.util.annotation; +//======================================================================== +//Copyright 2011-2012 Mort Bay Consulting Pty. Ltd. +//------------------------------------------------------------------------ +//All rights reserved. This program and the accompanying materials +//are made available under the terms of the Eclipse Public License v1.0 +//and Apache License v2.0 which accompanies this distribution. +//The Eclipse Public License is available at +//http://www.eclipse.org/legal/epl-v10.html +//The Apache License v2.0 is available at +//http://www.opensource.org/licenses/apache2.0.php +//You may elect to redistribute this code under either of these licenses. +//======================================================================== + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Target( { ElementType.METHOD } ) +public @interface ManagedOperation +{ + /** + * Description of the Managed Object + * + * @return + */ + String value() default "Not Specified"; + + + /** + * The impact of an operation. + * + * NOTE: Valid values are UNKNOWN, ACTION, INFO, ACTION_INFO + * + * NOTE: applies to METHOD + * + * @return String representing the impact of the operation + */ + String impact() default "UNKNOWN"; + +}