[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