felipeal    2004/11/06 13:50:38

  Modified:    hibernate/src/main/org/apache/maven/hibernate/jelly
                        SchemaExportTag.java
               hibernate/src/main/org/apache/maven/hibernate/beans
                        SchemaExportBean.java
  Added:       hibernate/src/main/org/apache/maven/hibernate/jelly
                        SchemaTagBase.java
               hibernate/src/main/org/apache/maven/hibernate/beans
                        SchemaBeanBase.java
  Log:
  MPHIBERNATE-13: refactored current classes in order to create new ones
  
  Revision  Changes    Path
  1.5       +17 -186   
maven-plugins/hibernate/src/main/org/apache/maven/hibernate/jelly/SchemaExportTag.java
  
  Index: SchemaExportTag.java
  ===================================================================
  RCS file: 
/home/cvs/maven-plugins/hibernate/src/main/org/apache/maven/hibernate/jelly/SchemaExportTag.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SchemaExportTag.java      2 Jul 2004 07:32:52 -0000       1.4
  +++ SchemaExportTag.java      6 Nov 2004 21:50:38 -0000       1.5
  @@ -17,219 +17,50 @@
    * ====================================================================
    */
   
  -import org.apache.commons.jelly.JellyTagException;
  -import org.apache.commons.jelly.TagSupport;
  -import org.apache.commons.jelly.XMLOutput;
   import org.apache.maven.hibernate.beans.SchemaExportBean;
   
   /**
    * 
  - * Jelly tag which delagates all calls 
  - * to [EMAIL PROTECTED] SchemaExportBean}
  + * Jelly tag which delagates all calls to [EMAIL PROTECTED] SchemaExportBean}
    * 
    * @author <a href="[EMAIL PROTECTED]">Michal Maczka</a> 
    * @version $Id$
    */
  -public class SchemaExportTag extends TagSupport
  +public class SchemaExportTag extends SchemaTagBase
   {
  -
  -   private SchemaExportBean bean = new SchemaExportBean();
  -
  -   /**
  -    * 
  -    */
  -   protected void execute() throws JellyTagException
  -   {
  -      try
  -      {
  -         bean.execute();
  -      }
  -      catch (Exception e)
  -      {
  -         String msg = " Schema Export failed";
  -         throw new JellyTagException(msg, e);
  -      }
  -
  -   }
  -
  -   /**
  -    * @see org.apache.commons.jelly.Tag#doTag(org.apache.commons.jelly.XMLOutput)
  -    */
  -   public void doTag(XMLOutput arg0) throws JellyTagException
  -   {
  -      execute();
  -   }
  -
  -   /**
  -    * @return
  -    */
  -   public boolean getText()
  -   {
  -      return bean.getText();
  -   }
  -
  -   /* (non-Javadoc)
  -    * @see java.lang.Object#toString()
  -    */
  -   public String toString()
  -   {
  -      return bean.toString();
  -   }
  -
  -   /**
  -    * @return
  -    */
  -   public boolean getQuiet()
  -   {
  -      return bean.getQuiet();
  -   }
  -
  -   /**
  -    * @param string
  -    */
  -   public void setExcludes(String string)
  -   {
  -      bean.setExcludes(string);
  +     
  +   public SchemaExportTag() {
  +     super( new SchemaExportBean() );
      }
  -
  -   /**
  -    * @param b
  -    */
  +   
      public void setDrop(boolean b)
      {
  -      bean.setDrop(b);
  -   }
  -
  -   /**
  -    * @param string
  -    */
  -   public void setIncludes(String string)
  -   {
  -      bean.setIncludes(string);
  +      ((SchemaExportBean) bean).setDrop(b);
      }
  -
  -   /**
  -    * @return
  -    */
  -   public String getOutputFile()
  -   {
  -      return bean.getOutputFile();
  -   }
  -
  -   /**
  -    * @return
  -    */
  -   public String getExcludes()
  -   {
  -      return bean.getExcludes();
  -   }
  -
  -   /**
  -    * @param string
  -    */
  +   
      public void setOutputFile(String string)
      {
         bean.setOutputFile(string);
      }
   
  -   /**
  -    * @return
  -    */
  -   public boolean isDrop()
  -   {
  -      return bean.isDrop();
  -   }
  -
  -   /**
  -    * @param string
  -    */
  -   public void setConfig(String string)
  -   {
  -      bean.setConfig(string);
  -   }
  -
  -   /**
  -    * @return
  -    */
  -   public String getIncludes()
  -   {
  -      return bean.getIncludes();
  -   }
  -
  -   /**
  -    * @return
  -    */
  -   public String getBasedir()
  -   {
  -      return bean.getBasedir();
  -   }
  -
  -   /**
  -    * @return
  -    */
  -   public String getProperties()
  -   {
  -      return bean.getProperties();
  -   }
  -
  -   /**
  -    * @return
  -    */
  -   public String getConfig()
  -   {
  -      return bean.getConfig();
  -   }
  -
  -   /**
  -    * @param b
  -    */
  -   public void setText(boolean b)
  -   {
  -      bean.setText(b);
  -   }
  -
  -   /**
  -    * @param string
  -    */
  -   public void setBasedir(String string)
  +   public void setDelimiter(String delimiter)
      {
  -      bean.setBasedir(string);
  +      bean.setDelimiter(delimiter);
      }
   
  -   /**
  -    * @param b
  -    */
  -   public void setQuiet(boolean b)
  +   public boolean isDrop()
      {
  -      bean.setQuiet(b);
  +      return ((SchemaExportBean) bean).isDrop();
      }
   
  -   /**
  -    * @param string
  -    */
  -   public void setProperties(String string)
  +   public String getOutputFile()
      {
  -      bean.setProperties(string);
  +      return bean.getOutputFile();
      }
  -
  +   
      public String getDelimiter()
      {
         return bean.getDelimiter();
      }
  -   
  -   public void setDelimiter(String delimiter)
  -   {
  -      bean.setDelimiter(delimiter);
  -   }
  -   
  -     /**
  -      */
  -     public String getSchemaOutputFile() {
  -             return bean.getSchemaOutputFile();
  -     }
  -     /**
  -      */
  -     public void setSchemaOutputFile(String string) {
  -             bean.setSchemaOutputFile(string);
  -     }
  +
   }
  
  
  
  1.1                  
maven-plugins/hibernate/src/main/org/apache/maven/hibernate/jelly/SchemaTagBase.java
  
  Index: SchemaTagBase.java
  ===================================================================
  package org.apache.maven.hibernate.jelly;
  
  /* ====================================================================
   *   Copyright 2004 The Apache Software Foundation.
   *
   *   Licensed 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.
   * ====================================================================
   */
  
  import org.apache.commons.jelly.JellyTagException;
  import org.apache.commons.jelly.TagSupport;
  import org.apache.commons.jelly.XMLOutput;
  import org.apache.maven.hibernate.beans.SchemaBeanBase;
  
  /**
   * 
   * Base class for Jelly tags that uses Hibernate's Schema classes
   * 
   * @author <a href="[EMAIL PROTECTED]">Michal Maczka</a> 
   * @author <a href="[EMAIL PROTECTED]">Felipe Leme</a> 
   * @version $Id: SchemaTagBase.java,v 1.1 2004/11/06 21:50:38 felipeal Exp $
   */
  public abstract class SchemaTagBase extends TagSupport
  {
  
     protected final SchemaBeanBase bean;
     
     protected SchemaTagBase( SchemaBeanBase b ) {
       bean = b;     
     }
  
     /**
      * 
      */
     protected void execute() throws JellyTagException
     {
        try
        {
           bean.execute();
        }
        catch (Exception e)
        {
           String msg = "Schema operation failed";
           throw new JellyTagException(msg, e);
        }
  
     }
  
     /**
      * @see org.apache.commons.jelly.Tag#doTag(org.apache.commons.jelly.XMLOutput)
      */
     public void doTag(XMLOutput arg0) throws JellyTagException
     {
        execute();
     }
  
     /**
      * @return
      */
     public boolean getText()
     {
        return bean.getText();
     }
  
     /* (non-Javadoc)
      * @see java.lang.Object#toString()
      */
     public String toString()
     {
        return bean.toString();
     }
  
     /**
      * @return
      */
     public boolean getQuiet()
     {
        return bean.getQuiet();
     }
  
     /**
      * @param string
      */
     public void setExcludes(String string)
     {
        bean.setExcludes(string);
     }
  
     /**
      * @param string
      */
     public void setIncludes(String string)
     {
        bean.setIncludes(string);
     }
  
     /**
      * @return
      */
     public String getExcludes()
     {
        return bean.getExcludes();
     }
  
     /**
      * @param string
      */
     public void setConfig(String string)
     {
        bean.setConfig(string);
     }
  
     /**
      * @return
      */
     public String getIncludes()
     {
        return bean.getIncludes();
     }
  
     /**
      * @return
      */
     public String getBasedir()
     {
        return bean.getBasedir();
     }
  
     /**
      * @return
      */
     public String getProperties()
     {
        return bean.getProperties();
     }
  
     /**
      * @return
      */
     public String getConfig()
     {
        return bean.getConfig();
     }
  
     /**
      * @param b
      */
     public void setText(boolean b)
     {
        bean.setText(b);
     }
  
     /**
      * @param string
      */
     public void setBasedir(String string)
     {
        bean.setBasedir(string);
     }
  
     /**
      * @param b
      */
     public void setQuiet(boolean b)
     {
        bean.setQuiet(b);
     }
  
     /**
      * @param string
      */
     public void setProperties(String string)
     {
        bean.setProperties(string);
     }
  
        
        /**
         */
        public String getSchemaOutputFile() {
                return bean.getSchemaOutputFile();
        }
        /**
         */
        public void setSchemaOutputFile(String string) {
                bean.setSchemaOutputFile(string);
        }
    
  }
  
  
  
  1.8       +13 -215   
maven-plugins/hibernate/src/main/org/apache/maven/hibernate/beans/SchemaExportBean.java
  
  Index: SchemaExportBean.java
  ===================================================================
  RCS file: 
/home/cvs/maven-plugins/hibernate/src/main/org/apache/maven/hibernate/beans/SchemaExportBean.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SchemaExportBean.java     25 Jul 2004 13:49:38 -0000      1.7
  +++ SchemaExportBean.java     6 Nov 2004 21:50:38 -0000       1.8
  @@ -17,17 +17,9 @@
    * ====================================================================
    */
   
  -import java.io.File;
   import java.io.FileInputStream;
  -import java.io.IOException;
  -import java.net.URL;
  -import java.net.URLClassLoader;
   import java.util.Properties;
   
  -import org.apache.commons.logging.Log;
  -import org.apache.commons.logging.LogFactory;
  -
  -import net.sf.hibernate.HibernateException;
   import net.sf.hibernate.cfg.Configuration;
   import net.sf.hibernate.tool.hbm2ddl.SchemaExport;
   
  @@ -35,122 +27,15 @@
    * 
    * The Bean which serves as Proxy To Hibernate API
    * <br/>
  - * 
  - * 
    *   
    * @author <a href="[EMAIL PROTECTED]">Michal Maczka</a> 
    * @version $Id$
    */
  -public class SchemaExportBean extends CommonOperationsBean
  +public class SchemaExportBean extends SchemaBeanBase
   {
   
  -   private String properties = null;
  -   private String config = null;
  -   private String schemaOutputFile = null;
  -   private String delimiter = null;
  -   private boolean quiet = false;
  -   private boolean text = false;
      private boolean drop = false;
      
  -   private static final Log LOG = LogFactory.getLog(MappingsAggregatorBean.class);
  -
  -   /**
  -    * @return
  -    */
  -   public String getSchemaOutputFile()
  -   {
  -      return schemaOutputFile;
  -   }
  -
  -   /**
  -    * @return
  -    */
  -   public String getOutputFile()
  -   {
  -      return schemaOutputFile;
  -   }
  -
  -   
  -   /**
  -    * @return
  -    */
  -   public boolean getQuiet()
  -   {
  -      return quiet;
  -   }
  -
  -   /**
  -    * @return
  -    */
  -   public boolean getText()
  -   {
  -      return text;
  -   }
  -
  -   /**
  -    * @param string
  -    */
  -   public void setSchemaOutputFile(String string)
  -   {
  -             schemaOutputFile = string;
  -   }
  -   
  -   /**
  -    * @param string
  -    */
  -   public void setOutputFile(String string)
  -   {
  -             schemaOutputFile = string;
  -   }
  -
  -   /**
  -    * @param b
  -    */
  -   public void setQuiet(boolean b)
  -   {
  -      quiet = b;
  -   }
  -
  -   /**
  -    * @param b
  -    */
  -   public void setText(boolean b)
  -   {
  -      text = b;
  -   }
  -
  -   /**
  -    * @return
  -    */
  -   public String getConfig()
  -   {
  -      return config;
  -   }
  -
  -   /**
  -    * @return
  -    */
  -   public String getProperties()
  -   {
  -      return properties;
  -   }
  -
  -   /**
  -    * @param string
  -    */
  -   public void setConfig(String string)
  -   {
  -      config = string;
  -   }
  -
  -   /**
  -    * @param string
  -    */
  -   public void setProperties(String string)
  -   {
  -      properties = string;
  -   }
  -
      /**
       * @return
       */
  @@ -166,102 +51,8 @@
      {
         drop = b;
      }
  -
  -   /**
  -    * @return
  -    */
  -   public String getDelimiter() 
  -   {
  -      return delimiter;
  -   }
  -
  -   /**
  -    * @param string
  -    */
  -   public void setDelimiter(String string) 
  -   {
  -      delimiter = string;
  -   }
  -
  -   /**
  -    * 
  -    * Hibernate requires that 
  -    * Java classes (beans) are accesible on the
  -    * classpath. As they are not in plugin classpath
  -    * we have to take care about. 
  -    * To assure that we have them visible for plugin
  -    * classloader
  -    * we will make temporay change to context classloader
  -    * which will be restored when method terminates.
  -    * 
  -    */
  -   public void execute() throws Exception
  -   {
  -
  -      Thread currentThread = Thread.currentThread();
  -      ClassLoader oldClassLoader = currentThread.getContextClassLoader();
  -      try
  -      {
  -         File [] baseDirs = getBaseDirs ();
  -         URL  [] urls = new URL [baseDirs.length];
  -         for (int i = 0; i < urls.length; i++) { 
  -                 urls [i] = baseDirs [i].toURL ();
  -         }
  -     
  -        URLClassLoader newClassLoader =
  -          new URLClassLoader(urls, getClass().getClassLoader());
  -        currentThread.setContextClassLoader(newClassLoader);
  -    
  -        Configuration cfg = getConfiguration();
  -        SchemaExport schemaExport = getSchemaExport(cfg);
  -
  -        if (isDrop())
  -        {
  -            schemaExport.drop(!getQuiet(), !getText());
  -        }    
  -        else
  -        {
  -            schemaExport.create(!getQuiet(), !getText());
  -        }
  -      }
  -      finally
  -      {
  -         currentThread.setContextClassLoader(oldClassLoader);
  -      }
  -   }
  -
  -   /**
  -    * 
  -    */
  -   private Configuration getConfiguration() throws HibernateException
  -   {
  -      Configuration cfg = new Configuration();
  -      if (getConfig() != null)
  -      {              
  -              File f = new File(getConfig());
  -              LOG.debug("Hibernate Configuration File: " + f.getAbsolutePath());
  -         cfg.configure(f);
  -      }
  -
  -      String[] files = getFileNames ();
  -      for (int i = 0; i < files.length; i++)
  -      {
  -         String filename = files[i];
  -         if (filename.endsWith(".jar"))
  -         {
  -            cfg.addJar(filename);
  -         }
  -         else
  -         {
  -            cfg.addFile(filename);
  -         }
  -      }
  -      return cfg;
  -   }
  -
  -   private SchemaExport getSchemaExport(Configuration cfg)
  -      throws HibernateException, IOException
  -   {
  +   
  +   protected void executeSchema(Configuration cfg) throws Exception {
         SchemaExport schemaExport = null;
         if (getProperties() == null)
         {
  @@ -276,7 +67,14 @@
         LOG.debug("Output file:" + getOutputFile());
         schemaExport.setOutputFile(getOutputFile());
         schemaExport.setDelimiter(getDelimiter());
  -      return schemaExport;
  -   }
  +      if (isDrop())
  +      {
  +          schemaExport.drop(!getQuiet(), !getText());
  +      } 
  +      else
  +      {
  +          schemaExport.create(!getQuiet(), !getText());
  +      }
  +    }
      
   }
  
  
  
  1.1                  
maven-plugins/hibernate/src/main/org/apache/maven/hibernate/beans/SchemaBeanBase.java
  
  Index: SchemaBeanBase.java
  ===================================================================
  package org.apache.maven.hibernate.beans;
  
  /* ====================================================================
   *   Copyright 2004 The Apache Software Foundation.
   *
   *   Licensed 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.
   * ====================================================================
   */
  
  import java.io.File;
  import java.net.URL;
  import java.net.URLClassLoader;
  
  import net.sf.hibernate.HibernateException;
  import net.sf.hibernate.cfg.Configuration;
  
  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
  
  /**
   * 
   * Base class for Beans which serve as Proxy To Hibernate API
   * <br/>
   * 
   * @author <a href="[EMAIL PROTECTED]">Michal Maczka</a> 
   * @author <a href="[EMAIL PROTECTED]">Felipe Leme</a> 
   * @version $Id: SchemaBeanBase.java,v 1.1 2004/11/06 21:50:38 felipeal Exp $
   */
  public abstract class SchemaBeanBase extends CommonOperationsBean
  {
  
     private String properties = null;
     private String config = null;
     private boolean quiet = false;
     private boolean text = false;
     
     protected static final Log LOG = LogFactory.getLog(MappingsAggregatorBean.class);
  
  
     
     /**
      * @return
      */
     public boolean getQuiet()
     {
        return quiet;
     }
  
     /**
      * @return
      */
     public boolean getText()
     {
        return text;
     }
     
     /**
      * @param b
      */
     public void setQuiet(boolean b)
     {
        quiet = b;
     }
  
     /**
      * @param b
      */
     public void setText(boolean b)
     {
        text = b;
     }
  
     /**
      * @return
      */
     public String getConfig()
     {
        return config;
     }
  
     /**
      * @return
      */
     public String getProperties()
     {
        return properties;
     }
  
     /**
      * @param string
      */
     public void setConfig(String string)
     {
        config = string;
     }
  
     /**
      * @param string
      */
     public void setProperties(String string)
     {
        properties = string;
     }
  
     /**
      * 
      * Hibernate requires that 
      * Java classes (beans) are accesible on the
      * classpath. As they are not in plugin classpath
      * we have to take care about. 
      * To assure that we have them visible for plugin
      * classloader
      * we will make temporay change to context classloader
      * which will be restored when method terminates.
      * 
      */
     public void execute() throws Exception
     {
  
        Thread currentThread = Thread.currentThread();
        ClassLoader oldClassLoader = currentThread.getContextClassLoader();
        try
        {
            File [] baseDirs = getBaseDirs ();
            URL  [] urls = new URL [baseDirs.length];
            for (int i = 0; i < urls.length; i++) { 
                    urls [i] = baseDirs [i].toURL ();
            }
        
          URLClassLoader newClassLoader =
            new URLClassLoader(urls, getClass().getClassLoader());
          currentThread.setContextClassLoader(newClassLoader);
      
          Configuration cfg = getConfiguration();        
          executeSchema( cfg );
  
        }
        finally
        {
           currentThread.setContextClassLoader(oldClassLoader);
        }
     }
  
     /**
     * Method that does the real job
     */
    protected abstract void executeSchema(Configuration cfg) throws Exception;
  
    /**
      * 
      */
     private Configuration getConfiguration() throws HibernateException
     {
        Configuration cfg = new Configuration();
        if (getConfig() != null)
        {       
                 File f = new File(getConfig());
                 LOG.debug("Hibernate Configuration File: " + f.getAbsolutePath());
           cfg.configure(f);
        }
  
        String[] files = getFileNames ();
        for (int i = 0; i < files.length; i++)
        {
           String filename = files[i];
           if (filename.endsWith(".jar"))
           {
              cfg.addJar(filename);
           }
           else
           {
              cfg.addFile(filename);
           }
        }
        return cfg;
     }
  
    private String schemaOutputFile = null;
    private String delimiter = null;
  
  
  
    /**
    * @return
    */
    public String getSchemaOutputFile() {
        return schemaOutputFile;
     }
  
    /**
    * @return
    */
    public String getOutputFile() {
        return schemaOutputFile;
     }
  
    /**
    * @return
    */
    public String getDelimiter() {
        return delimiter;
     }
  
    /**
    * @param string
    */
    public void setSchemaOutputFile(String string) {
        schemaOutputFile = string;
     }
  
    /**
    * @param string
    */
    public void setOutputFile(String string) {
        schemaOutputFile = string;
     }
  
    /**
    * @param string
    */
    public void setDelimiter(String string) {
        delimiter = string;
     }
  
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to