User: andreas
Date: 00/09/28 22:56:20
Added: examples/ejb/src/com/dreambean/ejx/ejb
AssemblyDescriptor.java CMPField.java
ContainerTransaction.java EjbFileManager.java
EjbFileManagerFactory.java EjbJar.java
EjbJarViewer.java EjbReference.java
EnterpriseBean.java EnterpriseBeans.java
Entity.java EnvironmentEntry.java Method.java
MethodPermission.java ResourceReference.java
SecurityRole.java SecurityRoleReference.java
Session.java ejb.dfPackage
Log:
Move up to the examples/<plugin-name>/etc directory
Revision Changes Path
1.1
ejx/examples/ejb/src/com/dreambean/ejx/ejb/AssemblyDescriptor.java
Index: AssemblyDescriptor.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
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.BeanContextViewer;
import com.dreambean.ejx.xml.XMLManager;
import com.dreambean.ejx.xml.XmlExternalizable;
import com.dreambean.ejx.Util;
/**
* <description>
*
* @see <related>
* @author Rickard Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class AssemblyDescriptor
extends BeanContextSupport
implements BeanContextChildComponentProxy, XmlExternalizable
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
private String id = "";
Customizer c;
/** @link aggregation */
/*#SecurityRole lnkSecurityRole;*/
/** @link aggregation */
/*#ContainerTransaction lnkContainerTransaction;*/
/** @link aggregation */
/*#MethodPermission lnkMethodPermission;*/
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
// Public --------------------------------------------------------
public void createSecurityRole(String name)
throws IOException, ClassNotFoundException
{
addSecurityRole().setName(name);
}
public SecurityRole addSecurityRole()
throws IOException, ClassNotFoundException
{
return (SecurityRole)instantiateChild("com.dreambean.ejx.ejb.SecurityRole");
}
public void createMethodPermission(String description)
throws IOException, ClassNotFoundException
{
addMethodPermission().setDescription(description);
}
public MethodPermission addMethodPermission()
throws IOException, ClassNotFoundException
{
return
(MethodPermission)instantiateChild("com.dreambean.ejx.ejb.MethodPermission");
}
public void createContainerTransaction(String description)
throws IOException, ClassNotFoundException
{
addContainerTransaction().setDescription(description);
}
public ContainerTransaction addContainerTransaction()
throws IOException, ClassNotFoundException
{
return
(ContainerTransaction)instantiateChild("com.dreambean.ejx.ejb.ContainerTransaction");
}
public Iterator iterator()
{
return Util.sortByClass(super.iterator());
}
public Iterator getSecurityRoles()
{
return Util.getChildrenByClass(super.iterator(),SecurityRole.class);
}
public Iterator getMethodPermissions()
{
return Util.getChildrenByClass(super.iterator(),MethodPermission.class);
}
public Iterator getContainerTransactions()
{
return Util.getChildrenByClass(super.iterator(),ContainerTransaction.class);
}
/* public Set getRoles(Method m)
{
// Find allowed roles for given method
Set roles = new HashSet();
Iterator methodPermissions = getMethodPermissions();
while (methodPermissions.hasNext())
{
MethodPermission mp = (MethodPermission)methodPermissions.next();
// Check if method is in this MP
TreeModel methods = mp.getMethods();
TreeNode root = methods.getRoot
if (methods.getRoot
}
}
*/
// BeanContextContainerProxy implementation ----------------------
public Component getComponent()
{
if (c == null)
{
c = new BeanContextViewer();
c.setObject(this);
}
return (Component)c;
}
// XmlExternalizable implementation ------------------------------
public Element exportXml(Document doc)
throws Exception
{
Element assemblyDescriptor = doc.createElement("assembly-descriptor");
XMLManager.addOptionalAttribute(assemblyDescriptor,"id",id);
for (Iterator enum = getSecurityRoles(); enum.hasNext();)
{
assemblyDescriptor.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
}
for (Iterator enum = getMethodPermissions(); enum.hasNext();)
{
assemblyDescriptor.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
}
for (Iterator enum = getContainerTransactions(); enum.hasNext();)
{
assemblyDescriptor.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
}
return assemblyDescriptor;
}
public void importXml(Element elt)
throws Exception
{
id = elt.getAttribute("id");
NodeList nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("security-role"))
{
addSecurityRole().importXml((Element)n);
} else if (name.equals("method-permission"))
{
addMethodPermission().importXml((Element)n);
} else if (name.equals("container-transaction"))
{
addContainerTransaction().importXml((Element)n);
}
}
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}
1.1 ejx/examples/ejb/src/com/dreambean/ejx/ejb/CMPField.java
Index: CMPField.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
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 Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class CMPField
extends BeanContextSupport
implements BeanContextChildComponentProxy, XmlExternalizable
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
private String id = "";
String description = "";
String fieldName = "";
Customizer c;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
// Public --------------------------------------------------------
public void setDescription(String d) { description = d; }
public String getDescription() { return description; }
public void setFieldName(String n) { fieldName = n; }
public String getFieldName() { return fieldName; }
public void removeField()
{
getBeanContext().remove(this);
}
// BeanContextChildComponentProxy implementation -----------------
public java.awt.Component getComponent()
{
if (c == null)
{
c = new GenericCustomizer(false,this);
}
return (java.awt.Component)c;
}
// XmlExternalizable implementation ------------------------------
public Element exportXml(Document doc)
{
Element cmpfield = doc.createElement("cmp-field");
XMLManager.addOptionalAttribute(cmpfield,"id",id);
XMLManager.addOptionalElement(cmpfield,"description",getDescription());
XMLManager.addElement(cmpfield,"field-name",getFieldName());
return cmpfield;
}
public void importXml(Element elt)
{
id = elt.getAttribute("id");
NodeList nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("field-name"))
{
setFieldName(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("description"))
{
setDescription(n.hasChildNodes() ? XMLManager.getString(n) : "");
}
}
}
public String toString()
{
return (fieldName.equals("")) ? "CMP Field " : fieldName;
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}
1.1
ejx/examples/ejb/src/com/dreambean/ejx/ejb/ContainerTransaction.java
Index: ContainerTransaction.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
import java.awt.*;
import java.beans.*;
import java.beans.beancontext.*;
import java.io.*;
import java.util.*;
import javax.swing.tree.*;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import com.dreambean.ejx.xml.XMLManager;
import com.dreambean.ejx.xml.XmlExternalizable;
import com.dreambean.ejx.Util;
/**
* <description>
*
* @see <related>
* @author Rickard Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class ContainerTransaction
extends BeanContextSupport
implements BeanContextChildComponentProxy, XmlExternalizable
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
private String id = "";
String description = "";
String txAttribute = "NotSupported";
TreeModel method;
HashMap ejbs;
DefaultMutableTreeNode root;
BeanContext rootCtx;
Customizer c;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
// Public --------------------------------------------------------
public void setDescription(String d) { description = d; }
public String getDescription() { return description; }
public void setTransactionAttribute(String ta) { txAttribute = ta; }
public String getTransactionAttribute() { return txAttribute; }
public void setMethods(TreeModel m) { method = m; }
public TreeModel getMethods() { return method; }
/* public boolean appliesTo(java.lang.reflect.Method method)
{
}
*/
public void removeContainerTransaction()
{
getBeanContext().remove(this);
}
public String toString()
{
return (description.equals("")) ? "Container transaction " :
description;
}
// BeanContextChildComponentProxy implementation -----------------
public Component getComponent()
{
if (c == null)
{
try
{
c =
(Customizer)Beans.instantiate(Thread.currentThread().getContextClassLoader(),
"com.dreambean.awt.GenericCustomizer");
c.setObject(this);
} catch (Exception e) {}
}
return (Component)c;
}
// XmlExternalizable implementation ------------------------------
public Element exportXml(Document doc)
throws Exception
{
Element containertransaction = doc.createElement("container-transaction");
XMLManager.addOptionalAttribute(containertransaction,"id",id);
XMLManager.addOptionalElement(containertransaction,"description",getDescription());
// Methods
getMethods(); // Make sure that tree is loaded, as it is lazyloaded. May
become corrupt otherwise!!
Iterator beanEnum = rootCtx.iterator();
while(beanEnum.hasNext())
{
Method bean = (Method)beanEnum.next();
if (bean.isSelected())
{
containertransaction.appendChild(bean.exportXml(doc));
} else
{
Iterator intfEnum = bean.iterator();
while(intfEnum.hasNext())
{
Method intf = (Method)intfEnum.next();
if (intf.isSelected())
{
containertransaction.appendChild(intf.exportXml(doc));
} else
{
Iterator methodEnum = intf.iterator();
while(methodEnum.hasNext())
{
Method method =
(Method)methodEnum.next();
if (method.isSelected())
{
containertransaction.appendChild(method.exportXml(doc));
} else
{
}
}
}
}
}
}
// Add transaction attribute
XMLManager.addElement(containertransaction,"trans-attribute",getTransactionAttribute());
return containertransaction;
}
public void importXml(Element elt)
throws Exception
{
id = elt.getAttribute("id");
// Load methods
try
{
/*
// Build tree from bean list
Hashtable ejbs = new Hashtable();
root = new DefaultMutableTreeNode(rootCtx = new Method("Root"));
BeanContext ejbJar = getBeanContext().getBeanContext();
Iterator enum = ejbJar.iterator();
while (enum.hasNext())
{
Object obj = enum.next();
if (obj instanceof EnterpriseBeans)
{
Iterator beans = ((EnterpriseBeans)obj).iterator();
while (beans.hasNext())
{
obj = beans.next();
if (obj instanceof Entity)
{
addEntity((Entity)obj, ejbs);
} else if (obj instanceof Session)
{
addSession((Session)obj, ejbs);
}
}
}
}
method = new DefaultTreeModel(root);
*/
// Set selected nodes from XML
NodeList nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("method"))
{
// Get EJB name
Element en =
(Element)((Element)n).getElementsByTagName("ejb-name").item(0);
String ejbName = XMLManager.getString(en);
// Find Method
Method m = (Method)ejbs.get(ejbName);
if (m != null)
{
try
{
m.importXml((Element)n);
} catch (Exception ex)
{
ex.printStackTrace();
}
}
}
}
} catch (Throwable ee)
{
ee.printStackTrace();
}
NodeList nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("trans-attribute"))
{
setTransactionAttribute(n.hasChildNodes() ?
n.getFirstChild().getNodeValue() : "");
} else if (name.equals("description"))
{
setDescription(n.hasChildNodes() ? XMLManager.getString(n) : "");
}
}
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
protected void initializeBeanContextResources()
{
// Get methods
// Build tree from bean list
ejbs = new HashMap();
root = new DefaultMutableTreeNode(rootCtx = new Method("Root"));
EjbJar ejbJar = (EjbJar)getBeanContext().getBeanContext();
Iterator beans = ((EnterpriseBeans)ejbJar.getEnterpriseBeans()).iterator();
while (beans.hasNext())
{
Object obj = beans.next();
if (obj instanceof Entity)
{
addEntity((Entity)obj, ejbs);
} else if (obj instanceof Session)
{
addSession((Session)obj, ejbs);
}
}
method = new DefaultTreeModel(root);
}
// Private -------------------------------------------------------
private void addEntity(Entity ent, HashMap ejbs)
{
DefaultMutableTreeNode node;
DefaultMutableTreeNode remote;
DefaultMutableTreeNode home;
Method bean = new Method(ent.getEjbName());
node = new DefaultMutableTreeNode(bean);
Method beanHome = new Method(ent.getEjbName(),"Home");
home = new DefaultMutableTreeNode(beanHome);
bean.add(beanHome);
try
{
ClassLoader cl =
((EjbFileManager)getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
Class clazz = cl.loadClass(ent.getHome());
java.lang.reflect.Method[] methods = clazz.getMethods();
for (int i = 0; i < methods.length; i++)
{
Method beanMethod = new
Method(ent.getEjbName(),methods[i]);
home.add(new DefaultMutableTreeNode(beanMethod));
beanHome.add(beanMethod);
}
} catch (Exception e)
{
// System.err.println(e);
}
node.add(home);
Method beanRemote = new Method(ent.getEjbName(),"Remote");
remote = new DefaultMutableTreeNode(beanRemote);
bean.add(beanRemote);
try
{
ClassLoader cl =
((EjbFileManager)getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
Class clazz = cl.loadClass(ent.getRemote());
java.lang.reflect.Method[] methods = clazz.getMethods();
for (int i = 0; i < methods.length; i++)
{
Method beanMethod = new
Method(ent.getEjbName(),methods[i]);
remote.add(new DefaultMutableTreeNode(beanMethod));
beanRemote.add(beanMethod);
}
} catch (Exception e)
{
// System.err.println(e);
}
node.add(remote);
ejbs.put(ent.getEjbName(),bean);
rootCtx.add(bean);
root.add(node);
}
private void addSession(Session sess, HashMap ejbs)
{
DefaultMutableTreeNode node;
DefaultMutableTreeNode remote;
DefaultMutableTreeNode home;
Method bean = new Method(sess.getEjbName());
node = new DefaultMutableTreeNode(bean);
Method beanHome = new Method(sess.getEjbName(),"Home");
home = new DefaultMutableTreeNode(beanHome);
bean.add(beanHome);
try
{
ClassLoader cl =
((EjbFileManager)getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
Class clazz = cl.loadClass(sess.getHome());
java.lang.reflect.Method[] methods = clazz.getMethods();
for (int i = 0; i < methods.length; i++)
{
Method beanMethod = new
Method(sess.getEjbName(),methods[i]);
home.add(new DefaultMutableTreeNode(beanMethod));
beanHome.add(beanMethod);
}
} catch (Exception e)
{
// System.err.println(e);
}
node.add(home);
Method beanRemote = new Method(sess.getEjbName(),"Remote");
remote = new DefaultMutableTreeNode(beanRemote);
bean.add(beanRemote);
try
{
ClassLoader cl =
((EjbFileManager)getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
Class clazz = cl.loadClass(sess.getRemote());
java.lang.reflect.Method[] methods = clazz.getMethods();
for (int i = 0; i < methods.length; i++)
{
Method beanMethod = new
Method(sess.getEjbName(),methods[i]);
remote.add(new DefaultMutableTreeNode(beanMethod));
beanRemote.add(beanMethod);
}
} catch (Exception e)
{
// System.err.println(e);
}
node.add(remote);
ejbs.put(sess.getEjbName(),bean);
rootCtx.add(bean);
root.add(node);
}
// Inner classes -------------------------------------------------
}
1.1 ejx/examples/ejb/src/com/dreambean/ejx/ejb/EjbFileManager.java
Index: EjbFileManager.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import java.beans.beancontext.*;
import java.io.*;
import java.net.*;
import java.util.*;
import java.util.zip.*;
import javax.swing.*;
import org.w3c.dom.*;
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.FileManager;
import com.dreambean.ejx.FileManagerFactory;
/**
* <description>
*
* @see <related>
* @author Rickard Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class EjbFileManager
extends BeanContextServicesSupport
implements FileManager
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
XMLManager xm;
File file;
Component comp;
EjbJar ejbJar;
EjbFileManagerFactory fact;
ClassLoader cl;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
EjbFileManager(EjbFileManagerFactory f)
{
fact = f;
}
// Public --------------------------------------------------------
public EjbJar getEjbJar()
{
return ejbJar;
}
public EjbJar load(URL file)
throws Exception
{
// Create classloader
{
URL fileUrl = file;
if (fileUrl.toString().endsWith("ejb-jar.xml"))
fileUrl = new
File(fileUrl.getFile()).getParentFile().getParentFile().toURL();
cl = new URLClassLoader(new URL[] { fileUrl },
Thread.currentThread().getContextClassLoader());
}
Document doc;
ejbJar = new EjbJar();
add(ejbJar);
// XML file
if (file.getFile().endsWith(".xml"))
{
Reader in = new InputStreamReader(file.openStream());
doc = xm.load(in);
in.close();
} else if (file.getFile().endsWith(".jar")) // JAR file
{
InputStream ejbXml =
getClassLoader().getResourceAsStream("META-INF/ejb-jar.xml");
if (ejbXml == null)
{
// We want to use this file, but it doesn't contain the XML file yet
(i.e. it's a JAR without the ejb-jar.xml file)
return ejbJar;
}
Reader in = new BufferedReader(new InputStreamReader(ejbXml));
doc = xm.load(in);
in.close();
} else
{
// Load from directory
InputStream ejbXml =
getClassLoader().getResourceAsStream("META-INF/ejb-jar.xml");
Reader in = new BufferedReader(new InputStreamReader(ejbXml));
doc = xm.load(in);
ejbXml.close();
}
ejbJar.importXml(doc.getDocumentElement());
return ejbJar;
}
// FileManager implementation ------------------------------------
public boolean isChanged()
{
return true;
}
public void createNew()
{
ejbJar = new EjbJar();
add(ejbJar);
}
public void load(File file)
throws Exception
{
setFile(file);
// Copy to prevent locking by load if we want to save later on
if (file.toString().endsWith(".jar"))
{
File tmp = File.createTempFile("ejbjar",".jar");
tmp.deleteOnExit();
FileInputStream fin = new FileInputStream(file);
byte[] bytes = new byte[(int)file.length()];
fin.read(bytes);
FileOutputStream fout = new FileOutputStream(tmp);
fout.write(bytes);
fin.close();
fout.close();
file = tmp;
}
load(file.toURL());
}
public void save(File f)
throws Exception
{
// Prepare XML document
Document doc = xm.create();
doc.appendChild(ejbJar.exportXml(doc));
// Save to file
if (f.toString().endsWith(".jar"))
{
// Save to existing file
if (f.exists())
{
// Store XML
ByteArrayOutputStream out = new ByteArrayOutputStream();
Writer w = new OutputStreamWriter(out);
xm.save(doc,w);
w.close();
byte[] arr = out.toByteArray();
Util.insertFileIntoZip(f, "META-INF/ejb-jar.xml", arr);
} else
{
ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(f));
zipOut.putNextEntry(new ZipEntry("META-INF/ejb-jar.xml"));
ByteArrayOutputStream out = new ByteArrayOutputStream();
Writer w = new OutputStreamWriter(out);
xm.save(doc,w);
w.close();
byte[] arr = out.toByteArray();
zipOut.write(arr);
zipOut.closeEntry();
zipOut.close();
}
setFile(f);
}
else if (f.toString().endsWith(".xml"))
{
FileWriter out = new FileWriter(f);
xm.save(doc,out);
out.close();
setFile(f);
} else
{
// Check extension and add if possible
String name = f.getName();
if (name.indexOf(".") == -1)
{
name += ".xml";
save(new File(f.getParent(),name));
} else
{
JOptionPane.showMessageDialog(null, "Unknown filetype.
File has not been saved!", "Save", JOptionPane.ERROR_MESSAGE);
}
}
}
public File getFile()
{
return file;
}
public void setFile(File f)
{
File old = file;
file = f;
firePropertyChange("File",old,file);
}
public FileManagerFactory getFactory() { return fact; }
public Component getComponent()
{
if (comp == null)
{
comp = ejbJar.getComponent();
}
return comp;
}
public ClassLoader getClassLoader()
{
return cl;
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
protected void initializeBeanContextResources()
{
try
{
xm =
(XMLManager)((BeanContextServices)getBeanContext()).getService(this,this,XMLManager.class,null,this);
} catch (Exception e)
{
e.printStackTrace();
}
}
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}
1.1
ejx/examples/ejb/src/com/dreambean/ejx/ejb/EjbFileManagerFactory.java
Index: EjbFileManagerFactory.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
import java.io.File;
import javax.swing.filechooser.FileFilter;
import com.dreambean.ejx.FileManager;
import com.dreambean.ejx.FileManagerFactory;
/**
* <description>
*
* @see <related>
* @author Rickard Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class EjbFileManagerFactory
extends FileFilter
implements FileManagerFactory
{
// Constants -----------------------------------------------------
// Static --------------------------------------------------------
// Public --------------------------------------------------------
// FileFilter implementation -------------------------------------
public boolean accept(File f)
{
return (f.getName().endsWith("ejb-jar.xml") ||
f.getName().endsWith(".jar"))
|| f.isDirectory();
}
public String getDescription() { return toString(); }
// FileManagerFactory implementation -----------------------------
public FileManager createFileManager()
{
return new EjbFileManager(this);
}
public FileFilter getFileFilter()
{
return this;
}
public String toString()
{
return "EJB 1.1 XML";
}
}
1.1 ejx/examples/ejb/src/com/dreambean/ejx/ejb/EjbJar.java
Index: EjbJar.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
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.ejx.xml.XMLManager;
import com.dreambean.ejx.xml.XmlExternalizable;
import com.dreambean.ejx.Util;
/**
* <description>
*
* @see <related>
* @author Rickard Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class EjbJar
extends BeanContextSupport
implements BeanContextChildComponentProxy, XmlExternalizable
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
protected String id = "";
protected String description = "";
protected String displayName = "";
protected String smallIcon = "";
protected String largeIcon = "";
protected String clientjar = "";
protected EnterpriseBeans eb;
protected AssemblyDescriptor ad;
protected Customizer c;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
public EjbJar()
{
createAssemblyDescriptor();
createEnterpriseBeans();
}
// Public --------------------------------------------------------
public String getDescription() { return description; }
public void setDescription(String d) { description = d; }
public String getDisplayName() { return displayName; }
public void setDisplayName(String dn) { displayName = dn; }
public String getSmallIcon() { return smallIcon; }
public void setSmallIcon(String si) { smallIcon = si; }
public String getLargeIcon() { return largeIcon; }
public void setLargeIcon(String li) { largeIcon= li; }
public String getClientJar() { return clientjar; }
public void setClientJar(String cj) { clientjar = cj; }
public EnterpriseBeans getEnterpriseBeans() { return eb; }
public AssemblyDescriptor getAssemblyDescriptor() { return ad; }
public Iterator iterator()
{
return Util.sortByClass(super.iterator());
}
// BeanContextChildComponentProxy implementation -----------------
public java.awt.Component getComponent()
{
if (c == null)
{
c = new EjbJarViewer();
c.setObject(this);
}
return (java.awt.Component)c;
}
// XmlExternalizable implementation ------------------------------
public Element exportXml(Document doc)
throws Exception
{
Element ejbjar = doc.createElement("ejb-jar");
XMLManager.addOptionalAttribute(ejbjar,"id",id);
XMLManager.addOptionalElement(ejbjar,"description",getDescription());
XMLManager.addOptionalElement(ejbjar,"display-name",getDisplayName());
XMLManager.addOptionalElement(ejbjar,"small-icon",getSmallIcon());
XMLManager.addOptionalElement(ejbjar,"large-icon",getLargeIcon());
ejbjar.appendChild(eb.exportXml(doc));
if (ad.size() > 0)
ejbjar.appendChild(ad.exportXml(doc));
XMLManager.addOptionalElement(ejbjar,"ejb-client-jar",getClientJar());
return ejbjar;
}
public void importXml(Element elt)
throws Exception
{
// id
id = elt.getAttribute("id");
NodeList nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("description"))
{
setDescription(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("display-name"))
{
setDisplayName(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("small-icon"))
{
setSmallIcon(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("large-icon"))
{
setLargeIcon(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("ejb-client-jar"))
{
setClientJar(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("enterprise-beans"))
{
eb.importXml((Element)n);
} else if (name.equals("assembly-descriptor"))
{
ad.importXml((Element)n);
}
}
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
protected void createEnterpriseBeans()
{
eb = new EnterpriseBeans();
add(eb);
}
protected void createAssemblyDescriptor()
{
ad = new AssemblyDescriptor();
add(ad);
}
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}
1.1 ejx/examples/ejb/src/com/dreambean/ejx/ejb/EjbJarViewer.java
Index: EjbJarViewer.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
import java.beans.Customizer;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import com.dreambean.awt.GenericCustomizer;
/**
* <description>
*
* @see <related>
* @author Rickard Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class EjbJarViewer
extends JTabbedPane
implements Customizer
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
// Customizer implementation ------------------------------------
public void setObject(Object obj)
{
EjbJar ejbJar = (EjbJar)obj;
// Init UI
addTab("EJB Jar", new GenericCustomizer(ejbJar));
addTab("Enterprise beans", ejbJar.getEnterpriseBeans().getComponent());
addTab("Assembly descriptor",
ejbJar.getAssemblyDescriptor().getComponent());
}
}
1.1 ejx/examples/ejb/src/com/dreambean/ejx/ejb/EjbReference.java
Index: EjbReference.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
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.ejx.xml.XMLManager;
import com.dreambean.ejx.xml.XmlExternalizable;
import com.dreambean.ejx.Util;
/**
* <description>
*
* @see <related>
* @author Rickard Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class EjbReference
extends BeanContextSupport
implements BeanContextChildComponentProxy, XmlExternalizable,
PropertyChangeListener
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
private String id = "";
String description = "";
String name = "";
String type = "Entity";
String home = "";
String remote = "";
String link = "";
Customizer c;
PropertyChangeSupport ps = new PropertyChangeSupport(this);
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
public EjbReference()
{
addPropertyChangeListener(this);
}
// Public --------------------------------------------------------
public void setDescription(String d) { description = d; }
public String getDescription() { return description; }
public void setName(String n) { String old = name; name = n;
ps.firePropertyChange("Name",old,name);}
public String getName() { return name; }
public void setType(String t) { String old = type; type = t;
ps.firePropertyChange("Type",old,type);}
public String getType() { return type; }
public void setHome(String h) { String old = home; home = h;
ps.firePropertyChange("Home",old,home);}
public String getHome() { return home; }
public void setRemote(String r) { String old = remote; remote = r;
ps.firePropertyChange("Remote",old,remote);}
public String getRemote() { return remote; }
public void setLink(String l) { String old = link; link = l;
ps.firePropertyChange("Link",old,link);}
public String getLink() { return link; }
public void removeEjbReference()
{
getBeanContext().remove(this);
}
// PropertyChange ------------------------------------------------
public void addPropertyChangeListener(PropertyChangeListener listener)
{
ps.addPropertyChangeListener(listener);
}
public void addPropertyChangeListener(String propertyName,
PropertyChangeListener listener)
{
ps.addPropertyChangeListener(propertyName, listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener)
{
ps.removePropertyChangeListener(listener);
}
public void removePropertyChangeListener(String propertyName,
PropertyChangeListener listener)
{
ps.removePropertyChangeListener(propertyName, listener);
}
// BeanContextChildComponentProxy implementation -----------------
public Component getComponent()
{
if (c == null)
{
try
{
c =
(Customizer)Beans.instantiate(Thread.currentThread().getContextClassLoader(),
"com.dreambean.awt.GenericCustomizer");
c.setObject(this);
} catch (Exception e) {}
}
return (Component)c;
}
// XmlExternalizable implementation ------------------------------
public Element exportXml(Document doc)
{
Element ejbref = doc.createElement("ejb-ref");
XMLManager.addOptionalAttribute(ejbref,"id",id);
XMLManager.addOptionalElement(ejbref,"description",getDescription());
XMLManager.addElement(ejbref,"ejb-ref-name",getName());
XMLManager.addElement(ejbref,"ejb-ref-type",getType());
XMLManager.addElement(ejbref,"home",getHome());
XMLManager.addElement(ejbref,"remote",getRemote());
XMLManager.addOptionalElement(ejbref,"ejb-link",getLink());
return ejbref;
}
public void importXml(Element elt)
{
id = elt.getAttribute("id");
NodeList nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("description"))
{
setDescription(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("ejb-ref-name"))
{
setName(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("ejb-ref-type"))
{
setType(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("home"))
{
setHome(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("remote"))
{
setRemote(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("ejb-link"))
{
setLink(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
}
}
}
public String toString()
{
return (name.equals("")) ? "EJB Reference " : name;
}
public void propertyChange(PropertyChangeEvent evt)
{
if (evt.getPropertyName().equals("Link"))
{
// Create link
EnterpriseBeans eb = (EnterpriseBeans)getBeanContext().getBeanContext();
try
{
EnterpriseBean bean =
(EnterpriseBean)eb.getEjb((String)evt.getNewValue());
if (bean instanceof Session)
setType("Session");
else
setType("Entity");
setHome(bean.getHome());
setRemote(bean.getRemote());
setName("ejb/"+evt.getNewValue());
} catch (IllegalArgumentException e)
{
// No such bean
}
} else if (evt.getPropertyName().equals("Name"))
{
// Figure out which bean to link to
String val = (String)evt.getNewValue();
if (val.lastIndexOf("/") != -1)
val = val.substring(val.lastIndexOf("/")+1);
EnterpriseBeans eb = (EnterpriseBeans)getBeanContext().getBeanContext();
try
{
EnterpriseBean bean = (EnterpriseBean)eb.getEjb(val);
// Found bean with this name - set it as link
setLink(val);
} catch (IllegalArgumentException e)
{
// No such bean
}
}
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}
1.1 ejx/examples/ejb/src/com/dreambean/ejx/ejb/EnterpriseBean.java
Index: EnterpriseBean.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
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.ejx.xml.XMLManager;
import com.dreambean.ejx.xml.XmlExternalizable;
import com.dreambean.ejx.Util;
/**
* <description>
*
* @see <related>
* @author Rickard Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public interface EnterpriseBean
extends BeanContextChild
{
// Constants -----------------------------------------------------
// Public --------------------------------------------------------
public void setEjbName(String n);
public String getEjbName();
public void setHome(String h);
public String getHome();
public void setRemote(String r);
public String getRemote();
public void setEjbClass(String e);
public String getEjbClass();
public Iterator getResourceReferences();
public Iterator getEjbReferences();
public Iterator getSecurityRoleReferences();
public Iterator getEnvironmentEntries();
}
1.1 ejx/examples/ejb/src/com/dreambean/ejx/ejb/EnterpriseBeans.java
Index: EnterpriseBeans.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
import java.awt.*;
import java.beans.*;
import java.beans.beancontext.*;
import java.io.*;
import java.util.*;
import java.lang.reflect.*;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import com.dreambean.awt.BeanContextViewer;
import com.dreambean.ejx.xml.XMLManager;
import com.dreambean.ejx.xml.XmlExternalizable;
import com.dreambean.ejx.Util;
/**
* <description>
*
* @see <related>
* @author Rickard Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class EnterpriseBeans
extends BeanContextSupport
implements BeanContextChildComponentProxy, XmlExternalizable
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
private String id = "";
Customizer c;
/** @link aggregation */
/*#Entity lnkEntity;*/
/** @link aggregation */
/*#Session lnkSession;*/
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
// Public --------------------------------------------------------
public void createEntity(String name)
throws IOException, ClassNotFoundException
{
addEntity().setEjbName(name);
}
public void createSession(String name)
throws IOException, ClassNotFoundException
{
addSession().setEjbName(name);
}
public Entity addEntity()
throws IOException, ClassNotFoundException
{
System.out.println("Create entity");
return (Entity)instantiateChild("com.dreambean.ejx.ejb.Entity");
}
public Session addSession()
throws IOException, ClassNotFoundException
{
return (Session)instantiateChild("com.dreambean.ejx.ejb.Session");
}
public EnterpriseBean getEjb(String name)
{
Iterator enum = super.iterator();
while(enum.hasNext())
{
EnterpriseBean ejb = (EnterpriseBean)enum.next();
if (ejb.getEjbName().equals(name))
return ejb;
}
throw new IllegalArgumentException("No such bean");
}
public Iterator iterator()
{
return Util.sortByClass(super.iterator());
}
public Iterator getSessions()
{
return Util.getChildrenByClass(super.iterator(), Session.class);
}
public Iterator getEntities()
{
return Util.getChildrenByClass(super.iterator(), Entity.class);
}
/**
* This is a wizard-style method that tries to find all CMP-fields in
EntityBeans.
*
*/
public void findCMPFields(String idName)
{
Iterator entities = getEntities();
while (entities.hasNext())
{
Entity entity = (Entity)entities.next();
// Check if container-managed
if (entity.getPersistenceType().equals("Bean"))
continue;
// Build comma-separated list of current fields prefixed with "," and
suffixed with ","
Iterator currentFields = entity.getCMPFields();
String list = ",";
while(currentFields.hasNext())
{
list += ((CMPField)currentFields.next()).getFieldName() + ",";
}
ClassLoader cl =
((EjbFileManager)getBeanContext().getBeanContext()).getClassLoader();
try
{
Class clazz = cl.loadClass(entity.getEjbClass());
Field[] fields = clazz.getFields();
for (int i = 0; i < fields.length; i++)
{
String fieldName = fields[i].getName();
// Check so that it doesn't exist yet - we don't want duplicates
if (list.indexOf(","+fieldName+",") == -1)
entity.createCMPField(fieldName);
// Check for id-field
if (fieldName.equals(idName) &&
entity.getPrimaryKeyField().equals(""))
{
entity.setPrimaryKeyField(idName);
entity.setPrimaryKeyClass(fields[i].getType().getName());
}
}
} catch (Throwable e)
{
e.printStackTrace();
}
}
}
public void addEnvironmentEntry(String name, String type, String value)
throws Exception
{
Iterator beans = iterator();
while (beans.hasNext())
{
Object bean = beans.next();
if (bean instanceof Entity)
{
Entity entity = (Entity)bean;
EnvironmentEntry entry = entity.addEnvironmentEntry();
entry.setName(name);
entry.setType(type);
entry.setValue(value);
} else if (bean instanceof Session)
{
Session session = (Session)bean;
EnvironmentEntry entry = session.addEnvironmentEntry();
entry.setName(name);
entry.setType(type);
entry.setValue(value);
}
}
}
public void updateEnvironmentEntry(String name, String value)
throws Exception
{
Iterator beans = iterator();
while (beans.hasNext())
{
EnterpriseBean bean = (EnterpriseBean)beans.next();
Iterator entries = bean.getEnvironmentEntries();
while (entries.hasNext())
{
EnvironmentEntry entry = (EnvironmentEntry)entries.next();
if (entry.getName().equals(name))
{
entry.setValue(value);
break;
}
}
}
}
// BeanContextContainerProxy implementation -----------------
public Component getComponent()
{
if (c == null)
{
c = new BeanContextViewer();
c.setObject(this);
}
return (Component)c;
}
// XmlExternalizable implementation ------------------------------
public Element exportXml(Document doc)
throws Exception
{
Element enterprisebeans = doc.createElement("enterprise-beans");
XMLManager.addOptionalAttribute(enterprisebeans,"id",id);
// Not necessary, but write beans in "type order" anyway
for (Iterator enum = getSessions(); enum.hasNext();)
{
enterprisebeans.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
}
for (Iterator enum = getEntities(); enum.hasNext();)
{
enterprisebeans.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
}
return enterprisebeans;
}
public void importXml(Element elt)
throws Exception
{
id = elt.getAttribute("id");
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"))
{
addEntity().importXml((Element)n);
} else if (name.equals("session"))
{
addSession().importXml((Element)n);
}
}
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}
1.1 ejx/examples/ejb/src/com/dreambean/ejx/ejb/Entity.java
Index: Entity.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
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 Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class Entity
extends BeanContextSupport
implements BeanContextChildComponentProxy, XmlExternalizable,
PropertyChangeListener, EnterpriseBean
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
private String id = "";
String displayName= "";
String description = "";
String smallIcon = "";
String largeIcon = "";
String ejbName = "";
String home = "";
String remote = "";
String ejbClass = "";
String persistenceType = "Bean";
String primaryKeyField = "";
String primaryKeyClass = "";
String reentrant = "False";
Customizer c;
/** @link aggregation
* @clientCardinality 1
* @supplierCardinality **/
/*#CMPField lnkCMPField;*/
/** @link aggregation */
/*#ResourceReference lnkResourceReference;*/
/** @link aggregation */
/*#EjbReference lnkEjbReference;*/
/** @link aggregation */
/*#SecurityRoleReference lnkSecurityRoleReference;*/
/** @link aggregation */
/*#EnvironmentEntry lnkEnvironmentEntry;*/
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
public Entity()
{
addPropertyChangeListener(this);
}
// Public --------------------------------------------------------
public void setDisplayName(String d) { displayName = d; }
public String getDisplayName() { return displayName; }
public void setDescription(String d) { description = d; }
public String getDescription() { return description; }
public String getSmallIcon() { return smallIcon; }
public void setSmallIcon(String si) { smallIcon = si; }
public String getLargeIcon() { return largeIcon; }
public void setLargeIcon(String li) { largeIcon= li; }
public void setEjbName(String n) { String old = ejbName; ejbName = n;
pcSupport.firePropertyChange("EjbName",old,ejbName); }
public String getEjbName() { return ejbName; }
public void setHome(String h) { String old = home; home = h;
pcSupport.firePropertyChange("Home",old,home); }
public String getHome() { return home; }
public void setRemote(String r) { String old = remote; remote = r;
pcSupport.firePropertyChange("Remote",old,remote); }
public String getRemote() { return remote; }
public void setEjbClass(String e) { String old = ejbClass; ejbClass = e;
pcSupport.firePropertyChange("EjbClass",old,ejbClass);}
public String getEjbClass() { return ejbClass; }
public void setPersistenceType(String p) { persistenceType = p; }
public String getPersistenceType() { return persistenceType; }
public void setPrimaryKeyField(String f) { String old = primaryKeyField;
primaryKeyField = f;
pcSupport.firePropertyChange("PrimaryKeyField",old,primaryKeyField);}
public String getPrimaryKeyField() { return primaryKeyField; }
public void setPrimaryKeyClass(String p) { String old = primaryKeyClass;
primaryKeyClass = p;
pcSupport.firePropertyChange("PrimaryKeyClass",old,primaryKeyClass);}
public String getPrimaryKeyClass() { return primaryKeyClass; }
public void setReentrant(String r) { reentrant = r; }
public String getReentrant() { return reentrant; }
public void createEnvironmentEntry(String name)
throws Exception
{
addEnvironmentEntry().setName(name);
}
public EnvironmentEntry addEnvironmentEntry()
throws Exception
{
return
(EnvironmentEntry)instantiateChild("com.dreambean.ejx.ejb.EnvironmentEntry");
}
public void createEjbReference(String name)
throws Exception
{
addEjbReference().setName(name);
}
public EjbReference addEjbReference()
throws Exception
{
return (EjbReference)instantiateChild("com.dreambean.ejx.ejb.EjbReference");
}
public void createResourceReference(String name, String type)
throws Exception
{
ResourceReference ref = addResourceReference();
ref.setName(name);
ref.setType(type);
}
public ResourceReference addResourceReference()
throws Exception
{
return
(ResourceReference)instantiateChild("com.dreambean.ejx.ejb.ResourceReference");
}
public void createSecurityRoleReference(String name)
throws Exception
{
addSecurityRoleReference().setName(name);
}
public SecurityRoleReference addSecurityRoleReference()
throws Exception
{
return
(SecurityRoleReference)instantiateChild("com.dreambean.ejx.ejb.SecurityRoleReference");
}
public void createCMPField(String name)
throws Exception
{
addCMPField().setFieldName(name);
}
public CMPField addCMPField()
throws Exception
{
return (CMPField)instantiateChild("com.dreambean.ejx.ejb.CMPField");
}
public Iterator iterator()
{
return Util.sortByClass(super.iterator());
}
public Iterator getCMPFields()
{
return Util.getChildrenByClass(super.iterator(),CMPField.class);
}
public Iterator getResourceReferences()
{
return Util.getChildrenByClass(super.iterator(),ResourceReference.class);
}
public Iterator getEjbReferences()
{
return Util.getChildrenByClass(super.iterator(),EjbReference.class);
}
public Iterator getSecurityRoleReferences()
{
return Util.getChildrenByClass(super.iterator(),SecurityRoleReference.class);
}
public Iterator getEnvironmentEntries()
{
return Util.getChildrenByClass(super.iterator(),EnvironmentEntry.class);
}
public void removeEntity()
{
getBeanContext().remove(this);
}
// PropertyChange ------------------------------------------------
public void addPropertyChangeListener(PropertyChangeListener listener)
{
pcSupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener)
{
pcSupport.removePropertyChangeListener(listener);
}
// BeanContextChildComponentProxy implementation -----------------
public java.awt.Component getComponent()
{
if (c == null)
{
c = new GenericCustomizer(false,this);
}
return (java.awt.Component)c;
}
// XmlExternalizable implementation ------------------------------
public Element exportXml(Document doc)
throws Exception
{
Element entity = doc.createElement("entity");
XMLManager.addOptionalAttribute(entity,"id",id);
XMLManager.addOptionalElement(entity,"description",getDescription());
XMLManager.addOptionalElement(entity,"display-name",getDisplayName());
XMLManager.addOptionalElement(entity,"small-icon",getSmallIcon());
XMLManager.addOptionalElement(entity,"large-icon",getLargeIcon());
XMLManager.addElement(entity,"ejb-name",getEjbName());
XMLManager.addElement(entity,"home",getHome());
XMLManager.addElement(entity,"remote",getRemote());
XMLManager.addElement(entity,"ejb-class",getEjbClass());
XMLManager.addElement(entity,"persistence-type",getPersistenceType());
XMLManager.addElement(entity,"prim-key-class",getPrimaryKeyClass());
XMLManager.addElement(entity,"reentrant",getReentrant());
for (Iterator enum = getCMPFields(); enum.hasNext();)
{
entity.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
}
XMLManager.addOptionalElement(entity,"primkey-field",getPrimaryKeyField());
for (Iterator enum = getEnvironmentEntries(); enum.hasNext();)
{
entity.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
}
for (Iterator enum = getEjbReferences(); enum.hasNext();)
{
entity.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
}
for (Iterator enum = getSecurityRoleReferences(); enum.hasNext();)
{
entity.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
}
for (Iterator enum = getResourceReferences(); enum.hasNext();)
{
entity.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
}
return entity;
}
public void importXml(Element elt)
throws Exception
{
removePropertyChangeListener(this);
id = elt.getAttribute("id");
NodeList nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("display-name"))
{
setDisplayName(n.hasChildNodes() ? n.getFirstChild().getNodeValue() :
"");
} else if (name.equals("description"))
{
setDescription(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("small-icon"))
{
setSmallIcon(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("large-icon"))
{
setLargeIcon(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("ejb-name"))
{
setEjbName(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("home"))
{
setHome(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("remote"))
{
setRemote(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("ejb-class"))
{
setEjbClass(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("persistence-type"))
{
setPersistenceType(n.hasChildNodes() ? n.getFirstChild().getNodeValue()
: "");
} else if (name.equals("prim-key-class"))
{
setPrimaryKeyClass(n.hasChildNodes() ? n.getFirstChild().getNodeValue()
: "");
} else if (name.equals("primkey-field"))
{
setPrimaryKeyField(n.hasChildNodes() ? n.getFirstChild().getNodeValue()
: "");
} else if (name.equals("reentrant"))
{
setReentrant(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("env-entry"))
{
addEnvironmentEntry().importXml((Element)n);
} else if (name.equals("cmp-field"))
{
addCMPField().importXml((Element)n);
} else if (name.equals("ejb-ref"))
{
addEjbReference().importXml((Element)n);
} else if (name.equals("resource-ref"))
{
addResourceReference().importXml((Element)n);
} else if (name.equals("security-role-ref"))
{
addSecurityRoleReference().importXml((Element)n);
}
}
addPropertyChangeListener(this);
}
public String toString()
{
return (displayName.equals("")) ? (ejbName.equals("") ? "Entity " :
ejbName) : displayName;
}
public void propertyChange(PropertyChangeEvent evt)
{
// Try to be smart!
if (evt.getPropertyName().equals("Remote"))
{
if (getHome().equals(""))
{
// Set home
try
{
ClassLoader cl =
((EjbFileManager)getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
Class clazz = cl.loadClass(getRemote()+"Home");
if (javax.ejb.EJBHome.class.isAssignableFrom(clazz))
setHome(getRemote()+"Home");
} catch (Throwable e)
{
// Didn't work..
}
}
if (getEjbClass().equals(""))
{
// Set bean, EJB spec style
try
{
ClassLoader cl =
((EjbFileManager)getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
Class clazz = cl.loadClass(getRemote()+"Bean");
if (javax.ejb.EntityBean.class.isAssignableFrom(clazz))
{
setEjbClass(getRemote()+"Bean");
return;
}
} catch (Throwable e)
{
// Didn't work..
}
// Set bean, J2EE RI style
try
{
ClassLoader cl =
((EjbFileManager)getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
Class clazz = cl.loadClass(getRemote()+"EJB");
if (javax.ejb.EntityBean.class.isAssignableFrom(clazz))
{
setEjbClass(getRemote()+"EJB");
return;
}
} catch (Throwable e)
{
// Didn't work..
}
// Set bean, Rickard style :-)
try
{
// Example:
// Remote = com.mycompany.interfaces.Foo
// Bean = com.mycompany.beans.FooBean
ClassLoader cl =
((EjbFileManager)getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
String remoteName =
getRemote().substring(getRemote().lastIndexOf(".")+1);
String packageName = getRemote().substring(0,
getRemote().lastIndexOf("."));
packageName = getRemote().substring(0, packageName.lastIndexOf("."))
+ ".beans.";
String beanName = packageName+remoteName+"Bean";
Class clazz = cl.loadClass(beanName);
if (javax.ejb.EntityBean.class.isAssignableFrom(clazz))
{
setEjbClass(beanName);
return;
}
} catch (Throwable e)
{
// Didn't work..
}
}
}
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}
1.1 ejx/examples/ejb/src/com/dreambean/ejx/ejb/EnvironmentEntry.java
Index: EnvironmentEntry.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
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 Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class EnvironmentEntry
extends BeanContextSupport
implements BeanContextChildComponentProxy, XmlExternalizable,
VetoableChangeListener
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
private String id = "";
String description = "";
String name = "";
String type = "java.lang.String";
String value = "";
Customizer c;
PropertyChangeSupport ps = new PropertyChangeSupport(this);
VetoableChangeSupport vs = new VetoableChangeSupport(this);
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
public EnvironmentEntry()
{
addVetoableChangeListener(this);
}
// Public --------------------------------------------------------
public void setDescription(String d) { description = d; }
public String getDescription() { return description; }
public void setName(String n) { name = n; }
public String getName() { return name; }
public void setType(String t) { type = t; }
public String getType() { return type; }
public void setValue(String v) throws PropertyVetoException {
vs.fireVetoableChange("Value",value,v); String old = value; value = v;
ps.firePropertyChange("Value",old,value); }
public String getValue() { return value; }
public void removeEntry()
{
getBeanContext().remove(this);
}
// PropertyChange ------------------------------------------------
public void addPropertyChangeListener(PropertyChangeListener listener)
{
ps.addPropertyChangeListener(listener);
}
public void addPropertyChangeListener(String propertyName,
PropertyChangeListener listener)
{
ps.addPropertyChangeListener(propertyName, listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener)
{
ps.removePropertyChangeListener(listener);
}
public void removePropertyChangeListener(String propertyName,
PropertyChangeListener listener)
{
ps.removePropertyChangeListener(propertyName, listener);
}
// VetoableChange ------------------------------------------------
public void addVetoableChangeListener(VetoableChangeListener listener)
{
vs.addVetoableChangeListener(listener);
}
public void addVetoableChangeListener(String propertyName,
VetoableChangeListener listener)
{
vs.addVetoableChangeListener(propertyName, listener);
}
public void removeVetoableChangeListener(VetoableChangeListener listener)
{
vs.removeVetoableChangeListener(listener);
}
public void removeVetoableChangeListener(String propertyName,
VetoableChangeListener listener)
{
vs.removeVetoableChangeListener(propertyName, listener);
}
// BeanContextChildComponentProxy implementation -----------------
public Component getComponent()
{
if (c == null)
{
try
{
c =
(Customizer)Beans.instantiate(Thread.currentThread().getContextClassLoader(),
"com.dreambean.awt.GenericCustomizer");
c.setObject(this);
} catch (Exception e) {}
}
return (Component)c;
}
// XmlExternalizable implementation ------------------------------
public Element exportXml(Document doc)
{
Element enventry= doc.createElement("env-entry");
XMLManager.addOptionalAttribute(enventry,"id",id);
XMLManager.addOptionalElement(enventry,"description",getDescription());
XMLManager.addElement(enventry,"env-entry-name",getName());
XMLManager.addElement(enventry,"env-entry-type",getType());
XMLManager.addOptionalElement(enventry,"env-entry-value",getValue());
return enventry;
}
public void importXml(Element elt)
throws Exception
{
id = elt.getAttribute("id");
NodeList nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("env-entry-name"))
{
setName(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("description"))
{
setDescription(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("env-entry-type"))
{
setType(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("env-entry-value"))
{
setValue(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
}
}
}
public String toString()
{
return (name.equals("")) ? "Environment entry" : name;
}
public void vetoableChange(PropertyChangeEvent evt)
throws PropertyVetoException
{
// Check format
if (evt.getPropertyName().equals("Value"))
{
if (type.equals("java.lang.Boolean"))
{
if (!new
Boolean((String)evt.getNewValue()).toString().equals(evt.getNewValue()))
throw new PropertyVetoException("Invalid
format",evt);
} else if (type.equals("java.lang.Integer"))
{
try
{
new Integer((String)evt.getNewValue());
} catch (NumberFormatException e)
{
throw new PropertyVetoException("Invalid
format",evt);
}
}
}
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}
1.1 ejx/examples/ejb/src/com/dreambean/ejx/ejb/Method.java
Index: Method.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
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.ejx.xml.XMLManager;
import com.dreambean.ejx.xml.XmlExternalizable;
import com.dreambean.ejx.Util;
/**
* <description>
*
* @see <related>
* @author Rickard Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class Method
extends BeanContextSupport
implements BeanContextChildComponentProxy, XmlExternalizable
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
private String id = "";
String description = "";
String ejbName = "";
String methodInterface = "";
String methodName = "";
String[] params = null;
boolean selected = false;
Customizer c;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
public Method(String n, java.lang.reflect.Method m)
{
setEjbName(n);
setMethodName(m.getName());
if (javax.ejb.EJBObject.class.isAssignableFrom(m.getDeclaringClass()))
setMethodInterface("Remote");
else
setMethodInterface("Home");
Class[] paramTypes = m.getParameterTypes();
params = new String[paramTypes.length];
for (int i = 0; i < params.length; i++)
params[i] = paramTypes[i].getName();
}
public Method(String n, String intf)
{
setEjbName(n);
setMethodName("*");
setMethodInterface(intf);
}
public Method(String n)
{
setEjbName(n);
setMethodInterface("");
setMethodName("*");
}
// Public --------------------------------------------------------
public void setDescription(String d) { description = d; }
public String getDescription() { return description; }
public void setEjbName(String n) { ejbName = n; }
public String getEjbName() { return ejbName; }
public void setMethodInterface(String intf) { methodInterface = intf; }
public String getMethodInterface() { return methodInterface; }
public void setParams (String[] p) { params = p; }
public String[] getParams() { return params; }
public void setMethodName(String n) { methodName = n; }
public String getMethodName() { return methodName; }
public void setSelected(boolean s)
{
selected = s;
if (selected)
{
Iterator c = iterator();
while(c.hasNext())
{
Method m = (Method)c.next();
m.setSelected(true);
}
} else
{
if (getBeanContext() != null)
((Method)getBeanContext()).setSelected(false);
}
}
public boolean isSelected() { return selected; }
// BeanContextChildComponentProxy implementation -----------------
public Component getComponent()
{
if (c == null)
{
try
{
c =
(Customizer)Beans.instantiate(Thread.currentThread().getContextClassLoader(),
"com.dreambean.awt.GenericCustomizer");
c.setObject(this);
} catch (Exception e) {}
}
return (Component)c;
}
// XmlExternalizable implementation ------------------------------
public Element exportXml(Document doc)
{
Element method = doc.createElement("method");
XMLManager.addOptionalAttribute(method,"id",id);
XMLManager.addOptionalElement(method,"description",getDescription());
XMLManager.addElement(method,"ejb-name",getEjbName());
XMLManager.addOptionalElement(method,"method-intf",getMethodInterface());
XMLManager.addElement(method,"method-name",getMethodName());
if (params != null)
{
Element mP = doc.createElement("method-params");
for (int i = 0; i < params.length; i++)
XMLManager.addElement(mP,"method-param",params[i]);
method.appendChild(mP);
}
return method;
}
public void importXml(Element elt)
{
id = elt.getAttribute("id");
Vector p = new Vector();
String mn = "";
String mi = "";
NodeList nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("method-name"))
{
mn = XMLManager.getString(n);
} else if (name.equals("method-intf"))
{
mi = XMLManager.getString(n);
} else if (name.equals("method-params"))
{
NodeList pl = n.getChildNodes();
for (int j = 0; j < pl.getLength(); j++)
{
p.addElement(XMLManager.getString(pl.item(j)));
}
}
}
// Compare
if (methodInterface.equals("")) // Bean
{
if (mi.equals(""))
{
if (mn.equals("*")) // Select entire bean
{
setSelected(true);
return;
} else
{
// Select methods in Remote or Home
}
} else
{
// Select methods in Remote and Home
}
} else
{ // Remote/Home or leaf method
if (methodName.equals("*")) // Remote/Home
{
if (mi.equals("")) // Select in both Remote and Home
{
if (mn.equals("*"))
{
setSelected(true);
return;
} else
{
// Select method in this interface
}
} else if (mi.equals(methodInterface)) // Right XML
{
if (mn.equals("*"))
{
setSelected(true);
return;
} else
{
// Select method in this interface
}
} else
{
return; // Wrong interface, do nothing
}
} else // Leaf method
{
if (mn.equals(methodName)) // Right method
{
if (p.size() == 0)
{
// No parameters given, ok
setSelected(true);
return;
} else if (p.size() == params.length)
{
for (int i = 0; i < params.length; i++)
{
if (!p.elementAt(i).equals(params[i]))
return; // Wrong parameter
}
setSelected(true); // Same method!
}
}
return; // Either way, we're done with this element
}
}
// Propagate to children (when in bean or interface)
Iterator enum = iterator();
while(enum.hasNext())
{
Method m = (Method)enum.next();
m.importXml(elt);
}
}
public String toString()
{
if (methodInterface.equals(""))
return ejbName;
else if (methodName.equals("*"))
return methodInterface;
else
return methodName;
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}
1.1 ejx/examples/ejb/src/com/dreambean/ejx/ejb/MethodPermission.java
Index: MethodPermission.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
import java.awt.*;
import java.beans.*;
import java.beans.beancontext.*;
import java.io.*;
import java.util.*;
import org.w3c.dom.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.table.*;
import com.dreambean.awt.*;
import com.dreambean.ejx.xml.*;
/**
* <description>
*
* @see <related>
* @author Rickard Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class MethodPermission
extends BeanContextSupport
implements BeanContextChildComponentProxy, XmlExternalizable
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
private String id = "";
String description = "";
TreeModel method;
HashMap roleMap;
HashMap ejbs;
DefaultMutableTreeNode root;
BeanContext rootCtx;
Customizer c;
/** @link aggregation */
/*#PermissionRole lnkPermissionRole;*/
/** @link aggregation */
/*#Method lnkMethod;*/
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
// Public --------------------------------------------------------
public void setDescription(String d) { description = d; }
public String getDescription() { return description; }
public void setMethods(TreeModel m) { method = m; }
public TreeModel getMethods() { return method; }
// public void setRoles(Collection m) { roles = (DefaultTableModel)m; }
public Collection getRoles() { return roleMap.values(); }
public void removeMethodPermission()
{
getBeanContext().remove(this);
}
public String toString()
{
return (description.equals("")) ? "Method permission " : description;
}
// PropertyChange ------------------------------------------------
public void addPropertyChangeListener(PropertyChangeListener listener)
{
pcSupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener)
{
pcSupport.removePropertyChangeListener(listener);
}
// BeanContextChildComponentProxy implementation -----------------
public Component getComponent()
{
if (c == null)
{
try
{
c =
(Customizer)Beans.instantiate(Thread.currentThread().getContextClassLoader(),
"com.dreambean.awt.GenericCustomizer");
c.setObject(this);
} catch (Exception e) {}
}
return (Component)c;
}
// XmlExternalizable implementation ------------------------------
public Element exportXml(Document doc)
{
Element methodpermission = doc.createElement("method-permission");
XMLManager.addOptionalAttribute(methodpermission,"id",id);
XMLManager.addOptionalElement(methodpermission,"description",getDescription());
// Rolenames
Iterator enum = roleMap.values().iterator();
while (enum.hasNext())
{
JCheckBox checkBox = (JCheckBox)enum.next();
if (checkBox.isSelected())
XMLManager.addElement(methodpermission,"role-name",checkBox.getText());
}
// Methods
Iterator beanEnum = rootCtx.iterator();
while(beanEnum.hasNext())
{
Method bean = (Method)beanEnum.next();
if (bean.isSelected())
{
methodpermission.appendChild(bean.exportXml(doc));
} else
{
Iterator intfEnum = bean.iterator();
while(intfEnum.hasNext())
{
Method intf = (Method)intfEnum.next();
if (intf.isSelected())
{
methodpermission.appendChild(intf.exportXml(doc));
} else
{
Iterator methodEnum = intf.iterator();
while(methodEnum.hasNext())
{
Method method =
(Method)methodEnum.next();
if (method.isSelected())
{
methodpermission.appendChild(method.exportXml(doc));
} else
{
}
}
}
}
}
}
return methodpermission;
}
public void importXml(Element elt)
{
id = elt.getAttribute("id");
// Set selected methods from XML
NodeList nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("method"))
{
// Get EJB name
Element en =
(Element)((Element)n).getElementsByTagName("ejb-name").item(0);
String ejbName = XMLManager.getString(en);
// Find Method
Method m = (Method)ejbs.get(ejbName);
if (m != null)
{
try
{
m.importXml((Element)n);
} catch (Exception ex)
{
ex.printStackTrace();
}
}
}
}
// Set selected roles from XML
nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("role-name"))
{
// Get role name
String rn = XMLManager.getString(n);
// Find role
JCheckBox r = (JCheckBox)roleMap.get(rn);
if (r != null)
{
r.setSelected(true);
}
}
}
// Listen for additions/removal of roles
getBeanContext().addBeanContextMembershipListener(new RoleSync());
// Load rest of data
nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("description"))
{
setDescription(n.hasChildNodes() ? XMLManager.getString(n) : "");
}
}
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
protected void initializeBeanContextResources()
{
// Get methods
// Build tree from bean list
ejbs = new HashMap();
root = new DefaultMutableTreeNode(rootCtx = new Method("Root"));
EjbJar ejbJar = (EjbJar)getBeanContext().getBeanContext();
Iterator beans = ((EnterpriseBeans)ejbJar.getEnterpriseBeans()).iterator();
while (beans.hasNext())
{
Object obj = beans.next();
if (obj instanceof Entity)
{
addEntity((Entity)obj, ejbs);
} else if (obj instanceof Session)
{
addSession((Session)obj, ejbs);
}
}
method = new DefaultTreeModel(root);
// Get list of roles
roleMap = new HashMap();
BeanContext ad = getBeanContext();
Iterator enum = ((AssemblyDescriptor)ad).getSecurityRoles();
while (enum.hasNext())
{
SecurityRole role = (SecurityRole)enum.next();
roleMap.put(role.getName(),new JCheckBox(role.getName()));
}
getBeanContext().addBeanContextMembershipListener(new RoleSync());
}
// Private -------------------------------------------------------
private void addEntity(Entity ent, HashMap ejbs)
{
DefaultMutableTreeNode node;
DefaultMutableTreeNode remote;
DefaultMutableTreeNode home;
Method bean = new Method(ent.getEjbName());
node = new DefaultMutableTreeNode(bean);
Method beanHome = new Method(ent.getEjbName(),"Home");
home = new DefaultMutableTreeNode(beanHome);
bean.add(beanHome);
try
{
ClassLoader cl =
((EjbFileManager)getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
Class clazz = cl.loadClass(ent.getHome());
java.lang.reflect.Method[] methods = clazz.getMethods();
for (int i = 0; i < methods.length; i++)
{
Method beanMethod = new
Method(ent.getEjbName(),methods[i]);
home.add(new DefaultMutableTreeNode(beanMethod));
beanHome.add(beanMethod);
}
} catch (Exception e)
{
// System.err.println(e);
}
node.add(home);
Method beanRemote = new Method(ent.getEjbName(),"Remote");
remote = new DefaultMutableTreeNode(beanRemote);
bean.add(beanRemote);
try
{
ClassLoader cl =
((EjbFileManager)getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
Class clazz = cl.loadClass(ent.getRemote());
java.lang.reflect.Method[] methods = clazz.getMethods();
for (int i = 0; i < methods.length; i++)
{
Method beanMethod = new
Method(ent.getEjbName(),methods[i]);
remote.add(new DefaultMutableTreeNode(beanMethod));
beanRemote.add(beanMethod);
}
} catch (Exception e)
{
// System.err.println(e);
}
node.add(remote);
ejbs.put(ent.getEjbName(),bean);
rootCtx.add(bean);
root.add(node);
}
private void addSession(Session sess, HashMap ejbs)
{
DefaultMutableTreeNode node;
DefaultMutableTreeNode remote;
DefaultMutableTreeNode home;
Method bean = new Method(sess.getEjbName());
node = new DefaultMutableTreeNode(bean);
Method beanHome = new Method(sess.getEjbName(),"Home");
home = new DefaultMutableTreeNode(beanHome);
bean.add(beanHome);
try
{
ClassLoader cl =
((EjbFileManager)getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
Class clazz = cl.loadClass(sess.getHome());
java.lang.reflect.Method[] methods = clazz.getMethods();
for (int i = 0; i < methods.length; i++)
{
Method beanMethod = new
Method(sess.getEjbName(),methods[i]);
home.add(new DefaultMutableTreeNode(beanMethod));
beanHome.add(beanMethod);
}
} catch (Exception e)
{
// System.err.println(e);
}
node.add(home);
Method beanRemote = new Method(sess.getEjbName(),"Remote");
remote = new DefaultMutableTreeNode(beanRemote);
bean.add(beanRemote);
try
{
ClassLoader cl =
((EjbFileManager)getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
Class clazz = cl.loadClass(sess.getRemote());
java.lang.reflect.Method[] methods = clazz.getMethods();
for (int i = 0; i < methods.length; i++)
{
Method beanMethod = new
Method(sess.getEjbName(),methods[i]);
remote.add(new DefaultMutableTreeNode(beanMethod));
beanRemote.add(beanMethod);
}
} catch (Exception e)
{
// System.err.println(e);
}
node.add(remote);
ejbs.put(sess.getEjbName(),bean);
rootCtx.add(bean);
root.add(node);
}
// Inner classes -------------------------------------------------
class RoleSync
implements BeanContextMembershipListener
{
// BeanContextMembershipListener implementation ---------------
public void childrenAdded(BeanContextMembershipEvent bcme)
{
Object[] c = bcme.toArray();
for (int i = 0; i < c.length; i++)
{
Object obj = c[i];
if (obj instanceof SecurityRole)
{
SecurityRole role = (SecurityRole)obj;
Object oldValue = roleMap.values();
roleMap.put(role.getName(), new
JCheckBox(role.getName()));
firePropertyChange("Roles", oldValue,
getRoles());
}
}
}
public void childrenRemoved(BeanContextMembershipEvent bcme)
{
/* Object[] c = bcme.toArray();
for (int i = 0; i < c.length; i++)
{
Enumeration children = node.children();
while (children.hasMoreElements())
{
DefaultMutableTreeNode n =
(DefaultMutableTreeNode)children.nextElement();
if (((ContextNode)n.getUserObject()).getUserObject() == c[i])
{
node.remove(n);
break;
}
}
}
((DefaultTreeModel)getModel()).reload(node);
*/
}
}
}
1.1
ejx/examples/ejb/src/com/dreambean/ejx/ejb/ResourceReference.java
Index: ResourceReference.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
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 Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class ResourceReference
extends BeanContextSupport
implements BeanContextChildComponentProxy, XmlExternalizable
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
private String id = "";
String description = "";
String name = "";
String type = "";
String auth = "Container";
Customizer c;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
// Public --------------------------------------------------------
public void setDescription(String d) { description = d; }
public String getDescription() { return description; }
public void setName(String n) { name = n; }
public String getName() { return name; }
public void setType(String t) { type = t; }
public String getType() { return type; }
public void setAuthentication(String a) { auth = a; }
public String getAuthentication() { return auth; }
public void removeResourceReference()
{
getBeanContext().remove(this);
}
// BeanContextChildComponentProxy implementation -----------------
public Component getComponent()
{
if (c == null)
{
try
{
c =
(Customizer)Beans.instantiate(Thread.currentThread().getContextClassLoader(),
"com.dreambean.awt.GenericCustomizer");
c.setObject(this);
} catch (Exception e) {}
}
return (Component)c;
}
// XmlExternalizable implementation ------------------------------
public Element exportXml(Document doc)
{
Element resref = doc.createElement("resource-ref");
XMLManager.addOptionalAttribute(resref,"id",id);
XMLManager.addOptionalElement(resref,"description",getDescription());
XMLManager.addOptionalElement(resref,"res-ref-name",getName());
XMLManager.addOptionalElement(resref,"res-type",getType());
XMLManager.addOptionalElement(resref,"res-auth",getAuthentication());
return resref;
}
public void importXml(Element elt)
{
id = elt.getAttribute("id");
NodeList nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("description"))
{
setDescription(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("res-ref-name"))
{
setName(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("res-type"))
{
setType(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("res-auth"))
{
setAuthentication(n.hasChildNodes() ? n.getFirstChild().getNodeValue() :
"");
}
}
}
public String toString()
{
return (name.equals("")) ? "Resource reference" : name;
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}
1.1 ejx/examples/ejb/src/com/dreambean/ejx/ejb/SecurityRole.java
Index: SecurityRole.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
import java.awt.*;
import java.beans.*;
import java.beans.beancontext.*;
import java.io.*;
import java.util.*;
import org.w3c.dom.*;
import com.dreambean.ejx.xml.*;
/**
* <description>
*
* @see <related>
* @author Rickard Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class SecurityRole
extends BeanContextSupport
implements BeanContextChildComponentProxy, XmlExternalizable
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
private String id = "";
String description = "";
String roleName = "";
Customizer c;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
// Public --------------------------------------------------------
public void setDescription(String d) { description = d; }
public String getDescription() { return description; }
public void setName(String n) { roleName = n; }
public String getName() { return roleName; }
public void removeSecurityRole()
{
getBeanContext().remove(this);
}
// BeanContextChildComponentProxy implementation -----------------
public Component getComponent()
{
if (c == null)
{
try
{
c =
(Customizer)Beans.instantiate(Thread.currentThread().getContextClassLoader(),
"com.dreambean.awt.GenericCustomizer");
c.setObject(this);
} catch (Exception e) {}
}
return (Component)c;
}
// XmlExternalizable implementation ------------------------------
public Element exportXml(Document doc)
{
Element securityrole = doc.createElement("security-role");
XMLManager.addOptionalAttribute(securityrole,"id",id);
XMLManager.addOptionalElement(securityrole,"description",getDescription());
XMLManager.addElement(securityrole,"role-name",getName());
return securityrole;
}
public void importXml(Element elt)
{
id = elt.getAttribute("id");
NodeList nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("role-name"))
{
setName(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("description"))
{
setDescription(n.hasChildNodes() ? XMLManager.getString(n) : "");
}
}
}
public String toString()
{
return (roleName.equals("")) ? "Security role " : roleName;
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}
1.1
ejx/examples/ejb/src/com/dreambean/ejx/ejb/SecurityRoleReference.java
Index: SecurityRoleReference.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
import java.awt.*;
import java.beans.*;
import java.beans.beancontext.*;
import java.io.*;
import java.util.*;
import org.w3c.dom.*;
import com.dreambean.ejx.xml.*;
/**
* <description>
*
* @see <related>
* @author Rickard Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class SecurityRoleReference
extends BeanContextSupport
implements BeanContextChildComponentProxy, XmlExternalizable
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
private String id = "";
String description = "";
String name = "";
String link = "";
Customizer c;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
// Public --------------------------------------------------------
public void setDescription(String d) { description = d; }
public String getDescription() { return description; }
public void setName(String n) { name = n; }
public String getName() { return name; }
public void setLink(String l) { link = l; }
public String getLink() { return link; }
public void removeSecurityRoleReference()
{
getBeanContext().remove(this);
}
// BeanContextChildComponentProxy implementation -----------------
public Component getComponent()
{
if (c == null)
{
try
{
c =
(Customizer)Beans.instantiate(Thread.currentThread().getContextClassLoader(),
"com.dreambean.awt.GenericCustomizer");
c.setObject(this);
} catch (Exception e) {}
}
return (Component)c;
}
// XmlExternalizable implementation ------------------------------
public Element exportXml(Document doc)
{
Element secroleref = doc.createElement("security-role-ref");
XMLManager.addOptionalAttribute(secroleref,"id",id);
XMLManager.addOptionalElement(secroleref,"description",getDescription());
XMLManager.addElement(secroleref,"role-name",getName());
XMLManager.addOptionalElement(secroleref,"role-link",getLink());
return secroleref;
}
public void importXml(Element elt)
{
id = elt.getAttribute("id");
NodeList nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("description"))
{
setDescription(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("role-name"))
{
setName(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("role-link"))
{
setLink(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
}
}
}
public String toString()
{
return (name.equals("")) ? "Security role reference" : name;
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}
1.1 ejx/examples/ejb/src/com/dreambean/ejx/ejb/Session.java
Index: Session.java
===================================================================
/*
* Copyright 1999 by dreamBean Software,
* All rights reserved.
*/
package com.dreambean.ejx.ejb;
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.*;
import com.dreambean.ejx.xml.*;
/**
* <description>
*
* @see <related>
* @author Rickard Oberg ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public class Session
extends BeanContextSupport
implements BeanContextChildComponentProxy, XmlExternalizable, EnterpriseBean
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
protected String id = "";
protected String displayName = "";
protected String description = "";
protected String smallIcon = "";
protected String largeIcon = "";
protected String ejbName = "";
protected String home = "";
protected String remote = "";
protected String ejbClass = "";
protected String sessionType = "Stateless";
protected String transactionType = "Bean";
protected Customizer c;
protected PropertyChangeSupport ps = new PropertyChangeSupport(this);
/** @link aggregation */
/*#ResourceReference lnkResourceReference;*/
/** @link aggregation */
/*#EjbReference lnkEjbReference;*/
/** @link aggregation */
/*#EnvironmentEntry lnkEnvironmentEntry;*/
/** @link aggregation */
/*#SecurityRoleReference lnkSecurityRoleReference;*/
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
public Session()
{
addPropertyChangeListener(this);
}
// Public --------------------------------------------------------
public void setDisplayName(String d) { displayName = d; }
public String getDisplayName() { return displayName; }
public void setDescription(String d) { description = d; }
public String getDescription() { return description; }
public String getSmallIcon() { return smallIcon; }
public void setSmallIcon(String si) { smallIcon = si; }
public String getLargeIcon() { return largeIcon; }
public void setLargeIcon(String li) { largeIcon= li; }
public void setEjbName(String n) { String old = ejbName; ejbName = n;
ps.firePropertyChange("EjbName",old,ejbName); }
public String getEjbName() { return ejbName; }
public void setHome(String h) { String old = home; home = h;
ps.firePropertyChange("Home",old,home); }
public String getHome() { return home; }
public void setRemote(String r) { String old = remote; remote = r;
ps.firePropertyChange("Remote",old,remote); }
public String getRemote() { return remote; }
public void setEjbClass(String e) { String old = ejbClass; ejbClass = e;
ps.firePropertyChange("EjbClass",old,ejbClass);}
public String getEjbClass() { return ejbClass; }
public void setSessionType(String t) { String old = sessionType ; sessionType =
t; ps.firePropertyChange("SessionType",old,sessionType); }
public String getSessionType() { return sessionType; }
public void setTransactionType(String t) { transactionType = t; }
public String getTransactionType() { return transactionType; }
public void createEnvironmentEntry(String name)
throws Exception
{
addEnvironmentEntry().setName(name);
}
public EnvironmentEntry addEnvironmentEntry()
throws Exception
{
return
(EnvironmentEntry)instantiateChild("com.dreambean.ejx.ejb.EnvironmentEntry");
}
public void createEjbReference(String name)
throws Exception
{
addEjbReference().setName(name);
}
public EjbReference addEjbReference()
throws Exception
{
return (EjbReference)instantiateChild("com.dreambean.ejx.ejb.EjbReference");
}
public void createResourceReference(String name, String type)
throws Exception
{
ResourceReference ref = addResourceReference();
ref.setName(name);
ref.setType(type);
}
public ResourceReference addResourceReference()
throws Exception
{
return
(ResourceReference)instantiateChild("com.dreambean.ejx.ejb.ResourceReference");
}
public void createSecurityRoleReference(String name)
throws Exception
{
addSecurityRoleReference().setName(name);
}
public SecurityRoleReference addSecurityRoleReference()
throws Exception
{
return
(SecurityRoleReference)instantiateChild("com.dreambean.ejx.ejb.SecurityRoleReference");
}
public void createCMPField(String name)
throws Exception
{
addCMPField().setFieldName(name);
}
public CMPField addCMPField()
throws Exception
{
return (CMPField)instantiateChild("com.dreambean.ejx.ejb.CMPField");
}
public Iterator iterator()
{
return Util.sortByClass(super.iterator());
}
public Iterator getResourceReferences()
{
return Util.getChildrenByClass(super.iterator(),ResourceReference.class);
}
public Iterator getEjbReferences()
{
return Util.getChildrenByClass(super.iterator(),EjbReference.class);
}
public Iterator getSecurityRoleReferences()
{
return Util.getChildrenByClass(super.iterator(),SecurityRoleReference.class);
}
public Iterator getEnvironmentEntries()
{
return Util.getChildrenByClass(super.iterator(),EnvironmentEntry.class);
}
public void removeSession()
{
getBeanContext().remove(this);
}
// PropertyChange ------------------------------------------------
public void addPropertyChangeListener(PropertyChangeListener listener)
{
ps.addPropertyChangeListener(listener);
}
public void addPropertyChangeListener(String propertyName, PropertyChangeListener
listener)
{
ps.addPropertyChangeListener(propertyName, listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener)
{
ps.removePropertyChangeListener(listener);
}
public void removePropertyChangeListener(String propertyName,
PropertyChangeListener listener)
{
ps.removePropertyChangeListener(propertyName, listener);
}
// BeanContextChildComponentProxy implementation -----------------
public java.awt.Component getComponent()
{
if (c == null)
{
c = new GenericCustomizer(false,this);
}
return (java.awt.Component)c;
}
// XmlExternalizable implementation ------------------------------
public Element exportXml(Document doc)
throws Exception
{
Element session = doc.createElement("session");
XMLManager.addOptionalAttribute(session,"id",id);
XMLManager.addOptionalElement(session,"description",getDescription());
XMLManager.addOptionalElement(session,"display-name",getDisplayName());
XMLManager.addOptionalElement(session,"small-icon",getSmallIcon());
XMLManager.addOptionalElement(session,"large-icon",getLargeIcon());
XMLManager.addElement(session,"ejb-name",getEjbName());
XMLManager.addElement(session,"home",getHome());
XMLManager.addElement(session,"remote",getRemote());
XMLManager.addElement(session,"ejb-class",getEjbClass());
XMLManager.addElement(session,"session-type",getSessionType());
XMLManager.addElement(session,"transaction-type",getTransactionType());
for (Iterator enum = getEnvironmentEntries(); enum.hasNext();)
{
session.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
}
for (Iterator enum = getEjbReferences(); enum.hasNext();)
{
session.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
}
for (Iterator enum = getSecurityRoleReferences(); enum.hasNext();)
{
session.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
}
for (Iterator enum = getResourceReferences(); enum.hasNext();)
{
session.appendChild(((XmlExternalizable)enum.next()).exportXml(doc));
}
return session;
}
public void importXml(Element elt)
throws Exception
{
removePropertyChangeListener(this);
id = elt.getAttribute("id");
NodeList nl = elt.getChildNodes();
for (int i = 0; i < nl.getLength(); i++)
{
Node n = nl.item(i);
String name = n.getNodeName();
if (name.equals("display-name"))
{
setDisplayName(n.hasChildNodes() ? n.getFirstChild().getNodeValue() :
"");
} else if (name.equals("description"))
{
setDescription(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("small-icon"))
{
setSmallIcon(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("large-icon"))
{
setLargeIcon(n.hasChildNodes() ? XMLManager.getString(n) : "");
} else if (name.equals("ejb-name"))
{
setEjbName(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("home"))
{
setHome(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("remote"))
{
setRemote(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("ejb-class"))
{
setEjbClass(n.hasChildNodes() ? n.getFirstChild().getNodeValue() : "");
} else if (name.equals("session-type"))
{
setSessionType(n.hasChildNodes() ? n.getFirstChild().getNodeValue() :
"");
} else if (name.equals("transaction-type"))
{
setTransactionType(n.hasChildNodes() ? n.getFirstChild().getNodeValue()
: "");
} else if (name.equals("env-entry"))
{
addEnvironmentEntry().importXml((Element)n);
} else if (name.equals("ejb-ref"))
{
addEjbReference().importXml((Element)n);
} else if (name.equals("resource-ref"))
{
addResourceReference().importXml((Element)n);
} else if (name.equals("security-role-ref"))
{
addSecurityRoleReference().importXml((Element)n);
}
}
addPropertyChangeListener(this);
}
public String toString()
{
return (displayName.equals("")) ? (ejbName.equals("") ? "Session " :
ejbName) : displayName;
}
public void propertyChange(PropertyChangeEvent evt)
{
// Try to be smart!
if (evt.getPropertyName().equals("Remote"))
{
if (getHome().equals(""))
{
// Set home
try
{
ClassLoader cl =
((EjbFileManager)getBeanContext().getBeanContext().getBeanContext()).getClassLoader();
Class clazz = cl.loadClass(getRemote()+"Home");
if (javax.ejb.EJBHome.class.isAssignableFrom(clazz))
setHome(getRemote()+"Home");
} catch (Throwable e)
{
// Didn't work..
}
}
if (getEjbClass().equals(""))
{
// Set bean, EJB spec style
BeanContext eb = getBeanContext();
BeanContext ejbJar = eb.getBeanContext();
try
{
ClassLoader cl =
((EjbFileManager)ejbJar.getBeanContext()).getClassLoader();
Class clazz = cl.loadClass(getRemote()+"Bean");
if (javax.ejb.SessionBean.class.isAssignableFrom(clazz))
setEjbClass(getRemote()+"Bean");
} catch (Throwable e)
{
// Didn't work..
}
// Set bean, J2EE RI style
try
{
ClassLoader cl =
((EjbFileManager)ejbJar.getBeanContext()).getClassLoader();
Class clazz = cl.loadClass(getRemote()+"EJB");
if (javax.ejb.SessionBean.class.isAssignableFrom(clazz))
setEjbClass(getRemote()+"EJB");
} catch (Throwable e)
{
// Didn't work..
}
// Set bean, Rickard style :-)
try
{
// Example:
// Remote = com.mycompany.interfaces.Foo
// Bean = com.mycompany.beans.FooBean
ClassLoader cl =
((EjbFileManager)ejbJar.getBeanContext()).getClassLoader();
String remoteName =
getRemote().substring(getRemote().lastIndexOf(".")+1);
String packageName = getRemote().substring(0,
getRemote().lastIndexOf("."));
packageName = getRemote().substring(0, packageName.lastIndexOf("."))
+ ".beans.";
String beanName = packageName+remoteName+"Bean";
Class clazz = cl.loadClass(beanName);
if (javax.ejb.SessionBean.class.isAssignableFrom(clazz))
setEjbClass(beanName);
} catch (Throwable e)
{
// Didn't work..
}
}
}
}
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
}
1.1 ejx/examples/ejb/src/com/dreambean/ejx/ejb/ejb.dfPackage
Index: ejb.dfPackage
===================================================================
package id6lla30bzmd6h9lbzmd8irw;
/**
@version 2.0
@physicalPackage
@__modelType diagram
*/
class diagram {
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.SecurityRole:oiref><oihard>
@__modelType reference
*/
class reference {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.Method:oiref><oihard>
@__modelType reference
*/
class reference7 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.EnterpriseBeans:oiref><oihard>
@__modelType reference
*/
class reference8 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.EjbJar:oiref><oihard>
@__modelType reference
*/
class reference9 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.Session:oiref><oihard>
@__modelType reference
*/
class reference10 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.MethodPermission:oiref><oihard>
@__modelType reference
*/
class reference11 {
}
/**
@__ref <oiref:design#Class#id1gn68vbzmd6h9lbzmd8mi9.diagram:oiref><oihard>
@__modelType reference
@__hidden
*/
class reference12 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.EjbReference:oiref><oihard>
@__modelType reference
*/
class reference13 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.SecurityRoleReference:oiref><oihard>
@__modelType reference
*/
class reference14 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.EnvironmentEntry:oiref><oihard>
@__modelType reference
*/
class reference15 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.CMPField:oiref><oihard>
@__modelType reference
*/
class reference16 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.ResourceReference:oiref><oihard>
@__modelType reference
*/
class reference17 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.Entity:oiref><oihard>
@__modelType reference
*/
class reference19 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.ContainerTransaction:oiref><oihard>
@__modelType reference
*/
class reference20 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.AssemblyDescriptor:oiref><oihard>
@__modelType reference
*/
class reference21 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.PermissionRole:oiref><oihard>
@__modelType reference
*/
class reference1 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.EjbFileManager:oiref><oihard>
@__modelType reference
*/
class reference2 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.EjbFileManagerFactory:oiref><oihard>
@__modelType reference
*/
class reference3 {
}
/**
@__ref <oiref:java#Class#com.dreambean.ejx.ejb.EnterpriseBean:oiref><oihard>
@__modelType reference
*/
class reference4 {
}
}
/**
@__tags
@shapeType ClassDiagram
*/
class __tags {
}
/**
@__options option.detail = Implementation
option.formatting = Java
option.showPackageContents = false
filter.d.state = on
filter.e.state = on
filter.f.state = on
filter.g.state = on
*/
class __options {
}
/**
@__positions
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.EnterpriseBeans:oiref>=186,146,104,59,1:oigroup>
<oigroup:<oiref:design#Class#id1gn68vbzmd6h9lbzmd8mi9.diagram:oiref>=33,15,49,63,1:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.AssemblyDescriptor#lnkContainerTransaction:oiref>=702,169,702,206:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.MethodPermission#method:oiref>=966,259,904,317:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.EnterpriseBean:oiref>=64,128,98,73,1:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.EjbFileManagerFactory:oiref>=104,20,137,59,1:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.Entity#lnkSecurityRoleReference:oiref>=148,301,438,383:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.EjbJar:oiref>=443,5,45,59,1:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.editors.AuthenticationTypeEditor:oiref>=909,157,203,59,1:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.Entity:oiref>=122,242,40,59,1:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.EjbJar#ad:oiref>=473,64,674,110:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.EjbJar#eb:oiref>=458,64,238,146:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.Method:oiref>=908,292,51,59,1:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.MethodPermission#lnkPermissionRole:oiref>=852,259,852,293:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.Session#lnkEnvironmentEntry:oiref>=339,304,622,382:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.ContainerTransaction:oiref>=668,206,132,59,1:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.SecurityRole:oiref>=536,200,81,59,1:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.Entity#lnkEnvironmentEntry:oiref>=155,301,586,382:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.AssemblyDescriptor#lnkSecurityRole:oiref>=659,169,576,200:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.PermissionRole#role:oiref>=832,293,576,259:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.CMPField:oiref>=17,378,61,59,1:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.Session#lnkSecurityRoleReference:oiref>=327,304,485,383:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.EjbFileManager#ejbJar:oiref>=398,36,443,36:oigroup>
<oigroup:<oiref:java#Implements#com.dreambean.ejx.ejb.Session#com.dreambean.ejx.ejb.EnterpriseBean:oiref>=311,245,152,201:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.Entity#lnkCMPField:oiref>=129,301,47,378:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.Session#lnkEjbReference:oiref>=316,304,316,381:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.MethodPermission:oiref>=823,200,116,59,1:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.Session:oiref>=294,245,55,59,1:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.Entity#lnkResourceReference:oiref>=135,301,135,380:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.MethodPermission#lnkMethod:oiref>=923,259,923,292:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.EnterpriseBeans#lnkEntity:oiref>=220,205,148,242:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.ContainerTransaction#methods:oiref>=820,261,887,317:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.EnterpriseBeans#lnkSession:oiref>=255,205,329,245:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.EjbFileManager:oiref>=303,16,95,59,1:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.Entity#lnkEjbReference:oiref>=141,301,305,381:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.EjbReference:oiref>=277,381,85,59,1:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.PermissionRole:oiref>=783,293,99,59,1:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.SecurityRoleReference:oiref>=392,383,140,59,1:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.Session#lnkResourceReference:oiref>=304,304,188,380:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.ResourceReference:oiref>=119,380,123,59,1:oigroup>
<oigroup:<oiref:java#Implements#com.dreambean.ejx.ejb.Entity#com.dreambean.ejx.ejb.EnterpriseBean:oiref>=132,242,132,201:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.AssemblyDescriptor:oiref>=612,110,125,59,1:oigroup>
<oigroup:<oiref:java#Class#com.dreambean.ejx.ejb.EnvironmentEntry:oiref>=550,382,109,59,1:oigroup>
<oigroup:MemberLink#<oiref:java#Member#com.dreambean.ejx.ejb.AssemblyDescriptor#lnkMethodPermission:oiref>=719,169,881,200:oigroup>
*/
class __positions {
}