[jboss-cvs] JBossAS SVN: r110723 - in projects/jboss-jca/trunk/validator/src: main/java/org/jboss/jca/validator/rules/ao and 10 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Feb 21 01:40:46 EST 2011
Author: jeff.zhang
Date: 2011-02-21 01:40:46 -0500 (Mon, 21 Feb 2011)
New Revision: 110723
Added:
projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/ConfigPropertiesHelper.java
projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/as/TestActivationSpecFailProperties.java
projects/jboss-jca/trunk/validator/src/test/resources/validator/as_property_fail.rar/
projects/jboss-jca/trunk/validator/src/test/resources/validator/as_property_fail.rar/META-INF/
projects/jboss-jca/trunk/validator/src/test/resources/validator/as_property_fail.rar/META-INF/ra.xml
Modified:
projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/ao/AOConfigProperties.java
projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/as/ASConfigProperties.java
projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/mcf/MCFConfigProperties.java
projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/ra/RAConfigProperties.java
projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ao/AOTestCase.java
projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ao/TestAdminObjectPropertyWrong.java
projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/as/ASTestCase.java
projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/as/TestActivationSpecWrongProperties.java
projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/mcf/MCFTestCase.java
projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/mcf/TestManagedConnectionFactoryPropertyWrong.java
projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ra/RATestCase.java
projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ra/TestResourceAdapterPropertyWrong.java
Log:
[JBJCA-499] Only primitive types are warnings, other config properties should failed validation
Added: projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/ConfigPropertiesHelper.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/ConfigPropertiesHelper.java (rev 0)
+++ projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/ConfigPropertiesHelper.java 2011-02-21 06:40:46 UTC (rev 110723)
@@ -0,0 +1,157 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2011, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.jca.validator.rules;
+
+import org.jboss.jca.common.api.metadata.ra.ConfigProperty;
+import org.jboss.jca.validator.Failure;
+import org.jboss.jca.validator.Severity;
+import org.jboss.jca.validator.ValidateClass;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Set;
+
+/**
+ * A ConfigPropertiesHelper.
+ *
+ * @author Jeff Zhang
+ * @version $Revision: $
+ */
+public class ConfigPropertiesHelper
+{
+ /** Valid types */
+ public static final Set<Class> VALID_TYPES;
+
+ /** Valid types */
+ public static final Set<Class> WARNING_TYPES;
+
+ static
+ {
+ VALID_TYPES = new HashSet<Class>(9);
+ VALID_TYPES.add(Boolean.class);
+ VALID_TYPES.add(Byte.class);
+ VALID_TYPES.add(Character.class);
+ VALID_TYPES.add(Double.class);
+ VALID_TYPES.add(Float.class);
+ VALID_TYPES.add(Integer.class);
+ VALID_TYPES.add(Long.class);
+ VALID_TYPES.add(Short.class);
+ VALID_TYPES.add(String.class);
+
+ WARNING_TYPES = new HashSet<Class>(8);
+ WARNING_TYPES.add(boolean.class);
+ WARNING_TYPES.add(byte.class);
+ WARNING_TYPES.add(char.class);
+ WARNING_TYPES.add(double.class);
+ WARNING_TYPES.add(float.class);
+ WARNING_TYPES.add(int.class);
+ WARNING_TYPES.add(short.class);
+ }
+
+ /**
+ * validate ConfigProperties type
+ *
+ * @param vo ValidateClass
+ * @param section section in the spec document
+ * @param failMsg fail or warn message
+ * @return list of failures
+ */
+ public static List<Failure> validateConfigPropertiesType(ValidateClass vo, String section, String failMsg)
+ {
+
+ List<Failure> failures = new ArrayList<Failure>(1);
+
+ for (ConfigProperty cpmd : vo.getConfigProperties())
+ {
+ try
+ {
+ containGetOrIsMethod(vo, "get", cpmd, section, failMsg, failures);
+ }
+ catch (Throwable t)
+ {
+ try
+ {
+ containGetOrIsMethod(vo, "is", cpmd, section, failMsg, failures);
+ }
+ catch (Throwable it)
+ {
+ // Ignore
+ }
+ }
+ }
+
+ if (failures.size() == 0)
+ return null;
+ return failures;
+ }
+
+ /**
+ * validated object contain 'get or 'is' Method
+ *
+ * @param vo ValidateClass
+ * @param getOrIs 'get or 'is' String
+ * @param cpmd ConfigProperty metadata
+ * @param section section in the spec document
+ * @param failMsg fail or warn message
+ * @param failures list of failures
+ * @throws NoSuchMethodException
+ */
+ private static void containGetOrIsMethod(ValidateClass vo, String getOrIs,
+ ConfigProperty cpmd, String section, String failMsg, List<Failure> failures)
+ throws NoSuchMethodException
+ {
+ String methodName = getOrIs + cpmd.getConfigPropertyName().getValue().substring(0, 1).toUpperCase(Locale.US);
+ if (cpmd.getConfigPropertyName().getValue().length() > 1)
+ {
+ methodName += cpmd.getConfigPropertyName().getValue().substring(1);
+ }
+
+ Method method = vo.getClazz().getMethod(methodName, (Class[])null);
+
+ if (!VALID_TYPES.contains(method.getReturnType()))
+ {
+ StringBuilder sb = new StringBuilder("Class: " + vo.getClazz().getName());
+ sb = sb.append(" Property: " + cpmd.getConfigPropertyName().getValue());
+ sb = sb.append(" Type: " + method.getReturnType().getName());
+
+ Failure failure;
+ if (WARNING_TYPES.contains(method.getReturnType()))
+ {
+ failure = new Failure(Severity.WARNING,
+ section,
+ failMsg,
+ sb.toString());
+ }
+ else
+ {
+ failure = new Failure(Severity.ERROR,
+ section,
+ failMsg,
+ sb.toString());
+ }
+ failures.add(failure);
+ }
+ }
+}
Modified: projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/ao/AOConfigProperties.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/ao/AOConfigProperties.java 2011-02-20 12:55:25 UTC (rev 110722)
+++ projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/ao/AOConfigProperties.java 2011-02-21 06:40:46 UTC (rev 110723)
@@ -22,21 +22,16 @@
package org.jboss.jca.validator.rules.ao;
-import org.jboss.jca.common.api.metadata.ra.ConfigProperty;
import org.jboss.jca.validator.Failure;
import org.jboss.jca.validator.Key;
import org.jboss.jca.validator.Rule;
-import org.jboss.jca.validator.Severity;
import org.jboss.jca.validator.Validate;
import org.jboss.jca.validator.ValidateClass;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashSet;
+import org.jboss.jca.validator.rules.ConfigPropertiesHelper;
+
import java.util.List;
-import java.util.Locale;
import java.util.ResourceBundle;
-import java.util.Set;
/**
* An AdminObject must use the valid set of config-property-type
@@ -46,24 +41,6 @@
/** Section */
private static final String SECTION = "20.7";
- /** Valid types */
- private static final Set<Class> VALID_TYPES;
-
- static
- {
- VALID_TYPES = new HashSet<Class>(9);
-
- VALID_TYPES.add(Boolean.class);
- VALID_TYPES.add(Byte.class);
- VALID_TYPES.add(Character.class);
- VALID_TYPES.add(Double.class);
- VALID_TYPES.add(Float.class);
- VALID_TYPES.add(Integer.class);
- VALID_TYPES.add(Long.class);
- VALID_TYPES.add(Short.class);
- VALID_TYPES.add(String.class);
- }
-
/**
* Constructor
*/
@@ -87,75 +64,13 @@
ValidateClass vo = (ValidateClass)v;
if (vo.getConfigProperties() != null && vo.getConfigProperties().size() > 0)
{
- Class clz = vo.getClazz();
- List<Failure> failures = new ArrayList<Failure>(1);
-
- for (ConfigProperty cpmd : vo.getConfigProperties())
- {
- try
- {
- String methodName = "get"
- + cpmd.getConfigPropertyName().getValue().substring(0, 1).toUpperCase(Locale.US);
- if (cpmd.getConfigPropertyName().getValue().length() > 1)
- {
- methodName += cpmd.getConfigPropertyName().getValue().substring(1);
- }
-
- Method method = clz.getMethod(methodName, (Class[])null);
-
- if (!VALID_TYPES.contains(method.getReturnType()))
- {
- StringBuilder sb = new StringBuilder("Class: " + vo.getClazz().getName());
- sb = sb.append(" Property: " + cpmd.getConfigPropertyName().getValue());
- sb = sb.append(" Type: " + method.getReturnType().getName());
-
- Failure failure = new Failure(Severity.WARNING,
- SECTION,
- rb.getString("ao.AOConfigProperties"),
- sb.toString());
- failures.add(failure);
- }
- }
- catch (Throwable t)
- {
- try
- {
- String methodName = "is"
- + cpmd.getConfigPropertyName().getValue().substring(0, 1).toUpperCase(Locale.US);
- if (cpmd.getConfigPropertyName().getValue().length() > 1)
- {
- methodName += cpmd.getConfigPropertyName().getValue().substring(1);
- }
-
- Method method = clz.getMethod(methodName, (Class[])null);
-
- if (!VALID_TYPES.contains(method.getReturnType()))
- {
- StringBuilder sb = new StringBuilder("Class: " + vo.getClazz().getName());
- sb = sb.append(" Property: " + cpmd.getConfigPropertyName().getValue());
- sb = sb.append(" Type: " + method.getReturnType().getName());
-
- Failure failure = new Failure(Severity.WARNING,
- SECTION,
- rb.getString("ao.AOConfigProperties"),
- sb.toString());
- failures.add(failure);
- }
- }
- catch (Throwable it)
- {
- // Ignore
- }
- }
- }
-
- if (failures.size() == 0)
- return null;
-
- return failures;
+ return ConfigPropertiesHelper.validateConfigPropertiesType(vo, SECTION,
+ rb.getString("ao.AOConfigProperties"));
}
}
return null;
}
+
+
}
Modified: projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/as/ASConfigProperties.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/as/ASConfigProperties.java 2011-02-20 12:55:25 UTC (rev 110722)
+++ projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/as/ASConfigProperties.java 2011-02-21 06:40:46 UTC (rev 110723)
@@ -22,21 +22,15 @@
package org.jboss.jca.validator.rules.as;
-import org.jboss.jca.common.api.metadata.ra.ConfigProperty;
import org.jboss.jca.validator.Failure;
import org.jboss.jca.validator.Key;
import org.jboss.jca.validator.Rule;
-import org.jboss.jca.validator.Severity;
import org.jboss.jca.validator.Validate;
import org.jboss.jca.validator.ValidateClass;
+import org.jboss.jca.validator.rules.ConfigPropertiesHelper;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashSet;
import java.util.List;
-import java.util.Locale;
import java.util.ResourceBundle;
-import java.util.Set;
import javax.resource.spi.ActivationSpec;
@@ -48,24 +42,7 @@
/** Section */
private static final String SECTION = "20.7";
- /** Valid types */
- private static final Set<Class> VALID_TYPES;
- static
- {
- VALID_TYPES = new HashSet<Class>(9);
-
- VALID_TYPES.add(Boolean.class);
- VALID_TYPES.add(Byte.class);
- VALID_TYPES.add(Character.class);
- VALID_TYPES.add(Double.class);
- VALID_TYPES.add(Float.class);
- VALID_TYPES.add(Integer.class);
- VALID_TYPES.add(Long.class);
- VALID_TYPES.add(Short.class);
- VALID_TYPES.add(String.class);
- }
-
/**
* Constructor
*/
@@ -90,72 +67,8 @@
ValidateClass vo = (ValidateClass)v;
if (vo.getConfigProperties() != null && vo.getConfigProperties().size() > 0)
{
- Class clz = vo.getClazz();
- List<Failure> failures = new ArrayList<Failure>(1);
-
- for (ConfigProperty cpmd : vo.getConfigProperties())
- {
- try
- {
- String methodName = "get"
- + cpmd.getConfigPropertyName().getValue().substring(0, 1).toUpperCase(Locale.US);
- if (cpmd.getConfigPropertyName().getValue().length() > 1)
- {
- methodName += cpmd.getConfigPropertyName().getValue().substring(1);
- }
-
- Method method = clz.getMethod(methodName, (Class[])null);
-
- if (!VALID_TYPES.contains(method.getReturnType()))
- {
- StringBuilder sb = new StringBuilder("Class: " + vo.getClazz().getName());
- sb = sb.append(" Property: " + cpmd.getConfigPropertyName().getValue());
- sb = sb.append(" Type: " + method.getReturnType().getName());
-
- Failure failure = new Failure(Severity.WARNING,
- SECTION,
- rb.getString("as.ASConfigProperties"),
- sb.toString());
- failures.add(failure);
- }
- }
- catch (Throwable t)
- {
- try
- {
- String methodName = "is"
- + cpmd.getConfigPropertyName().getValue().substring(0, 1).toUpperCase(Locale.US);
- if (cpmd.getConfigPropertyName().getValue().length() > 1)
- {
- methodName += cpmd.getConfigPropertyName().getValue().substring(1);
- }
-
- Method method = clz.getMethod(methodName, (Class[])null);
-
- if (!VALID_TYPES.contains(method.getReturnType()))
- {
- StringBuilder sb = new StringBuilder("Class: " + vo.getClazz().getName());
- sb = sb.append(" Property: " + cpmd.getConfigPropertyName().getValue());
- sb = sb.append(" Type: " + method.getReturnType().getName());
-
- Failure failure = new Failure(Severity.WARNING,
- SECTION,
- rb.getString("as.ASConfigProperties"),
- sb.toString());
- failures.add(failure);
- }
- }
- catch (Throwable it)
- {
- // Ignore
- }
- }
- }
-
- if (failures.size() == 0)
- return null;
-
- return failures;
+ return ConfigPropertiesHelper.validateConfigPropertiesType(vo, SECTION,
+ rb.getString("as.ASConfigProperties"));
}
}
Modified: projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/mcf/MCFConfigProperties.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/mcf/MCFConfigProperties.java 2011-02-20 12:55:25 UTC (rev 110722)
+++ projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/mcf/MCFConfigProperties.java 2011-02-21 06:40:46 UTC (rev 110723)
@@ -22,21 +22,15 @@
package org.jboss.jca.validator.rules.mcf;
-import org.jboss.jca.common.api.metadata.ra.ConfigProperty;
import org.jboss.jca.validator.Failure;
import org.jboss.jca.validator.Key;
import org.jboss.jca.validator.Rule;
-import org.jboss.jca.validator.Severity;
import org.jboss.jca.validator.Validate;
import org.jboss.jca.validator.ValidateClass;
+import org.jboss.jca.validator.rules.ConfigPropertiesHelper;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashSet;
import java.util.List;
-import java.util.Locale;
import java.util.ResourceBundle;
-import java.util.Set;
import javax.resource.spi.ManagedConnectionFactory;
@@ -48,32 +42,7 @@
/** Section */
private static final String SECTION = "20.7";
- /** Valid types */
- private static final Set<Class> VALID_TYPES;
-
- static
- {
- VALID_TYPES = new HashSet<Class>(9);
-
- VALID_TYPES.add(Boolean.class);
- VALID_TYPES.add(Byte.class);
- VALID_TYPES.add(Character.class);
- VALID_TYPES.add(Double.class);
- VALID_TYPES.add(Float.class);
- VALID_TYPES.add(Integer.class);
- VALID_TYPES.add(Long.class);
- VALID_TYPES.add(Short.class);
- VALID_TYPES.add(String.class);
- }
-
/**
- * Constructor
- */
- public MCFConfigProperties()
- {
- }
-
- /**
* Validate
* @param v The validate object
* @param rb The resource bundle
@@ -90,72 +59,8 @@
ValidateClass vo = (ValidateClass)v;
if (vo.getConfigProperties() != null && vo.getConfigProperties().size() > 0)
{
- Class clz = vo.getClazz();
- List<Failure> failures = new ArrayList<Failure>(1);
-
- for (ConfigProperty cpmd : vo.getConfigProperties())
- {
- try
- {
- String methodName = "get"
- + cpmd.getConfigPropertyName().getValue().substring(0, 1).toUpperCase(Locale.US);
- if (cpmd.getConfigPropertyName().getValue().length() > 1)
- {
- methodName += cpmd.getConfigPropertyName().getValue().substring(1);
- }
-
- Method method = clz.getMethod(methodName, (Class[])null);
-
- if (!VALID_TYPES.contains(method.getReturnType()))
- {
- StringBuilder sb = new StringBuilder("Class: " + vo.getClazz().getName());
- sb = sb.append(" Property: " + cpmd.getConfigPropertyName().getValue());
- sb = sb.append(" Type: " + method.getReturnType().getName());
-
- Failure failure = new Failure(Severity.WARNING,
- SECTION,
- rb.getString("mcf.MCFConfigProperties"),
- sb.toString());
- failures.add(failure);
- }
- }
- catch (Throwable t)
- {
- try
- {
- String methodName = "is"
- + cpmd.getConfigPropertyName().getValue().substring(0, 1).toUpperCase(Locale.US);
- if (cpmd.getConfigPropertyName().getValue().length() > 1)
- {
- methodName += cpmd.getConfigPropertyName().getValue().substring(1);
- }
-
- Method method = clz.getMethod(methodName, (Class[])null);
-
- if (!VALID_TYPES.contains(method.getReturnType()))
- {
- StringBuilder sb = new StringBuilder("Class: " + vo.getClazz().getName());
- sb = sb.append(" Property: " + cpmd.getConfigPropertyName().getValue());
- sb = sb.append(" Type: " + method.getReturnType().getName());
-
- Failure failure = new Failure(Severity.WARNING,
- SECTION,
- rb.getString("mcf.MCFConfigProperties"),
- sb.toString());
- failures.add(failure);
- }
- }
- catch (Throwable it)
- {
- // Ignore
- }
- }
- }
-
- if (failures.size() == 0)
- return null;
-
- return failures;
+ return ConfigPropertiesHelper.validateConfigPropertiesType(vo, SECTION,
+ rb.getString("mcf.MCFConfigProperties"));
}
}
Modified: projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/ra/RAConfigProperties.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/ra/RAConfigProperties.java 2011-02-20 12:55:25 UTC (rev 110722)
+++ projects/jboss-jca/trunk/validator/src/main/java/org/jboss/jca/validator/rules/ra/RAConfigProperties.java 2011-02-21 06:40:46 UTC (rev 110723)
@@ -22,21 +22,15 @@
package org.jboss.jca.validator.rules.ra;
-import org.jboss.jca.common.api.metadata.ra.ConfigProperty;
import org.jboss.jca.validator.Failure;
import org.jboss.jca.validator.Key;
import org.jboss.jca.validator.Rule;
-import org.jboss.jca.validator.Severity;
import org.jboss.jca.validator.Validate;
import org.jboss.jca.validator.ValidateClass;
+import org.jboss.jca.validator.rules.ConfigPropertiesHelper;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashSet;
import java.util.List;
-import java.util.Locale;
import java.util.ResourceBundle;
-import java.util.Set;
import javax.resource.spi.ResourceAdapter;
@@ -48,24 +42,6 @@
/** Section */
private static final String SECTION = "20.7";
- /** Valid types */
- private static final Set<Class> VALID_TYPES;
-
- static
- {
- VALID_TYPES = new HashSet<Class>(9);
-
- VALID_TYPES.add(Boolean.class);
- VALID_TYPES.add(Byte.class);
- VALID_TYPES.add(Character.class);
- VALID_TYPES.add(Double.class);
- VALID_TYPES.add(Float.class);
- VALID_TYPES.add(Integer.class);
- VALID_TYPES.add(Long.class);
- VALID_TYPES.add(Short.class);
- VALID_TYPES.add(String.class);
- }
-
/**
* Constructor
*/
@@ -90,72 +66,8 @@
ValidateClass vo = (ValidateClass)v;
if (vo.getConfigProperties() != null && vo.getConfigProperties().size() > 0)
{
- Class clz = vo.getClazz();
- List<Failure> failures = new ArrayList<Failure>(1);
-
- for (ConfigProperty cpmd : vo.getConfigProperties())
- {
- try
- {
- String methodName = "get"
- + cpmd.getConfigPropertyName().getValue().substring(0, 1).toUpperCase(Locale.US);
- if (cpmd.getConfigPropertyName().getValue().length() > 1)
- {
- methodName += cpmd.getConfigPropertyName().getValue().substring(1);
- }
-
- Method method = clz.getMethod(methodName, (Class[])null);
-
- if (!VALID_TYPES.contains(method.getReturnType()))
- {
- StringBuilder sb = new StringBuilder("Class: " + vo.getClazz().getName());
- sb = sb.append(" Property: " + cpmd.getConfigPropertyName().getValue());
- sb = sb.append(" Type: " + method.getReturnType().getName());
-
- Failure failure = new Failure(Severity.WARNING,
- SECTION,
- rb.getString("ra.RAConfigProperties"),
- sb.toString());
- failures.add(failure);
- }
- }
- catch (Throwable t)
- {
- try
- {
- String methodName = "is"
- + cpmd.getConfigPropertyName().getValue().substring(0, 1).toUpperCase(Locale.US);
- if (cpmd.getConfigPropertyName().getValue().length() > 1)
- {
- methodName += cpmd.getConfigPropertyName().getValue().substring(1);
- }
-
- Method method = clz.getMethod(methodName, (Class[])null);
-
- if (!VALID_TYPES.contains(method.getReturnType()))
- {
- StringBuilder sb = new StringBuilder("Class: " + vo.getClazz().getName());
- sb = sb.append(" Property: " + cpmd.getConfigPropertyName().getValue());
- sb = sb.append(" Type: " + method.getReturnType().getName());
-
- Failure failure = new Failure(Severity.WARNING,
- SECTION,
- rb.getString("ra.RAConfigProperties"),
- sb.toString());
- failures.add(failure);
- }
- }
- catch (Throwable it)
- {
- // Ignore
- }
- }
- }
-
- if (failures.size() == 0)
- return null;
-
- return failures;
+ return ConfigPropertiesHelper.validateConfigPropertiesType(vo, SECTION,
+ rb.getString("ra.RAConfigProperties"));
}
}
Modified: projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ao/AOTestCase.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ao/AOTestCase.java 2011-02-20 12:55:25 UTC (rev 110722)
+++ projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ao/AOTestCase.java 2011-02-21 06:40:46 UTC (rev 110723)
@@ -233,7 +233,7 @@
assertThat(input.readLine(), is("Description: Invalid config-property-type for AdminObject."));
assertThat(input.readLine(), is("Code: Class: "
+ "org.jboss.jca.validator.rules.ao.TestAdminObjectPropertyWrong "
- + "Property: myStringProperty Type: void"));
+ + "Property: myStringProperty Type: int"));
assertThat(input.readLine(), is((String) null));
}
Modified: projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ao/TestAdminObjectPropertyWrong.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ao/TestAdminObjectPropertyWrong.java 2011-02-20 12:55:25 UTC (rev 110722)
+++ projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ao/TestAdminObjectPropertyWrong.java 2011-02-21 06:40:46 UTC (rev 110723)
@@ -42,9 +42,10 @@
/**
* wrong getter
+ * @return int zero
*/
- public void getMyStringProperty()
+ public int getMyStringProperty()
{
-
+ return 0;
}
}
Modified: projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/as/ASTestCase.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/as/ASTestCase.java 2011-02-20 12:55:25 UTC (rev 110722)
+++ projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/as/ASTestCase.java 2011-02-21 06:40:46 UTC (rev 110723)
@@ -101,7 +101,7 @@
}
/**
- * stress the ASConfigProperties rule.
+ * stress the ASConfigProperties warning rule.
*
* @throws Throwable and expect a DeployValidatorException
*
@@ -128,7 +128,7 @@
assertThat(input.readLine(), is("Description: Invalid config-property-type for ActivationSpec."));
assertThat(input.readLine(), is("Code: Class: "
+ "org.jboss.jca.validator.rules.as.TestActivationSpecWrongProperties "
- + "Property: StringRAR Type: void"));
+ + "Property: StringRAR Type: int"));
assertThat(input.readLine(), is((String) null));
}
@@ -142,7 +142,57 @@
}
embedded.undeploy(archive);
}
+
+ /**
+ * stress the ASConfigProperties failing rule.
+ *
+ * @throws Throwable and expect a DeployValidatorException
+ *
+ */
+ @Test(expected = ValidatorException.class)
+ public void deployerShouldThrowDeployExceptionWithWrongWrongPropertyType() throws Throwable
+ {
+ //given
+ ResourceAdapterArchive archive = getArchive("as_property_fail.rar");
+ try
+ {
+ //when
+ embedded.deploy(archive);
+ }
+ catch (DeployException de)
+ {
+ //then
+ ValidatorException dve = null;
+ if (de.getCause() != null && de.getCause() instanceof ValidatorException)
+ {
+ dve = (ValidatorException) de.getCause();
+ }
+ else
+ {
+ //fail
+ de.printStackTrace();
+ throw de;
+ }
+
+ final Failure failureRA =
+ new Failure(Severity.ERROR, "20.7", "Invalid config-property-type for ActivationSpec.",
+ "Class: org.jboss.jca.validator.rules.as.TestActivationSpecFailProperties " +
+ "Property: StringRAR Type: java.net.URL");
+ assertThat(dve.getFailures(), notNullValue());
+ assertThat(dve.getFailures(), hasItem(equalTo(failureRA)));
+ assertThat(dve.getFailures().size(), is(1));
+ //success
+ throw dve;
+ }
+ finally
+ {
+ embedded.undeploy(archive);
+ }
+ //no exception = fail!
+ fail();
+ }
+
/**
* Deploy a correct RA not violating any rule.
*
Added: projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/as/TestActivationSpecFailProperties.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/as/TestActivationSpecFailProperties.java (rev 0)
+++ projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/as/TestActivationSpecFailProperties.java 2011-02-21 06:40:46 UTC (rev 110723)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2011, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.jca.validator.rules.as;
+
+import org.jboss.jca.validator.rules.base.BaseActivationSpec;
+
+import java.net.URL;
+
+/**
+ * TestActivationSpecFailProperties
+ * @author Jeff Zhang
+ *
+ */
+
+public class TestActivationSpecFailProperties extends BaseActivationSpec
+{
+ private String stringRar;
+
+ /**
+ *
+ * @param s The value
+ */
+ public void setStringRAR(String s)
+ {
+ this.stringRar = s;
+ }
+
+ /**
+ * wrong getter
+ * @return int zero
+ */
+ public URL getStringRAR()
+ {
+ return null;
+ }
+
+}
Modified: projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/as/TestActivationSpecWrongProperties.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/as/TestActivationSpecWrongProperties.java 2011-02-20 12:55:25 UTC (rev 110722)
+++ projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/as/TestActivationSpecWrongProperties.java 2011-02-21 06:40:46 UTC (rev 110723)
@@ -43,11 +43,12 @@
}
/**
- *
+ * wrong getter
+ * @return int zero
*/
- public void getStringRAR()
+ public int getStringRAR()
{
- //return stringRar;
+ return 0;
}
}
Modified: projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/mcf/MCFTestCase.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/mcf/MCFTestCase.java 2011-02-20 12:55:25 UTC (rev 110722)
+++ projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/mcf/MCFTestCase.java 2011-02-21 06:40:46 UTC (rev 110723)
@@ -340,7 +340,7 @@
assertThat(input.readLine(), is("Description: Invalid config-property-type for ManagedConnectionFactory."));
assertThat(input.readLine(), is("Code: Class: "
+ "org.jboss.jca.validator.rules.mcf.TestManagedConnectionFactoryPropertyWrong "
- + "Property: StringRAR Type: void"));
+ + "Property: StringRAR Type: int"));
assertThat(input.readLine(), is((String) null));
}
Modified: projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/mcf/TestManagedConnectionFactoryPropertyWrong.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/mcf/TestManagedConnectionFactoryPropertyWrong.java 2011-02-20 12:55:25 UTC (rev 110722)
+++ projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/mcf/TestManagedConnectionFactoryPropertyWrong.java 2011-02-21 06:40:46 UTC (rev 110723)
@@ -45,11 +45,12 @@
}
/**
- *
+ * wrong getter
+ * @return int zero
*/
- public void getStringRAR()
+ public int getStringRAR()
{
- //return stringRar;
+ return 0;
}
}
Modified: projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ra/RATestCase.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ra/RATestCase.java 2011-02-20 12:55:25 UTC (rev 110722)
+++ projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ra/RATestCase.java 2011-02-21 06:40:46 UTC (rev 110723)
@@ -390,7 +390,7 @@
assertThat(input.readLine(), is("Description: Invalid config-property-type for ResourceAdapter."));
assertThat(input.readLine(), is("Code: Class: "
+ "org.jboss.jca.validator.rules.ra.TestResourceAdapterPropertyWrong "
- + "Property: StringRAR Type: void"));
+ + "Property: StringRAR Type: int"));
assertThat(input.readLine(), is((String) null));
}
Modified: projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ra/TestResourceAdapterPropertyWrong.java
===================================================================
--- projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ra/TestResourceAdapterPropertyWrong.java 2011-02-20 12:55:25 UTC (rev 110722)
+++ projects/jboss-jca/trunk/validator/src/test/java/org/jboss/jca/validator/rules/ra/TestResourceAdapterPropertyWrong.java 2011-02-21 06:40:46 UTC (rev 110723)
@@ -42,10 +42,11 @@
}
/**
- *
+ * wrong getter
+ * @return int zero
*/
- public void getStringRAR()
+ public int getStringRAR()
{
- //return stringRar;
+ return 0;
}
}
Added: projects/jboss-jca/trunk/validator/src/test/resources/validator/as_property_fail.rar/META-INF/ra.xml
===================================================================
--- projects/jboss-jca/trunk/validator/src/test/resources/validator/as_property_fail.rar/META-INF/ra.xml (rev 0)
+++ projects/jboss-jca/trunk/validator/src/test/resources/validator/as_property_fail.rar/META-INF/ra.xml 2011-02-21 06:40:46 UTC (rev 110723)
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- $Id $ -->
+
+<connector xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+ http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd"
+ version="1.5">
+
+ <vendor-name>Red Hat Middleware LLC</vendor-name>
+ <eis-type>Test RA</eis-type>
+ <resourceadapter-version>0.1</resourceadapter-version>
+
+ <resourceadapter>
+ <resourceadapter-class>org.jboss.jca.validator.rules.ra.TestResourceAdapterRight</resourceadapter-class>
+ <config-property>
+ <config-property-name>StringRAR</config-property-name>
+ <config-property-type>java.lang.String</config-property-type>
+ <config-property-value>StringFromRARProperties</config-property-value>
+ </config-property>
+ <outbound-resourceadapter>
+ <connection-definition>
+ <managedconnectionfactory-class>org.jboss.jca.validator.rules.ra.TestManagedConnectionFactory</managedconnectionfactory-class>
+
+ <connectionfactory-interface>javax.resource.spi.ManagedConnection</connectionfactory-interface>
+ <connectionfactory-impl-class>org.jboss.jca.validator.rules.ra.TestManagedConnection</connectionfactory-impl-class>
+ <connection-interface>org.jboss.jca.validator.rules.base.TestConnectionInterface</connection-interface>
+ <connection-impl-class>org.jboss.jca.validator.rules.base.TestConnection</connection-impl-class>
+ </connection-definition>
+ <transaction-support>LocalTransaction</transaction-support>
+ <reauthentication-support>false</reauthentication-support>
+ </outbound-resourceadapter>
+ <inbound-resourceadapter>
+ <messageadapter>
+ <messagelistener>
+ <messagelistener-type>org.jboss.jca.validator.rules.base.MessageListener</messagelistener-type>
+ <activationspec>
+ <activationspec-class>org.jboss.jca.validator.rules.as.TestActivationSpecFailProperties</activationspec-class>
+ <config-property>
+ <config-property-name>StringRAR</config-property-name>
+ <config-property-type>java.lang.String</config-property-type>
+ <config-property-value>StringFromRARProperties</config-property-value>
+ </config-property>
+ </activationspec>
+ </messagelistener>
+ </messageadapter>
+ </inbound-resourceadapter>
+ </resourceadapter>
+</connector>
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list