User: mulder
Date: 00/07/03 17:10:11
Added: src/main/org/jboss/metadata/jboss JBossBean.java
JBossContainer.java JBossField.java
JBossMethod.java JBossPlugin.java JBossServer.java
JBossXMLReader.java
Log:
Added new metadata classes to CVS. Currently read-only (reads XML files
written by EJX). We plan to add GUI and write support for EJX.
Revision Changes Path
1.1 jboss/src/main/org/jboss/metadata/jboss/JBossBean.java
Index: JBossBean.java
===================================================================
package org.jboss.metadata.jboss;
import org.jboss.metadata.MetaDataPlugin;
import org.jboss.metadata.plugins.*;
public class JBossBean extends AbstractBean {
public JBossBean() {
super();
}
public MetaDataPlugin getManager() {
return JBossPlugin.instance();
}
}
1.1 jboss/src/main/org/jboss/metadata/jboss/JBossContainer.java
Index: JBossContainer.java
===================================================================
package org.jboss.metadata.jboss;
import org.jboss.metadata.MetaDataPlugin;
import org.jboss.metadata.plugins.*;
public class JBossContainer extends AbstractContainer {
public boolean secure;
public Class configurationClass;
public String name;
public boolean callLogging;
public Class containerInvoker;
public boolean invokerOptimized;
public Class instancePool;
public int poolMinimum;
public int poolMaximum;
public Class instanceCache;
public Class persistenceManager;
public Class transactionManager;
public char commitOption;
public JBossContainer() {
}
public MetaDataPlugin getManager() {
return JBossPlugin.instance();
}
}
1.1 jboss/src/main/org/jboss/metadata/jboss/JBossField.java
Index: JBossField.java
===================================================================
package org.jboss.metadata.jboss;
import org.jboss.metadata.MetaDataPlugin;
import org.jboss.metadata.plugins.*;
public class JBossField extends AbstractField {
public JBossField() {
}
public MetaDataPlugin getManager() {
return JBossPlugin.instance();
}
}
1.1 jboss/src/main/org/jboss/metadata/jboss/JBossMethod.java
Index: JBossMethod.java
===================================================================
package org.jboss.metadata.jboss;
import org.jboss.metadata.MetaDataPlugin;
import org.jboss.metadata.plugins.*;
public class JBossMethod extends AbstractMethod {
public JBossMethod() {
}
public MetaDataPlugin getManager() {
return JBossPlugin.instance();
}
}
1.1 jboss/src/main/org/jboss/metadata/jboss/JBossPlugin.java
Index: JBossPlugin.java
===================================================================
package org.jboss.metadata.jboss;
import org.jboss.metadata.MetaDataPlugin;
import org.jboss.metadata.io.XMLReader;
public class JBossPlugin implements MetaDataPlugin {
private final static JBossPlugin instance = new JBossPlugin();
public static JBossPlugin instance() {
return instance;
}
private JBossPlugin() {}
public Class getServerClass() {
return JBossServer.class;
}
public Class getBeanClass() {
return JBossBean.class;
}
public Class getContainerClass() {
return JBossContainer.class;
}
public Class getMethodClass() {
return JBossMethod.class;
}
public Class getFieldClass() {
return JBossField.class;
}
public XMLReader getXMLReader() {
return new JBossXMLReader();
}
public boolean equals(Object o) {
return o instanceof JBossPlugin;
}
public int hashCode() {
return getClass().hashCode();
}
}
1.1 jboss/src/main/org/jboss/metadata/jboss/JBossServer.java
Index: JBossServer.java
===================================================================
package org.jboss.metadata.jboss;
import org.jboss.metadata.*;
import org.jboss.metadata.plugins.*;
public class JBossServer extends AbstractServer {
static {
MetaDataFactory.addPlugin(JBossPlugin.instance());
}
public JBossServer() {
}
public MetaDataPlugin getManager() {
return JBossPlugin.instance();
}
}
1.1 jboss/src/main/org/jboss/metadata/jboss/JBossXMLReader.java
Index: JBossXMLReader.java
===================================================================
package org.jboss.metadata.jboss;
import java.io.*;
import java.util.*;
import org.xml.sax.*;
import com.sun.xml.parser.*;
import org.jboss.metadata.io.XMLReader;
import org.jboss.metadata.*;
public class JBossXMLReader extends HandlerBase implements XMLReader {
private JBossServer server = null;
private JBossContainer container = null;
private JBossBean bean = null;
private String currentElement;
private String contents;
private Vector containers;
private ClassLoader loader;
public JBossXMLReader() {
containers = new Vector();
}
public void setClassLoader(ClassLoader loader) {
this.loader = loader;
}
public String getFileName() {
return "jboss.xml";
}
public ServerMetaData readXML(Reader input) throws IOException {
com.sun.xml.parser.Parser parser = new com.sun.xml.parser.Parser();
parser.setDocumentHandler(this);
InputSource is = new InputSource(input);
try {
parser.parse(is);
} catch(SAXException e) {
e.printStackTrace();
throw new IOException(e.getMessage());
}
return server;
}
public void startDocument() throws SAXException {
}
public void endDocument() throws SAXException {
}
public void startElement(String name, AttributeList atts) throws SAXException {
currentElement = name;
contents = null;
if(name.equals("jboss")) {
containers.clear();
server = new JBossServer();
} else if(name.equals("container-configuration")) {
container = new JBossContainer();
try {
container.configurationClass =
loadClass(atts.getValue("configuration-class"));
} catch(ClassNotFoundException e) {
throw new SAXException("Unable to load class
'"+atts.getValue("configuration-class")+"'.");
}
} else if(name.equals("entity") || name.equals("session"))
bean = new JBossBean();
}
public void characters(char[] data, int start, int length) throws SAXException {
if(contents == null)
contents = new String(data, start, length);
else
contents += new String(data, start, length);
}
public void endElement(String name) throws SAXException {
if(name.equals("container-configuration")) {
containers.add(container);
container = null;
} else if(name.equals("session") || name.equals("entity")) {
server.addBean(bean);
bean = null;
} else if(name.equals("ejb-name"))
bean.setName(contents);
else if(name.equals("configuration-name")) {
for(int i=0; i<containers.size(); i++) {
JBossContainer cont = (JBossContainer)containers.elementAt(i);
if(cont.name.equals(contents)) {
bean.setContainerMetaData((ContainerMetaData)cont.clone());
break;
}
}
} else if(name.equals("container-name"))
container.name = contents;
else if(name.equals("call-logging"))
container.callLogging = new Boolean(contents).booleanValue();
else if(name.equals("container-invoker"))
try {
if(contents != null && contents.length() > 0)
container.containerInvoker = loadClass(contents);
} catch(ClassNotFoundException e) {
throw new SAXException("Unable to load class '"+contents+"'.");
}
else if(name.equals("instance-pool"))
try {
if(contents != null && contents.length() > 0)
container.instancePool = loadClass(contents);
} catch(ClassNotFoundException e) {
throw new SAXException("Unable to load class '"+contents+"'.");
}
else if(name.equals("instance-cache"))
try {
if(contents != null && contents.length() > 0)
container.instanceCache = loadClass(contents);
} catch(ClassNotFoundException e) {
throw new SAXException("Unable to load class '"+contents+"'.");
}
else if(name.equals("persistence-manager"))
try {
if(contents != null && contents.length() > 0)
container.persistenceManager = loadClass(contents);
} catch(ClassNotFoundException e) {
throw new SAXException("Unable to load class '"+contents+"'.");
}
else if(name.equals("transaction-manager"))
try {
if(contents != null && contents.length() > 0)
container.transactionManager = loadClass(contents);
} catch(ClassNotFoundException e) {
throw new SAXException("Unable to load class '"+contents+"'.");
}
else if(name.equals("Optmized"))
container.invokerOptimized = new Boolean(contents).booleanValue();
else if(name.equals("MaximumSize"))
container.poolMaximum = Integer.parseInt(contents);
else if(name.equals("MinimumSize"))
container.poolMinimum = Integer.parseInt(contents);
else if(name.equals("commit-option"))
container.commitOption = contents.charAt(0);
}
private Class loadClass(String name) throws ClassNotFoundException {
if(loader == null)
return Class.forName(name);
else
return loader.loadClass(name);
}
}