[jboss-cvs] JBossAS SVN: r109653 - in projects/jboss-jca/trunk/common/src: main/java/org/jboss/jca/common/api/metadata/common and 8 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Dec 2 11:38:51 EST 2010
Author: maeste
Date: 2010-12-02 11:38:50 -0500 (Thu, 02 Dec 2010)
New Revision: 109653
Added:
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ValidatableMetadata.java
Removed:
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ra/ValidatableMetadata.java
Modified:
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/common/CommonPool.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/common/CommonSecurity.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/CommonDataSource.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/DataSources.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/JdbcAdapterExtension.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/Statement.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/TimeOut.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/Validation.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ra/Connector.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ra/ResourceAdapter.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/AbstractParser.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonIronJacamarParser.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonPoolImpl.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonSecurityImpl.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonXaPoolImpl.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DataSourceAbstractImpl.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DataSourceImpl.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DatasourcesImpl.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DsParser.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/StatementImpl.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/TimeOutImpl.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/ValidationImpl.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/XADataSourceImpl.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ironjacamar/IronJacamarParser.java
projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/resourceadapter/ResourceAdapterParser.java
projects/jboss-jca/trunk/common/src/test/java/org/jboss/jca/common/metadata/ds/DsParserExampleTestCase.java
projects/jboss-jca/trunk/common/src/test/java/org/jboss/jca/common/metadata/ds/DsParserForMinimalFileTestCase.java
Log:
JBJCA-478 implementation of metadata validation for datasources
Copied: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ValidatableMetadata.java (from rev 109652, projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ra/ValidatableMetadata.java)
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ValidatableMetadata.java (rev 0)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ValidatableMetadata.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, 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.common.api.metadata;
+
+import org.jboss.jca.common.api.validator.ValidateException;
+
+/**
+ *
+ * A Validatable metadata
+ *
+ * @author <a href="stefano.maestri at jboss.com">Stefano Maestri</a>
+ *
+ */
+public interface ValidatableMetadata
+{
+
+ /**
+ *
+ * Validate this metadata according validation required by specification
+ *
+ * @throws ValidateException in case of validation fail
+ *
+ */
+ public void validate() throws ValidateException;
+
+}
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/common/CommonPool.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/common/CommonPool.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/common/CommonPool.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -22,6 +22,7 @@
package org.jboss.jca.common.api.metadata.common;
import org.jboss.jca.common.api.metadata.JCAMetadata;
+import org.jboss.jca.common.api.metadata.ValidatableMetadata;
import java.util.HashMap;
import java.util.Map;
@@ -33,7 +34,7 @@
* @author <a href="stefano.maestri at jboss.com">Stefano Maestri</a>
*
*/
-public interface CommonPool extends JCAMetadata
+public interface CommonPool extends JCAMetadata, ValidatableMetadata
{
/**
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/common/CommonSecurity.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/common/CommonSecurity.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/common/CommonSecurity.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -22,6 +22,7 @@
package org.jboss.jca.common.api.metadata.common;
import org.jboss.jca.common.api.metadata.JCAMetadata;
+import org.jboss.jca.common.api.metadata.ValidatableMetadata;
import java.util.HashMap;
import java.util.Map;
@@ -33,7 +34,7 @@
* @author <a href="stefano.maestri at jboss.com">Stefano Maestri</a>
*
*/
-public interface CommonSecurity extends JCAMetadata
+public interface CommonSecurity extends JCAMetadata, ValidatableMetadata
{
/**
* Get the userName.
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/CommonDataSource.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/CommonDataSource.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/CommonDataSource.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -22,6 +22,7 @@
package org.jboss.jca.common.api.metadata.ds;
import org.jboss.jca.common.api.metadata.JCAMetadata;
+import org.jboss.jca.common.api.metadata.ValidatableMetadata;
import org.jboss.jca.common.api.metadata.common.CommonSecurity;
/**
@@ -31,7 +32,7 @@
* @author <a href="stefano.maestri at jboss.com">Stefano Maestri</a>
*
*/
-public interface CommonDataSource extends JCAMetadata
+public interface CommonDataSource extends JCAMetadata, ValidatableMetadata
{
/**
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/DataSources.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/DataSources.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/DataSources.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -23,6 +23,7 @@
import org.jboss.jca.common.api.metadata.JCAMetadata;
+import org.jboss.jca.common.api.metadata.ValidatableMetadata;
import java.util.HashMap;
import java.util.List;
@@ -37,7 +38,7 @@
* @author <a href="stefano.maestri at jboss.com">Stefano Maestri</a>
*
*/
-public interface DataSources extends JCAMetadata
+public interface DataSources extends JCAMetadata, ValidatableMetadata
{
/**
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/JdbcAdapterExtension.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/JdbcAdapterExtension.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/JdbcAdapterExtension.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -22,6 +22,8 @@
package org.jboss.jca.common.api.metadata.ds;
import org.jboss.jca.common.api.metadata.JCAMetadata;
+import org.jboss.jca.common.api.metadata.ValidatableMetadata;
+import org.jboss.jca.common.api.validator.ValidateException;
import java.util.Collections;
import java.util.HashMap;
@@ -34,7 +36,7 @@
* @author <a href="stefano.maestri at jboss.com">Stefano Maestri</a>
*
*/
-public final class JdbcAdapterExtension implements JCAMetadata
+public final class JdbcAdapterExtension implements JCAMetadata, ValidatableMetadata
{
/** The serialVersionUID */
@@ -49,8 +51,9 @@
*
* @param className the className
* @param configPropertiesMap configPropertiesMap
+ * @throws ValidateException ValidateException
*/
- public JdbcAdapterExtension(String className, Map<String, String> configPropertiesMap)
+ public JdbcAdapterExtension(String className, Map<String, String> configPropertiesMap) throws ValidateException
{
super();
this.className = className;
@@ -63,6 +66,7 @@
{
this.configPropertiesMap = Collections.emptyMap();
}
+ this.validate();
}
/**
@@ -242,5 +246,12 @@
}
+ @Override
+ public void validate() throws ValidateException
+ {
+ if (this.className == null || className.trim().length() == 0)
+ throw new ValidateException("connectionUrl is required in " + this.getClass().getCanonicalName());
+ }
+
}
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/Statement.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/Statement.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/Statement.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -22,6 +22,7 @@
package org.jboss.jca.common.api.metadata.ds;
import org.jboss.jca.common.api.metadata.JCAMetadata;
+import org.jboss.jca.common.api.metadata.ValidatableMetadata;
import java.util.HashMap;
import java.util.Map;
@@ -33,7 +34,7 @@
* @author <a href="stefano.maestri at jboss.com">Stefano Maestri</a>
*
*/
-public interface Statement extends JCAMetadata
+public interface Statement extends JCAMetadata, ValidatableMetadata
{
/**
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/TimeOut.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/TimeOut.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/TimeOut.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -21,6 +21,8 @@
*/
package org.jboss.jca.common.api.metadata.ds;
+import org.jboss.jca.common.api.metadata.ValidatableMetadata;
+
import java.util.HashMap;
import java.util.Map;
@@ -31,7 +33,7 @@
* @author <a href="stefano.maestri at jboss.com">Stefano Maestri</a>
*
*/
-public interface TimeOut extends org.jboss.jca.common.api.metadata.common.CommonTimeOut
+public interface TimeOut extends org.jboss.jca.common.api.metadata.common.CommonTimeOut, ValidatableMetadata
{
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/Validation.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/Validation.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ds/Validation.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -22,6 +22,8 @@
package org.jboss.jca.common.api.metadata.ds;
+import org.jboss.jca.common.api.metadata.ValidatableMetadata;
+
import java.util.HashMap;
import java.util.Map;
@@ -32,7 +34,7 @@
* @author <a href="stefano.maestri at jboss.com">Stefano Maestri</a>
*
*/
-public interface Validation extends org.jboss.jca.common.api.metadata.common.CommonValidation
+public interface Validation extends org.jboss.jca.common.api.metadata.common.CommonValidation, ValidatableMetadata
{
/**
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ra/Connector.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ra/Connector.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ra/Connector.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -22,6 +22,7 @@
package org.jboss.jca.common.api.metadata.ra;
import org.jboss.jca.common.api.metadata.CopyableMetaData;
+import org.jboss.jca.common.api.metadata.ValidatableMetadata;
import java.util.List;
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ra/ResourceAdapter.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ra/ResourceAdapter.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ra/ResourceAdapter.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -22,6 +22,7 @@
package org.jboss.jca.common.api.metadata.ra;
import org.jboss.jca.common.api.metadata.CopyableMetaData;
+import org.jboss.jca.common.api.metadata.ValidatableMetadata;
import java.util.List;
Deleted: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ra/ValidatableMetadata.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ra/ValidatableMetadata.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/api/metadata/ra/ValidatableMetadata.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -1,45 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2008, 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.common.api.metadata.ra;
-
-import org.jboss.jca.common.api.validator.ValidateException;
-
-/**
- *
- * A Validatable metadata
- *
- * @author <a href="stefano.maestri at jboss.com">Stefano Maestri</a>
- *
- */
-public interface ValidatableMetadata
-{
-
- /**
- *
- * Validate this metadata according validation required by specification
- *
- * @throws ValidateException in case of validation fail
- *
- */
- public void validate() throws ValidateException;
-
-}
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/AbstractParser.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/AbstractParser.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/AbstractParser.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -26,6 +26,7 @@
import org.jboss.jca.common.api.metadata.common.CommonXaPool;
import org.jboss.jca.common.api.metadata.ds.DataSource;
import org.jboss.jca.common.api.metadata.ds.XaDataSource;
+import org.jboss.jca.common.api.validator.ValidateException;
import org.jboss.jca.common.metadata.common.CommonPoolImpl;
import org.jboss.jca.common.metadata.common.CommonSecurityImpl;
import org.jboss.jca.common.metadata.common.CommonXaPoolImpl;
@@ -159,8 +160,10 @@
* @return the parsed {@link CommonPool} object
* @throws XMLStreamException XMLStreamException
* @throws ParserException ParserException
+ * @throws ValidateException ValidateException
*/
- protected CommonPool parsePool(XMLStreamReader reader) throws XMLStreamException, ParserException
+ protected CommonPool parsePool(XMLStreamReader reader) throws XMLStreamException, ParserException,
+ ValidateException
{
Integer minPoolSize = null;
Integer maxPoolSize = null;
@@ -225,8 +228,10 @@
* @return a {@link CommonSecurity} object
* @throws XMLStreamException XMLStreamException
* @throws ParserException ParserException
+ * @throws ValidateException ValidateException
*/
- protected CommonSecurity parseSecuritySettings(XMLStreamReader reader) throws XMLStreamException, ParserException
+ protected CommonSecurity parseSecuritySettings(XMLStreamReader reader) throws XMLStreamException, ParserException,
+ ValidateException
{
String userName = null;
@@ -280,8 +285,10 @@
* @return the parsed {@link CommonXaPool} object
* @throws XMLStreamException XMLStreamException
* @throws ParserException ParserException
+ * @throws ValidateException ValidateException
*/
- protected CommonXaPool parseXaPool(XMLStreamReader reader) throws XMLStreamException, ParserException
+ protected CommonXaPool parseXaPool(XMLStreamReader reader) throws XMLStreamException, ParserException,
+ ValidateException
{
Integer minPoolSize = null;
Integer maxPoolSize = null;
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonIronJacamarParser.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonIronJacamarParser.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonIronJacamarParser.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -28,6 +28,7 @@
import org.jboss.jca.common.api.metadata.common.CommonTimeOut;
import org.jboss.jca.common.api.metadata.common.CommonValidation;
import org.jboss.jca.common.api.metadata.resourceadapter.ResourceAdapter;
+import org.jboss.jca.common.api.validator.ValidateException;
import org.jboss.jca.common.metadata.AbstractParser;
import org.jboss.jca.common.metadata.ParserException;
@@ -57,9 +58,10 @@
* @return the parse {@link CommonConnDef} object
* @throws XMLStreamException XMLStreamException
* @throws ParserException ParserException
+ * @throws ValidateException ValidateException
*/
protected CommonConnDef parseConnectionDefinitions(XMLStreamReader reader) throws XMLStreamException,
- ParserException
+ ParserException, ValidateException
{
HashMap<String, String> configProperties = new HashMap<String, String>();
CommonSecurity security = null;
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonPoolImpl.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonPoolImpl.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonPoolImpl.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -22,6 +22,7 @@
package org.jboss.jca.common.metadata.common;
import org.jboss.jca.common.api.metadata.common.CommonPool;
+import org.jboss.jca.common.api.validator.ValidateException;
/**
*
@@ -63,14 +64,17 @@
* @param maxPoolSize maxPoolSize
* @param prefill prefill
* @param useStrictMin useStrictMin
+ * @throws ValidateException ValidateException
*/
public CommonPoolImpl(Integer minPoolSize, Integer maxPoolSize, Boolean prefill, Boolean useStrictMin)
+ throws ValidateException
{
super();
this.minPoolSize = minPoolSize;
this.maxPoolSize = maxPoolSize;
this.prefill = prefill;
this.useStrictMin = useStrictMin;
+ this.validate();
}
/**
@@ -117,4 +121,14 @@
return useStrictMin;
}
+ @Override
+ public void validate() throws ValidateException
+ {
+ if (this.maxPoolSize != null && this.maxPoolSize < 0)
+ throw new ValidateException("maxPoolSize cannot be < 0");
+ if (this.minPoolSize != null && this.minPoolSize < 0)
+ throw new ValidateException("minPoolSize cannot be < 0");
+
+ }
+
}
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonSecurityImpl.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonSecurityImpl.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonSecurityImpl.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -22,6 +22,7 @@
package org.jboss.jca.common.metadata.common;
import org.jboss.jca.common.api.metadata.common.CommonSecurity;
+import org.jboss.jca.common.api.validator.ValidateException;
/**
@@ -46,12 +47,14 @@
*
* @param userName userName
* @param password password
+ * @throws ValidateException ValidateException
*/
- public CommonSecurityImpl(String userName, String password)
+ public CommonSecurityImpl(String userName, String password) throws ValidateException
{
super();
this.userName = userName;
this.password = password;
+ this.validate();
}
/**
@@ -119,5 +122,10 @@
return "SecurityImpl [userName=" + userName + ", password=" + password + "]";
}
+ @Override
+ public void validate() throws ValidateException
+ {
+ //always validate, nothing is mandatory
+ }
}
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonXaPoolImpl.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonXaPoolImpl.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/common/CommonXaPoolImpl.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -22,6 +22,7 @@
package org.jboss.jca.common.metadata.common;
import org.jboss.jca.common.api.metadata.common.CommonXaPool;
+import org.jboss.jca.common.api.validator.ValidateException;
/**
*
@@ -45,8 +46,6 @@
private final Boolean noTxSeparatePool;
-
-
/**
* Create a new XaPoolImpl.
*
@@ -59,10 +58,11 @@
* @param padXid padXid
* @param wrapXaDataSource wrapXaDataSource
* @param noTxSeparatePool noTxSeparatePool
+ * @throws ValidateException ValidateException
*/
public CommonXaPoolImpl(Integer minPoolSize, Integer maxPoolSize, Boolean prefill, Boolean useStrictMin,
Boolean isSameRmOverride, Boolean interleaving, Boolean padXid, Boolean wrapXaDataSource,
- Boolean noTxSeparatePool)
+ Boolean noTxSeparatePool) throws ValidateException
{
super(minPoolSize, maxPoolSize, prefill, useStrictMin);
this.isSameRmOverride = isSameRmOverride;
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DataSourceAbstractImpl.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DataSourceAbstractImpl.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DataSourceAbstractImpl.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -27,6 +27,7 @@
import org.jboss.jca.common.api.metadata.ds.TimeOut;
import org.jboss.jca.common.api.metadata.ds.TransactionIsolation;
import org.jboss.jca.common.api.metadata.ds.Validation;
+import org.jboss.jca.common.api.validator.ValidateException;
/**
*
@@ -110,11 +111,12 @@
* @param poolName poolName
* @param enabled enabled
* @param jndiName jndiName
+ * @throws ValidateException ValidateException
*/
protected DataSourceAbstractImpl(TransactionIsolation transactionIsolation, TimeOut timeOut,
CommonSecurity security, Statement statement, Validation validation, String urlDelimiter,
- String urlSelectorStrategyClassName, Boolean useJavaContext, String poolName, Boolean enabled,
- String jndiName)
+ String urlSelectorStrategyClassName, Boolean useJavaContext, String poolName, Boolean enabled, String jndiName)
+ throws ValidateException
{
super();
this.transactionIsolation = transactionIsolation;
@@ -128,6 +130,7 @@
this.poolName = poolName;
this.enabled = enabled;
this.jndiName = jndiName;
+ partialCommonValidation();
}
/**
@@ -226,4 +229,27 @@
return jndiName;
}
+ /**
+ *
+ * Partial validation for common fields defined in this abstract class
+ *
+ * @throws ValidateException ValidateException
+ */
+ protected void partialCommonValidation() throws ValidateException
+ {
+ if (this.jndiName == null)
+ throw new ValidateException("jndiName is require in " + this.getClass().getCanonicalName());
+ if (this.poolName == null)
+ throw new ValidateException("poolName is require in " + this.getClass().getCanonicalName());
+
+ if (this.timeOut != null)
+ this.timeOut.validate();
+ if (this.security != null)
+ this.security.validate();
+ if (this.statement != null)
+ this.statement.validate();
+ if (this.validation != null)
+ this.validation.validate();
+ }
+
}
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DataSourceImpl.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DataSourceImpl.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DataSourceImpl.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -28,6 +28,7 @@
import org.jboss.jca.common.api.metadata.ds.TimeOut;
import org.jboss.jca.common.api.metadata.ds.TransactionIsolation;
import org.jboss.jca.common.api.metadata.ds.Validation;
+import org.jboss.jca.common.api.validator.ValidateException;
import java.util.Collections;
import java.util.HashMap;
@@ -77,13 +78,13 @@
* @param enabled enabled
* @param jndiName jndiName
* @param pool pool
+ * @throws ValidateException ValidateException
*/
public DataSourceImpl(String connectionUrl, String driverClass, String module,
- TransactionIsolation transactionIsolation,
- Map<String, String> connectionProperties, TimeOut timeOut, CommonSecurity security,
- Statement statement, Validation validation, String urlDelimiter,
- String urlSelectorStrategyClassName, String newConnectionSql,
- boolean useJavaContext, String poolName, boolean enabled, String jndiName, CommonPool pool)
+ TransactionIsolation transactionIsolation, Map<String, String> connectionProperties, TimeOut timeOut,
+ CommonSecurity security, Statement statement, Validation validation, String urlDelimiter,
+ String urlSelectorStrategyClassName, String newConnectionSql, boolean useJavaContext, String poolName,
+ boolean enabled, String jndiName, CommonPool pool) throws ValidateException
{
super(transactionIsolation, timeOut, security, statement, validation, urlDelimiter,
urlSelectorStrategyClassName, useJavaContext, poolName, enabled, jndiName);
@@ -101,7 +102,7 @@
}
this.newConnectionSql = newConnectionSql;
this.pool = pool;
-
+ this.validate();
}
/**
@@ -275,13 +276,22 @@
@Override
public String toString()
{
- return "DataSourceImpl [connectionUrl=" + connectionUrl + ", driverClass=" + driverClass +
- ", module=" + module +
- ", connectionProperties=" + connectionProperties + ", newConnectionSql=" + newConnectionSql +
- ", pool=" + pool + ", transactionIsolation=" + transactionIsolation + ", timeOut=" + timeOut +
- ", security=" + security + ", statement=" + statement + ", validation=" + validation +
- ", urlDelimiter=" + urlDelimiter + ", urlSelectorStrategyClassName=" + urlSelectorStrategyClassName +
- ", useJavaContext=" + useJavaContext + ", poolName=" + poolName + ", enabled=" + enabled +
- ", jndiName=" + jndiName + "]";
+ return "DataSourceImpl [connectionUrl=" + connectionUrl + ", driverClass=" + driverClass + ", module=" +
+ module + ", connectionProperties=" + connectionProperties + ", newConnectionSql=" + newConnectionSql +
+ ", pool=" + pool + ", transactionIsolation=" + transactionIsolation + ", timeOut=" + timeOut +
+ ", security=" + security + ", statement=" + statement + ", validation=" + validation +
+ ", urlDelimiter=" + urlDelimiter + ", urlSelectorStrategyClassName=" + urlSelectorStrategyClassName +
+ ", useJavaContext=" + useJavaContext + ", poolName=" + poolName + ", enabled=" + enabled +
+ ", jndiName=" + jndiName + "]";
}
+
+ @Override
+ public void validate() throws ValidateException
+ {
+ if (this.connectionUrl == null || this.connectionUrl.trim().length() == 0)
+ throw new ValidateException("connectionUrl is require in " + this.getClass().getCanonicalName());
+ if (this.driverClass == null || this.driverClass.trim().length() == 0)
+ throw new ValidateException("driverClass is require in " + this.getClass().getCanonicalName());
+
+ }
}
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DatasourcesImpl.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DatasourcesImpl.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DatasourcesImpl.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -24,6 +24,7 @@
import org.jboss.jca.common.api.metadata.ds.DataSource;
import org.jboss.jca.common.api.metadata.ds.DataSources;
import org.jboss.jca.common.api.metadata.ds.XaDataSource;
+import org.jboss.jca.common.api.validator.ValidateException;
import java.util.ArrayList;
import java.util.Collections;
@@ -51,8 +52,9 @@
*
* @param datasource datasource
* @param xaDataSource xaDataSource
+ * @throws ValidateException ValidateException
*/
- public DatasourcesImpl(List<DataSource> datasource, List<XaDataSource> xaDataSource)
+ public DatasourcesImpl(List<DataSource> datasource, List<XaDataSource> xaDataSource) throws ValidateException
{
super();
if (datasource != null)
@@ -73,6 +75,7 @@
{
this.xaDataSource = new ArrayList<XaDataSource>(0);
}
+ this.validate();
}
/**
@@ -140,4 +143,18 @@
return "DatasourcesImpl [datasource=" + datasource + ", xaDataSource=" + xaDataSource + "]";
}
+ @Override
+ public void validate() throws ValidateException
+ {
+ //always validate if all contetents are validating
+ for (DataSource ds : this.datasource)
+ {
+ ds.validate();
+ }
+ for (XaDataSource xads : this.xaDataSource)
+ {
+ xads.validate();
+ }
+ }
+
}
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DsParser.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DsParser.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/DsParser.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -34,6 +34,7 @@
import org.jboss.jca.common.api.metadata.ds.Validation;
import org.jboss.jca.common.api.metadata.ds.XaDataSource;
import org.jboss.jca.common.api.metadata.ds.XaDataSource.Attribute;
+import org.jboss.jca.common.api.validator.ValidateException;
import org.jboss.jca.common.metadata.AbstractParser;
import org.jboss.jca.common.metadata.MetadataParser;
import org.jboss.jca.common.metadata.ParserException;
@@ -125,7 +126,8 @@
}
- private DataSources parseDataSources(XMLStreamReader reader) throws XMLStreamException, ParserException
+ private DataSources parseDataSources(XMLStreamReader reader) throws XMLStreamException, ParserException,
+ ValidateException
{
ArrayList<XaDataSource> xaDataSource = new ArrayList<XaDataSource>();
ArrayList<DataSource> datasource = new ArrayList<DataSource>();
@@ -169,7 +171,8 @@
throw new ParserException("Reached end of xml document unexpectedly");
}
- private XaDataSource parseXADataSource(XMLStreamReader reader) throws XMLStreamException, ParserException
+ private XaDataSource parseXADataSource(XMLStreamReader reader) throws XMLStreamException, ParserException,
+ ValidateException
{
TransactionIsolation transactionIsolation = null;
Map<String, String> xaDataSourceProperty = new HashMap<String, String>();
@@ -302,7 +305,8 @@
throw new ParserException("Reached end of xml document unexpectedly");
}
- private DataSource parseDataSource(XMLStreamReader reader) throws XMLStreamException, ParserException
+ private DataSource parseDataSource(XMLStreamReader reader) throws XMLStreamException, ParserException,
+ ValidateException
{
Integer minPoolSize = null;
Integer maxPoolSize = null;
@@ -441,7 +445,8 @@
throw new ParserException("Reached end of xml document unexpectedly");
}
- private Validation parseValidationSetting(XMLStreamReader reader) throws XMLStreamException, ParserException
+ private Validation parseValidationSetting(XMLStreamReader reader) throws XMLStreamException, ParserException,
+ ValidateException
{
boolean validateOnMatch = false;
boolean useFastFail = false;
@@ -521,7 +526,7 @@
}
private JdbcAdapterExtension parseJdbcAdapterExtension(XMLStreamReader reader, Validation.Tag enclosingTag)
- throws XMLStreamException, ParserException
+ throws XMLStreamException, ParserException, ValidateException
{
String className = null;
@@ -582,7 +587,8 @@
- private TimeOut parseTimeOutSettings(XMLStreamReader reader) throws XMLStreamException, ParserException
+ private TimeOut parseTimeOutSettings(XMLStreamReader reader) throws XMLStreamException, ParserException,
+ ValidateException
{
Long blockingTimeoutMillis = null;
@@ -660,7 +666,8 @@
throw new ParserException("Reached end of xml document unexpectedly");
}
- private Statement parseStatementSettings(XMLStreamReader reader) throws XMLStreamException, ParserException
+ private Statement parseStatementSettings(XMLStreamReader reader) throws XMLStreamException, ParserException,
+ ValidateException
{
Long preparedStatementsCacheSize = null;
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/StatementImpl.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/StatementImpl.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/StatementImpl.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -22,6 +22,7 @@
package org.jboss.jca.common.metadata.ds;
import org.jboss.jca.common.api.metadata.ds.Statement;
+import org.jboss.jca.common.api.validator.ValidateException;
/**
*
@@ -48,14 +49,16 @@
* @param sharePreparedStatements sharePreparedStatements
* @param preparedStatementsCacheSize preparedStatementsCacheSize
* @param trackStatements trackStatements
+ * @throws ValidateException ValidateException
*/
public StatementImpl(Boolean sharePreparedStatements, Long preparedStatementsCacheSize,
- TrackStatementsEnum trackStatements)
+ TrackStatementsEnum trackStatements) throws ValidateException
{
super();
this.sharePreparedStatements = sharePreparedStatements;
this.preparedStatementsCacheSize = preparedStatementsCacheSize;
this.trackStatements = trackStatements;
+ this.validate();
}
/**
@@ -138,5 +141,12 @@
", preparedStatementsCacheSize=" + preparedStatementsCacheSize +
", trackStatements=" + trackStatements + "]";
}
+
+ @Override
+ public void validate() throws ValidateException
+ {
+ if (this.preparedStatementsCacheSize != null && this.preparedStatementsCacheSize < 0)
+ throw new ValidateException("preparedStatementsCacheSize cannot be < 0");
+ }
}
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/TimeOutImpl.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/TimeOutImpl.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/TimeOutImpl.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -22,6 +22,7 @@
package org.jboss.jca.common.metadata.ds;
import org.jboss.jca.common.api.metadata.ds.TimeOut;
+import org.jboss.jca.common.api.validator.ValidateException;
/**
*
@@ -52,16 +53,18 @@
* @param setTxQuertTimeout setTxQuertTimeout
* @param queryTimeout queryTimeout
* @param useTryLock useTryLock
+ * @throws ValidateException ValidateException
*/
public TimeOutImpl(Long blockingTimeoutMillis, Long idleTimeoutMinutes, Integer allocationRetry,
Long allocationRetryWaitMillis, Integer xaResourceTimeout, Boolean setTxQuertTimeout, Long queryTimeout,
- Long useTryLock)
+ Long useTryLock) throws ValidateException
{
super(blockingTimeoutMillis, idleTimeoutMinutes, allocationRetry, allocationRetryWaitMillis,
xaResourceTimeout);
this.setTxQuertTimeout = setTxQuertTimeout;
this.queryTimeout = queryTimeout;
this.useTryLock = useTryLock;
+ this.validate();
}
/**
@@ -149,4 +152,20 @@
", useTryLock=" + useTryLock + "]";
}
+ @Override
+ public void validate() throws ValidateException
+ {
+ if (this.allocationRetry != null && this.allocationRetry < 0)
+ throw new ValidateException("allocationRetry cannot be < 0");
+ if (this.blockingTimeoutMillis != null && this.blockingTimeoutMillis < 0)
+ throw new ValidateException("blockingTimeoutMillis cannot be < 0");
+ if (this.allocationRetryWaitMillis != null && this.allocationRetryWaitMillis < 0)
+ throw new ValidateException("allocationRetryWaitMillis cannot be < 0");
+ if (this.idleTimeoutMinutes != null && this.idleTimeoutMinutes < 0)
+ throw new ValidateException("idleTimeoutMinutes cannot be < 0");
+ if (this.xaResourceTimeout != null && this.xaResourceTimeout < 0)
+ throw new ValidateException("xaResourceTimeout cannot be < 0");
+
+ }
+
}
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/ValidationImpl.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/ValidationImpl.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/ValidationImpl.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -23,6 +23,7 @@
import org.jboss.jca.common.api.metadata.ds.JdbcAdapterExtension;
import org.jboss.jca.common.api.metadata.ds.Validation;
+import org.jboss.jca.common.api.validator.ValidateException;
/**
@@ -34,75 +35,7 @@
*/
public class ValidationImpl extends org.jboss.jca.common.metadata.common.CommonValidationImpl implements Validation
{
- @Override
- public String toString()
- {
- return "ValidationImpl [validConnectionChecker=" + validConnectionChecker + ", checkValidConnectionSql=" +
- checkValidConnectionSql + ", validateOnMatch=" + validateOnMatch + ", staleConnectionChecker=" +
- staleConnectionChecker + ", exceptionSorter=" + exceptionSorter + "]";
- }
- @Override
- public int hashCode()
- {
- final int prime = 31;
- int result = super.hashCode();
- result = prime * result + ((checkValidConnectionSql == null) ? 0 : checkValidConnectionSql.hashCode());
- result = prime * result + ((exceptionSorter == null) ? 0 : exceptionSorter.hashCode());
- result = prime * result + ((staleConnectionChecker == null) ? 0 : staleConnectionChecker.hashCode());
- result = prime * result + ((validConnectionChecker == null) ? 0 : validConnectionChecker.hashCode());
- result = prime * result + ((validateOnMatch == null) ? 0 : validateOnMatch.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj)
- return true;
- if (!super.equals(obj))
- return false;
- if (!(obj instanceof ValidationImpl))
- return false;
- ValidationImpl other = (ValidationImpl) obj;
- if (checkValidConnectionSql == null)
- {
- if (other.checkValidConnectionSql != null)
- return false;
- }
- else if (!checkValidConnectionSql.equals(other.checkValidConnectionSql))
- return false;
- if (exceptionSorter == null)
- {
- if (other.exceptionSorter != null)
- return false;
- }
- else if (!exceptionSorter.equals(other.exceptionSorter))
- return false;
- if (staleConnectionChecker == null)
- {
- if (other.staleConnectionChecker != null)
- return false;
- }
- else if (!staleConnectionChecker.equals(other.staleConnectionChecker))
- return false;
- if (validConnectionChecker == null)
- {
- if (other.validConnectionChecker != null)
- return false;
- }
- else if (!validConnectionChecker.equals(other.validConnectionChecker))
- return false;
- if (validateOnMatch == null)
- {
- if (other.validateOnMatch != null)
- return false;
- }
- else if (!validateOnMatch.equals(other.validateOnMatch))
- return false;
- return true;
- }
-
/** The serialVersionUID */
private static final long serialVersionUID = 7816717816552118419L;
@@ -127,10 +60,11 @@
* @param validateOnMatch validateOnMatch
* @param staleConnectionChecker staleConnectionChecker
* @param exceptionSorter exceptionSorter
+ * @throws ValidateException ValidateException
*/
public ValidationImpl(Boolean backgroundValidation, Long backgroundValidationMinutes, Boolean useFastFail,
JdbcAdapterExtension validConnectionChecker, String checkValidConnectionSql, Boolean validateOnMatch,
- JdbcAdapterExtension staleConnectionChecker, JdbcAdapterExtension exceptionSorter)
+ JdbcAdapterExtension staleConnectionChecker, JdbcAdapterExtension exceptionSorter) throws ValidateException
{
super(backgroundValidation, backgroundValidationMinutes, useFastFail);
this.validConnectionChecker = validConnectionChecker;
@@ -138,6 +72,7 @@
this.validateOnMatch = validateOnMatch;
this.staleConnectionChecker = staleConnectionChecker;
this.exceptionSorter = exceptionSorter;
+ this.validate();
}
@@ -206,5 +141,87 @@
return exceptionSorter;
}
+ @Override
+ public void validate() throws ValidateException
+ {
+ if (this.backgroundValidationMinutes != null && this.backgroundValidationMinutes < 0)
+ throw new ValidateException("backgroundValidationMinutes cannot be < 0");
+ if (this.validConnectionChecker != null)
+ this.validConnectionChecker.validate();
+ if (this.exceptionSorter != null)
+ this.exceptionSorter.validate();
+ if (this.staleConnectionChecker != null)
+ this.staleConnectionChecker.validate();
+ }
+
+ @Override
+ public String toString()
+ {
+ return "ValidationImpl [validConnectionChecker=" + validConnectionChecker + ", checkValidConnectionSql=" +
+ checkValidConnectionSql + ", validateOnMatch=" + validateOnMatch + ", staleConnectionChecker=" +
+ staleConnectionChecker + ", exceptionSorter=" + exceptionSorter + "]";
+ }
+
+ @Override
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = super.hashCode();
+ result = prime * result + ((checkValidConnectionSql == null) ? 0 : checkValidConnectionSql.hashCode());
+ result = prime * result + ((exceptionSorter == null) ? 0 : exceptionSorter.hashCode());
+ result = prime * result + ((staleConnectionChecker == null) ? 0 : staleConnectionChecker.hashCode());
+ result = prime * result + ((validConnectionChecker == null) ? 0 : validConnectionChecker.hashCode());
+ result = prime * result + ((validateOnMatch == null) ? 0 : validateOnMatch.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ return true;
+ if (!super.equals(obj))
+ return false;
+ if (!(obj instanceof ValidationImpl))
+ return false;
+ ValidationImpl other = (ValidationImpl) obj;
+ if (checkValidConnectionSql == null)
+ {
+ if (other.checkValidConnectionSql != null)
+ return false;
+ }
+ else if (!checkValidConnectionSql.equals(other.checkValidConnectionSql))
+ return false;
+ if (exceptionSorter == null)
+ {
+ if (other.exceptionSorter != null)
+ return false;
+ }
+ else if (!exceptionSorter.equals(other.exceptionSorter))
+ return false;
+ if (staleConnectionChecker == null)
+ {
+ if (other.staleConnectionChecker != null)
+ return false;
+ }
+ else if (!staleConnectionChecker.equals(other.staleConnectionChecker))
+ return false;
+ if (validConnectionChecker == null)
+ {
+ if (other.validConnectionChecker != null)
+ return false;
+ }
+ else if (!validConnectionChecker.equals(other.validConnectionChecker))
+ return false;
+ if (validateOnMatch == null)
+ {
+ if (other.validateOnMatch != null)
+ return false;
+ }
+ else if (!validateOnMatch.equals(other.validateOnMatch))
+ return false;
+ return true;
+ }
+
}
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/XADataSourceImpl.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/XADataSourceImpl.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ds/XADataSourceImpl.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -28,6 +28,7 @@
import org.jboss.jca.common.api.metadata.ds.TransactionIsolation;
import org.jboss.jca.common.api.metadata.ds.Validation;
import org.jboss.jca.common.api.metadata.ds.XaDataSource;
+import org.jboss.jca.common.api.validator.ValidateException;
import java.util.Collections;
import java.util.HashMap;
@@ -74,12 +75,13 @@
* @param module module
* @param newConnectionSql newConnectionSql
* @param xaPool xaPool
+ * @throws ValidateException ValidateException
*/
public XADataSourceImpl(TransactionIsolation transactionIsolation, TimeOut timeOut, CommonSecurity security,
Statement statement, Validation validation, String urlDelimiter, String urlSelectorStrategyClassName,
boolean useJavaContext, String poolName, boolean enabled, String jndiName,
Map<String, String> xaDataSourceProperty, String xaDataSourceClass, String module, String newConnectionSql,
- CommonXaPool xaPool)
+ CommonXaPool xaPool) throws ValidateException
{
super(transactionIsolation, timeOut, security, statement, validation, urlDelimiter,
urlSelectorStrategyClassName, useJavaContext, poolName, enabled, jndiName);
@@ -96,6 +98,7 @@
this.module = module;
this.newConnectionSql = newConnectionSql;
this.xaPool = xaPool;
+ this.validate();
}
/**
@@ -229,12 +232,11 @@
public String toString()
{
return "XADataSourceImpl [xaDataSourceProperty=" + xaDataSourceProperty + ", xaDataSourceClass=" +
- xaDataSourceClass + ", module=" +
- module + ", newConnectionSql=" + newConnectionSql + ", xaPool=" + xaPool +
- ", transactionIsolation=" + transactionIsolation + ", timeOut=" + timeOut + ", security=" + security +
- ", statement=" + statement + ", validation=" + validation + ", urlDelimiter=" + urlDelimiter +
- ", urlSelectorStrategyClassName=" + urlSelectorStrategyClassName + ", useJavaContext=" +
- useJavaContext + ", poolName=" + poolName + ", enabled=" + enabled + ", jndiName=" + jndiName + "]";
+ xaDataSourceClass + ", module=" + module + ", newConnectionSql=" + newConnectionSql + ", xaPool=" +
+ xaPool + ", transactionIsolation=" + transactionIsolation + ", timeOut=" + timeOut + ", security=" +
+ security + ", statement=" + statement + ", validation=" + validation + ", urlDelimiter=" + urlDelimiter +
+ ", urlSelectorStrategyClassName=" + urlSelectorStrategyClassName + ", useJavaContext=" + useJavaContext +
+ ", poolName=" + poolName + ", enabled=" + enabled + ", jndiName=" + jndiName + "]";
}
/**
@@ -248,7 +250,6 @@
return Collections.unmodifiableMap(xaDataSourceProperty);
}
-
/**
* Get the xaPool.
*
@@ -259,4 +260,15 @@
{
return xaPool;
}
+
+ @Override
+ public void validate() throws ValidateException
+ {
+ if (this.xaDataSourceClass == null || this.xaDataSourceClass.trim().length() == 0)
+ throw new ValidateException("xaDataSourceClass is required in " + this.getClass().getCanonicalName());
+ if (this.xaDataSourceProperty.isEmpty())
+ throw new ValidateException("at least one xaDataSourceProperty is required in " +
+ this.getClass().getCanonicalName());
+
+ }
}
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ironjacamar/IronJacamarParser.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ironjacamar/IronJacamarParser.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/ironjacamar/IronJacamarParser.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -25,6 +25,7 @@
import org.jboss.jca.common.api.metadata.common.CommonConnDef;
import org.jboss.jca.common.api.metadata.common.TransactionSupportEnum;
import org.jboss.jca.common.api.metadata.ironjacamar.IronJacamar;
+import org.jboss.jca.common.api.validator.ValidateException;
import org.jboss.jca.common.metadata.MetadataParser;
import org.jboss.jca.common.metadata.ParserException;
import org.jboss.jca.common.metadata.common.CommonIronJacamarParser;
@@ -113,7 +114,8 @@
}
- private IronJacamar parseIronJacamar(XMLStreamReader reader) throws XMLStreamException, ParserException
+ private IronJacamar parseIronJacamar(XMLStreamReader reader) throws XMLStreamException, ParserException,
+ ValidateException
{
ArrayList<CommonConnDef> connectionDefinitions = null;
ArrayList<CommonAdminObject> adminObjects = null;
Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/resourceadapter/ResourceAdapterParser.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/resourceadapter/ResourceAdapterParser.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/metadata/resourceadapter/ResourceAdapterParser.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -26,6 +26,7 @@
import org.jboss.jca.common.api.metadata.common.TransactionSupportEnum;
import org.jboss.jca.common.api.metadata.resourceadapter.ResourceAdapter;
import org.jboss.jca.common.api.metadata.resourceadapter.ResourceAdapters;
+import org.jboss.jca.common.api.validator.ValidateException;
import org.jboss.jca.common.metadata.MetadataParser;
import org.jboss.jca.common.metadata.ParserException;
import org.jboss.jca.common.metadata.common.CommonIronJacamarParser;
@@ -116,7 +117,8 @@
}
- private ResourceAdapters parseResourceAdapters(XMLStreamReader reader) throws XMLStreamException, ParserException
+ private ResourceAdapters parseResourceAdapters(XMLStreamReader reader) throws XMLStreamException, ParserException,
+ ValidateException
{
ArrayList<ResourceAdapter> resourceAdapters = new ArrayList<ResourceAdapter>();
while (reader.hasNext())
@@ -155,7 +157,8 @@
throw new ParserException("Reached end of xml document unexpectedly");
}
- private ResourceAdapter parseResourceAdapter(XMLStreamReader reader) throws XMLStreamException, ParserException
+ private ResourceAdapter parseResourceAdapter(XMLStreamReader reader) throws XMLStreamException, ParserException,
+ ValidateException
{
ArrayList<CommonConnDef> connectionDefinitions = null;
ArrayList<CommonAdminObject> adminObjects = null;
Modified: projects/jboss-jca/trunk/common/src/test/java/org/jboss/jca/common/metadata/ds/DsParserExampleTestCase.java
===================================================================
--- projects/jboss-jca/trunk/common/src/test/java/org/jboss/jca/common/metadata/ds/DsParserExampleTestCase.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/test/java/org/jboss/jca/common/metadata/ds/DsParserExampleTestCase.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -49,11 +49,18 @@
public class DsParserExampleTestCase
{
- public static DsParser parser;
+ private static DsParser parser;
+ /** Datapoints for junit Theory **/
@DataPoints
public static File[] xmlFiles;
+ /**
+ *
+ * beforeClass method
+ *
+ * @throws Exception in casae of file not found
+ */
@BeforeClass
public static void beforeClass() throws Exception
{
@@ -86,6 +93,7 @@
}
catch (Exception e)
{
+ e.printStackTrace();
fail("got an exception for file" + xmlFile.toString() + " with message: " + e.getMessage());
}
finally
Modified: projects/jboss-jca/trunk/common/src/test/java/org/jboss/jca/common/metadata/ds/DsParserForMinimalFileTestCase.java
===================================================================
--- projects/jboss-jca/trunk/common/src/test/java/org/jboss/jca/common/metadata/ds/DsParserForMinimalFileTestCase.java 2010-12-02 16:37:10 UTC (rev 109652)
+++ projects/jboss-jca/trunk/common/src/test/java/org/jboss/jca/common/metadata/ds/DsParserForMinimalFileTestCase.java 2010-12-02 16:38:50 UTC (rev 109653)
@@ -22,6 +22,7 @@
package org.jboss.jca.common.metadata.ds;
import org.jboss.jca.common.api.metadata.ds.DataSources;
+import org.jboss.jca.common.api.validator.ValidateException;
import java.io.File;
import java.io.FileInputStream;
@@ -32,18 +33,38 @@
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
+/**
+ *
+ * A DsParserForMinimalFileTestCase.
+ *
+ * @author <a href="stefano.maestri at jboss.com">Stefano Maestri</a>
+ *
+ */
public class DsParserForMinimalFileTestCase
{
- public static DsParser parser;
+ private static DsParser parser;
+ /**
+ *
+ * beforeClass method
+ *
+ * @throws Exception in casae of file not found
+ */
@BeforeClass
public static void beforeClass() throws Exception
{
parser = new DsParser();
}
- @Test
+ /**
+ *
+ * shouldFailIfNoDriverHasBeenSpecified
+ *
+ * @throws Exception test passes if a {@link ValidateException} has been
+ * thrown
+ */
+ @Test(expected = ValidateException.class)
public void shouldFailIfNoDriverHasBeenSpecified() throws Exception
{
More information about the jboss-cvs-commits
mailing list