You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/02/26 16:01:10 UTC

svn commit: r748170 - in /camel/trunk/components/camel-ibatis/src: main/java/org/apache/camel/component/ibatis/ main/java/org/apache/camel/component/ibatis/strategy/ test/java/org/apache/camel/component/ibatis/ test/resources/org/apache/camel/component...

Author: davsclaus
Date: Thu Feb 26 15:01:10 2009
New Revision: 748170

URL: http://svn.apache.org/viewvc?rev=748170&view=rev
Log:
CAMEL-1373: CamelCase keys and polished code.

Added:
    camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisConstants.java   (with props)
Modified:
    camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisComponent.java
    camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisEndpoint.java
    camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisPollingConsumer.java
    camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisProducer.java
    camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/strategy/DefaultIBatisProcessingStategy.java
    camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/strategy/IBatisProcessingStrategy.java
    camel/trunk/components/camel-ibatis/src/test/java/org/apache/camel/component/ibatis/IBatisQueueTest.java
    camel/trunk/components/camel-ibatis/src/test/resources/org/apache/camel/component/ibatis/Account.xml

Modified: camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisComponent.java?rev=748170&r1=748169&r2=748170&view=diff
==============================================================================
--- camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisComponent.java (original)
+++ camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisComponent.java Thu Feb 26 15:01:10 2009
@@ -23,12 +23,9 @@
 
 import com.ibatis.sqlmap.client.SqlMapClient;
 import com.ibatis.sqlmap.client.SqlMapClientBuilder;
-import org.apache.camel.Endpoint;
 import org.apache.camel.component.ResourceBasedComponent;
-import org.apache.camel.impl.DefaultComponent;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
 
 /**
@@ -77,6 +74,22 @@
         this.sqlMapClient = sqlMapClient;
     }
 
+    /**
+     * Creates an IbatisEndpoint for use by an IbatisConsumer or IbatisProducer.
+     */
+    @Override
+    protected IBatisEndpoint createEndpoint(String uri, String remaining, Map parameters) throws Exception {
+        IBatisEndpoint answer = new IBatisEndpoint(uri, this, remaining);
+        setProperties(answer, parameters);
+        return answer;
+    }
+
+    private SqlMapClient createSqlMapClient() throws IOException {
+        Resource resource = resolveMandatoryResource(sqlMapConfig);
+        InputStream is = resource.getInputStream();
+        return SqlMapClientBuilder.buildSqlMapClient(new InputStreamReader(is));
+    }
+
     // Properties
     //-------------------------------------------------------------------------
 
