[jboss-cvs] JBossAS SVN: r87263 - in projects/jboss-man/branches/Branch_2_1/managed/src: main/java/org/jboss/managed/plugins/factory and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Apr 14 03:19:58 EDT 2009


Author: scott.stark at jboss.org
Date: 2009-04-14 03:19:58 -0400 (Tue, 14 Apr 2009)
New Revision: 87263

Added:
   projects/jboss-man/branches/Branch_2_1/managed/src/main/java/org/jboss/managed/api/annotation/Masked.java
   projects/jboss-man/branches/Branch_2_1/managed/src/test/java/org/jboss/test/managed/factory/support/ManagementPropertyMasked.java
Modified:
   projects/jboss-man/branches/Branch_2_1/managed/src/main/java/org/jboss/managed/plugins/factory/AbstractManagedObjectFactory.java
   projects/jboss-man/branches/Branch_2_1/managed/src/test/java/org/jboss/test/managed/factory/test/ManagementPropertyUnitTestCase.java
Log:
JBMAN-72, add a Masked annotation


Copied: projects/jboss-man/branches/Branch_2_1/managed/src/main/java/org/jboss/managed/api/annotation/Masked.java (from rev 87262, projects/jboss-man/trunk/managed/src/main/java/org/jboss/managed/api/annotation/Masked.java)
===================================================================
--- projects/jboss-man/branches/Branch_2_1/managed/src/main/java/org/jboss/managed/api/annotation/Masked.java	                        (rev 0)
+++ projects/jboss-man/branches/Branch_2_1/managed/src/main/java/org/jboss/managed/api/annotation/Masked.java	2009-04-14 07:19:58 UTC (rev 87263)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.managed.api.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * An annotation that indicates a property should be masked
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+ at Target({ElementType.METHOD, ElementType.FIELD})
+ at Retention(RetentionPolicy.RUNTIME)
+public @interface Masked
+{
+   /** arbitrary options */
+   String[] options() default {};
+}

Modified: projects/jboss-man/branches/Branch_2_1/managed/src/main/java/org/jboss/managed/plugins/factory/AbstractManagedObjectFactory.java
===================================================================
--- projects/jboss-man/branches/Branch_2_1/managed/src/main/java/org/jboss/managed/plugins/factory/AbstractManagedObjectFactory.java	2009-04-14 07:16:54 UTC (rev 87262)
+++ projects/jboss-man/branches/Branch_2_1/managed/src/main/java/org/jboss/managed/plugins/factory/AbstractManagedObjectFactory.java	2009-04-14 07:19:58 UTC (rev 87263)
@@ -60,6 +60,7 @@
 import org.jboss.managed.api.annotation.ManagementProperty;
 import org.jboss.managed.api.annotation.ManagementPropertyFactory;
 import org.jboss.managed.api.annotation.ManagementRuntimeRef;
+import org.jboss.managed.api.annotation.Masked;
 import org.jboss.managed.api.annotation.RunStateProperty;
 import org.jboss.managed.api.annotation.ViewUse;
 import org.jboss.managed.api.factory.ManagedObjectFactory;
@@ -545,6 +546,7 @@
             ManagementObjectRef ref = getAnnotation(ManagementObjectRef.class, propertyInfo, metaData);
             ManagementRuntimeRef runtimeRef = getAnnotation(ManagementRuntimeRef.class, propertyInfo, metaData);
             RunStateProperty rsp = getAnnotation(RunStateProperty.class, propertyInfo, metaData);
+            Masked masked = getAnnotation(Masked.class, propertyInfo, metaData);
             HashMap<String, Annotation> propAnnotations = new HashMap<String, Annotation>();
             if (managementProperty != null)
                propAnnotations.put(ManagementProperty.class.getName(), managementProperty);
@@ -560,6 +562,8 @@
                propAnnotations.put(ManagementRuntimeRef.class.getName(), runtimeRef);
             if (rsp != null)
                propAnnotations.put(RunStateProperty.class.getName(), rsp);
+            if (masked != null)
+               propAnnotations.put(Masked.class.getName(), masked);
 
             // Check whether this property should be included
             boolean includeProperty = false;

