001 /**
002 * Copyright 2004-2012 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.apache.torque.mojo;
017
018 /*
019 * Licensed to the Apache Software Foundation (ASF) under one
020 * or more contributor license agreements. See the NOTICE file
021 * distributed with this work for additional information
022 * regarding copyright ownership. The ASF licenses this file
023 * to you under the Apache License, Version 2.0 (the
024 * "License"); you may not use this file except in compliance
025 * with the License. You may obtain a copy of the License at
026 *
027 * http://www.apache.org/licenses/LICENSE-2.0
028 *
029 * Unless required by applicable law or agreed to in writing,
030 * software distributed under the License is distributed on an
031 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
032 * KIND, either express or implied. See the License for the
033 * specific language governing permissions and limitations
034 * under the License.
035 */
036
037 import java.io.File;
038
039 import org.apache.commons.configuration.PropertiesConfiguration;
040 import org.apache.maven.plugin.MojoExecutionException;
041 import org.apache.tools.ant.types.FileSet;
042 import org.kuali.core.db.torque.KualiTorqueSQLTask;
043
044 /**
045 * Generates SQL from schema.xml files
046 */
047 public abstract class SqlMojoBase extends DataModelTaskMojo {
048
049 /**
050 * Creates a new SQLMojo object.
051 */
052 public SqlMojoBase() {
053 setAntTask(new KualiTorqueSQLTask());
054 }
055
056 /**
057 * Returns the context properties for the Texen task.
058 *
059 * @return The PropertiesConfiguration containing all context properties, not null.
060 */
061 protected PropertiesConfiguration getMojoContextProperties() {
062 PropertiesConfiguration configuration = new PropertiesConfiguration();
063 configuration.addProperty(TARGET_DATABASE_CONTEXT_PROPERTY, super.getTargetDatabase());
064 return configuration;
065 }
066
067 /**
068 * Returns the path to the control template.
069 *
070 * @return "sql/base/Control.vm"
071 */
072 protected String getControlTemplate() {
073 return "sql/base/Control.vm";
074 }
075
076 /**
077 * Configures the Texen task wrapped by this mojo
078 */
079 protected void configureTask() throws MojoExecutionException {
080 super.configureTask();
081
082 KualiTorqueSQLTask task = (KualiTorqueSQLTask) super.getGeneratorTask();
083
084 if (getSuffix() != null) {
085 getLog().debug("Adding suffix: " + getSuffix());
086 task.setSuffix(getSuffix());
087 }
088 FileSet fileSet = getAntFileSet(new File(getSchemaDir()), getSchemaIncludes(), getSchemaExcludes());
089 task.addFileset(fileSet);
090 }
091
092 }