@@ -96,7 +109,6 @@
     
     /**
      * Sets the SqlMapClient
-     * @param sqlMapClient The client
      */
     public void setSqlMapClient(SqlMapClient sqlMapClient) {
         this.sqlMapClient = sqlMapClient;
@@ -104,26 +116,11 @@
 
     /**
      * The Spring uri of the SqlMapConfig
-     * @return java.lang.String
      */
     public String getSqlMapConfig() {
         return sqlMapConfig;
     }
 
-    /**
-     * Creates an IbatisEndpoint for use by an IbatisConsumer or IbatisProducer.
-     */
-    @Override
-    protected IBatisEndpoint createEndpoint(String uri, String remaining, Map params) throws Exception {
-        return new IBatisEndpoint(uri, this, remaining, params);
-    }
-    
-    private SqlMapClient createSqlMapClient() throws IOException {
-        Resource resource = resolveMandatoryResource(sqlMapConfig);
-        InputStream is = resource.getInputStream();
-        return SqlMapClientBuilder.buildSqlMapClient(new InputStreamReader(is));
-    }
-    
     public boolean isUseTransactions() {
         return useTransactions;
     }

Added: camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisConstants.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisConstants.java?rev=748170&view=auto
==============================================================================
--- camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisConstants.java (added)
+++ camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisConstants.java Thu Feb 26 15:01:10 2009
@@ -0,0 +1,29 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ibatis;
+
+/**
+ * IBatis Constants
+ */
+public final class IBatisConstants {
+
+    public static final String IBATIS_STATEMENT_NAME = "CamelIBatisStatementName";
+
+    private IBatisConstants() {
+        // Utility class
+    }
+}

Propchange: camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisConstants.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisConstants.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisEndpoint.java?rev=748170&r1=748169&r2=748170&view=diff
==============================================================================
--- camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisEndpoint.java (original)
+++ camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisEndpoint.java Thu Feb 26 15:01:10 2009
@@ -17,23 +17,13 @@
 package org.apache.camel.component.ibatis;
 
 import java.io.IOException;
-import java.sql.SQLException;
-import java.util.List;
-import java.util.Map;
 
 import com.ibatis.sqlmap.client.SqlMapClient;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.Message;
-import org.apache.camel.PollingConsumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.ibatis.strategy.DefaultIBatisProcessingStategy;
 import org.apache.camel.component.ibatis.strategy.IBatisProcessingStrategy;
 import org.apache.camel.impl.DefaultPollingEndpoint;
-import org.apache.camel.util.ObjectHelper;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /**
  * An <a href="http://camel.apache.org/ibatis.html>iBatis Endpoint</a>
@@ -42,33 +32,15 @@
  * @version $Revision$
  */
 public class IBatisEndpoint extends DefaultPollingEndpoint {
-    private static final transient Log LOG = LogFactory.getLog(IBatisEndpoint.class);
-
     private IBatisProcessingStrategy strategy;
-    /**
-     * Indicates if transactions are necessary.  Defaulted in IBatisComponent.
-     */
     private boolean useTransactions;
-    /**
-     * Statement to run when polling or processing
-     */
     private String statement;
-    /**
-     * Name of a strategy to use for dealing w/
-     * polling a database and consuming the message.  Can be a bean name
-     * or a class name.
-     */
-    private String consumeStrategyName;
-    /**
-     * URI parameters
-     */
-    private Map params;
 
-    public IBatisEndpoint(String uri, IBatisComponent component, 
-            String statement, Map params) throws Exception {
+    public IBatisEndpoint() {
+    }
 
+    public IBatisEndpoint(String uri, IBatisComponent component, String statement) throws Exception {
         super(uri, component);
-        this.params = params;
         setUseTransactions(component.isUseTransactions());
         setStatement(statement);
     }
@@ -92,37 +64,30 @@
         configureConsumer(consumer);
         return consumer;
     }
-/*
-    @Override
-    public PollingConsumer<Exchange> createPollingConsumer() throws Exception {
-        return new IBatisPollingConsumer(this);
-    }
-*/
+
     /**
-     * @return SqlMapClient
-     * @throws IOException if the component is configured with a SqlMapConfig
-     * and there is a problem reading the file
+     * Gets the iBatis SqlMapClient
      */
     public SqlMapClient getSqlMapClient() throws IOException {
         return getComponent().getSqlMapClient();
     }
 
     /**
-     * Gets the IbatisProcessingStrategy to to use when consuming messages+        * from the database
-     * @return IbatisProcessingStrategy
-     * @throws Exception
+     * Gets the IbatisProcessingStrategy to to use when consuming messages from the database
      */
     public IBatisProcessingStrategy getProcessingStrategy() throws Exception {
         if (strategy == null) {
-            String strategyName = (String) params.get("consumeStrategy");
-            strategy = getStrategy(strategyName, new DefaultIBatisProcessingStategy());
+            strategy = new DefaultIBatisProcessingStategy();
         }
         return strategy;
     }
 
+    public void setStrategy(IBatisProcessingStrategy strategy) {
+        this.strategy = strategy;
+    }
+
     /**
      * Statement to run when polling or processing
-     * @return name of the statement
     */
     public String getStatement() {
         return statement;
@@ -130,45 +95,14 @@
     
     /**
      * Statement to run when polling or processing
-     * @param statement
      */
     public void setStatement(String statement) {
         this.statement = statement;
     }
 
     /**
-     * Resolves a strategy in the camelContext or by class name
-     * @param name
-     * @param defaultStrategy
-     * @return IbatisProcessingStrategy
-     * @throws Exception
-     */
-    private IBatisProcessingStrategy getStrategy(String name, IBatisProcessingStrategy defaultStrategy) throws Exception {
-
-        if (name == null) {
-            return defaultStrategy;
-        }
-
-        IBatisProcessingStrategy strategy = getComponent().getCamelContext().getRegistry().lookup(name, IBatisProcessingStrategy.class);
-        if (strategy == null) {
-            try {
-                Class<?> clazz = ObjectHelper.loadClass(name);
-                if (clazz != null) {
-                    strategy = ObjectHelper.newInstance(clazz, IBatisProcessingStrategy.class);
-                }
-            } catch (Exception e) {
-                LOG.error("Failed to resolve/create processing strategy (" + name + ")", e);
-                throw e;
-            }
-        }
-        
-        return strategy != null ? strategy : defaultStrategy;
-    }
-
-    /**
      * Indicates if transactions should be used when calling statements.  Useful if using a comma separated list when
      * consuming records.
-     * @return boolean
      */
     public boolean isUseTransactions() {
         return useTransactions;
@@ -176,17 +110,9 @@
 
     /**
      * Sets indicator to use transactions for consuming and error handling statements.
-     * @param useTransactions
      */
     public void setUseTransactions(boolean useTransactions) {
         this.useTransactions = useTransactions;
     }
 
-    public String getConsumeStrategyName() {
-        return consumeStrategyName;
-    }
-    
-    public void setConsumeStrategyName(String consumeStrategyName) {
-        this.consumeStrategyName = consumeStrategyName;
-    }
 }

Modified: camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisPollingConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisPollingConsumer.java?rev=748170&r1=748169&r2=748170&view=diff
==============================================================================
--- camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisPollingConsumer.java (original)
+++ camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisPollingConsumer.java Thu Feb 26 15:01:10 2009
@@ -28,7 +28,6 @@
 import org.apache.commons.logging.LogFactory;
 
 /**
- * @version $Revision$
  * <pre>
  *  Ibatis Camel Component used to read data from a database.
  * 
@@ -91,14 +90,16 @@
  * </tr>
  * <tbody> </table>
  *
- * @see strategy.IBatisProcessingStrategy
+ * @see org.apache.camel.component.ibatis.strategy.IBatisProcessingStrategy
  */
 public class IBatisPollingConsumer extends ScheduledPollConsumer {
-    private static Log logger = LogFactory.getLog(IBatisPollingConsumer.class);
+    private static final Log LOG = LogFactory.getLog(IBatisPollingConsumer.class);
+
     /**
      * Statement to run after data has been processed in the route
      */
     private String onConsume;
+
     /**
      * Process resultset individually or as a list
      */
@@ -118,6 +119,9 @@
     @Override
     protected void poll() throws Exception {
         IBatisEndpoint endpoint = getEndpoint();
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("Polling: " + endpoint);
+        }
         List data = endpoint.getProcessingStrategy().poll(this, getEndpoint());
         if (useIterator) {
             for (Object object : data) {
@@ -131,11 +135,9 @@
     }
 
     /**
-     * delivers the content
+     * Delivers the content
      *
-     * @param data
-     *            a single row object if useIterator=true otherwise the entire
-     *            result set
+     * @param data a single row object if useIterator=true otherwise the entire result set
      */
     protected void process(final Object data) throws Exception {
         final IBatisEndpoint endpoint = getEndpoint();
@@ -143,9 +145,11 @@
 
         Message msg = exchange.getIn();
         msg.setBody(data);
-        msg.setHeader("org.apache.camel.ibatis.queryName", endpoint.getStatement());
+        msg.setHeader(IBatisConstants.IBATIS_STATEMENT_NAME, endpoint.getStatement());
     
-        logger.debug("Setting message");
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Processing exchange: " + exchange);
+        }
 
         getAsyncProcessor().process(exchange, new AsyncCallback() {
             public void done(boolean sync) {
@@ -161,16 +165,16 @@
     }
     
     /**
-     * Gets the statement to run after successful processing
-     * @return Name of the statement
+     * Gets the statement(s) to run after successful processing.
+     * Use comma to separate multiple statements.
      */
     public String getOnConsume() {
         return onConsume;
     }
 
     /**
-     * Sets the statement to run after successful processing
-     * @param onConsume The name of the statement
+     * Sets the statement to run after successful processing.
+     * Use comma to separate multiple statements.
      */
     public void setOnConsume(String onConsume) {
         this.onConsume = onConsume;
@@ -179,7 +183,6 @@
 
     /**
      * Indicates how resultset should be delivered to the route
-     * @return boolean 
      */
     public boolean isUseIterator() {
         return useIterator;
@@ -189,7 +192,6 @@
      * Sets how resultset should be delivered to route.
      * Indicates delivery as either a list or individual object.
      * defaults to true.
-     * @param useIterator
      */
     public void setUseIterator(boolean useIterator) {
         this.useIterator = useIterator;

Modified: camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisProducer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisProducer.java?rev=748170&r1=748169&r2=748170&view=diff
==============================================================================
--- camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisProducer.java (original)
+++ camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisProducer.java Thu Feb 26 15:01:10 2009
@@ -21,28 +21,25 @@
 
 import com.ibatis.sqlmap.client.SqlMapClient;
 
-import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.impl.DefaultProducer;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 /**
  * @version $Revision$
  */
 public class IBatisProducer extends DefaultProducer {
+    private static final Log LOG = LogFactory.getLog(IBatisProducer.class);
     private String statement;
     private IBatisEndpoint endpoint;
 
     public IBatisProducer(IBatisEndpoint endpoint) {
         super(endpoint);
-        statement = endpoint.getStatement();
         this.endpoint = endpoint;
-    }
-
-    @Override
-    public Endpoint getEndpoint() {
-        return (IBatisEndpoint) super.getEndpoint();
+        this.statement = endpoint.getStatement();
     }
 
     /**
@@ -54,14 +51,21 @@
         if (body == null) {
             // must be a poll so lets do a query
             Message msg = exchange.getOut(true);
+            if (LOG.isTraceEnabled()) {
+                LOG.trace("Querying for list: " + statement);
+            }
             List list = client.queryForList(statement);
             msg.setBody(list);
-            msg.setHeader("org.apache.camel.ibatis.queryName", statement);
+            msg.setHeader(IBatisConstants.IBATIS_STATEMENT_NAME, statement);
         } else {
             // lets handle arrays or collections of objects
             Iterator iter = ObjectHelper.createIterator(body);
             while (iter.hasNext()) {
-                client.insert(statement, iter.next());
+                Object value = iter.next();
+                if (LOG.isTraceEnabled()) {
+                    LOG.trace("Inserting: " + value + " using statement: " + statement);
+                }
+                client.insert(statement, value);
             }
         }
     }

Modified: camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/strategy/DefaultIBatisProcessingStategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/strategy/DefaultIBatisProcessingStategy.java?rev=748170&r1=748169&r2=748170&view=diff
==============================================================================
--- camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/strategy/DefaultIBatisProcessingStategy.java (original)
+++ camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/strategy/DefaultIBatisProcessingStategy.java Thu Feb 26 15:01:10 2009
@@ -29,16 +29,11 @@
  * Default strategy for consuming messages for a route
  */
 public class DefaultIBatisProcessingStategy implements IBatisProcessingStrategy {
-    /**
-     * Calls update on the SqlMapClient using the consumeStatement.
-     * Will call multiple statements if the consumeStatement is a comma separated list.
-     * The parameter passed to the statement is the original data delivered to the route.
-     */
-    public void commit(IBatisEndpoint endpoint, Exchange exchange, Object data, String consumeStatement) throws Exception {
 
+    public void commit(IBatisEndpoint endpoint, Exchange exchange, Object data, String consumeStatements) throws Exception {
         SqlMapClient client = endpoint.getSqlMapClient();
         boolean useTrans = endpoint.isUseTransactions();
-        String[] statements = consumeStatement.split(",");
+        String[] statements = consumeStatements.split(",");
         try {
             if (useTrans) {
                 client.startTransaction(Connection.TRANSACTION_REPEATABLE_READ);

Modified: camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/strategy/IBatisProcessingStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/strategy/IBatisProcessingStrategy.java?rev=748170&r1=748169&r2=748170&view=diff
==============================================================================
--- camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/strategy/IBatisProcessingStrategy.java (original)
+++ camel/trunk/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/strategy/IBatisProcessingStrategy.java Thu Feb 26 15:01:10 2009
@@ -23,7 +23,7 @@
 import org.apache.camel.component.ibatis.IBatisPollingConsumer;
 
 /**
- * Processing strategy for dealing with IBatis records
+ * Processing strategy for dealing with IBatis.
  */
 public interface IBatisProcessingStrategy {
 
@@ -33,19 +33,18 @@
      * @param consumer The Ibatis Polling Consumer
      * @param endpoint The Ibatis Endpoint
      * @return Results of the query as a java.util.List
-     * @throws Exception
+     * @throws Exception can be thrown in case of error
      */
     List poll(IBatisPollingConsumer consumer, IBatisEndpoint endpoint) throws Exception;
 
     /**
-     * Called if there is a statement to be run after processing
+     * Commit callback if there are a statements to be run after processing.
      * 
      * @param endpoint The Ibatis Enpoint
      * @param exchange The exchange after it has been processed
      * @param data The original data delivered to the route
-     * @param consumeStatement The update statement to run
-     * @throws Exception
+     * @param consumeStatements Name of the statement(s) to run, will use SQL update. Use comma to provide multiple statements to run.
+     * @throws Exception can be thrown in case of error
      */
-    void commit(IBatisEndpoint endpoint, Exchange exchange, Object data, String consumeStatement)
-        throws Exception;
+    void commit(IBatisEndpoint endpoint, Exchange exchange, Object data, String consumeStatements) throws Exception;
 }

Modified: camel/trunk/components/camel-ibatis/src/test/java/org/apache/camel/component/ibatis/IBatisQueueTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ibatis/src/test/java/org/apache/camel/component/ibatis/IBatisQueueTest.java?rev=748170&r1=748169&r2=748170&view=diff
==============================================================================
--- camel/trunk/components/camel-ibatis/src/test/java/org/apache/camel/component/ibatis/IBatisQueueTest.java (original)
+++ camel/trunk/components/camel-ibatis/src/test/java/org/apache/camel/component/ibatis/IBatisQueueTest.java Thu Feb 26 15:01:10 2009
@@ -69,7 +69,9 @@
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
+                // START SNIPPET: e1
                 from("ibatis:selectUnprocessedAccounts?consumer.onConsume=consumeAccount").to("mock:results");
+                // END SNIPPET: e1
 
                 from("direct:start").to("ibatis:insertAccount");
             }

Modified: camel/trunk/components/camel-ibatis/src/test/resources/org/apache/camel/component/ibatis/Account.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-ibatis/src/test/resources/org/apache/camel/component/ibatis/Account.xml?rev=748170&r1=748169&r2=748170&view=diff
==============================================================================
--- camel/trunk/components/camel-ibatis/src/test/resources/org/apache/camel/component/ibatis/Account.xml (original)
+++ camel/trunk/components/camel-ibatis/src/test/resources/org/apache/camel/component/ibatis/Account.xml Thu Feb 26 15:01:10 2009
@@ -80,16 +80,20 @@
     delete from ACCOUNT where ACC_ID = #id#
   </delete>
 
+  <!-- START SNIPPET: e1 -->
   <select id="selectUnprocessedAccounts" resultMap="AccountResult">
        select * from ACCOUNT where PROCESSED = false
   </select>
- 
+  <!-- END SNIPPET: e1 -->
+
   <select id="selectProcessedAccounts" resultMap="AccountResult">
        select * from ACCOUNT where PROCESSED = true
   </select>
- 
+
+  <!-- START SNIPPET: e2 -->
   <update id="consumeAccount" parameterClass="Account">
        update ACCOUNT set PROCESSED = true where ACC_ID = #id#
   </update>
+  <!-- END SNIPPET: e2 -->
 
 </sqlMap>
\ No newline at end of file