Copied: projects/jboss-man/branches/Branch_2_1/managed/src/test/java/org/jboss/test/managed/factory/support/ManagementPropertyMasked.java (from rev 87262, projects/jboss-man/trunk/managed/src/test/java/org/jboss/test/managed/factory/support/ManagementPropertyMasked.java)
===================================================================
--- projects/jboss-man/branches/Branch_2_1/managed/src/test/java/org/jboss/test/managed/factory/support/ManagementPropertyMasked.java	                        (rev 0)
+++ projects/jboss-man/branches/Branch_2_1/managed/src/test/java/org/jboss/test/managed/factory/support/ManagementPropertyMasked.java	2009-04-14 07:19:58 UTC (rev 87263)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.managed.factory.support;
+
+import java.io.Serializable;
+
+import org.jboss.managed.api.annotation.ManagementObject;
+import org.jboss.managed.api.annotation.ManagementProperty;
+import org.jboss.managed.api.annotation.Masked;
+
+/**
+ * Test of masked properties
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+ at ManagementObject
+public class ManagementPropertyMasked
+   implements Serializable
+{
+   private static final long serialVersionUID = 1;
+   private String masked1 = "masked1";
+   private String masked2 = "masked2";
+
+   public String getMasked1()
+   {
+      return masked1;
+   }
+   @ManagementProperty()
+   @Masked(options={"hashAlgorithm", "MD5"})
+   public void setMasked1(String masked1)
+   {
+      this.masked1 = masked1;
+   }
+
+   public String getMasked2()
+   {
+      return masked2;
+   }
+   @ManagementProperty(readOnly=true)
+   @Masked
+   public void setMasked2(String masked2)
+   {
+      this.masked2 = masked2;
+   }
+}

Modified: projects/jboss-man/branches/Branch_2_1/managed/src/test/java/org/jboss/test/managed/factory/test/ManagementPropertyUnitTestCase.java
===================================================================
--- projects/jboss-man/branches/Branch_2_1/managed/src/test/java/org/jboss/test/managed/factory/test/ManagementPropertyUnitTestCase.java	2009-04-14 07:16:54 UTC (rev 87262)
+++ projects/jboss-man/branches/Branch_2_1/managed/src/test/java/org/jboss/test/managed/factory/test/ManagementPropertyUnitTestCase.java	2009-04-14 07:19:58 UTC (rev 87263)
@@ -32,6 +32,7 @@
 import org.jboss.managed.api.annotation.ActivationPolicy;
 import org.jboss.managed.api.annotation.ManagementObjectID;
 import org.jboss.managed.api.annotation.ManagementProperty;
+import org.jboss.managed.api.annotation.Masked;
 import org.jboss.managed.api.annotation.ViewUse;
 import org.jboss.managed.plugins.ManagedPropertyImpl;
 import org.jboss.metatype.api.types.SimpleMetaType;
@@ -41,6 +42,7 @@
 import org.jboss.test.managed.factory.support.ManagementPropertyAnnotations;
 import org.jboss.test.managed.factory.support.ManagementPropertyDescription;
 import org.jboss.test.managed.factory.support.ManagementPropertyMandatory;
+import org.jboss.test.managed.factory.support.ManagementPropertyMasked;
 import org.jboss.test.managed.factory.support.ManagementPropertyReadOnly;
 import org.jboss.test.managed.factory.support.ManagementPropertySimpleManaged;
 
@@ -242,4 +244,28 @@
       readWrite.setValue(SimpleValueSupport.wrap("readWrite-update"));
       assertFalse(readWrite.isModified());
    }
+   
+   public void testMasked()
+      throws Exception
+   {
+      ManagedObject managedObject = createAndCheckDefaultManagedObject(ManagementPropertyMasked.class);
+      log.info(managedObject.getPropertyNames());
+      ManagedProperty masked1 = managedObject.getProperty("masked1");
+      assertNotNull(masked1);
+      String maskedKey = Masked.class.getName();
+      log.info(masked1.getAnnotations().keySet());
+      assertTrue(masked1.hasAnnotation(maskedKey));
+      Masked masked1Ann = (Masked) masked1.getAnnotations().get(maskedKey);
+      assertNotNull(masked1Ann);
+      String[] masked1Opts = masked1Ann.options();
+      assertEquals(2, masked1Opts.length);
+      assertEquals("hashAlgorithm", masked1Opts[0]);
+      assertEquals("MD5", masked1Opts[1]);
+      
+      ManagedProperty masked2 = managedObject.getProperty("masked2");
+      assertNotNull(masked2);
+      assertTrue(masked2.hasAnnotation(maskedKey));
+      Masked masked2Ann = (Masked) masked2.getAnnotations().get(maskedKey);
+      assertNotNull(masked2Ann);
+   }
 }




More information about the jboss-cvs-commits mailing list