From: <ri...@us...> - 2007-02-26 07:54:29
|
Revision: 81 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=81&view=rev Author: rickles Date: 2007-02-25 23:54:30 -0800 (Sun, 25 Feb 2007) Log Message: ----------- Implement container factory. Added Paths: ----------- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/ContainerFactory.java sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/ContainerIntanceImpl.java Added: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/ContainerFactory.java =================================================================== --- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/ContainerFactory.java (rev 0) +++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/ContainerFactory.java 2007-02-26 07:54:30 UTC (rev 81) @@ -0,0 +1,51 @@ +package org.digivitality.techne.core; + +import java.util.*; + + +public class ContainerFactory { + + // this will be replaced by techne.properties + private static int DEFAULT_QUANTITY = 3; + private int quantity; + private List containerInstances = new ArrayList(); + private static ContainerFactory instance; + + private ContainerFactory() { + + } + + public Object clone() throws CloneNotSupportedException + { + throw new CloneNotSupportedException("Cloning a singleton is not allowed."); + } + + static synchronized public ContainerFactory getInstance() + { + if (instance==null) { + instance = new ContainerFactory(); + } + return instance; + } + + public void init() { + if (quantity == 0) { + quantity = DEFAULT_QUANTITY; + } + for (int i = 0; i < quantity; i++ ) { + containerInstances.add(new ContainerIntanceImpl()); + } + } + + public void setQuantity(int parm) { + this.quantity = parm; + } + + public int getQuantity() { + return containerInstances.size(); + } + + public List getContainerInstances() { + return containerInstances; + } +} Added: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/ContainerIntanceImpl.java =================================================================== --- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/ContainerIntanceImpl.java (rev 0) +++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/ContainerIntanceImpl.java 2007-02-26 07:54:30 UTC (rev 81) @@ -0,0 +1,17 @@ +package org.digivitality.techne.core; + +import org.digivitality.techne.core.interfaces.ContainerInstance; + +public class ContainerIntanceImpl implements ContainerInstance { + + private int id; + private String instanceName; + + public int getId() { + return id; + } + + public String getInstanceName() { + return instanceName; + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ri...@us...> - 2007-02-26 07:56:06
|
Revision: 82 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=82&view=rev Author: rickles Date: 2007-02-25 23:56:05 -0800 (Sun, 25 Feb 2007) Log Message: ----------- Implement container factory. Added Paths: ----------- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/interfaces/ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/interfaces/ContainerInstance.java Added: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/interfaces/ContainerInstance.java =================================================================== --- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/interfaces/ContainerInstance.java (rev 0) +++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/interfaces/ContainerInstance.java 2007-02-26 07:56:05 UTC (rev 82) @@ -0,0 +1,5 @@ +package org.digivitality.techne.core.interfaces; + +public interface ContainerInstance { + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ri...@us...> - 2007-03-01 07:46:51
|
Revision: 88 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=88&view=rev Author: rickles Date: 2007-02-28 23:46:51 -0800 (Wed, 28 Feb 2007) Log Message: ----------- Utility for XML parsing. Added Paths: ----------- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/ConfigHandler.java sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/SimpleElement.java sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/bundle.java sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/container.java sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/containertype.java Added: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/ConfigHandler.java =================================================================== --- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/ConfigHandler.java (rev 0) +++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/ConfigHandler.java 2007-03-01 07:46:51 UTC (rev 88) @@ -0,0 +1,81 @@ +package org.digivitality.techne.core.util; + +import org.xml.sax.*; +import org.xml.sax.helpers.*; +import java.util.*; +import java.lang.reflect.*; + +public class ConfigHandler extends DefaultHandler { + Stack stack = new Stack(); + SimpleElement element; + + public void startElement(String namespace, String localname, String qname, Attributes atts) + throws SAXException { + + SimpleElement element = null; + String key = null; + try { + element = (SimpleElement)Class.forName("org.digivitality.techne.core.util." + qname).newInstance(); + } catch (Exception e) {/*No class for element*/} + + for(int i=0; i<atts.getLength(); i++) { + element.setAttributeValue(atts.getQName(i), atts.getValue(i)); + } + + stack.push(element); + } + + public void endElement(String namespace, String localname, String qname) + throws SAXException { + + element = (SimpleElement)stack.pop(); + + if (!stack.empty()) { + try { + //System.out.println("qname: " + qname); + //System.out.println("stack object: " + stack.peek()); + //System.out.println("element: " + element); + setProperty(qname, stack.peek(), element ); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public void characters(char[] ch, int start, int len) { + String text = new String(ch, start, len); + ((SimpleElement)(stack.peek())).addText(text); + } + + void setProperty(String name, Object target, Object value) throws SAXException { + //System.out.println("property: " + name); + //System.out.println("target: " + target.getClass()); + //System.out.println("value: " + value.getClass()); + Method method = null; + try { + method = target.getClass().getMethod( + "add" + name, new Class[] { value.getClass() } ); + // invoke the method + //System.out.println("Method to execute: " + method.toString()); + method.invoke(target, new Object[]{value}); + } catch (Exception e) {throw new SAXException(e.toString()); } + /* + if (method == null) { + try { + method = target.getClass().getMethod( + "set" + name, new Class[] { value.getClass()} ); + method.invoke(target.getClass().newInstance(), new Object[]{value}); + } catch (Exception e) {throw new SAXException(e.toString()); } + } + */ + if (method == null) { + throw new SAXException("No add method detected for " + target.getClass()); + } + + this.element = (SimpleElement)target; + } + + public SimpleElement getModel() { + return element; + } +} Added: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/SimpleElement.java =================================================================== --- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/SimpleElement.java (rev 0) +++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/SimpleElement.java 2007-03-01 07:46:51 UTC (rev 88) @@ -0,0 +1,26 @@ +package org.digivitality.techne.core.util; + +import java.util.HashMap; +import java.util.Map; + +public class SimpleElement { + + StringBuffer text = new StringBuffer(); + Map properties = new HashMap(); + + public void addText(String s) { + text.append(s); + } + + public String getText() { + return text.toString(); + } + + public void setAttributeValue(String key, String value) { + properties.put(key, value); + } + + public Map getProperties() { + return properties; + } +} Added: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/bundle.java =================================================================== --- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/bundle.java (rev 0) +++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/bundle.java 2007-03-01 07:46:51 UTC (rev 88) @@ -0,0 +1,14 @@ +package org.digivitality.techne.core.util; + +public class bundle extends SimpleElement { + + String url; + + public void seturl(String url) { + this.url = url; + } + + public String getusr() { + return url; + } +} Added: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/container.java =================================================================== --- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/container.java (rev 0) +++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/container.java 2007-03-01 07:46:51 UTC (rev 88) @@ -0,0 +1,18 @@ +package org.digivitality.techne.core.util; + +import java.util.ArrayList; +import java.util.List; + +public class container extends SimpleElement { + + List containerTypes = new ArrayList(); + + public void addcontainertype(containertype ct) { + //System.out.println("Adding containertype " + ct); + containerTypes.add(ct); + } + + public List getContainerTypes() { + return containerTypes; + } +} Added: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/containertype.java =================================================================== --- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/containertype.java (rev 0) +++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/containertype.java 2007-03-01 07:46:51 UTC (rev 88) @@ -0,0 +1,38 @@ +package org.digivitality.techne.core.util; + +import java.util.ArrayList; +import java.util.List; + +public class containertype extends SimpleElement { + + List bundles = new ArrayList(); + String value; + String base; + + public void addbundle(bundle b) { + bundles.add(b); + } + public List getBundles() { + return bundles; + } + + public void setbundles(List bundles) { + this.bundles = bundles; + } + + public void setvalue(String value) { + this.value = value; + } + + public String getvalue() { + return value; + } + + public void setbase(String base) { + this.base = base; + } + + public String getbase() { + return base; + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-03-03 20:02:31
|
Revision: 104 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=104&view=rev Author: tonit Date: 2007-03-03 12:02:26 -0800 (Sat, 03 Mar 2007) Log Message: ----------- implemented dynamic provisioning Modified Paths: -------------- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/ContainerFactory.java Added Paths: ----------- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/ContainerState.java Modified: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/ContainerFactory.java =================================================================== --- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/ContainerFactory.java 2007-03-03 20:02:20 UTC (rev 103) +++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/ContainerFactory.java 2007-03-03 20:02:26 UTC (rev 104) @@ -2,13 +2,13 @@ import java.util.ArrayList; import java.util.List; -import org.xml.sax.*; -import org.xml.sax.helpers.*; -import javax.xml.parsers.*; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + import org.digivitality.techne.core.util.ConfigHandler; import org.digivitality.techne.core.util.container; -import org.digivitality.techne.core.util.containertype; +import org.xml.sax.XMLReader; public class ContainerFactory { @@ -18,6 +18,7 @@ private List containerInstances = new ArrayList(); private List containerTypes = new ArrayList(); private static ContainerFactory instance; + private boolean init = false; private ContainerFactory() { @@ -33,6 +34,7 @@ synchronized (ContainerFactory.class) { if (instance == null) { instance = new ContainerFactory(); + instance.init(); } } } @@ -40,38 +42,41 @@ return instance; } - public void init() { - if (quantity == 0) { - quantity = DEFAULT_QUANTITY; + private void init() { + if (!init) { + if (quantity == 0) { + quantity = DEFAULT_QUANTITY; + } + for (int i = 0; i < quantity; i++) { + containerInstances.add(new ContainerIntanceImpl()); + } + + // parse the config file + loadContainerPolicies(); + init = true; } - for (int i = 0; i < quantity; i++) { - containerInstances.add(new ContainerIntanceImpl()); - } - - // parse the config file - getContainerPolicies(); } - public void getContainerPolicies() { + public void loadContainerPolicies() { ConfigHandler ch = null; try { - SAXParserFactory factory = SAXParserFactory.newInstance( ); - SAXParser saxParser = factory.newSAXParser( ); - XMLReader parser = saxParser.getXMLReader( ); - ch = new ConfigHandler(); - parser.setContentHandler(ch); - parser.parse( "../conf/techne.xml" ); - + SAXParserFactory factory = SAXParserFactory.newInstance(); + SAXParser saxParser = factory.newSAXParser(); + XMLReader parser = saxParser.getXMLReader(); + ch = new ConfigHandler(); + parser.setContentHandler(ch); + parser.parse("../conf/techne.xml"); + } catch (Exception e) { e.printStackTrace(); } - container c = (container)ch.getModel(); - //containertype ct = (containertype)c.getContainerTypes().get(0); - containerTypes = c.getContainerTypes(); - System.out.println("Available container types: " + containerTypes.size()); + container c = (container) ch.getModel(); + // containertype ct = (containertype)c.getContainerTypes().get(0); + containerTypes = c.getContainerTypes(); + System.out.println("Available container types: " + containerTypes); } - + public void setQuantity(int parm) { this.quantity = parm; } @@ -83,7 +88,7 @@ public List getContainerInstances() { return containerInstances; } - + public List getContainerTypes() { return containerTypes; } Added: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/ContainerState.java =================================================================== --- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/ContainerState.java (rev 0) +++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/ContainerState.java 2007-03-03 20:02:26 UTC (rev 104) @@ -0,0 +1,55 @@ +package org.digivitality.techne.core.util; + +import java.util.HashSet; +import java.util.Set; +import java.util.Stack; + +/** + * Its basically the memory for the installed bundles at this moment. + * + * @author tmenzel + * + */ +public class ContainerState { + private String type; + private Set idset; + Stack bundles; + + public ContainerState(String initialType) { + type = initialType; + idset = new HashSet(); + bundles = new Stack(); + } + + public String getType() { + return type; + } + + public void addInstalled(long id, String newBundleURL) { + Long lo = new Long(id); + idset.add(lo); + bundles.add(newBundleURL); + } + + public Set getIds() { + return idset; + } + + public String toString() { + return "[type is " + type + "; installed bundles: " + idset + "]"; + } + + public Stack getInstalledBundles() { + return bundles; + } + + public void remove(long bundleId, String bundleURL) { + idset.remove(new Long(bundleId)); + bundles.remove(bundleURL); + } + + public void setType(String wantType) { + type = wantType; + + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |