0 Replies Latest reply on Aug 18, 2010 9:02 AM by Simon Toftegård Petersen

    Sql-provider validation seems invalid

    Simon Toftegård Petersen Newbie

      Im using jboss-soa-p.4.3.0-cp02 and discovered something strange about sql-provider. Looking through the source code i found that it validates input through soa-work\esb\checkout\product\rosetta\src\org\jboss\soa\esb\listeners\config\XmlValidatorImpl.java with this schema: soa-work\esb\checkout\product\etc\schemas\xml\jbossesb-1.0.1.xsd

      Where <xsd:element name="sql-message-filter"> is defined but only a fraction of the parameters that is actually available are there. Cause if you look in soa-work\esb\checkout\product\rosetta\src\org\jboss\soa\esb\listeners\gateway\SqlTableGatewayListener.java it has alot more parameters that it looks for:

       

       

          /** SQL related  */

      Compiled list of possible configvalues(compiled from ListenerTagNames.java and JDBCEpr.java)

      public static final String SQL_TABLE_NAME_TAG = "tableName"; 

      public static final String MESSAGE_ID_COLUMN_TAG = "message_id_column";

      public static final String DATA_COLUMN_TAG = "message_column";  

      public static final String STATUS_COLUMN_TAG = "status_column";

      public static final String SQL_WHERE_CONDITION_TAG = "whereCondition";

      public static final String ORDER_BY_TAG = "orderBy";

      public static final String TIMESTAMP_COLUMN_TAG = "insert_timestamp_column";

      public static final String POST_DEL_TAG = "postDelete";

      public static final String ERROR_DEL_TAG = "errorDelete";

       

      public static final String SQL_SELECT_FIELDS_TAG = "selectFields";

      public static final String SQL_KEY_FIELDS_TAG = "keyFields";

      public static final String SQL_IN_PROCESS_FIELD_TAG = "inProcessField";

      public static final String SQL_IN_PROCESS_VALUES_TAG = "inProcessValues";

       

      jbossesb-1.0.1.xsd(validation):

      <xsd:attribute name="tablename" type="xsd:string"

      <xsd:attribute name="message-id-column"

      <xsd:attribute name="message-column"

      <xsd:attribute name="status-column"

      <xsd:attribute name="where-condition" use="optional"

      <xsd:attribute name="order-by" use="optional"

      <xsd:attribute name="insert-timestamp-column" use="optional"

      <xsd:attribute default="true" name="post-delete"

      <xsd:attribute default="true" name="error-delete"

       

      As you can see 4 option are missing in the validation. So these can't be used at all. Is this a bug or is it working as intended?

       

       

       

       

       

      Here is my jboss-esb.xml sql-provider just for reference:

       

      <sql-provider name="GatewaySQLprovider"
      url="jdbc:oracle:thin:@jdbc:oracle:thin:@url"
      datasource="java:/HelloworldTxSqlDB">
      <sql-bus busid="helloSQLChannel">
      <sql-message-filter tablename="gateway_table"
      status-column="STATUS_COL" order-by="DATA_COLUMN" where-condition="DATA_COLUMN like 'data%'"
      message-column="DATA_COLUMN" post-delete="false" message-id-column="UNIQUE_ID"
      insert-timestamp-column="TIMESTAMP_COL" error-delete="false" select-fields="DATA_COLUMN" />
      </sql-bus>
      </sql-provider>