001
002 /*
003 * Copyright (C) 2011 Archie L. Cobbs. All rights reserved.
004 *
005 * $Id: DellRoadStuffNamespaceHandler.java 214 2012-01-16 23:52:12Z archie.cobbs $
006 */
007
008 package org.dellroad.stuff.spring;
009
010 import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
011
012 /**
013 * Spring {@link org.springframework.beans.factory.xml.NamespaceHandler NamespaceHandler}
014 * for the <code>dellroad-stuff</code> XML namespace.
015 *
016 * <p>
017 * This adds support for the following Spring custom XML tags:
018 * <ul>
019 * <li><code><dellroad-stuff:sql/></code>, which defines a {@link org.dellroad.stuff.schema.SQLCommandList} bean</li>
020 * <li><code><dellroad-stuff:sql-update/></code>, which wraps a {@link org.dellroad.stuff.schema.SQLCommandList}
021 * in a {@link org.dellroad.stuff.schema.SpringSQLSchemaUpdate} bean</li>
022 * </ul>
023 */
024 public class DellRoadStuffNamespaceHandler extends NamespaceHandlerSupport {
025
026 public static final String NAMESPACE_URI = "http://dellroad-stuff.googlecode.com/schema/dellroad-stuff";
027
028 public static final String SQL_ELEMENT_NAME = "sql";
029 public static final String SQL_UPDATE_ELEMENT_NAME = "sql-update";
030
031 @Override
032 public void init() {
033 this.registerBeanDefinitionParser(SQL_ELEMENT_NAME, new SQLBeanDefinitionParser());
034 this.registerBeanDefinitionParser(SQL_UPDATE_ELEMENT_NAME, new SQLUpdateBeanDefinitionParser());
035 }
036 }
037