User: oberg   
  Date: 00/05/19 00:11:57

  Modified:    src/main/org/jboss/ejb/plugins/jaws/deployment Finder.java
                        JawsFileManager.java Mapping.java TypeMapping.java
                        TypeMappings.java
  Added:       src/main/org/jboss/ejb/plugins/jaws/deployment
                        JawsCMPField.java JawsEjbJar.java
                        JawsEjbReference.java JawsEnterpriseBeans.java
                        JawsEntity.java
  Removed:     src/main/org/jboss/ejb/plugins/jaws/deployment CMPField.java
                        EjbJar.java EnterpriseBeans.java Entity.java
  Log:
  Prefixed deployment classes with Jaws and jBoss
  Added server-side JMX RMI Adaptor
  Added shorthand JMX commands for deploy and stop of server
  Added read-only functionality to JAWS
  
  Revision  Changes    Path
  1.2       +2 -2      jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/Finder.java
  
  Index: Finder.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/Finder.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Finder.java       2000/04/22 14:30:12     1.1
  +++ Finder.java       2000/05/19 07:11:55     1.2
  @@ -27,7 +27,7 @@
    *      
    *   @see <related>
    *   @author Rickard �berg ([EMAIL PROTECTED])
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class Finder
      extends BeanContextServicesSupport
  @@ -73,7 +73,7 @@
      public void importXml(Element elt)
         throws Exception
      {
  -     if 
(elt.getOwnerDocument().getDocumentElement().getTagName().equals(EjbJar.JAWS_DOCUMENT))
  +     if 
(elt.getOwnerDocument().getDocumentElement().getTagName().equals(JawsEjbJar.JAWS_DOCUMENT))
        {
              NodeList nl = elt.getChildNodes();
              for (int i = 0; i < nl.getLength(); i++)
  
  
  
  1.3       +6 -6      
jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/JawsFileManager.java
  
  Index: JawsFileManager.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/JawsFileManager.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JawsFileManager.java      2000/04/26 06:41:33     1.2
  +++ JawsFileManager.java      2000/05/19 07:11:56     1.3
  @@ -30,7 +30,7 @@
    *      
    *   @see <related>
    *   @author Rickard �berg ([EMAIL PROTECTED])
  - *   @version $Revision: 1.2 $
  + *   @version $Revision: 1.3 $
    */
   public class JawsFileManager
      extends BeanContextServicesSupport
  @@ -43,7 +43,7 @@
      File file;
      Component comp;
      
  -   EjbJar ejbJar;
  +   JawsEjbJar ejbJar;
      
      JawsFileManagerFactory fact;
      
  @@ -58,12 +58,12 @@
      }
      
      // Public --------------------------------------------------------
  -   public EjbJar getEjbJar()
  +   public JawsEjbJar getEjbJar()
      {
         return ejbJar;
      }
   
  -   public EjbJar load(URL file)
  +   public JawsEjbJar load(URL file)
         throws Exception
      {
         // Create classloader
  @@ -77,7 +77,7 @@
            
         Document doc;
         
  -      ejbJar = new EjbJar();
  +      ejbJar = new JawsEjbJar();
         add(ejbJar);
   
         // XML file
  @@ -199,7 +199,7 @@
      
      public void createNew()
      {
  -      ejbJar = new EjbJar();
  +      ejbJar = new JawsEjbJar();
         add(ejbJar);
         
         // Load default Jaws XML
  
  
  
  1.2       +2 -2      
jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/Mapping.java
  
  Index: Mapping.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/Mapping.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Mapping.java      2000/04/22 14:30:11     1.1
  +++ Mapping.java      2000/05/19 07:11:56     1.2
  @@ -27,7 +27,7 @@
    *      
    *   @see <related>
    *   @author Rickard �berg ([EMAIL PROTECTED])
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class Mapping
      extends BeanContextServicesSupport
  @@ -89,7 +89,7 @@
      public void importXml(Element elt)
         throws Exception
      {
  -     if 
(elt.getOwnerDocument().getDocumentElement().getTagName().equals(EjbJar.JAWS_DOCUMENT))
  +     if 
(elt.getOwnerDocument().getDocumentElement().getTagName().equals(JawsEjbJar.JAWS_DOCUMENT))
        {
              NodeList nl = elt.getChildNodes();
              for (int i = 0; i < nl.getLength(); i++)
  
  
  
  1.2       +4 -4      
jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/TypeMapping.java
  
  Index: TypeMapping.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/TypeMapping.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TypeMapping.java  2000/04/22 14:30:11     1.1
  +++ TypeMapping.java  2000/05/19 07:11:56     1.2
  @@ -32,7 +32,7 @@
    *      
    *   @see <related>
    *   @author Rickard �berg ([EMAIL PROTECTED])
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class TypeMapping
      extends BeanContextServicesSupport
  @@ -60,7 +60,7 @@
         return name.equals("") ? "Type mapping" : name;
      }
      
  -   public String getSqlTypeForJavaType(Class type, Entity entity)
  +   public String getSqlTypeForJavaType(Class type, JawsEntity entity)
      {
         String name = type.getName();
         
  @@ -111,7 +111,7 @@
         return objectType;
      }
      
  -   public String getJdbcTypeForJavaType(Class type, Entity entity)
  +   public String getJdbcTypeForJavaType(Class type, JawsEntity entity)
      {
         String name = type.getName();
         
  @@ -202,7 +202,7 @@
      public void importXml(Element elt)
         throws Exception
      {
  -     if 
(elt.getOwnerDocument().getDocumentElement().getTagName().equals(EjbJar.JAWS_DOCUMENT))
  +     if 
(elt.getOwnerDocument().getDocumentElement().getTagName().equals(JawsEjbJar.JAWS_DOCUMENT))
        {
              NodeList nl = elt.getChildNodes();
              for (int i = 0; i < nl.getLength(); i++)
  
  
  
  1.2       +2 -2      
jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/TypeMappings.java
  
  Index: TypeMappings.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/TypeMappings.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TypeMappings.java 2000/04/22 14:30:11     1.1
  +++ TypeMappings.java 2000/05/19 07:11:56     1.2
  @@ -27,7 +27,7 @@
    *      
    *   @see <related>
    *   @author Rickard �berg ([EMAIL PROTECTED])
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class TypeMappings
      extends BeanContextSupport
  @@ -94,7 +94,7 @@
      public void importXml(Element elt)
         throws Exception
      {
  -      if 
(elt.getOwnerDocument().getDocumentElement().getTagName().equals(EjbJar.JAWS_DOCUMENT))
  +      if 
(elt.getOwnerDocument().getDocumentElement().getTagName().equals(JawsEjbJar.JAWS_DOCUMENT))
         {
            NodeList nl = elt.getChildNodes();
            for (int i = 0; i < nl.getLength(); i++)
  
  
  
  1.1                  
jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/JawsCMPField.java
  
  Index: JawsCMPField.java
  ===================================================================
  /*
   * jBoss, the OpenSource EJB server
   *
   * Distributable under GPL license.
   * See terms of license at gnu.org.
   */
  package org.jboss.ejb.plugins.jaws.deployment;
  
  import java.awt.*;
  import java.beans.*;
  import java.beans.beancontext.*;
  import java.io.*;
  import java.util.*;
  
  import org.w3c.dom.*;
  
  import com.dreambean.awt.*;
  import com.dreambean.ejx.xml.*;
  
  /**
   *   <description> 
   *      
   *   @see <related>
   *   @author Rickard �berg ([EMAIL PROTECTED])
   *   @version $Revision: 1.1 $
   */
  public class JawsCMPField
     extends com.dreambean.ejx.ejb.CMPField
     implements PropertyChangeListener
  {
     // Constants -----------------------------------------------------
      
     // Attributes ----------------------------------------------------
     String columnName = "";
     String sqlType = "";
     String jdbcType = "";
  
     Customizer c;
     
     // Static --------------------------------------------------------
  
     // Constructors --------------------------------------------------
     public JawsCMPField()
     {
        addPropertyChangeListener(this);
     }
      
     // Public --------------------------------------------------------
     public void setColumnName(String n) { columnName = n; }
     public String getColumnName() { return columnName; }
     
     public void setSqlType(String s) { String old = sqlType; sqlType = s; 
pcSupport.firePropertyChange("SqlType", old, sqlType);}
     public String getSqlType() { return sqlType; }
     
     public void setJdbcType(String s) { String old = jdbcType; jdbcType = s; 
pcSupport.firePropertyChange("JdbcType", old, jdbcType);}
     public String getJdbcType() { return jdbcType; }
     
     // PropertyChange ------------------------------------------------
     public void addPropertyChangeListener(PropertyChangeListener listener)
     {
        pcSupport.addPropertyChangeListener(listener);
     }
  
     public void removePropertyChangeListener(PropertyChangeListener listener)
     {
        pcSupport.removePropertyChangeListener(listener);
     }
     
     // XmlExternalizable implementation ------------------------------
     public Element exportXml(Document doc)
     {
        Element cmpfield = doc.createElement("cmp-field");
        XMLManager.addElement(cmpfield,"field-name",getFieldName());
        
        XMLManager.addElement(cmpfield,"column-name",getColumnName());
        XMLManager.addElement(cmpfield,"sql-type",getSqlType());
        XMLManager.addElement(cmpfield,"jdbc-type",getJdbcType());
        
        return cmpfield;
     }
     
     public void importXml(Element elt)
     {
        
((JawsEnterpriseBeans)getBeanContext().getBeanContext()).addPropertyChangeListener("TypeMapping",
 this);
        
        if 
(elt.getOwnerDocument().getDocumentElement().getTagName().equals(JawsEjbJar.JAWS_DOCUMENT))
        {
           NodeList nl = elt.getChildNodes();
           for (int i = 0; i < nl.getLength(); i++)
           {
              Node n = nl.item(i);
              String name = n.getNodeName();
              
              if (name.equals("column-name"))
              {
                 setColumnName(n.hasChildNodes() ? XMLManager.getString(n) : "");
              } else if (name.equals("sql-type"))
              {
                 setSqlType(n.hasChildNodes() ? XMLManager.getString(n) : "");
              } else if (name.equals("jdbc-type"))
              {
                 setJdbcType(n.hasChildNodes() ? XMLManager.getString(n) : "");
              } 
  
           }
        } else // EJB-JAR XML
        {
           super.importXml(elt);
           setColumnName(getFieldName());
        }
     }
     
     public String toString()
     {
        return (getFieldName().equals("")) ? "CMP field mapping" : getFieldName();
     }
      
     public void propertyChange(PropertyChangeEvent evt)
     {
        if (evt.getPropertyName().equals("TypeMapping"))
        {
           // Try to find out SQL
           try
           {
              ClassLoader cl = 
((JawsFileManager)getBeanContext().getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
              Class clazz = cl.loadClass(((JawsEntity)getBeanContext()).getEjbClass());
              java.lang.reflect.Field type = clazz.getField(getFieldName());
              
              String sql = 
((JawsEjbJar)getBeanContext().getBeanContext().getBeanContext()).getTypeMappings().getTypeMapping(((JawsEnterpriseBeans)getBeanContext().getBeanContext()).getTypeMapping()).getSqlTypeForJavaType(type.getType(),
 (JawsEntity)getBeanContext());
              if (sql != null)
                 setSqlType(sql);
                 
              String jdbc = 
((JawsEjbJar)getBeanContext().getBeanContext().getBeanContext()).getTypeMappings().getTypeMapping(((JawsEnterpriseBeans)getBeanContext().getBeanContext()).getTypeMapping()).getJdbcTypeForJavaType(type.getType(),
 (JawsEntity)getBeanContext());
              if (jdbc != null)
                 setJdbcType(jdbc);
              
           } catch (Throwable e)
           {
              // Didn't work..
              e.printStackTrace(System.err);
           }
        }
     }
     // Package protected ---------------------------------------------
      
     // Protected -----------------------------------------------------
      
     // Private -------------------------------------------------------
  
     // Inner classes -------------------------------------------------
  }
  
  
  
  1.1                  
jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/JawsEjbJar.java
  
  Index: JawsEjbJar.java
  ===================================================================
  /*
   * jBoss, the OpenSource EJB server
   *
   * Distributable under GPL license.
   * See terms of license at gnu.org.
   */
  package org.jboss.ejb.plugins.jaws.deployment;
  
  import java.awt.*;
  import java.beans.*;
  import java.beans.beancontext.*;
  import java.io.*;
  import java.util.*;
  
  import org.w3c.dom.Node;
  import org.w3c.dom.NodeList;
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  
  import com.dreambean.awt.GenericCustomizer;
  import com.dreambean.ejx.xml.XMLManager;
  import com.dreambean.ejx.xml.XmlExternalizable;
  import com.dreambean.ejx.Util;
  
  /**
   *   <description> 
   *      
   *   @see <related>
   *   @author Rickard �berg ([EMAIL PROTECTED])
   *   @version $Revision: 1.1 $
   */
  public class JawsEjbJar
     extends com.dreambean.ejx.ejb.EjbJar
  {
     // Constants -----------------------------------------------------
     public static final String JAWS_DOCUMENT="jaws";
      
     // Attributes ----------------------------------------------------
     TypeMappings tm;
  
     // Static --------------------------------------------------------
     
     // Constructors --------------------------------------------------
     public JawsEjbJar()
     {
        super();
        
        tm = new TypeMappings();
        add(tm);
     }
     
     // Public --------------------------------------------------------
     public TypeMappings getTypeMappings() { return tm; }
     
     // XmlExternalizable implementation ------------------------------
     public Element exportXml(Document doc)
          throws Exception
     {
        Element ejbjar = doc.createElement(JAWS_DOCUMENT);
  
        ejbjar.appendChild(tm.exportXml(doc));
        ejbjar.appendChild(eb.exportXml(doc));
        
        return ejbjar;
     }
     
     public void importXml(Element elt)
          throws Exception
     {
        if 
(elt.getOwnerDocument().getDocumentElement().getTagName().equals(JAWS_DOCUMENT))
        {
           NodeList nl = elt.getChildNodes();
           for (int i = 0; i < nl.getLength(); i++)
           {
              Node n = nl.item(i);
              String name = n.getNodeName();
              
              if (name.equals("enterprise-beans"))
              {
                 eb.importXml((Element)n);
              } else if (name.equals("type-mappings"))
              {
                 tm.importXml((Element)n);
              }
           }
        } else
        {
           super.importXml(elt);
           remove(ad);
        }
     }
     
     // Package protected ---------------------------------------------
      
     // Protected -----------------------------------------------------
     protected void createEnterpriseBeans()
     {
        eb = new JawsEnterpriseBeans();
        add(eb);
     }
     
     protected void createAssemblyDescriptor()
     {
        ad = new com.dreambean.ejx.ejb.AssemblyDescriptor();
        add(ad);
     }
     
     // Private -------------------------------------------------------
  
     // Inner classes -------------------------------------------------
  }
  
  
  1.1                  
jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/JawsEjbReference.java
  
  Index: JawsEjbReference.java
  ===================================================================
  /*
   * jBoss, the OpenSource EJB server
   *
   * Distributable under GPL license.
   * See terms of license at gnu.org.
   */
  package org.jboss.ejb.plugins.jaws.deployment;
  
  import java.awt.*;
  import java.beans.*;
  import java.beans.beancontext.*;
  import java.io.*;
  import java.util.*;
  
  import org.w3c.dom.*;
  
  import com.dreambean.awt.*;
  import com.dreambean.ejx.xml.*;
  
  /**
   *   <description> 
   *      
   *   @see <related>
   *   @author Rickard �berg ([EMAIL PROTECTED])
   *   @version $Revision: 1.1 $
   */
  public class JawsEjbReference
     extends com.dreambean.ejx.ejb.EjbReference
  {
     // Constants -----------------------------------------------------
      
     // Attributes ----------------------------------------------------
     
     // Static --------------------------------------------------------
  
     // Constructors --------------------------------------------------
      
     // Public --------------------------------------------------------
     
     // Package protected ---------------------------------------------
      
     // Protected -----------------------------------------------------
      
     // Private -------------------------------------------------------
  
     // Inner classes -------------------------------------------------
  }
  
  
  
  1.1                  
jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/JawsEnterpriseBeans.java
  
  Index: JawsEnterpriseBeans.java
  ===================================================================
  /*
   * jBoss, the OpenSource EJB server
   *
   * Distributable under GPL license.
   * See terms of license at gnu.org.
   */
  package org.jboss.ejb.plugins.jaws.deployment;
  
  import java.awt.*;
  import java.beans.*;
  import java.beans.beancontext.*;
  import java.io.*;
  import java.util.*;
  
  import org.w3c.dom.Node;
  import org.w3c.dom.NodeList;
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  
  import com.dreambean.awt.GenericCustomizer;
  import com.dreambean.ejx.xml.XMLManager;
  import com.dreambean.ejx.xml.XmlExternalizable;
  import com.dreambean.ejx.Util;
  
  /**
   *   <description> 
   *      
   *   @see <related>
   *   @author Rickard �berg ([EMAIL PROTECTED])
   *   @version $Revision: 1.1 $
   */
  public class JawsEnterpriseBeans
     extends com.dreambean.ejx.ejb.EnterpriseBeans
  {
     // Constants -----------------------------------------------------
      
     // Attributes ----------------------------------------------------
     String dataSource = "";
     String typeMapping = "";
      
     // Static --------------------------------------------------------
  
     // Constructors --------------------------------------------------
      
     // Public --------------------------------------------------------
     public void setDataSource(String ds) { dataSource = ds; }
     public String getDataSource() { return dataSource; }
     
     public void setTypeMapping(String tm) { String old = typeMapping; typeMapping = 
tm; firePropertyChange("TypeMapping", old, typeMapping); }
     public String getTypeMapping() { return typeMapping; }
     
     public com.dreambean.ejx.ejb.Entity addEntity()
        throws IOException, ClassNotFoundException
     {
        return 
(com.dreambean.ejx.ejb.Entity)instantiateChild("org.jboss.ejb.plugins.jaws.deployment.JawsEntity");
     }
     
     // XmlExternalizable implementation ------------------------------
     public Element exportXml(Document doc)
        throws Exception
     {
        Element enterprisebeans = super.exportXml(doc);
        
        XMLManager.addElement(enterprisebeans,"datasource",dataSource);
        XMLManager.addElement(enterprisebeans,"type-mapping",getTypeMapping());
        
        return enterprisebeans;
     }
     
     public void importXml(Element elt)
        throws Exception
     {
        if 
(elt.getOwnerDocument().getDocumentElement().getTagName().equals(JawsEjbJar.JAWS_DOCUMENT))
        {
           NodeList nl = elt.getChildNodes();
           for (int i = 0; i < nl.getLength(); i++)
           {
              Node n = nl.item(i);
              String name = n.getNodeName();
              
              if (name.equals("entity"))
              {
                 try
                 {
                    NodeList enl = ((Element)n).getElementsByTagName("ejb-name");
                    String ejbName = XMLManager.getString(enl.item(0));
                    JawsEntity bean = (JawsEntity)getEjb(ejbName);
                    bean.importXml((Element)n);
                 } catch (IllegalArgumentException e)
                 {
  //                  e.printStackTrace();
                    // Does not exist anymore...
                 }
              } else if (name.equals("datasource"))
              {
                 setDataSource(n.hasChildNodes() ? XMLManager.getString(n) : "");
              } else if (name.equals("type-mapping"))
              {
                 setTypeMapping(n.hasChildNodes() ? XMLManager.getString(n) : "");
              } 
           }
        } else
        {
           super.importXml(elt);
           
           // Remove BMP beans
           Iterator enum = getEntities();
           while(enum.hasNext())
           {
              JawsEntity entity = (JawsEntity)enum.next();
              if (entity.getPersistenceType().equals("Bean"))
              {
                 remove(entity);
              }
           }
           
           // Remove session beans
           enum = getSessions();
           while(enum.hasNext())
           {
              remove(enum.next());
           }
        }
     }
      
     // Package protected ---------------------------------------------
      
     // Protected -----------------------------------------------------
      
     // Private -------------------------------------------------------
  
     // Inner classes -------------------------------------------------
  }
  
  
  
  1.1                  
jboss/src/main/org/jboss/ejb/plugins/jaws/deployment/JawsEntity.java
  
  Index: JawsEntity.java
  ===================================================================
  /*
   * Copyright 1999 by dreamBean Software,
   * All rights reserved.
   */
  package org.jboss.ejb.plugins.jaws.deployment;
  
  import java.awt.*;
  import java.beans.*;
  import java.beans.beancontext.*;
  import java.io.*;
  import java.util.*;
  
  import javax.swing.JTabbedPane;
  
  import org.w3c.dom.Node;
  import org.w3c.dom.NodeList;
  import org.w3c.dom.Document;
  import org.w3c.dom.Element;
  
  import com.dreambean.awt.*;
  import com.dreambean.ejx.xml.XMLManager;
  import com.dreambean.ejx.xml.XmlExternalizable;
  import com.dreambean.ejx.Util;
  import com.dreambean.ejx.ejb.EjbReference;
  
  /**
   *   <description> 
   *      
   *   @see <related>
   *   @author Rickard �berg ([EMAIL PROTECTED])
   *   @version $Revision: 1.1 $
   */
  public class JawsEntity
     extends com.dreambean.ejx.ejb.Entity
  {
     // Constants -----------------------------------------------------
      
     // Attributes ----------------------------------------------------
     String tableName= "";
     boolean createTable = true;
     boolean removeTable = false;
     boolean tunedUpdates = true;
        boolean readOnly = false;
        int timeOut = 5*60; // 5 minute timeout on read-only state
  
     Container c;
     
     // Static --------------------------------------------------------
  
     // Constructors --------------------------------------------------
      
     // Public --------------------------------------------------------
     public void setTableName(String n) { String old = tableName; tableName = n; 
firePropertyChange("TableName",old,tableName); }
     public String getTableName() { return tableName; }
     
     public void setCreateTable(boolean c) { createTable = c; }
     public boolean getCreateTable() { return createTable; }
     
     public void setRemoveTable(boolean r) { removeTable = r; }
     public boolean getRemoveTable() { return removeTable; }
     
     public void setTunedUpdates(boolean t) { tunedUpdates = t; }
     public boolean getTunedUpdates() { return tunedUpdates; }
     
     public void setReadOnly(boolean t) { readOnly = t; }
     public boolean getReadOnly() { return readOnly; }
        
     public void setTimeOut(int t) { timeOut = t; }
     public int getTimeOut() { return timeOut; }
        
     public com.dreambean.ejx.ejb.CMPField addCMPField()
        throws Exception
     {
        return 
(com.dreambean.ejx.ejb.CMPField)instantiateChild("org.jboss.ejb.plugins.jaws.deployment.JawsCMPField");
     }
     
     public Finder addFinder()
        throws Exception
     {
        return 
(Finder)instantiateChild("org.jboss.ejb.plugins.jaws.deployment.Finder");
     }
     
     public Iterator getFinders()
     {
        return Util.getChildrenByClass(iterator(),Finder.class);
     }
     
     // BeanContextContainerProxy implementation -----------------
     public Container getContainer()
     {
        if (c == null)
        {
            c = new JTabbedPane();
            c.add(new GenericCustomizer(this), "Entity");
            
            try
            {
               c.add(new GenericPropertySheet(this, JawsCMPField.class), "CMP 
mappings");
            } catch (Exception e) {}
            
            try
            {
               c.add(new GenericPropertySheet(this, Finder.class), "Finders");
            } catch (Exception e) {}
        }
        return (Container)c;
     }
     
     // XmlExternalizable implementation ------------------------------
     public Element exportXml(Document doc)
        throws Exception
     {
        Element entity = doc.createElement("entity");
        XMLManager.addElement(entity,"ejb-name",getEjbName());
        
        XMLManager.addElement(entity,"table-name",getTableName());
        XMLManager.addElement(entity,"create-table",new 
Boolean(getCreateTable()).toString());
        XMLManager.addElement(entity,"remove-table",new 
Boolean(getRemoveTable()).toString());
        XMLManager.addElement(entity,"tuned-updates",new 
Boolean(getTunedUpdates()).toString());
        XMLManager.addElement(entity,"read-only",new 
Boolean(getReadOnly()).toString());
        XMLManager.addElement(entity,"time-out",new Integer(getTimeOut()).toString());
        
        for (Iterator enum = getCMPFields(); enum.hasNext();)
        {
           entity.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
        }
        
        for (Iterator enum = getFinders(); enum.hasNext();)
        {
           entity.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
        }
        
        return entity;
     }
     
     public void importXml(Element elt)
        throws Exception
     {
        if 
(elt.getOwnerDocument().getDocumentElement().getTagName().equals(JawsEjbJar.JAWS_DOCUMENT))
        {
              NodeList nl = elt.getChildNodes();
              for (int i = 0; i < nl.getLength(); i++)
              {
                 Node n = nl.item(i);
                 String name = n.getNodeName();
                 
                 if (name.equals("table-name"))
                 {
                    setTableName(n.hasChildNodes() ? XMLManager.getString(n) : "");
              } else if (name.equals("create-table"))
              {
                 setCreateTable(new Boolean(n.hasChildNodes() ? 
XMLManager.getString(n) : "").booleanValue());
              } else if (name.equals("remove-table"))
              {
                 setRemoveTable(new Boolean(n.hasChildNodes() ? 
XMLManager.getString(n) : "").booleanValue());
              } else if (name.equals("tuned-updates"))
              {
                 setTunedUpdates(new Boolean(n.hasChildNodes() ? 
XMLManager.getString(n) : "").booleanValue());
              } else if (name.equals("read-only"))
              {
                 setReadOnly(new Boolean(n.hasChildNodes() ? XMLManager.getString(n) : 
"").booleanValue());
              } else if (name.equals("time-out"))
              {
                 setTimeOut(new Integer(n.hasChildNodes() ? XMLManager.getString(n) : 
"").intValue());
              } else if (name.equals("cmp-field"))
              {
                 NodeList rnl = ((Element)n).getElementsByTagName("field-name");
                 String fieldName = XMLManager.getString(rnl.item(0));
                 Iterator enum = getCMPFields();
                 while(enum.hasNext())
                 {
                    JawsCMPField field = (JawsCMPField)enum.next();
                    if (field.getFieldName().equals(fieldName))
                    {
                       field.importXml((Element)n);
                       break;
                    }
                 }
              } else if (name.equals("finder"))
              {
                 addFinder().importXml((Element)n);
              } 
              }
        } else // EJB-JAR XML
        {
           super.importXml(elt);
           setTableName(getEjbName());
           
           // Remove everything but CMP fields
           Iterator enum = iterator();
           while(enum.hasNext())
           {
              Object child = enum.next();
              if (child instanceof JawsCMPField || child instanceof JawsEjbReference)
                 continue;
                 
              remove(child);
           }
        }
     }
     
     public void propertyChange(PropertyChangeEvent evt)
     {
     }
     // Package protected ---------------------------------------------
      
     // Protected -----------------------------------------------------
      
     // Private -------------------------------------------------------
  
     // Inner classes -------------------------------------------------
  }
  
  
  

Reply via email to