You can subscribe to this list here.
2007 |
Jan
(31) |
Feb
(54) |
Mar
(27) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|
From: <ri...@us...> - 2007-02-12 00:19:11
|
Revision: 38 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=38&view=rev Author: rickles Date: 2007-02-11 16:19:11 -0800 (Sun, 11 Feb 2007) Log Message: ----------- Degraded to 0.8 version of Felix. Added Paths: ----------- sandbox/rickles/org.digivitality.techne.core/lib/felix.jar Added: sandbox/rickles/org.digivitality.techne.core/lib/felix.jar =================================================================== (Binary files differ) Property changes on: sandbox/rickles/org.digivitality.techne.core/lib/felix.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ri...@us...> - 2007-02-12 00:17:22
|
Revision: 37 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=37&view=rev Author: rickles Date: 2007-02-11 16:17:16 -0800 (Sun, 11 Feb 2007) Log Message: ----------- Added Paths: ----------- sandbox/rickles/org.digivitality.techne.core/conf/config.properties Added: sandbox/rickles/org.digivitality.techne.core/conf/config.properties =================================================================== --- sandbox/rickles/org.digivitality.techne.core/conf/config.properties (rev 0) +++ sandbox/rickles/org.digivitality.techne.core/conf/config.properties 2007-02-12 00:17:16 UTC (rev 37) @@ -0,0 +1,297 @@ +# this is to be merged across osgi framwworks +# FELIX specific section: +felix.cache.profile=technelaunch +org.osgi.framework.system.packages=org.osgi.framework; version=1.3.0, \ + org.osgi.service.packageadmin; version=1.2.0, \ + org.osgi.service.startlevel; version=1.0.0, \ + org.osgi.service.url; version=1.0.0, \ + org.apache.commons.logging, \ + ${jre-${java.specification.version}} + +#org.osgi.framework.bootdelegation=sun.*,com.sun.* + +felix.auto.start.1= \ + file:../bundle/org.apache.felix.shell-0.8.0-SNAPSHOT.jar \ + file:../bundle/org.apache.felix.shell.tui-0.8.0-SNAPSHOT.jar \ + file:../bundle/org.apache.felix.bundlerepository-0.8.0-SNAPSHOT.jar \ + file:../bundle/org.osgi.compendium-0.8.0-SNAPSHOT.jar \ + file:../bundle/javax.servlet-0.8.0-SNAPSHOT.jar \ + file:../bundle/org.apache.felix.http.jetty-0.8.0-SNAPSHOT.jar \ + file:load/org.digivitality.techne.service-1.0.0.jar +felix.log.level=1 +felix.startlevel.framework=1 +felix.startlevel.bundle=1 +#framework.service.urlhandlers=false + +# +# Bundle config properties. +# +org.osgi.service.http.port=7778 +obr.shell.telnet=on +ds.showerrors=true +ds.showversion=true +#obr.repository.url=http://bundles.osgi.org/obr/browse?_xml=1&cmd=repository + + +# +# Java platform package export properties. +# +jre-1.3= \ + javax.accessibility; \ + javax.accessibility.resources; \ + javax.naming; \ + javax.naming.directory; \ + javax.naming.event; \ + javax.naming.ldap; \ + javax.naming.spi; \ + javax.rmi; \ + javax.rmi.CORBA; \ + javax.sound.midi; \ + javax.sound.midi.spi; \ + javax.sound.sampled; \ + javax.sound.sampled.spi; \ + javax.swing; \ + javax.swing.border; \ + javax.swing.colorchooser; \ + javax.swing.event; \ + javax.swing.filechooser; \ + javax.swing.plaf; \ + javax.swing.plaf.basic; \ + javax.swing.plaf.basic.resources; \ + javax.swing.plaf.metal; \ + javax.swing.plaf.metal.resources; \ + javax.swing.plaf.multi; \ + javax.swing.table; \ + javax.swing.text; \ + javax.swing.text.html; \ + javax.swing.text.html.parser; \ + javax.swing.text.rtf; \ + javax.swing.tree; \ + javax.swing.undo; \ + javax.transaction; \ + org.omg.CORBA; \ + org.omg.CORBA_2_3; \ + org.omg.CORBA_2_3.portable; \ + org.omg.CORBA.DynAnyPackage; \ + org.omg.CORBA.ORBPackage; \ + org.omg.CORBA.portable; \ + org.omg.CORBA.TypeCodePackage; \ + org.omg.CosNaming; \ + org.omg.CosNaming.NamingContextPackage; \ + org.omg.SendingContext; \ + org.omg.stub.java.rmi; \ + version="1.3.0" + +jre-1.4= \ + javax.accessibility; \ + javax.imageio; \ + javax.imageio.event; \ + javax.imageio.metadata; \ + javax.imageio.plugins.jpeg; \ + javax.imageio.spi; \ + javax.imageio.stream; \ + javax.naming; \ + javax.naming.directory; \ + javax.naming.event; \ + javax.naming.ldap; \ + javax.naming.spi; \ + javax.print; \ + javax.print.attribute; \ + javax.print.attribute.standard; \ + javax.print.event; \ + javax.rmi; \ + javax.rmi.CORBA; \ + javax.security.auth; \ + javax.security.auth.callback; \ + javax.security.auth.kerberos; \ + javax.security.auth.login; \ + javax.security.auth.spi; \ + javax.security.auth.x500; \ + javax.sound.midi; \ + javax.sound.midi.spi; \ + javax.sound.sampled; \ + javax.sound.sampled.spi; \ + javax.sql; \ + javax.swing; \ + javax.swing.border; \ + javax.swing.colorchooser; \ + javax.swing.event; \ + javax.swing.filechooser; \ + javax.swing.plaf; \ + javax.swing.plaf.basic; \ + javax.swing.plaf.metal; \ + javax.swing.plaf.multi; \ + javax.swing.table; \ + javax.swing.text; \ + javax.swing.text.html; \ + javax.swing.text.html.parser; \ + javax.swing.text.rtf; \ + javax.swing.tree; \ + javax.swing.undo; \ + javax.transaction; \ + javax.transaction.xa; \ + javax.xml.parsers; \ + javax.xml.transform; \ + javax.xml.transform.dom; \ + javax.xml.transform.sax; \ + javax.xml.transform.stream; \ + org.ietf.jgss; \ + org.omg.CORBA; \ + org.omg.CORBA_2_3; \ + org.omg.CORBA_2_3.portable; \ + org.omg.CORBA.DynAnyPackage; \ + org.omg.CORBA.ORBPackage; \ + org.omg.CORBA.portable; \ + org.omg.CORBA.TypeCodePackage; \ + org.omg.CosNaming; \ + org.omg.CosNaming.NamingContextExtPackage; \ + org.omg.CosNaming.NamingContextPackage; \ + org.omg.Dynamic; \ + org.omg.DynamicAny; \ + org.omg.DynamicAny.DynAnyFactoryPackage; \ + org.omg.DynamicAny.DynAnyPackage; \ + org.omg.IOP; \ + org.omg.IOP.CodecFactoryPackage; \ + org.omg.IOP.CodecPackage; \ + org.omg.Messaging; \ + org.omg.PortableInterceptor; \ + org.omg.PortableInterceptor.ORBInitInfoPackage; \ + org.omg.PortableServer; \ + org.omg.PortableServer.CurrentPackage; \ + org.omg.PortableServer.POAManagerPackage; \ + org.omg.PortableServer.POAPackage; \ + org.omg.PortableServer.portable; \ + org.omg.PortableServer.ServantLocatorPackage; \ + org.omg.SendingContext; \ + org.omg.stub.java.rmi; \ + org.w3c.dom; \ + org.w3c.dom.css; \ + org.w3c.dom.events; \ + org.w3c.dom.html; \ + org.w3c.dom.stylesheets; \ + org.w3c.dom.traversal; \ + org.w3c.dom.views; \ + org.xml.sax; \ + org.xml.sax.ext; \ + org.xml.sax.helpers; \ + version="1.4.0" + +jre-1.5= \ + javax.accessibility; \ + javax.activity; \ + javax.imageio; \ + javax.imageio.event; \ + javax.imageio.metadata; \ + javax.imageio.plugins.bmp; \ + javax.imageio.plugins.jpeg; \ + javax.imageio.spi; \ + javax.imageio.stream; \ + javax.management; \ + javax.management.loading; \ + javax.management.modelmbean; \ + javax.management.monitor; \ + javax.management.openmbean; \ + javax.management.relation; \ + javax.management.remote; \ + javax.management.remote.rmi; \ + javax.management.timer; \ + javax.naming; \ + javax.naming.directory; \ + javax.naming.event; \ + javax.naming.ldap; \ + javax.naming.spi; \ + javax.print; \ + javax.print.attribute; \ + javax.print.attribute.standard; \ + javax.print.event; \ + javax.rmi; \ + javax.rmi.CORBA; \ + javax.rmi.ssl; \ + javax.security.auth; \ + javax.security.auth.callback; \ + javax.security.auth.kerberos; \ + javax.security.auth.login; \ + javax.security.auth.spi; \ + javax.security.auth.x500; \ + javax.security.sasl; \ + javax.sound.midi; \ + javax.sound.midi.spi; \ + javax.sound.sampled; \ + javax.sound.sampled.spi; \ + javax.sql; \ + javax.sql.rowset; \ + javax.sql.rowset.serial; \ + javax.sql.rowset.spi; \ + javax.swing; \ + javax.swing.border; \ + javax.swing.colorchooser; \ + javax.swing.event; \ + javax.swing.filechooser; \ + javax.swing.plaf; \ + javax.swing.plaf.basic; \ + javax.swing.plaf.metal; \ + javax.swing.plaf.multi; \ + javax.swing.plaf.synth; \ + javax.swing.table; \ + javax.swing.text; \ + javax.swing.text.html; \ + javax.swing.text.html.parser; \ + javax.swing.text.rtf; \ + javax.swing.tree; \ + javax.swing.undo; \ + javax.transaction; \ + javax.transaction.xa; \ + javax.xml; \ + javax.xml.datatype; \ + javax.xml.namespace; \ + javax.xml.parsers; \ + javax.xml.transform; \ + javax.xml.transform.dom; \ + javax.xml.transform.sax; \ + javax.xml.transform.stream; \ + javax.xml.validation; \ + javax.xml.xpath; \ + org.ietf.jgss; \ + org.omg.CORBA; \ + org.omg.CORBA_2_3; \ + org.omg.CORBA_2_3.portable; \ + org.omg.CORBA.DynAnyPackage; \ + org.omg.CORBA.ORBPackage; \ + org.omg.CORBA.portable; \ + org.omg.CORBA.TypeCodePackage; \ + org.omg.CosNaming; \ + org.omg.CosNaming.NamingContextExtPackage; \ + org.omg.CosNaming.NamingContextPackage; \ + org.omg.Dynamic; \ + org.omg.DynamicAny; \ + org.omg.DynamicAny.DynAnyFactoryPackage; \ + org.omg.DynamicAny.DynAnyPackage; \ + org.omg.IOP; \ + org.omg.IOP.CodecFactoryPackage; \ + org.omg.IOP.CodecPackage; \ + org.omg.Messaging; \ + org.omg.PortableInterceptor; \ + org.omg.PortableInterceptor.ORBInitInfoPackage; \ + org.omg.PortableServer; \ + org.omg.PortableServer.CurrentPackage; \ + org.omg.PortableServer.POAManagerPackage; \ + org.omg.PortableServer.POAPackage; \ + org.omg.PortableServer.portable; \ + org.omg.PortableServer.ServantLocatorPackage; \ + org.omg.SendingContext; \ + org.omg.stub.java.rmi; \ + org.omg.stub.javax.management.remote.rmi; \ + org.w3c.dom; \ + org.w3c.dom.bootstrap; \ + org.w3c.dom.css; \ + org.w3c.dom.events; \ + org.w3c.dom.html; \ + org.w3c.dom.ls; \ + org.w3c.dom.ranges; \ + org.w3c.dom.stylesheets; \ + org.w3c.dom.traversal; \ + org.w3c.dom.views; \ + org.xml.sax; \ + org.xml.sax.ext; \ + org.xml.sax.helpers; \ + version="1.5.0" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ri...@us...> - 2007-02-12 00:13:13
|
Revision: 36 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=36&view=rev Author: rickles Date: 2007-02-11 16:13:14 -0800 (Sun, 11 Feb 2007) Log Message: ----------- Added Paths: ----------- sandbox/rickles/org.digivitality.techne.core/bundle/ sandbox/rickles/org.digivitality.techne.core/bundle/javax.servlet-0.8.0-SNAPSHOT.jar sandbox/rickles/org.digivitality.techne.core/bundle/org.apache.felix.bundlerepository-0.8.0-SNAPSHOT.jar sandbox/rickles/org.digivitality.techne.core/bundle/org.apache.felix.http.jetty-0.8.0-SNAPSHOT.jar sandbox/rickles/org.digivitality.techne.core/bundle/org.apache.felix.shell-0.8.0-SNAPSHOT.jar sandbox/rickles/org.digivitality.techne.core/bundle/org.apache.felix.shell.tui-0.8.0-SNAPSHOT.jar sandbox/rickles/org.digivitality.techne.core/bundle/org.osgi.compendium-0.8.0-SNAPSHOT.jar sandbox/rickles/org.digivitality.techne.core/bundle/servlet.jar Added: sandbox/rickles/org.digivitality.techne.core/bundle/javax.servlet-0.8.0-SNAPSHOT.jar =================================================================== (Binary files differ) Property changes on: sandbox/rickles/org.digivitality.techne.core/bundle/javax.servlet-0.8.0-SNAPSHOT.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: sandbox/rickles/org.digivitality.techne.core/bundle/org.apache.felix.bundlerepository-0.8.0-SNAPSHOT.jar =================================================================== (Binary files differ) Property changes on: sandbox/rickles/org.digivitality.techne.core/bundle/org.apache.felix.bundlerepository-0.8.0-SNAPSHOT.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: sandbox/rickles/org.digivitality.techne.core/bundle/org.apache.felix.http.jetty-0.8.0-SNAPSHOT.jar =================================================================== (Binary files differ) Property changes on: sandbox/rickles/org.digivitality.techne.core/bundle/org.apache.felix.http.jetty-0.8.0-SNAPSHOT.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: sandbox/rickles/org.digivitality.techne.core/bundle/org.apache.felix.shell-0.8.0-SNAPSHOT.jar =================================================================== (Binary files differ) Property changes on: sandbox/rickles/org.digivitality.techne.core/bundle/org.apache.felix.shell-0.8.0-SNAPSHOT.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: sandbox/rickles/org.digivitality.techne.core/bundle/org.apache.felix.shell.tui-0.8.0-SNAPSHOT.jar =================================================================== (Binary files differ) Property changes on: sandbox/rickles/org.digivitality.techne.core/bundle/org.apache.felix.shell.tui-0.8.0-SNAPSHOT.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: sandbox/rickles/org.digivitality.techne.core/bundle/org.osgi.compendium-0.8.0-SNAPSHOT.jar =================================================================== (Binary files differ) Property changes on: sandbox/rickles/org.digivitality.techne.core/bundle/org.osgi.compendium-0.8.0-SNAPSHOT.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: sandbox/rickles/org.digivitality.techne.core/bundle/servlet.jar =================================================================== (Binary files differ) Property changes on: sandbox/rickles/org.digivitality.techne.core/bundle/servlet.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ri...@us...> - 2007-02-12 00:10:57
|
Revision: 35 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=35&view=rev Author: rickles Date: 2007-02-11 16:10:58 -0800 (Sun, 11 Feb 2007) Log Message: ----------- Modified Paths: -------------- sandbox/rickles/org.digivitality.techne.core/bin/techne.bat Modified: sandbox/rickles/org.digivitality.techne.core/bin/techne.bat =================================================================== --- sandbox/rickles/org.digivitality.techne.core/bin/techne.bat 2007-02-12 00:10:25 UTC (rev 34) +++ sandbox/rickles/org.digivitality.techne.core/bin/techne.bat 2007-02-12 00:10:58 UTC (rev 35) @@ -1,7 +1,11 @@ @echo off -set BUNDLEDIR=../../../tonit/techne-env/bundle -set BUNDLES=%BUNDLEDIR%/bundle/aQute.fileinstall-1.0.jar;%BUNDLEDIR%/org.apache.felix.bundlerepository-0.9.0-incubator-SNAPSHOT.jar;%BUNDLEDIR%/org.apache.felix.http.jetty-0.8.0-SNAPSHOT.jar;%BUNDLEDIR%/org.apache.felix.log-0.9.0-incubator-SNAPSHOT.jar;%BUNDLEDIR%/org.apache.felix.scr-0.9.0-incubator-SNAPSHOT.jar;%BUNDLEDIR%/org.apache.felix.shell-0.9.0-incubator-SNAPSHOT.jar;%BUNDLEDIR%/org.apache.felix.shell.tui-0.9.0-incubator-SNAPSHOT.jar;%BUNDLEDIR%/org.osgi.compendium-0.9.0-incubator-SNAPSHOT.jar; -set CLASSPATH=../../org.digivitality.techne.shell/classes;../classes;../lib/commons-logging-1.0.4.jar;../lib/log4j-1.2.9.jar;%BUNDLES%;../../../tonit/techne-env/bin/techne.jar; +rd /S /Q "%USERPROFILE%\.felix" -java org.digivitality.techne.core.Main \ No newline at end of file +set BUNDLEDIR=../bundle +set PROPDIR=../conf +set BUNDLES=%BUNDLEDIR%/org.apache.felix.shell-0.8.0-SNAPSHOT.jar; +set CLASSPATH=../classes;../../org.digivitality.techne.shell/classes;../lib/felix.jar;../lib/commons-logging-1.0.4.jar;../lib/log4j-1.2.9.jar;%BUNDLES%;%PROPDIR%; +set DEBUG=-Xdebug -Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=y + +java -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M org.digivitality.techne.core.Main This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ri...@us...> - 2007-02-12 00:10:29
|
Revision: 34 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=34&view=rev Author: rickles Date: 2007-02-11 16:10:25 -0800 (Sun, 11 Feb 2007) Log Message: ----------- Added Paths: ----------- sandbox/rickles/org.digivitality.techne.core/bin/load/jl1.0.jar sandbox/rickles/org.digivitality.techne.core/bin/load/org.digivitality.techne.service-1.0.0.jar Added: sandbox/rickles/org.digivitality.techne.core/bin/load/jl1.0.jar =================================================================== (Binary files differ) Property changes on: sandbox/rickles/org.digivitality.techne.core/bin/load/jl1.0.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: sandbox/rickles/org.digivitality.techne.core/bin/load/org.digivitality.techne.service-1.0.0.jar =================================================================== (Binary files differ) Property changes on: sandbox/rickles/org.digivitality.techne.core/bin/load/org.digivitality.techne.service-1.0.0.jar ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ri...@us...> - 2007-02-05 06:04:23
|
Revision: 33 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=33&view=rev Author: rickles Date: 2007-02-04 22:04:18 -0800 (Sun, 04 Feb 2007) Log Message: ----------- Added Paths: ----------- sandbox/rickles/ sandbox/rickles/.metadata/ sandbox/rickles/.metadata/.lock sandbox/rickles/.metadata/.log sandbox/rickles/.metadata/.plugins/ sandbox/rickles/.metadata/.plugins/com.genuitec.eclipse.hibernate/ sandbox/rickles/.metadata/.plugins/com.genuitec.org.hibernate.eclipse/ sandbox/rickles/.metadata/.plugins/com.genuitec.org.hibernate.eclipse/hibernate-tools.log sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/1a/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/1a/a0b83f46d0b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/1d/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/1d/70c95af3c2b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/20/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/20/50ef4709d3b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/22/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/22/2070b200c6b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/25/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/25/f053e258cbb4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/29/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/29/40bd0308d8b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2a/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2a/008066f4b5b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2b/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2b/109e76fbcab4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2c/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2c/00d88df1cab4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2d/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2d/40e5075eceb4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/4a/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/4a/7029fdcfcab4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/4b/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/4b/10a0b0aedbb4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/4c/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/4c/00bd4b0aceb4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/4f/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/4f/608c95b6c6b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/5/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/5/7004992ed7b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/52/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/52/60f0ae2dc8b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/58/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/58/e0ea5fcbdbb4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/59/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/59/e0d63342dcb4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/60/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/60/40136d7ac4b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/60/90dcbb5dd8b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/69/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/69/90cc7b17d3b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/6d/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/6d/1000da7fc2b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/6f/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/6f/b0231c82c9b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/71/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/71/b0e7eb8bc2b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/75/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/75/a02e78c4c1b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/76/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/76/90aa65aac8b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/77/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/77/b0f207b0dbb4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/85/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/85/c08b54d4c1b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/87/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/87/f04af1e6cdb4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/88/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/88/e0ac1969ccb4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/8e/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/8e/500e3897c2b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/8e/e0c48a35c7b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/92/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/92/10c45919c2b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/93/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/93/00401d29d8b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/97/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/97/204412d8ceb4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/9b/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/9b/507215dccdb4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/a6/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/a6/e0c0fb98ceb4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/a8/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/a8/409cb133c0b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/b/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/b/40faf6a5d2b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/b1/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/b1/2010dc72d5b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/b1/a045a046c4b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/bc/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/bc/10d4cca7c4b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/c0/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/c0/c058ba13c8b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/c2/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/c2/e03706eecab4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/c6/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/c6/7019a4add8b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/c9/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/c9/d06c42a2c9b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/d8/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/d8/10484495d7b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/dc/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/dc/c0ed47edc6b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/df/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/df/e03d3199d0b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/e1/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/e1/b09f5c6cc8b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/e2/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/e2/30032ba8d0b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/e9/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/e9/3022e34fd9b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/e9/50d79dc6cdb4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/ea/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/ea/b03a26d4bfb4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/ed/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/ed/a09b2069d5b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/f8/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/f8/00bec094c8b4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/f9/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/f9/f0c4d193dab4001b17939113fd85b391 sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/.indexes/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/.indexes/7/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/.indexes/7/history.index sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/.indexes/7/properties.index sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/.indexes/e4/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/.indexes/e4/e4/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/.indexes/e4/e4/b7/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/.indexes/e4/e4/b7/33/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/.indexes/e4/e4/b7/33/9f/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/.indexes/e4/e4/b7/33/9f/history.index sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/.location sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/org.eclipse.jdt.apt.core/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/org.eclipse.jdt.core/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.core/org.eclipse.jdt.core/state.dat sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.shell/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.shell/.indexes/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.shell/.indexes/e4/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.shell/.indexes/e4/e4/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.shell/.indexes/e4/e4/b7/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.shell/.indexes/e4/e4/b7/33/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.shell/.indexes/e4/e4/b7/33/30/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.shell/.indexes/e4/e4/b7/33/30/history.index sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.shell/.indexes/f9/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.shell/.indexes/f9/properties.index sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.shell/.markers sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.shell/org.eclipse.jdt.apt.core/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.shell/org.eclipse.jdt.core/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.projects/org.digivitality.techne.shell/org.eclipse.jdt.core/state.dat sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.root/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.root/1.tree sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.safetable/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/ sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.bejy.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.core.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.geronimo1.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.jboss.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.jboss2.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.jboss3.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.jboss4.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.jetty.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.jetty4.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.jetty5.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.jonas.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.jonas3.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.jonas4.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.jrun.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.jrun4.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.oracle.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.oracle9.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.orion1.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.orion2.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.resin.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.resin2.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.resin3.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.sun.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.sun8.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.sun81.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.sun9.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.sunglassfish.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.tomcat.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.tomcat4.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.tomcat5.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.weblogic.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.weblogic6.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.weblogic7.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.weblogic8.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.weblogic9.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.websphere.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.websphere5.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.websphere6.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.easie.websphere61.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.hibernate.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.jsf.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.eclipse.wizards.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.genuitec.myeclipse.compatibility.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ant.ui.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.pde.core.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.pde.runtime.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.sse.core.prefs sandbox/rickles/.metadata/.plugins/org.eclipse.debug.core/ sandbox/rickles/.metadata/.plugins/org.eclipse.debug.core/.launches/ sandbox/rickles/.metadata/.plugins/org.eclipse.debug.core/.launches/Main.launch sandbox/rickles/.metadata/.plugins/org.eclipse.debug.core/.launches/org.digivitality.techne.shell build.xml.launch sandbox/rickles/.metadata/.plugins/org.eclipse.debug.ui/ sandbox/rickles/.metadata/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/ sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/1239581000.index sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/1305051092.index sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/154069024.index sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/1723460535.index sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/2120790465.index sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/2406531799.index sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/2759934896.index sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/2922006105.index sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/299543277.index sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/3147977932.index sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/3811763118.index sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/4105767024.index sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/552984418.index sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/724270911.index sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.launching/ sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.ui/ sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml sandbox/rickles/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml sandbox/rickles/.metadata/.plugins/org.eclipse.jst.jsf.core/ sandbox/rickles/.metadata/.plugins/org.eclipse.jst.jsf.core/JSFLibraryRegistry.xml sandbox/rickles/.metadata/.plugins/org.eclipse.pde.core/ sandbox/rickles/.metadata/.plugins/org.eclipse.pde.core/.cache/ sandbox/rickles/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties sandbox/rickles/.metadata/.plugins/org.eclipse.pde.core/1154251052012.target/ sandbox/rickles/.metadata/.plugins/org.eclipse.pde.core/1154251052012.target/.extensions sandbox/rickles/.metadata/.plugins/org.eclipse.pde.core/1154251052012.target/.lazy sandbox/rickles/.metadata/.plugins/org.eclipse.pde.core/1154251052012.target/.pluginInfo sandbox/rickles/.metadata/.plugins/org.eclipse.pde.core/1154251052012.target/.state sandbox/rickles/.metadata/.plugins/org.eclipse.pde.core/1171173370610.workspace/ sandbox/rickles/.metadata/.plugins/org.eclipse.pde.core/1171173370610.workspace/.extensions sandbox/rickles/.metadata/.plugins/org.eclipse.pde.core/1171173370610.workspace/.lazy sandbox/rickles/.metadata/.plugins/org.eclipse.pde.core/1171173370610.workspace/.pluginInfo sandbox/rickles/.metadata/.plugins/org.eclipse.pde.core/1171173370610.workspace/.state sandbox/rickles/.metadata/.plugins/org.eclipse.pde.runtime/ sandbox/rickles/.metadata/.plugins/org.eclipse.pde.runtime/dialog_settings.xml sandbox/rickles/.metadata/.plugins/org.eclipse.pde.ui/ sandbox/rickles/.metadata/.plugins/org.eclipse.pde.ui/dialog_settings.xml sandbox/rickles/.metadata/.plugins/org.eclipse.ui.ide/ sandbox/rickles/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml sandbox/rickles/.metadata/.plugins/org.eclipse.ui.intro/ sandbox/rickles/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml sandbox/rickles/.metadata/.plugins/org.eclipse.ui.workbench/ sandbox/rickles/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml sandbox/rickles/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml sandbox/rickles/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml sandbox/rickles/.metadata/.plugins/org.eclipse.wst.common.snippets/ sandbox/rickles/.metadata/.plugins/org.eclipse.wst.common.snippets/hidden.xml sandbox/rickles/.metadata/.plugins/org.eclipse.wst.common.snippets/user.xml sandbox/rickles/.metadata/.plugins/org.eclipse.wst.validation/ sandbox/rickles/.metadata/version.ini sandbox/rickles/org.digivitality.techne.core/ sandbox/rickles/org.digivitality.techne.core/.classpath sandbox/rickles/org.digivitality.techne.core/.project sandbox/rickles/org.digivitality.techne.core/bin/ sandbox/rickles/org.digivitality.techne.core/bin/load/ sandbox/rickles/org.digivitality.techne.core/bin/techne.bat sandbox/rickles/org.digivitality.techne.core/conf/ sandbox/rickles/org.digivitality.techne.core/conf/log4j.properties sandbox/rickles/org.digivitality.techne.core/kmnet.log sandbox/rickles/org.digivitality.techne.core/lib/ sandbox/rickles/org.digivitality.techne.core/lib/commons-logging-1.0.4.jar sandbox/rickles/org.digivitality.techne.core/lib/log4j-1.2.9.jar sandbox/rickles/org.digivitality.techne.core/log/ sandbox/rickles/org.digivitality.techne.core/log/techne.log sandbox/rickles/org.digivitality.techne.core/src/ sandbox/rickles/org.digivitality.techne.core/src/org/ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/Main.java sandbox/rickles/org.digivitality.techne.shell/ sandbox/rickles/org.digivitality.techne.shell/.classpath sandbox/rickles/org.digivitality.techne.shell/.project sandbox/rickles/org.digivitality.techne.shell/.settings/ sandbox/rickles/org.digivitality.techne.shell/.settings/org.eclipse.pde.core.prefs sandbox/rickles/org.digivitality.techne.shell/META-INF/ sandbox/rickles/org.digivitality.techne.shell/META-INF/MANIFEST.MF sandbox/rickles/org.digivitality.techne.shell/build.properties sandbox/rickles/org.digivitality.techne.shell/build.xml sandbox/rickles/org.digivitality.techne.shell/javaCompiler...args sandbox/rickles/org.digivitality.techne.shell/src/ sandbox/rickles/org.digivitality.techne.shell/src/org/ sandbox/rickles/org.digivitality.techne.shell/src/org/digivitality/ sandbox/rickles/org.digivitality.techne.shell/src/org/digivitality/techne/ sandbox/rickles/org.digivitality.techne.shell/src/org/digivitality/techne/shell/ sandbox/rickles/org.digivitality.techne.shell/src/org/digivitality/techne/shell/Activator.java sandbox/rickles/org.digivitality.techne.shell/src/org/digivitality/techne/shell/Shell.java Added: sandbox/rickles/.metadata/.lock =================================================================== Added: sandbox/rickles/.metadata/.log =================================================================== --- sandbox/rickles/.metadata/.log (rev 0) +++ sandbox/rickles/.metadata/.log 2007-02-05 06:04:18 UTC (rev 33) @@ -0,0 +1,42 @@ +!SESSION 2007-02-04 17:04:37.765 ----------------------------------------------- +eclipse.buildId=M20060628-1325 +java.version=1.5.0_07 +java.vendor=Sun Microsystems Inc. +BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US +Command-line arguments: -os win32 -ws win32 -arch x86 + +!ENTRY com.genuitec.eclipse.wizards 1 0 2007-02-04 17:05:40.031 +!MESSAGE Installed snippet library: C:\opt\myeclipse\myeclipse5.0\eclipse\plugins\com.genuitec.eclipse.wizards_5.0.0\snippets\css_snippets.xml + +!ENTRY com.genuitec.eclipse.wizards 1 0 2007-02-04 17:05:40.234 +!MESSAGE Installed snippet library: C:\opt\myeclipse\myeclipse5.0\eclipse\plugins\com.genuitec.eclipse.wizards_5.0.0\snippets\forms_lists_snippets.xml + +!ENTRY com.genuitec.eclipse.wizards 1 0 2007-02-04 17:05:40.296 +!MESSAGE Installed snippet library: C:\opt\myeclipse\myeclipse5.0\eclipse\plugins\com.genuitec.eclipse.wizards_5.0.0\snippets\htmlform_snippets.xml + +!ENTRY com.genuitec.eclipse.wizards 1 0 2007-02-04 17:05:40.375 +!MESSAGE Installed snippet library: C:\opt\myeclipse\myeclipse5.0\eclipse\plugins\com.genuitec.eclipse.wizards_5.0.0\snippets\html_snippets.xml + +!ENTRY com.genuitec.eclipse.wizards 1 0 2007-02-04 17:05:40.453 +!MESSAGE Installed snippet library: C:\opt\myeclipse\myeclipse5.0\eclipse\plugins\com.genuitec.eclipse.wizards_5.0.0\snippets\javascript_snippets.xml + +!ENTRY com.genuitec.eclipse.wizards 1 0 2007-02-04 17:05:40.531 +!MESSAGE Installed snippet library: C:\opt\myeclipse\myeclipse5.0\eclipse\plugins\com.genuitec.eclipse.wizards_5.0.0\snippets\jsf_f_snippets.xml + +!ENTRY com.genuitec.eclipse.wizards 1 0 2007-02-04 17:05:40.687 +!MESSAGE Installed snippet library: C:\opt\myeclipse\myeclipse5.0\eclipse\plugins\com.genuitec.eclipse.wizards_5.0.0\snippets\jsf_h_snippets.xml + +!ENTRY com.genuitec.eclipse.wizards 1 0 2007-02-04 17:05:40.828 +!MESSAGE Installed snippet library: C:\opt\myeclipse\myeclipse5.0\eclipse\plugins\com.genuitec.eclipse.wizards_5.0.0\snippets\struts_bean_snippets.xml + +!ENTRY com.genuitec.eclipse.wizards 1 0 2007-02-04 17:05:40.937 +!MESSAGE Installed snippet library: C:\opt\myeclipse\myeclipse5.0\eclipse\plugins\com.genuitec.eclipse.wizards_5.0.0\snippets\struts_html_snippets.xml + +!ENTRY com.genuitec.eclipse.wizards 1 0 2007-02-04 17:05:41.015 +!MESSAGE Installed snippet library: C:\opt\myeclipse\myeclipse5.0\eclipse\plugins\com.genuitec.eclipse.wizards_5.0.0\snippets\struts_logic_snippets.xml + +!ENTRY com.genuitec.eclipse.wizards 1 0 2007-02-04 17:05:41.093 +!MESSAGE Installed snippet library: C:\opt\myeclipse\myeclipse5.0\eclipse\plugins\com.genuitec.eclipse.wizards_5.0.0\snippets\struts_tiles_snippets.xml + +!ENTRY org.eclipse.jst.jsf.core 1 0 2007-02-04 17:12:36.265 +!MESSAGE Could not load JSF Library Registry; creating new registry Added: sandbox/rickles/.metadata/.plugins/com.genuitec.org.hibernate.eclipse/hibernate-tools.log =================================================================== Added: sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/1a/a0b83f46d0b4001b17939113fd85b391 =================================================================== --- sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/1a/a0b83f46d0b4001b17939113fd85b391 (rev 0) +++ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/1a/a0b83f46d0b4001b17939113fd85b391 2007-02-05 06:04:18 UTC (rev 33) @@ -0,0 +1,88 @@ +/** + * + */ +package org.digivitality.techne.shell; + +import java.io.*; +import java.text.*; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * This is intended to demonstrate the concept of a container shell. + * To set the framework, type 'set framework to Felix' on the command prompt. + * + * @author Rick Liton + * + */ +public class Shell { + + static boolean FRAMEWORK_SELECTED; + private String profile = "Peter"; + protected static final Log logger = LogFactory.getLog(Shell.class); + private boolean stopping = false; + + public void init() { + System.out.println("\n===============================================================================\n"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNNNNNNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNN NNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE\n"); + System.out.println(" WELCOME TO THE TECHNE SHELL!"); + System.out.println("===============================================================================\n\n"); + System.out.println("Your default profile is " + profile + "."); + System.out.println("Please select a framework by executing the `set framework to' command"); + System.out.println("or specify it in your techne.properties file.\n\n"); + execute(); + } + + public void execute() { + final Runnable shell = new Runnable() { + public void run() { + String line = null; + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + + while (!stopping) + { + System.out.print("techne> "); + + try { + line = in.readLine(); + } catch (IOException ex) { + System.err.println("Could not read input, please try again."); + continue; + } + + synchronized (Shell.this) + { + if (line == null) + { + continue; + } + + line = line.trim(); + + if (line.length() == 0) + { + continue; + } + + try { + //shell.executeCommand(line, System.out, System.err); + } catch (Exception ex) { + System.err.println("ERROR: " + ex); + ex.printStackTrace(); + } + } + } + } + }; + Thread t = new Thread(shell); + t.start(); + } +} Added: sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/1d/70c95af3c2b4001b17939113fd85b391 =================================================================== --- sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/1d/70c95af3c2b4001b17939113fd85b391 (rev 0) +++ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/1d/70c95af3c2b4001b17939113fd85b391 2007-02-05 06:04:18 UTC (rev 33) @@ -0,0 +1,35 @@ +/** + * + */ +package org.digivitality.techne.core; + +import org.apache.log4j.*; +/* the following will be used later */ +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import org.digivitality.techne.shell.*; + +/** + * Generic starter. + * + * @author Rick Litton + * + */ +public class Main { + + static Logger logger = Logger.getLogger(Main.class); + + /** + * @param args + */ + public static void main(String[] args) { + PropertyConfigurator.configure("conf/log4j.properties"); + logger.info("user.dir = " + System.getProperty("user.dir")); + System.getProperties().setProperty(Log.class.getName(), + Log4JLogger.class.getName()); + Shell container = new Shell(); + container.init(); + } + +} Added: sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/20/50ef4709d3b4001b17939113fd85b391 =================================================================== --- sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/20/50ef4709d3b4001b17939113fd85b391 (rev 0) +++ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/20/50ef4709d3b4001b17939113fd85b391 2007-02-05 06:04:18 UTC (rev 33) @@ -0,0 +1,101 @@ +/** + * + */ +package org.digivitality.techne.shell; + +import java.io.*; +import java.text.*; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * This is intended to demonstrate the concept of a container shell. + * To set the framework, type 'set framework to Felix' on the command prompt. + * + * @author Rick Liton + * + */ +public class Shell { + + static boolean FRAMEWORK_SELECTED; + private String profile = "Peter"; + protected static final Log logger = LogFactory.getLog(Shell.class); + private boolean stopping = false; + + public void init() { + System.out.println("\n===============================================================================\n"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNNNNNNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNN NNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE\n"); + System.out.println(" WELCOME TO THE TECHNE SHELL!"); + System.out.println("===============================================================================\n\n"); + System.out.println("Your default profile is " + profile + "."); + System.out.println("Please select a framework by executing the `set framework to' command"); + System.out.println("or specify it in your techne.properties file.\n\n"); + execute(); + } + + public void execute() { + final Runnable shell = new Runnable() { + public void run() { + String line = null; + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + + while (!stopping) + { + System.out.print("techne> "); + + try { + line = in.readLine(); + } catch (IOException ex) { + System.err.println("Could not read input, please try again."); + continue; + } + + synchronized (Shell.this) + { + if (line == null) + { + continue; + } + + line = line.trim(); + + if (line.length() == 0) + { + continue; + } + + try { + runCommand(line, System.out, System.err); + } catch (Exception ex) { + System.err.println("ERROR: " + ex); + ex.printStackTrace(); + } + } + } + } + + /* + * Will use Command pattern later on. + */ + public void runCommand(String line, PrintStream out, PrintStream err) { + + if (line.equals("set framework to Felix")) { + + } else if (line.equals("exit") || line.equals("quit") ) { + stopping = true; + System.exit(0); + } + } + }; + Thread t = new Thread(shell); + t.start(); + } +} Added: sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/22/2070b200c6b4001b17939113fd85b391 =================================================================== --- sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/22/2070b200c6b4001b17939113fd85b391 (rev 0) +++ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/22/2070b200c6b4001b17939113fd85b391 2007-02-05 06:04:18 UTC (rev 33) @@ -0,0 +1,25 @@ +/** + * + */ +package org.digivitality.techne.shell; + +/** + * @author Rick Liton + * + */ +public class Shell { + + public void init() { + System.out.println("\n===============================================================================\n"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNNNNNNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNN NNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE\n"); + System.out.println(" WELCOME TO THE TECHNE SHELL!"); + System.out.println("===============================================================================\n\n"); + } +} Added: sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/25/f053e258cbb4001b17939113fd85b391 =================================================================== --- sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/25/f053e258cbb4001b17939113fd85b391 (rev 0) +++ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/25/f053e258cbb4001b17939113fd85b391 2007-02-05 06:04:18 UTC (rev 33) @@ -0,0 +1,34 @@ +/** + * + */ +package org.digivitality.techne.shell; + +/** + * This is intended to demonstrate the concept of a container shell. + * + * @author Rick Liton + * + */ +public class Shell { + + static boolean FRAMEWORK_SELECTED; + private String profile = "Peter"; + + public void init() { + System.out.println("\n===============================================================================\n"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNNNNNNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNN NNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE\n"); + System.out.println(" WELCOME TO THE TECHNE SHELL!"); + System.out.println("===============================================================================\n\n"); + + System.out.println("Your default profile is " + profile + "."); + System.out.println("Please select a framework by executing the `set framework to' command"); + System.out.println("or specify it in your techne.properties file.\n\n"); + } +} Added: sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/29/40bd0308d8b4001b17939113fd85b391 =================================================================== --- sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/29/40bd0308d8b4001b17939113fd85b391 (rev 0) +++ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/29/40bd0308d8b4001b17939113fd85b391 2007-02-05 06:04:18 UTC (rev 33) @@ -0,0 +1,126 @@ +/** + * + */ +package org.digivitality.techne.shell; + +import java.io.*; +import java.text.*; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import techne.launch.*; + +/** + * This is intended to demonstrate the concept of a container shell. + * To set the framework, type 'set framework to Felix' on the command prompt. + * + * @author Rick Liton + * + */ +public class Shell { + + static boolean FRAMEWORK_SET; + private String profile = "Peter"; + protected static final Log logger = LogFactory.getLog(Shell.class); + private boolean stopping = false; + Thread techneThread; + Thread frameworkThread; + + public void init() { + System.out.println("\n===============================================================================\n"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNNNNNNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNN NNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE\n"); + System.out.println(" WELCOME TO THE TECHNE SHELL!"); + System.out.println("===============================================================================\n\n"); + System.out.println("Your default profile is " + profile + "."); + System.out.println("Please select a framework by executing the `set framework to' command"); + System.out.println("or specify it in your techne.properties file.\n\n"); + execute(); + } + + public void execute() { + final Runnable shell = new Runnable() { + public void run() { + String line = null; + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + + while (!stopping) + { + System.out.print("techne> "); + + try { + line = in.readLine(); + } catch (IOException ex) { + System.err.println("Could not read input, please try again."); + continue; + } + + synchronized (Shell.this) + { + if (line == null) + { + continue; + } + + line = line.trim(); + + if (line.length() == 0) + { + continue; + } + + try { + runCommand(line, System.out, System.err); + } catch (Exception ex) { + System.err.println("ERROR: " + ex); + ex.printStackTrace(); + } + } + } + } + + /* + * Will use Command pattern later on. + */ + public void runCommand(String line, PrintStream out, PrintStream err) { + + if (line.equals("set framework to Felix")) { + if (FRAMEWORK_SET) { + out.print("Framework has already been set to Felix\n"); + } else { + + } + } else if (line.equals("exit") || line.equals("quit") ) { + stopping = true; + System.exit(0); + } else { + out.print("Unsupported command. Please try another command.\n"); + } + } + }; + Thread techneThread = new Thread(shell); + techneThread.start(); + } + + private class FelixFrameworkThread { + public void start() { + final Runnable shell = new Runnable() { + public void run() { + TechneLauncher launcher = new TechneLauncher(null); + try { + launcher.main(null); + } catch (Exception e) { + e.printStackTrace(); + } + } + }; + } + } +} Added: sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2a/008066f4b5b4001b17939113fd85b391 =================================================================== --- sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2a/008066f4b5b4001b17939113fd85b391 (rev 0) +++ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2a/008066f4b5b4001b17939113fd85b391 2007-02-05 06:04:18 UTC (rev 33) @@ -0,0 +1,22 @@ +package org.digivitality.techne.shell; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class Activator implements BundleActivator { + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + } + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + } + +} Added: sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2b/109e76fbcab4001b17939113fd85b391 =================================================================== --- sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2b/109e76fbcab4001b17939113fd85b391 (rev 0) +++ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2b/109e76fbcab4001b17939113fd85b391 2007-02-05 06:04:18 UTC (rev 33) @@ -0,0 +1,34 @@ +/** + * + */ +package org.digivitality.techne.shell; + +/** + * This is intended to demonstrate the concept of a container shell. + * + * @author Rick Liton + * + */ +public class Shell { + + static boolean FRAMEWORK_SELECTED; + private String profile = "Peter"; + + public void init() { + System.out.println("\n===============================================================================\n"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNNNNNNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNN NNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE\n"); + System.out.println(" WELCOME TO THE TECHNE SHELL!"); + System.out.println("===============================================================================\n\n"); + + System.out.println("Your default profile is " + profile + "."); + System.out.println("Please select a framework by executing the `set framework to' command"); + System.out.println(" or specify it in your techne.properties file.\n\n"); + } +} Added: sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2c/00d88df1cab4001b17939113fd85b391 =================================================================== --- sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2c/00d88df1cab4001b17939113fd85b391 (rev 0) +++ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2c/00d88df1cab4001b17939113fd85b391 2007-02-05 06:04:18 UTC (rev 33) @@ -0,0 +1,34 @@ +/** + * + */ +package org.digivitality.techne.shell; + +/** + * This is intended to demonstrate the concept of a container shell. + * + * @author Rick Liton + * + */ +public class Shell { + + static boolean FRAMEWORK_SELECTED; + private String profile = "Peter"; + + public void init() { + System.out.println("\n===============================================================================\n"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNNNNNNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNN NNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE\n"); + System.out.println(" WELCOME TO THE TECHNE SHELL!"); + System.out.println("===============================================================================\n\n"); + + System.out.println("Your default profile is " + profile + "."); + System.out.println("Please select a framework by executing the `set framework to' command"); + System.out.println(" or specify it in your techne.properties file.\n\n"); + } +} Added: sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2d/40e5075eceb4001b17939113fd85b391 =================================================================== --- sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2d/40e5075eceb4001b17939113fd85b391 (rev 0) +++ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/2d/40e5075eceb4001b17939113fd85b391 2007-02-05 06:04:18 UTC (rev 33) @@ -0,0 +1,86 @@ +/** + * + */ +package org.digivitality.techne.shell; + +import java.io.*; +import java.text.*; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * This is intended to demonstrate the concept of a container shell. + * + * @author Rick Liton + * + */ +public class Shell { + + static boolean FRAMEWORK_SELECTED; + private String profile = "Peter"; + protected static final Log logger = LogFactory.getLog(Shell.class); + private boolean stopping = false; + + public void init() { + System.out.println("\n===============================================================================\n"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTTTTTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNNNNNNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEEEEE CCCCC HHHHHHHHHHHH NNNNN NNNNN EEEEEEEE"); + System.out.println(" TTTTT EEEEE CCCCC HHHHH HHHHH NNNNN NNNNN EEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE"); + System.out.println(" TTTTT EEEEEEEEE CCCCCCCCCC HHHHH HHHHH NNNNN NNNNN EEEEEEEEE\n"); + System.out.println(" WELCOME TO THE TECHNE SHELL!"); + System.out.println("===============================================================================\n\n"); + System.out.println("Your default profile is " + profile + "."); + System.out.println("Please select a framework by executing the `set framework to' command"); + System.out.println("or specify it in your techne.properties file.\n\n"); + execute(); + } + + public void execute() { + System.out.println("I am here"); + final Runnable shell = new Runnable() { + public void run() { + String line = null; + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + + while (!stopping) + { + System.out.print("techne> "); + + try { + line = in.readLine(); + } catch (IOException ex) { + System.err.println("Could not read input, please try again."); + continue; + } + + synchronized (Shell.this) + { + if (line == null) + { + continue; + } + + line = line.trim(); + + if (line.length() == 0) + { + continue; + } + + try { + //shell.executeCommand(line, System.out, System.err); + } catch (Exception ex) { + System.err.println("ERROR: " + ex); + ex.printStackTrace(); + } + } + } + } + }; + } +} Added: sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/4a/7029fdcfcab4001b17939113fd85b391 =================================================================== --- sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/4a/7029fdcfcab4001b17939113fd85b391 (rev 0) +++ sandbox/rickles/.metadata/.plugins/org.eclipse.core.resources/.history/4a/7029fdcfcab4001b17939113fd85b391 2007-02-05 06:04:18 UTC (rev 33) @@ -0,0 +1,34 @@ +/** + * + */ +package org.digivitality.techne.shell; + +/** + * This is intended to demonstrate the concept of a container shell. + * + * @author Rick Liton + * + */ +public class Shell { + + static bo... [truncated message content] |
From: <to...@us...> - 2007-01-31 19:23:10
|
Revision: 32 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=32&view=rev Author: tonit Date: 2007-01-31 11:23:04 -0800 (Wed, 31 Jan 2007) Log Message: ----------- removed cacheprofilename questionaire.. Modified Paths: -------------- sandbox/tonit/techne.launch/resources/META-INF/MANIFEST.MF sandbox/tonit/techne.launch/src/techne/launch/TechneLauncher.java sandbox/tonit/techne.launch/src/techne/launch/felix/FelixFrameworkLauncher.java Modified: sandbox/tonit/techne.launch/resources/META-INF/MANIFEST.MF =================================================================== --- sandbox/tonit/techne.launch/resources/META-INF/MANIFEST.MF 2007-01-31 19:21:51 UTC (rev 31) +++ sandbox/tonit/techne.launch/resources/META-INF/MANIFEST.MF 2007-01-31 19:23:04 UTC (rev 32) @@ -1,4 +1,4 @@ Manifest-Version: 1 -Main-Class: techne.launch.main.Main +Main-Class: techne.launch.TechneLauncher Created-By: Toni Class-Path: . ../lib/org.apache.felix.framework-0.9.0-incubator-SNAPSHOT.jar \ No newline at end of file Modified: sandbox/tonit/techne.launch/src/techne/launch/TechneLauncher.java =================================================================== --- sandbox/tonit/techne.launch/src/techne/launch/TechneLauncher.java 2007-01-31 19:21:51 UTC (rev 31) +++ sandbox/tonit/techne.launch/src/techne/launch/TechneLauncher.java 2007-01-31 19:23:04 UTC (rev 32) @@ -18,57 +18,36 @@ */ package techne.launch; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.MalformedURLException; -import java.net.URL; -import java.security.AccessController; -import java.security.KeyStore; -import java.security.PrivilegedAction; -import java.util.AbstractCollection; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.StringTokenizer; - /** * @author Toni Menzel, based currently on apache frelix main module - * <p> - * This class is going to be an osgi R4 framwwork independent framework launcher - * </p> -**/ -public class TechneLauncher -{ + * <p> + * This class is going to be an osgi R4 framwwork independent framework + * launcher + * </p> + */ +public class TechneLauncher { private String[] argv; - - public TechneLauncher(String[] argv) { + + public TechneLauncher(String[] argv) { this.argv = argv; } - public static void main(String[] argv) throws Exception - { - TechneLauncher launcher = new TechneLauncher(argv); - launcher.start(); - } + public static void main(String[] argv) throws Exception { + TechneLauncher launcher = new TechneLauncher(argv); + launcher.start(); + } - private void start() { - System.out.println("\nWelcome to Techne Runtime"); - System.out.println("============================\n"); - // just go for felix now - try { - FrameworkLauncher launch = (FrameworkLauncher)Class.forName("techne.launch.felix.FelixFrameworkLauncher").newInstance(); + private void start() { + System.out.println("\nWelcome to Techne Runtime"); + System.out.println("============================\n"); + // just go for felix now + try { + System.out.println("loading (default) felix as framework.."); + FrameworkLauncher launch = (FrameworkLauncher) Class.forName( + "techne.launch.felix.FelixFrameworkLauncher").newInstance(); launch.init(argv); launch.launch(); - } catch (InstantiationException e) { + } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { Modified: sandbox/tonit/techne.launch/src/techne/launch/felix/FelixFrameworkLauncher.java =================================================================== --- sandbox/tonit/techne.launch/src/techne/launch/felix/FelixFrameworkLauncher.java 2007-01-31 19:21:51 UTC (rev 31) +++ sandbox/tonit/techne.launch/src/techne/launch/felix/FelixFrameworkLauncher.java 2007-01-31 19:23:04 UTC (rev 32) @@ -1,12 +1,10 @@ package techne.launch.felix; -import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.security.AccessController; @@ -29,649 +27,482 @@ import techne.launch.FrameworkLauncher; -public class FelixFrameworkLauncher implements FrameworkLauncher{ - /** - * The system property name used to specify an URL to the system - * property file. - **/ - public static final String SYSTEM_PROPERTIES_PROP = "felix.system.properties"; - /** - * The default name used for the system properties file. - **/ - public static final String SYSTEM_PROPERTIES_FILE_VALUE = "system.properties"; - /** - * The system property name used to specify an URL to the configuration - * property file to be used for the created the framework instance. - **/ - public static final String CONFIG_PROPERTIES_PROP = "felix.config.properties"; - /** - * The default name used for the configuration properties file. - **/ - public static final String CONFIG_PROPERTIES_FILE_VALUE = "config.properties"; +public class FelixFrameworkLauncher implements FrameworkLauncher { + /** + * The system property name used to specify an URL to the system property + * file. + */ + public static final String SYSTEM_PROPERTIES_PROP = "felix.system.properties"; + /** + * The default name used for the system properties file. + */ + public static final String SYSTEM_PROPERTIES_FILE_VALUE = "system.properties"; + /** + * The system property name used to specify an URL to the configuration + * property file to be used for the created the framework instance. + */ + public static final String CONFIG_PROPERTIES_PROP = "felix.config.properties"; + /** + * The default name used for the configuration properties file. + */ + public static final String CONFIG_PROPERTIES_FILE_VALUE = "config.properties"; - public static final String KEYSTORE_FILE_PROP = "felix.keystore"; + public static final String KEYSTORE_FILE_PROP = "felix.keystore"; - public static final String KEYSTORE_FILE_VALUE = System.getProperty("java.home") + - File.separatorChar + "lib" + File.separatorChar + "security" + - File.separatorChar + "cacerts" + File.pathSeparatorChar + System.getProperty("user.home") + - File.separatorChar + ".keystore"; + public static final String KEYSTORE_FILE_VALUE = System + .getProperty("java.home") + + File.separatorChar + + "lib" + + File.separatorChar + + "security" + + File.separatorChar + + "cacerts" + + File.pathSeparatorChar + + System.getProperty("user.home") + + File.separatorChar + + ".keystore"; - public static final String KEYSTORE_TYPE_PROP = "felix.keystore.type"; + public static final String KEYSTORE_TYPE_PROP = "felix.keystore.type"; - public static final String KEYSTORE_TYPE_VALUE = "JKS" + File.pathSeparatorChar + "JKS"; + public static final String KEYSTORE_TYPE_VALUE = "JKS" + + File.pathSeparatorChar + "JKS"; - public static final String KEYSTORE_PASS_PROP = "felix.keystore.pass"; + public static final String KEYSTORE_PASS_PROP = "felix.keystore.pass"; - public static final String KEYSTORE_PASS_VALUE = "changeit" + File.pathSeparatorChar + "changeit"; + public static final String KEYSTORE_PASS_VALUE = "changeit" + + File.pathSeparatorChar + "changeit"; - private static Felix m_felix = null; + private static Felix m_felix = null; private String[] argv; - /** - * <p> - * This method performs the main task of constructing an framework instance - * and starting its execution. The following functions are performed - * when invoked: - * </p> - * <ol> - * <li><i><b>Read the system properties file.<b></i> This is a file - * containing properties to be pushed into <tt>System.setProperty()</tt> - * before starting the framework. This mechanism is mainly shorthand - * for people starting the framework from the command line to avoid having - * to specify a bunch of <tt>-D</tt> system property definitions. - * The only properties defined in this file that will impact the framework's - * behavior are the those concerning setting HTTP proxies, such as - * <tt>http.proxyHost</tt>, <tt>http.proxyPort</tt>, and - * <tt>http.proxyAuth</tt>. - * </li> - * <li><i><b>Perform system property variable substitution on system - * properties.</b></i> Any system properties in the system property - * file whose value adheres to <tt>${<system-prop-name>}</tt> - * syntax will have their value substituted with the appropriate - * system property value. - * </li> - * <li><i><b>Read the framework's configuration property file.</b></i> This is - * a file containing properties used to configure the framework - * instance and to pass configuration information into - * bundles installed into the framework instance. The configuration - * property file is called <tt>config.properties</tt> by default - * and is located in the same directory as the <tt>felix.jar</tt> - * file, which is typically in the <tt>lib/</tt> directory of the - * Felix installation directory. It is possible to use a different - * location for the property file by specifying the desired URL - * using the <tt>felix.config.properties</tt> system property; - * this should be set using the <tt>-D</tt> syntax when executing - * the JVM. Refer to the - * <a href="Felix.html#start(org.apache.felix.framework.util.MutablePropertyResolver, org.apache.felix.framework.util.MutablePropertyResolver, java.util.List)"> - * <tt>Felix.start()</tt></a> method documentation for more - * information on the framework configuration options. - * </li> - * <li><i><b>Perform system property variable substitution on configuration - * properties.</b></i> Any configuration properties whose value adheres to - * <tt>${<system-prop-name>}</tt> syntax will have their value - * substituted with the appropriate system property value. - * </li> - * <li><i><b>Ensure the default bundle cache has sufficient information to - * initialize.</b></i> The default implementation of the bundle cache - * requires either a profile name or a profile directory in order to - * start. The configuration properties are checked for at least one - * of the <tt>felix.cache.profile</tt> or <tt>felix.cache.profiledir</tt> - * properties. If neither is found, the user is asked to supply a profile - * name that is added to the configuration property set. See the - * <a href="cache/DefaultBundleCache.html"><tt>DefaultBundleCache</tt></a> - * documentation for more details its configuration options. - * </li> - * <li><i><b>Creates and starts a framework instance.</b></i> A simple - * <a href="util/MutablePropertyResolver.html"><tt>MutablePropertyResolver</tt></a> - * is created for the configuration property file and is passed - * into the framework when it is started. - * </li> - * </ol> - * <p> - * It should be noted that simply starting an instance of the framework is not enough - * to create an interactive session with it. It is necessary to install - * and start bundles that provide an interactive impl; this is generally - * done by specifying an "auto-start" property in the framework configuration - * property file. If no interactive impl bundles are installed or if - * the configuration property file cannot be found, the framework will appear to - * be hung or deadlocked. This is not the case, it is executing correctly, - * there is just no way to interact with it. Refer to the - * <a href="Felix.html#start(org.apache.felix.framework.util.MutablePropertyResolver, org.apache.felix.framework.util.MutablePropertyResolver, java.util.List)"> - * <tt>Felix.start()</tt></a> method documentation for more information on - * framework configuration options. - * </p> - * @param argv An array of arguments, all of which are ignored. - * @throws Exception If an error occurs. - **/ - public FelixFrameworkLauncher() throws Exception - { - - } - public void launch() { - FelixFrameworkLauncher.loadSystemProperties(); + public FelixFrameworkLauncher() throws Exception { - // Read configuration properties. - Properties configProps = FelixFrameworkLauncher.loadConfigProperties(); + } - // See if the profile name property was specified. - String profileName = configProps.getProperty(BundleCache.CACHE_PROFILE_PROP); + public void launch() { + FelixFrameworkLauncher.loadSystemProperties(); + try { + Properties configProps = FelixFrameworkLauncher + .loadConfigProperties(); + System.out + .println("keep in mind felix caches at (user.dir)/.felix/" + + configProps + .getProperty(BundleCache.CACHE_PROFILE_PROP)); + m_felix = new Felix(); + m_felix.start(new MutablePropertyResolverImpl(new StringMap( + configProps, false)), null, + (System.getSecurityManager() == null) ? null + : new TrustManager(configProps)); + System.out.println("felix done"); + } catch (Exception ex) { + System.err.println("Could not create framework: " + ex); + ex.printStackTrace(); + System.exit(-1); + } - // See if the profile directory property was specified. - String profileDirName = configProps.getProperty(BundleCache.CACHE_PROFILE_DIR_PROP); + } - // If no profile or profile directory is specified in the - // properties, then ask for a profile name. - if ((profileName == null) && (profileDirName == null)) - { - System.out.print("Enter profile name: "); - BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); - try - { - profileName = in.readLine(); - } - catch (IOException ex) - { - System.err.println("Could not read input."); - System.exit(-1); - } - /** - * @author tmenzel: we may got null from in.readline() - */ - if (profileName == null) profileName = ""; - - System.out.println(""); - if ( profileName.length() != 0) - { - configProps.setProperty(BundleCache.CACHE_PROFILE_PROP, profileName); - } - } + public void init(String[] argv) { + this.argv = argv; + } - // A profile directory or name must be specified. - if ((profileDirName == null) && (profileName.length() == 0)) - { - System.err.println("You must specify a profile name or directory."); - System.exit(-1); - } + /** + * <p> + * Loads the properties in the system property file associated with the + * framework installation into <tt>System.setProperty()</tt>. These + * properties are not directly used by the framework in anyway. By default, + * the system property file is located in the <tt>conf/</tt> directory of + * the Felix installation directory and is called "<tt>system.properties</tt>". + * The installation directory of Felix is assumed to be the parent directory + * of the <tt>felix.jar</tt> file as found on the system class path + * property. The precise file from which to load system properties can be + * set by initializing the "<tt>felix.system.properties</tt>" system + * property to an arbitrary URL. + * </p> + */ + public static void loadSystemProperties() { + // The system properties file is either specified by a system + // property or it is in the same directory as the Felix JAR file. + // Try to load it from one of these places. - try - { - // Now create an instance of the framework. - System.out.println("Thank you, now creating felix framework instance.."); - m_felix = new Felix(); - m_felix.start( - new MutablePropertyResolverImpl(new StringMap(configProps, false)), - null, (System.getSecurityManager() == null) ? null : new TrustManager(configProps)); - System.out.println("felix done"); - } - catch (Exception ex) - { - System.err.println("Could not create framework: " + ex); - ex.printStackTrace(); - System.exit(-1); - } + // See if the property URL was specified as a property. + URL propURL = null; + String custom = System.getProperty(SYSTEM_PROPERTIES_PROP); + if (custom != null) { + try { + propURL = new URL(custom); + } catch (MalformedURLException ex) { + System.err.print("Main: " + ex); + return; + } + } else { + // Determine where the configuration directory is by figuring + // out where felix.jar is located on the system class path. + File confDir = null; + String classpath = System.getProperty("java.class.path"); + int index = classpath.toLowerCase().indexOf("techne.jar"); + int start = classpath.lastIndexOf(File.pathSeparator, index) + 1; + if (index > start) { + String jarLocation = classpath.substring(start, index); + if (jarLocation.length() == 0) { + jarLocation = "."; + } + confDir = new File(new File(jarLocation).getParent(), "conf"); + } else { + // Can't figure it out so use the current directory as default. + confDir = new File(System.getProperty("user.dir")); + } - } - - public void init(String[] argv) - { - this.argv = argv; - } - - - /** - * <p> - * Loads the properties in the system property file associated with the - * framework installation into <tt>System.setProperty()</tt>. These properties - * are not directly used by the framework in anyway. By default, the system - * property file is located in the <tt>conf/</tt> directory of the Felix - * installation directory and is called "<tt>system.properties</tt>". The - * installation directory of Felix is assumed to be the parent directory of - * the <tt>felix.jar</tt> file as found on the system class path property. - * The precise file from which to load system properties can be set by - * initializing the "<tt>felix.system.properties</tt>" system property to an - * arbitrary URL. - * </p> - **/ - public static void loadSystemProperties() - { - // The system properties file is either specified by a system - // property or it is in the same directory as the Felix JAR file. - // Try to load it from one of these places. + try { + propURL = new File(confDir, SYSTEM_PROPERTIES_FILE_VALUE) + .toURL(); + } catch (MalformedURLException ex) { + System.err.print("Main: " + ex); + return; + } + } - // See if the property URL was specified as a property. - URL propURL = null; - String custom = System.getProperty(SYSTEM_PROPERTIES_PROP); - if (custom != null) - { - try - { - propURL = new URL(custom); - } - catch (MalformedURLException ex) - { - System.err.print("Main: " + ex); - return; - } - } - else - { - // Determine where the configuration directory is by figuring - // out where felix.jar is located on the system class path. - File confDir = null; - String classpath = System.getProperty("java.class.path"); - int index = classpath.toLowerCase().indexOf("techne.jar"); - int start = classpath.lastIndexOf(File.pathSeparator, index) + 1; - if (index > start) - { - String jarLocation = classpath.substring(start, index); - if (jarLocation.length() == 0) - { - jarLocation = "."; - } - confDir = new File(new File(jarLocation).getParent(), "conf"); - } - else - { - // Can't figure it out so use the current directory as default. - confDir = new File(System.getProperty("user.dir")); - } + // Read the properties file. + Properties props = new Properties(); + InputStream is = null; + try { + is = propURL.openConnection().getInputStream(); + props.load(is); + is.close(); + } catch (FileNotFoundException ex) { + // Ignore file not found. + } catch (Exception ex) { + System.err.println("Main: Error loading system properties from " + + propURL); + System.err.println("Main: " + ex); + try { + if (is != null) + is.close(); + } catch (IOException ex2) { + // Nothing we can do. + } + return; + } - try - { - propURL = new File(confDir, SYSTEM_PROPERTIES_FILE_VALUE).toURL(); - } - catch (MalformedURLException ex) - { - System.err.print("Main: " + ex); - return; - } - } + // Perform variable substitution on specified properties. + for (Enumeration e = props.propertyNames(); e.hasMoreElements();) { + String name = (String) e.nextElement(); + System.setProperty(name, substVars(props.getProperty(name), name, + null, null)); + } + } - // Read the properties file. - Properties props = new Properties(); - InputStream is = null; - try - { - is = propURL.openConnection().getInputStream(); - props.load(is); - is.close(); - } - catch (FileNotFoundException ex) - { - // Ignore file not found. - } - catch (Exception ex) - { - System.err.println( - "Main: Error loading system properties from " + propURL); - System.err.println("Main: " + ex); - try - { - if (is != null) is.close(); - } - catch (IOException ex2) - { - // Nothing we can do. - } - return; - } + /** + * <p> + * Loads the configuration properties in the configuration property file + * associated with the framework installation; these properties are + * accessible to the framework and to bundles and are intended for + * configuration purposes. By default, the configuration property file is + * located in the <tt>conf/</tt> directory of the Felix installation + * directory and is called "<tt>config.properties</tt>". The + * installation directory of Felix is assumed to be the parent directory of + * the <tt>felix.jar</tt> file as found on the system class path property. + * The precise file from which to load configuration properties can be set + * by initializing the "<tt>felix.config.properties</tt>" system + * property to an arbitrary URL. + * </p> + * + * @return A <tt>Properties</tt> instance or <tt>null</tt> if there was + * an error. + */ + public static Properties loadConfigProperties() { + // The config properties file is either specified by a system + // property or it is in the same directory as the Felix JAR file. + // Try to load it from one of these places. - // Perform variable substitution on specified properties. - for (Enumeration e = props.propertyNames(); e.hasMoreElements(); ) - { - String name = (String) e.nextElement(); - System.setProperty(name, - substVars(props.getProperty(name), name, null, null)); - } - } + // See if the property URL was specified as a property. + URL propURL = null; + String custom = System.getProperty(CONFIG_PROPERTIES_PROP); + if (custom != null) { + try { + propURL = new URL(custom); + } catch (MalformedURLException ex) { + System.err.print("Main: " + ex); + return null; + } + } else { + // Determine where the configuration directory is by figuring + // out where felix.jar is located on the system class path. + File confDir = null; + String classpath = System.getProperty("java.class.path"); + int index = classpath.toLowerCase().indexOf("techne.jar"); + int start = classpath.lastIndexOf(File.pathSeparator, index) + 1; + if (index > start) { + String jarLocation = classpath.substring(start, index); + if (jarLocation.length() == 0) { + jarLocation = "."; + } + confDir = new File(new File(jarLocation).getParent(), "conf"); + } else { + // Can't figure it out so use the current directory as default. + confDir = new File(System.getProperty("user.dir")); + } - /** - * <p> - * Loads the configuration properties in the configuration property file - * associated with the framework installation; these properties - * are accessible to the framework and to bundles and are intended - * for configuration purposes. By default, the configuration property - * file is located in the <tt>conf/</tt> directory of the Felix - * installation directory and is called "<tt>config.properties</tt>". - * The installation directory of Felix is assumed to be the parent - * directory of the <tt>felix.jar</tt> file as found on the system class - * path property. The precise file from which to load configuration - * properties can be set by initializing the "<tt>felix.config.properties</tt>" - * system property to an arbitrary URL. - * </p> - * @return A <tt>Properties</tt> instance or <tt>null</tt> if there was an error. - **/ - public static Properties loadConfigProperties() - { - // The config properties file is either specified by a system - // property or it is in the same directory as the Felix JAR file. - // Try to load it from one of these places. + try { + propURL = new File(confDir, CONFIG_PROPERTIES_FILE_VALUE) + .toURL(); + } catch (MalformedURLException ex) { + System.err.print("Main: " + ex); + return null; + } + } - // See if the property URL was specified as a property. - URL propURL = null; - String custom = System.getProperty(CONFIG_PROPERTIES_PROP); - if (custom != null) - { - try - { - propURL = new URL(custom); - } - catch (MalformedURLException ex) - { - System.err.print("Main: " + ex); - return null; - } - } - else - { - // Determine where the configuration directory is by figuring - // out where felix.jar is located on the system class path. - File confDir = null; - String classpath = System.getProperty("java.class.path"); - int index = classpath.toLowerCase().indexOf("techne.jar"); - int start = classpath.lastIndexOf(File.pathSeparator, index) + 1; - if (index > start) - { - String jarLocation = classpath.substring(start, index); - if (jarLocation.length() == 0) - { - jarLocation = "."; - } - confDir = new File(new File(jarLocation).getParent(), "conf"); - } - else - { - // Can't figure it out so use the current directory as default. - confDir = new File(System.getProperty("user.dir")); - } + // Read the properties file. + Properties props = new Properties(); + InputStream is = null; + try { + is = propURL.openConnection().getInputStream(); + props.load(is); + is.close(); + } catch (FileNotFoundException ex) { + // Ignore file not found. + } catch (Exception ex) { + System.err.println("Error loading config properties from " + + propURL); + System.err.println("Main: " + ex); + try { + if (is != null) + is.close(); + } catch (IOException ex2) { + // Nothing we can do. + } + return null; + } - try - { - propURL = new File(confDir, CONFIG_PROPERTIES_FILE_VALUE).toURL(); - } - catch (MalformedURLException ex) - { - System.err.print("Main: " + ex); - return null; - } - } + // Perform variable substitution for system properties. + for (Enumeration e = props.propertyNames(); e.hasMoreElements();) { + String name = (String) e.nextElement(); + props.setProperty(name, substVars(props.getProperty(name), name, + null, props)); + } - // Read the properties file. - Properties props = new Properties(); - InputStream is = null; - try - { - is = propURL.openConnection().getInputStream(); - props.load(is); - is.close(); - } - catch (FileNotFoundException ex) - { - // Ignore file not found. - } - catch (Exception ex) - { - System.err.println( - "Error loading config properties from " + propURL); - System.err.println("Main: " + ex); - try - { - if (is != null) is.close(); - } - catch (IOException ex2) - { - // Nothing we can do. - } - return null; - } + return props; + } - // Perform variable substitution for system properties. - for (Enumeration e = props.propertyNames(); e.hasMoreElements(); ) - { - String name = (String) e.nextElement(); - props.setProperty(name, - substVars(props.getProperty(name), name, null, props)); - } + private static final String DELIM_START = "${"; + private static final String DELIM_STOP = "}"; - return props; - } + /** + * <p> + * This method performs property variable substitution on the specified + * value. If the specified value contains the syntax + * <tt>${<prop-name>}</tt>, where <tt><prop-name></tt> + * refers to either a configuration property or a system property, then the + * corresponding property value is substituted for the variable placeholder. + * Multiple variable placeholders may exist in the specified value as well + * as nested variable placeholders, which are substituted from inner most to + * outer most. Configuration properties override system properties. + * </p> + * + * @param val + * The string on which to perform property substitution. + * @param currentKey + * The key of the property being evaluated used to detect cycles. + * @param cycleMap + * Map of variable references used to detect nested cycles. + * @param configProps + * Set of configuration properties. + * @return The value of the specified string after system property + * substitution. + * @throws IllegalArgumentException + * If there was a syntax error in the property placeholder + * syntax or a recursive variable reference. + */ + public static String substVars(String val, String currentKey, Map cycleMap, + Properties configProps) throws IllegalArgumentException { + // If there is currently no cycle map, then create + // one for detecting cycles for this invocation. + if (cycleMap == null) { + cycleMap = new HashMap(); + } - private static final String DELIM_START = "${"; - private static final String DELIM_STOP = "}"; + // Put the current key in the cycle map. + cycleMap.put(currentKey, currentKey); - /** - * <p> - * This method performs property variable substitution on the - * specified value. If the specified value contains the syntax - * <tt>${<prop-name>}</tt>, where <tt><prop-name></tt> - * refers to either a configuration property or a system property, - * then the corresponding property value is substituted for the variable - * placeholder. Multiple variable placeholders may exist in the - * specified value as well as nested variable placeholders, which - * are substituted from inner most to outer most. Configuration - * properties override system properties. - * </p> - * @param val The string on which to perform property substitution. - * @param currentKey The key of the property being evaluated used to - * detect cycles. - * @param cycleMap Map of variable references used to detect nested cycles. - * @param configProps Set of configuration properties. - * @return The value of the specified string after system property substitution. - * @throws IllegalArgumentException If there was a syntax error in the - * property placeholder syntax or a recursive variable reference. - **/ - public static String substVars(String val, String currentKey, - Map cycleMap, Properties configProps) - throws IllegalArgumentException - { - // If there is currently no cycle map, then create - // one for detecting cycles for this invocation. - if (cycleMap == null) - { - cycleMap = new HashMap(); - } + // Assume we have a value that is something like: + // "leading ${foo.${bar}} middle ${baz} trailing" - // Put the current key in the cycle map. - cycleMap.put(currentKey, currentKey); + // Find the first ending '}' variable delimiter, which + // will correspond to the first deepest nested variable + // placeholder. + int stopDelim = val.indexOf(DELIM_STOP); - // Assume we have a value that is something like: - // "leading ${foo.${bar}} middle ${baz} trailing" + // Find the matching starting "${" variable delimiter + // by looping until we find a start delimiter that is + // greater than the stop delimiter we have found. + int startDelim = val.indexOf(DELIM_START); + while (stopDelim >= 0) { + int idx = val.indexOf(DELIM_START, startDelim + + DELIM_START.length()); + if ((idx < 0) || (idx > stopDelim)) { + break; + } else if (idx < stopDelim) { + startDelim = idx; + } + } - // Find the first ending '}' variable delimiter, which - // will correspond to the first deepest nested variable - // placeholder. - int stopDelim = val.indexOf(DELIM_STOP); + // If we do not have a start or stop delimiter, then just + // return the existing value. + if ((startDelim < 0) && (stopDelim < 0)) { + return val; + } + // At this point, we found a stop delimiter without a start, + // so throw an exception. + else if (((startDelim < 0) || (startDelim > stopDelim)) + && (stopDelim >= 0)) { + throw new IllegalArgumentException( + "stop delimiter with no start delimiter: " + val); + } - // Find the matching starting "${" variable delimiter - // by looping until we find a start delimiter that is - // greater than the stop delimiter we have found. - int startDelim = val.indexOf(DELIM_START); - while (stopDelim >= 0) - { - int idx = val.indexOf(DELIM_START, startDelim + DELIM_START.length()); - if ((idx < 0) || (idx > stopDelim)) - { - break; - } - else if (idx < stopDelim) - { - startDelim = idx; - } - } + // At this point, we have found a variable placeholder so + // we must perform a variable substitution on it. + // Using the start and stop delimiter indices, extract + // the first, deepest nested variable placeholder. + String variable = val.substring(startDelim + DELIM_START.length(), + stopDelim); - // If we do not have a start or stop delimiter, then just - // return the existing value. - if ((startDelim < 0) && (stopDelim < 0)) - { - return val; - } - // At this point, we found a stop delimiter without a start, - // so throw an exception. - else if (((startDelim < 0) || (startDelim > stopDelim)) - && (stopDelim >= 0)) - { - throw new IllegalArgumentException( - "stop delimiter with no start delimiter: " - + val); - } + // Verify that this is not a recursive variable reference. + if (cycleMap.get(variable) != null) { + throw new IllegalArgumentException("recursive variable reference: " + + variable); + } - // At this point, we have found a variable placeholder so - // we must perform a variable substitution on it. - // Using the start and stop delimiter indices, extract - // the first, deepest nested variable placeholder. - String variable = - val.substring(startDelim + DELIM_START.length(), stopDelim); + // Get the value of the deepest nested variable placeholder. + // Try to configuration properties first. + String substValue = (configProps != null) ? configProps.getProperty( + variable, null) : null; + if (substValue == null) { + // Ignore unknown property values. + substValue = System.getProperty(variable, ""); + } - // Verify that this is not a recursive variable reference. - if (cycleMap.get(variable) != null) - { - throw new IllegalArgumentException( - "recursive variable reference: " + variable); - } + // Remove the found variable from the cycle map, since + // it may appear more than once in the value and we don't + // want such situations to appear as a recursive reference. + cycleMap.remove(variable); - // Get the value of the deepest nested variable placeholder. - // Try to configuration properties first. - String substValue = (configProps != null) - ? configProps.getProperty(variable, null) - : null; - if (substValue == null) - { - // Ignore unknown property values. - substValue = System.getProperty(variable, ""); - } + // Append the leading characters, the substituted value of + // the variable, and the trailing characters to get the new + // value. + val = val.substring(0, startDelim) + substValue + + val.substring(stopDelim + DELIM_STOP.length(), val.length()); - // Remove the found variable from the cycle map, since - // it may appear more than once in the value and we don't - // want such situations to appear as a recursive reference. - cycleMap.remove(variable); + // Now perform substitution again, since there could still + // be substitutions to make. + val = substVars(val, currentKey, cycleMap, configProps); - // Append the leading characters, the substituted value of - // the variable, and the trailing characters to get the new - // value. - val = val.substring(0, startDelim) - + substValue - + val.substring(stopDelim + DELIM_STOP.length(), val.length()); + // Return the value. + return val; + } - // Now perform substitution again, since there could still - // be substitutions to make. - val = substVars(val, currentKey, cycleMap, configProps); + private static class TrustManager extends AbstractCollection { + private String[] m_keystores = null; + private String[] m_passwds = null; + private String[] m_types = null; + private ArrayList m_stores = null; - // Return the value. - return val; - } + TrustManager(Properties config) { + StringTokenizer tok = new StringTokenizer(System.getProperty( + KEYSTORE_FILE_PROP, config.getProperty(KEYSTORE_FILE_PROP, + KEYSTORE_FILE_VALUE)), File.pathSeparator); - private static class TrustManager extends AbstractCollection - { - private String[] m_keystores = null; - private String[] m_passwds = null; - private String[] m_types = null; - private ArrayList m_stores = null; + m_keystores = new String[tok.countTokens()]; - TrustManager(Properties config) - { - StringTokenizer tok = new StringTokenizer(System.getProperty(KEYSTORE_FILE_PROP, - config.getProperty(KEYSTORE_FILE_PROP, KEYSTORE_FILE_VALUE)), File.pathSeparator); + for (int i = 0; tok.hasMoreTokens(); i++) { + m_keystores[i] = tok.nextToken(); + } - m_keystores = new String[tok.countTokens()]; + tok = new StringTokenizer(System + .getProperty(KEYSTORE_PASS_PROP, config.getProperty( + KEYSTORE_PASS_PROP, KEYSTORE_PASS_VALUE)), + File.pathSeparator); - for (int i = 0;tok.hasMoreTokens();i++) - { - m_keystores[i] = tok.nextToken(); - } + m_passwds = new String[tok.countTokens()]; - tok = new StringTokenizer(System.getProperty(KEYSTORE_PASS_PROP, - config.getProperty(KEYSTORE_PASS_PROP, KEYSTORE_PASS_VALUE)), File.pathSeparator); + for (int i = 0; tok.hasMoreTokens(); i++) { + m_passwds[i] = tok.nextToken(); + } - m_passwds = new String[tok.countTokens()]; + tok = new StringTokenizer(System + .getProperty(KEYSTORE_TYPE_PROP, config.getProperty( + KEYSTORE_TYPE_PROP, KEYSTORE_TYPE_VALUE)), + File.pathSeparator); - for (int i = 0;tok.hasMoreTokens();i++) - { - m_passwds[i] = tok.nextToken(); - } + m_types = new String[tok.countTokens()]; - tok = new StringTokenizer(System.getProperty(KEYSTORE_TYPE_PROP, - config.getProperty(KEYSTORE_TYPE_PROP, KEYSTORE_TYPE_VALUE)), File.pathSeparator); + for (int i = 0; tok.hasMoreTokens(); i++) { + m_types[i] = tok.nextToken(); + } + } - m_types = new String[tok.countTokens()]; + @Override + public synchronized Iterator iterator() { + if (m_stores == null) { + loadStores(); + } - for (int i = 0;tok.hasMoreTokens();i++) - { - m_types[i] = tok.nextToken(); - } - } + return m_stores.iterator(); + } - public synchronized Iterator iterator() - { - if (m_stores == null) - { - loadStores(); - } + @Override + public synchronized int size() { + if (m_stores == null) { + loadStores(); + } - return m_stores.iterator(); - } + return m_stores.size(); + } - public synchronized int size() - { - if (m_stores == null) - { - loadStores(); - } + private void loadStores() { + m_stores = new ArrayList(); - return m_stores.size(); - } + if ((m_keystores.length == m_passwds.length) + && (m_passwds.length == m_types.length) + && (System.getSecurityManager() != null)) { + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + List certs = new ArrayList(); - private void loadStores() - { - m_stores = new ArrayList(); + for (int i = 0; i < m_keystores.length; i++) { - if ((m_keystores.length == m_passwds.length) && (m_passwds.length == m_types.length) - && (System.getSecurityManager() != null)) - { - AccessController.doPrivileged(new PrivilegedAction() - { - public Object run() - { - List certs = new ArrayList(); + try { + KeyStore ks = KeyStore.getInstance(m_types[i]); + ks.load(new FileInputStream(m_keystores[i]), + m_passwds[i].toCharArray()); + for (Enumeration e = ks.aliases(); e + .hasMoreElements();) { + String alias = (String) e.nextElement(); + if (ks.isCertificateEntry(alias)) { + certs.add(ks.getCertificate(alias)); + } + } + } catch (Exception ex) { + certs.clear(); + ex.printStackTrace(System.err); - for (int i = 0;i < m_keystores.length;i++) - { + System.err + .println("WARNING: Error accessing keystore: " + + m_keystores[i]); + } - try - { - KeyStore ks = KeyStore.getInstance(m_types[i]); - ks.load(new FileInputStream(m_keystores[i]), m_passwds[i].toCharArray()); - for (Enumeration e = ks.aliases(); e.hasMoreElements();) - { - String alias = (String) e.nextElement(); - if (ks.isCertificateEntry(alias)) - { - certs.add(ks.getCertificate(alias)); - } - } - } - catch (Exception ex) - { - certs.clear(); - ex.printStackTrace(System.err); + if (!certs.isEmpty()) { + m_stores.addAll(certs); + certs.clear(); + } + } - System.err.println("WARNING: Error accessing keystore: " + m_keystores[i]); - } - - if (!certs.isEmpty()) - { - m_stores.addAll(certs); - certs.clear(); - } - } - - return null; - } - }); - } - if (m_stores.isEmpty()) - { - System.err.println("WARNING: No trusted CA certificates!"); - } - } - } + return null; + } + }); + } + if (m_stores.isEmpty()) { + System.err.println("WARNING: No trusted CA certificates!"); + } + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-31 19:21:54
|
Revision: 31 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=31&view=rev Author: tonit Date: 2007-01-31 11:21:51 -0800 (Wed, 31 Jan 2007) Log Message: ----------- made "technelaunch" default cache profile for frameworks (so questions on it) Modified Paths: -------------- sandbox/tonit/techne-env/bin/techne.jar sandbox/tonit/techne-env/conf/config.properties sandbox/tonit/techne-env/development/doc/wiki.txt Modified: sandbox/tonit/techne-env/bin/techne.jar =================================================================== (Binary files differ) Modified: sandbox/tonit/techne-env/conf/config.properties =================================================================== --- sandbox/tonit/techne-env/conf/config.properties 2007-01-31 18:58:34 UTC (rev 30) +++ sandbox/tonit/techne-env/conf/config.properties 2007-01-31 19:21:51 UTC (rev 31) @@ -1,23 +1,6 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -# -# Framework config properties. -# +# this is to be merged across osgi framwworks +# FELIX specific section: +felix.cache.profile=technelaunch org.osgi.framework.system.packages=org.osgi.framework; version=1.3.0, \ org.osgi.service.packageadmin; version=1.2.0, \ org.osgi.service.startlevel; version=1.0.0, \ @@ -25,7 +8,7 @@ ${jre-${java.specification.version}} #org.osgi.framework.bootdelegation=sun.*,com.sun.* -#felix.cache.profile=foo + felix.auto.start.1= \ file:bundle/org.apache.felix.shell-0.9.0-incubator-SNAPSHOT.jar \ file:bundle/org.apache.felix.shell.tui-0.9.0-incubator-SNAPSHOT.jar \ Modified: sandbox/tonit/techne-env/development/doc/wiki.txt =================================================================== --- sandbox/tonit/techne-env/development/doc/wiki.txt 2007-01-31 18:58:34 UTC (rev 30) +++ sandbox/tonit/techne-env/development/doc/wiki.txt 2007-01-31 19:21:51 UTC (rev 31) @@ -1,3 +1,6 @@ +!!2007-01-31,tonit +more work on techne.launch to come (read workbook at techne wiki). + !!2007-01-29, tonit, first code drop into sandbox/tonit Have a plain techne.runtime derived from felix components. * tonit.audio is currently a standard SCR component, but will be converted to FAR as test-app. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-31 18:58:34
|
Revision: 30 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=30&view=rev Author: tonit Date: 2007-01-31 10:58:34 -0800 (Wed, 31 Jan 2007) Log Message: ----------- ignore bin Property Changed: ---------------- sandbox/tonit/techne.audio/ Property changes on: sandbox/tonit/techne.audio ___________________________________________________________________ Name: svn:ignore + bin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-31 18:54:39
|
Revision: 29 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=29&view=rev Author: tonit Date: 2007-01-31 10:54:35 -0800 (Wed, 31 Jan 2007) Log Message: ----------- removed deprecated dependency on (removed) resource folder Modified Paths: -------------- sandbox/tonit/techne.audio/.classpath Modified: sandbox/tonit/techne.audio/.classpath =================================================================== --- sandbox/tonit/techne.audio/.classpath 2007-01-30 16:45:39 UTC (rev 28) +++ sandbox/tonit/techne.audio/.classpath 2007-01-31 18:54:35 UTC (rev 29) @@ -2,7 +2,6 @@ <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> - <classpathentry kind="lib" path="resource"/> <classpathentry kind="lib" path="/techne-env/development/lib/osgi.jar"/> <classpathentry kind="lib" path="resources/lib/jl1.0.jar"/> <classpathentry kind="output" path="bin"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-30 16:45:40
|
Revision: 28 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=28&view=rev Author: tonit Date: 2007-01-30 08:45:39 -0800 (Tue, 30 Jan 2007) Log Message: ----------- ignore bin Property Changed: ---------------- sandbox/tonit/tonit.logdump/ Property changes on: sandbox/tonit/tonit.logdump ___________________________________________________________________ Name: svn:ignore + bin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-30 16:40:00
|
Revision: 27 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=27&view=rev Author: tonit Date: 2007-01-30 08:39:57 -0800 (Tue, 30 Jan 2007) Log Message: ----------- ignore bin Property Changed: ---------------- sandbox/tonit/techne.launch/ Property changes on: sandbox/tonit/techne.launch ___________________________________________________________________ Name: svn:ignore + bin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-30 16:36:50
|
Revision: 26 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=26&view=rev Author: tonit Date: 2007-01-30 08:36:25 -0800 (Tue, 30 Jan 2007) Log Message: ----------- Launcher now independend from framework, stubs for felix, equinox,kf added Modified Paths: -------------- sandbox/tonit/techne.launch/resources/config.properties Added Paths: ----------- sandbox/tonit/techne.launch/src/techne/launch/FrameworkLauncher.java sandbox/tonit/techne.launch/src/techne/launch/TechneLauncher.java sandbox/tonit/techne.launch/src/techne/launch/equinox/ sandbox/tonit/techne.launch/src/techne/launch/felix/ sandbox/tonit/techne.launch/src/techne/launch/felix/FelixFrameworkLauncher.java sandbox/tonit/techne.launch/src/techne/launch/kf/ Removed Paths: ------------- sandbox/tonit/techne.launch/src/techne/launch/main/Main.java Modified: sandbox/tonit/techne.launch/resources/config.properties =================================================================== --- sandbox/tonit/techne.launch/resources/config.properties 2007-01-30 16:30:48 UTC (rev 25) +++ sandbox/tonit/techne.launch/resources/config.properties 2007-01-30 16:36:25 UTC (rev 26) @@ -24,8 +24,14 @@ org.osgi.service.url; version=1.0.0, \ ${jre-${java.specification.version}} -#org.osgi.framework.bootdelegation=sun.*,com.sun.* -#felix.cache.profile=foo +# Techne specific parameters +#=========================================== +# possible values are felix,equinox,knopflerfish +# can be overwritten by context parameters +techne.framework.default=felix + +#Apache Felix specific launch parameters +#=========================================== felix.auto.start.1= \ file:bundle/org.apache.felix.shell-${pom.version}.jar \ file:bundle/org.apache.felix.shell.tui-${pom.version}.jar \ Added: sandbox/tonit/techne.launch/src/techne/launch/FrameworkLauncher.java =================================================================== --- sandbox/tonit/techne.launch/src/techne/launch/FrameworkLauncher.java (rev 0) +++ sandbox/tonit/techne.launch/src/techne/launch/FrameworkLauncher.java 2007-01-30 16:36:25 UTC (rev 26) @@ -0,0 +1,6 @@ +package techne.launch; + +public interface FrameworkLauncher { + void init(String[] argv); + void launch(); +} Added: sandbox/tonit/techne.launch/src/techne/launch/TechneLauncher.java =================================================================== --- sandbox/tonit/techne.launch/src/techne/launch/TechneLauncher.java (rev 0) +++ sandbox/tonit/techne.launch/src/techne/launch/TechneLauncher.java 2007-01-30 16:36:25 UTC (rev 26) @@ -0,0 +1,82 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package techne.launch; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.MalformedURLException; +import java.net.URL; +import java.security.AccessController; +import java.security.KeyStore; +import java.security.PrivilegedAction; +import java.util.AbstractCollection; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.StringTokenizer; + +/** + * @author Toni Menzel, based currently on apache frelix main module + * <p> + * This class is going to be an osgi R4 framwwork independent framework launcher + * </p> +**/ +public class TechneLauncher +{ + private String[] argv; + + public TechneLauncher(String[] argv) { + this.argv = argv; + } + + public static void main(String[] argv) throws Exception + { + TechneLauncher launcher = new TechneLauncher(argv); + launcher.start(); + } + + private void start() { + System.out.println("\nWelcome to Techne Runtime"); + System.out.println("============================\n"); + // just go for felix now + try { + FrameworkLauncher launch = (FrameworkLauncher)Class.forName("techne.launch.felix.FelixFrameworkLauncher").newInstance(); + launch.init(argv); + launch.launch(); + } catch (InstantiationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalAccessException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } +} Added: sandbox/tonit/techne.launch/src/techne/launch/felix/FelixFrameworkLauncher.java =================================================================== --- sandbox/tonit/techne.launch/src/techne/launch/felix/FelixFrameworkLauncher.java (rev 0) +++ sandbox/tonit/techne.launch/src/techne/launch/felix/FelixFrameworkLauncher.java 2007-01-30 16:36:25 UTC (rev 26) @@ -0,0 +1,677 @@ +package techne.launch.felix; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.MalformedURLException; +import java.net.URL; +import java.security.AccessController; +import java.security.KeyStore; +import java.security.PrivilegedAction; +import java.util.AbstractCollection; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.StringTokenizer; + +import org.apache.felix.framework.Felix; +import org.apache.felix.framework.cache.BundleCache; +import org.apache.felix.framework.util.MutablePropertyResolverImpl; +import org.apache.felix.framework.util.StringMap; + +import techne.launch.FrameworkLauncher; + +public class FelixFrameworkLauncher implements FrameworkLauncher{ + /** + * The system property name used to specify an URL to the system + * property file. + **/ + public static final String SYSTEM_PROPERTIES_PROP = "felix.system.properties"; + /** + * The default name used for the system properties file. + **/ + public static final String SYSTEM_PROPERTIES_FILE_VALUE = "system.properties"; + /** + * The system property name used to specify an URL to the configuration + * property file to be used for the created the framework instance. + **/ + public static final String CONFIG_PROPERTIES_PROP = "felix.config.properties"; + /** + * The default name used for the configuration properties file. + **/ + public static final String CONFIG_PROPERTIES_FILE_VALUE = "config.properties"; + + public static final String KEYSTORE_FILE_PROP = "felix.keystore"; + + public static final String KEYSTORE_FILE_VALUE = System.getProperty("java.home") + + File.separatorChar + "lib" + File.separatorChar + "security" + + File.separatorChar + "cacerts" + File.pathSeparatorChar + System.getProperty("user.home") + + File.separatorChar + ".keystore"; + + public static final String KEYSTORE_TYPE_PROP = "felix.keystore.type"; + + public static final String KEYSTORE_TYPE_VALUE = "JKS" + File.pathSeparatorChar + "JKS"; + + public static final String KEYSTORE_PASS_PROP = "felix.keystore.pass"; + + public static final String KEYSTORE_PASS_VALUE = "changeit" + File.pathSeparatorChar + "changeit"; + + private static Felix m_felix = null; + private String[] argv; + + /** + * <p> + * This method performs the main task of constructing an framework instance + * and starting its execution. The following functions are performed + * when invoked: + * </p> + * <ol> + * <li><i><b>Read the system properties file.<b></i> This is a file + * containing properties to be pushed into <tt>System.setProperty()</tt> + * before starting the framework. This mechanism is mainly shorthand + * for people starting the framework from the command line to avoid having + * to specify a bunch of <tt>-D</tt> system property definitions. + * The only properties defined in this file that will impact the framework's + * behavior are the those concerning setting HTTP proxies, such as + * <tt>http.proxyHost</tt>, <tt>http.proxyPort</tt>, and + * <tt>http.proxyAuth</tt>. + * </li> + * <li><i><b>Perform system property variable substitution on system + * properties.</b></i> Any system properties in the system property + * file whose value adheres to <tt>${<system-prop-name>}</tt> + * syntax will have their value substituted with the appropriate + * system property value. + * </li> + * <li><i><b>Read the framework's configuration property file.</b></i> This is + * a file containing properties used to configure the framework + * instance and to pass configuration information into + * bundles installed into the framework instance. The configuration + * property file is called <tt>config.properties</tt> by default + * and is located in the same directory as the <tt>felix.jar</tt> + * file, which is typically in the <tt>lib/</tt> directory of the + * Felix installation directory. It is possible to use a different + * location for the property file by specifying the desired URL + * using the <tt>felix.config.properties</tt> system property; + * this should be set using the <tt>-D</tt> syntax when executing + * the JVM. Refer to the + * <a href="Felix.html#start(org.apache.felix.framework.util.MutablePropertyResolver, org.apache.felix.framework.util.MutablePropertyResolver, java.util.List)"> + * <tt>Felix.start()</tt></a> method documentation for more + * information on the framework configuration options. + * </li> + * <li><i><b>Perform system property variable substitution on configuration + * properties.</b></i> Any configuration properties whose value adheres to + * <tt>${<system-prop-name>}</tt> syntax will have their value + * substituted with the appropriate system property value. + * </li> + * <li><i><b>Ensure the default bundle cache has sufficient information to + * initialize.</b></i> The default implementation of the bundle cache + * requires either a profile name or a profile directory in order to + * start. The configuration properties are checked for at least one + * of the <tt>felix.cache.profile</tt> or <tt>felix.cache.profiledir</tt> + * properties. If neither is found, the user is asked to supply a profile + * name that is added to the configuration property set. See the + * <a href="cache/DefaultBundleCache.html"><tt>DefaultBundleCache</tt></a> + * documentation for more details its configuration options. + * </li> + * <li><i><b>Creates and starts a framework instance.</b></i> A simple + * <a href="util/MutablePropertyResolver.html"><tt>MutablePropertyResolver</tt></a> + * is created for the configuration property file and is passed + * into the framework when it is started. + * </li> + * </ol> + * <p> + * It should be noted that simply starting an instance of the framework is not enough + * to create an interactive session with it. It is necessary to install + * and start bundles that provide an interactive impl; this is generally + * done by specifying an "auto-start" property in the framework configuration + * property file. If no interactive impl bundles are installed or if + * the configuration property file cannot be found, the framework will appear to + * be hung or deadlocked. This is not the case, it is executing correctly, + * there is just no way to interact with it. Refer to the + * <a href="Felix.html#start(org.apache.felix.framework.util.MutablePropertyResolver, org.apache.felix.framework.util.MutablePropertyResolver, java.util.List)"> + * <tt>Felix.start()</tt></a> method documentation for more information on + * framework configuration options. + * </p> + * @param argv An array of arguments, all of which are ignored. + * @throws Exception If an error occurs. + **/ + public FelixFrameworkLauncher() throws Exception + { + + } + public void launch() { + FelixFrameworkLauncher.loadSystemProperties(); + + // Read configuration properties. + Properties configProps = FelixFrameworkLauncher.loadConfigProperties(); + + // See if the profile name property was specified. + String profileName = configProps.getProperty(BundleCache.CACHE_PROFILE_PROP); + + // See if the profile directory property was specified. + String profileDirName = configProps.getProperty(BundleCache.CACHE_PROFILE_DIR_PROP); + + // If no profile or profile directory is specified in the + // properties, then ask for a profile name. + if ((profileName == null) && (profileDirName == null)) + { + System.out.print("Enter profile name: "); + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + try + { + profileName = in.readLine(); + } + catch (IOException ex) + { + System.err.println("Could not read input."); + System.exit(-1); + } + /** + * @author tmenzel: we may got null from in.readline() + */ + if (profileName == null) profileName = ""; + + System.out.println(""); + if ( profileName.length() != 0) + { + configProps.setProperty(BundleCache.CACHE_PROFILE_PROP, profileName); + } + } + + // A profile directory or name must be specified. + if ((profileDirName == null) && (profileName.length() == 0)) + { + System.err.println("You must specify a profile name or directory."); + System.exit(-1); + } + + try + { + // Now create an instance of the framework. + System.out.println("Thank you, now creating felix framework instance.."); + m_felix = new Felix(); + m_felix.start( + new MutablePropertyResolverImpl(new StringMap(configProps, false)), + null, (System.getSecurityManager() == null) ? null : new TrustManager(configProps)); + System.out.println("felix done"); + } + catch (Exception ex) + { + System.err.println("Could not create framework: " + ex); + ex.printStackTrace(); + System.exit(-1); + } + + } + + public void init(String[] argv) + { + this.argv = argv; + } + + + /** + * <p> + * Loads the properties in the system property file associated with the + * framework installation into <tt>System.setProperty()</tt>. These properties + * are not directly used by the framework in anyway. By default, the system + * property file is located in the <tt>conf/</tt> directory of the Felix + * installation directory and is called "<tt>system.properties</tt>". The + * installation directory of Felix is assumed to be the parent directory of + * the <tt>felix.jar</tt> file as found on the system class path property. + * The precise file from which to load system properties can be set by + * initializing the "<tt>felix.system.properties</tt>" system property to an + * arbitrary URL. + * </p> + **/ + public static void loadSystemProperties() + { + // The system properties file is either specified by a system + // property or it is in the same directory as the Felix JAR file. + // Try to load it from one of these places. + + // See if the property URL was specified as a property. + URL propURL = null; + String custom = System.getProperty(SYSTEM_PROPERTIES_PROP); + if (custom != null) + { + try + { + propURL = new URL(custom); + } + catch (MalformedURLException ex) + { + System.err.print("Main: " + ex); + return; + } + } + else + { + // Determine where the configuration directory is by figuring + // out where felix.jar is located on the system class path. + File confDir = null; + String classpath = System.getProperty("java.class.path"); + int index = classpath.toLowerCase().indexOf("techne.jar"); + int start = classpath.lastIndexOf(File.pathSeparator, index) + 1; + if (index > start) + { + String jarLocation = classpath.substring(start, index); + if (jarLocation.length() == 0) + { + jarLocation = "."; + } + confDir = new File(new File(jarLocation).getParent(), "conf"); + } + else + { + // Can't figure it out so use the current directory as default. + confDir = new File(System.getProperty("user.dir")); + } + + try + { + propURL = new File(confDir, SYSTEM_PROPERTIES_FILE_VALUE).toURL(); + } + catch (MalformedURLException ex) + { + System.err.print("Main: " + ex); + return; + } + } + + // Read the properties file. + Properties props = new Properties(); + InputStream is = null; + try + { + is = propURL.openConnection().getInputStream(); + props.load(is); + is.close(); + } + catch (FileNotFoundException ex) + { + // Ignore file not found. + } + catch (Exception ex) + { + System.err.println( + "Main: Error loading system properties from " + propURL); + System.err.println("Main: " + ex); + try + { + if (is != null) is.close(); + } + catch (IOException ex2) + { + // Nothing we can do. + } + return; + } + + // Perform variable substitution on specified properties. + for (Enumeration e = props.propertyNames(); e.hasMoreElements(); ) + { + String name = (String) e.nextElement(); + System.setProperty(name, + substVars(props.getProperty(name), name, null, null)); + } + } + + /** + * <p> + * Loads the configuration properties in the configuration property file + * associated with the framework installation; these properties + * are accessible to the framework and to bundles and are intended + * for configuration purposes. By default, the configuration property + * file is located in the <tt>conf/</tt> directory of the Felix + * installation directory and is called "<tt>config.properties</tt>". + * The installation directory of Felix is assumed to be the parent + * directory of the <tt>felix.jar</tt> file as found on the system class + * path property. The precise file from which to load configuration + * properties can be set by initializing the "<tt>felix.config.properties</tt>" + * system property to an arbitrary URL. + * </p> + * @return A <tt>Properties</tt> instance or <tt>null</tt> if there was an error. + **/ + public static Properties loadConfigProperties() + { + // The config properties file is either specified by a system + // property or it is in the same directory as the Felix JAR file. + // Try to load it from one of these places. + + // See if the property URL was specified as a property. + URL propURL = null; + String custom = System.getProperty(CONFIG_PROPERTIES_PROP); + if (custom != null) + { + try + { + propURL = new URL(custom); + } + catch (MalformedURLException ex) + { + System.err.print("Main: " + ex); + return null; + } + } + else + { + // Determine where the configuration directory is by figuring + // out where felix.jar is located on the system class path. + File confDir = null; + String classpath = System.getProperty("java.class.path"); + int index = classpath.toLowerCase().indexOf("techne.jar"); + int start = classpath.lastIndexOf(File.pathSeparator, index) + 1; + if (index > start) + { + String jarLocation = classpath.substring(start, index); + if (jarLocation.length() == 0) + { + jarLocation = "."; + } + confDir = new File(new File(jarLocation).getParent(), "conf"); + } + else + { + // Can't figure it out so use the current directory as default. + confDir = new File(System.getProperty("user.dir")); + } + + try + { + propURL = new File(confDir, CONFIG_PROPERTIES_FILE_VALUE).toURL(); + } + catch (MalformedURLException ex) + { + System.err.print("Main: " + ex); + return null; + } + } + + // Read the properties file. + Properties props = new Properties(); + InputStream is = null; + try + { + is = propURL.openConnection().getInputStream(); + props.load(is); + is.close(); + } + catch (FileNotFoundException ex) + { + // Ignore file not found. + } + catch (Exception ex) + { + System.err.println( + "Error loading config properties from " + propURL); + System.err.println("Main: " + ex); + try + { + if (is != null) is.close(); + } + catch (IOException ex2) + { + // Nothing we can do. + } + return null; + } + + // Perform variable substitution for system properties. + for (Enumeration e = props.propertyNames(); e.hasMoreElements(); ) + { + String name = (String) e.nextElement(); + props.setProperty(name, + substVars(props.getProperty(name), name, null, props)); + } + + return props; + } + + private static final String DELIM_START = "${"; + private static final String DELIM_STOP = "}"; + + /** + * <p> + * This method performs property variable substitution on the + * specified value. If the specified value contains the syntax + * <tt>${<prop-name>}</tt>, where <tt><prop-name></tt> + * refers to either a configuration property or a system property, + * then the corresponding property value is substituted for the variable + * placeholder. Multiple variable placeholders may exist in the + * specified value as well as nested variable placeholders, which + * are substituted from inner most to outer most. Configuration + * properties override system properties. + * </p> + * @param val The string on which to perform property substitution. + * @param currentKey The key of the property being evaluated used to + * detect cycles. + * @param cycleMap Map of variable references used to detect nested cycles. + * @param configProps Set of configuration properties. + * @return The value of the specified string after system property substitution. + * @throws IllegalArgumentException If there was a syntax error in the + * property placeholder syntax or a recursive variable reference. + **/ + public static String substVars(String val, String currentKey, + Map cycleMap, Properties configProps) + throws IllegalArgumentException + { + // If there is currently no cycle map, then create + // one for detecting cycles for this invocation. + if (cycleMap == null) + { + cycleMap = new HashMap(); + } + + // Put the current key in the cycle map. + cycleMap.put(currentKey, currentKey); + + // Assume we have a value that is something like: + // "leading ${foo.${bar}} middle ${baz} trailing" + + // Find the first ending '}' variable delimiter, which + // will correspond to the first deepest nested variable + // placeholder. + int stopDelim = val.indexOf(DELIM_STOP); + + // Find the matching starting "${" variable delimiter + // by looping until we find a start delimiter that is + // greater than the stop delimiter we have found. + int startDelim = val.indexOf(DELIM_START); + while (stopDelim >= 0) + { + int idx = val.indexOf(DELIM_START, startDelim + DELIM_START.length()); + if ((idx < 0) || (idx > stopDelim)) + { + break; + } + else if (idx < stopDelim) + { + startDelim = idx; + } + } + + // If we do not have a start or stop delimiter, then just + // return the existing value. + if ((startDelim < 0) && (stopDelim < 0)) + { + return val; + } + // At this point, we found a stop delimiter without a start, + // so throw an exception. + else if (((startDelim < 0) || (startDelim > stopDelim)) + && (stopDelim >= 0)) + { + throw new IllegalArgumentException( + "stop delimiter with no start delimiter: " + + val); + } + + // At this point, we have found a variable placeholder so + // we must perform a variable substitution on it. + // Using the start and stop delimiter indices, extract + // the first, deepest nested variable placeholder. + String variable = + val.substring(startDelim + DELIM_START.length(), stopDelim); + + // Verify that this is not a recursive variable reference. + if (cycleMap.get(variable) != null) + { + throw new IllegalArgumentException( + "recursive variable reference: " + variable); + } + + // Get the value of the deepest nested variable placeholder. + // Try to configuration properties first. + String substValue = (configProps != null) + ? configProps.getProperty(variable, null) + : null; + if (substValue == null) + { + // Ignore unknown property values. + substValue = System.getProperty(variable, ""); + } + + // Remove the found variable from the cycle map, since + // it may appear more than once in the value and we don't + // want such situations to appear as a recursive reference. + cycleMap.remove(variable); + + // Append the leading characters, the substituted value of + // the variable, and the trailing characters to get the new + // value. + val = val.substring(0, startDelim) + + substValue + + val.substring(stopDelim + DELIM_STOP.length(), val.length()); + + // Now perform substitution again, since there could still + // be substitutions to make. + val = substVars(val, currentKey, cycleMap, configProps); + + // Return the value. + return val; + } + + private static class TrustManager extends AbstractCollection + { + private String[] m_keystores = null; + private String[] m_passwds = null; + private String[] m_types = null; + private ArrayList m_stores = null; + + TrustManager(Properties config) + { + StringTokenizer tok = new StringTokenizer(System.getProperty(KEYSTORE_FILE_PROP, + config.getProperty(KEYSTORE_FILE_PROP, KEYSTORE_FILE_VALUE)), File.pathSeparator); + + m_keystores = new String[tok.countTokens()]; + + for (int i = 0;tok.hasMoreTokens();i++) + { + m_keystores[i] = tok.nextToken(); + } + + tok = new StringTokenizer(System.getProperty(KEYSTORE_PASS_PROP, + config.getProperty(KEYSTORE_PASS_PROP, KEYSTORE_PASS_VALUE)), File.pathSeparator); + + m_passwds = new String[tok.countTokens()]; + + for (int i = 0;tok.hasMoreTokens();i++) + { + m_passwds[i] = tok.nextToken(); + } + + tok = new StringTokenizer(System.getProperty(KEYSTORE_TYPE_PROP, + config.getProperty(KEYSTORE_TYPE_PROP, KEYSTORE_TYPE_VALUE)), File.pathSeparator); + + m_types = new String[tok.countTokens()]; + + for (int i = 0;tok.hasMoreTokens();i++) + { + m_types[i] = tok.nextToken(); + } + } + + public synchronized Iterator iterator() + { + if (m_stores == null) + { + loadStores(); + } + + return m_stores.iterator(); + } + + public synchronized int size() + { + if (m_stores == null) + { + loadStores(); + } + + return m_stores.size(); + } + + private void loadStores() + { + m_stores = new ArrayList(); + + if ((m_keystores.length == m_passwds.length) && (m_passwds.length == m_types.length) + && (System.getSecurityManager() != null)) + { + AccessController.doPrivileged(new PrivilegedAction() + { + public Object run() + { + List certs = new ArrayList(); + + for (int i = 0;i < m_keystores.length;i++) + { + + try + { + KeyStore ks = KeyStore.getInstance(m_types[i]); + ks.load(new FileInputStream(m_keystores[i]), m_passwds[i].toCharArray()); + for (Enumeration e = ks.aliases(); e.hasMoreElements();) + { + String alias = (String) e.nextElement(); + if (ks.isCertificateEntry(alias)) + { + certs.add(ks.getCertificate(alias)); + } + } + } + catch (Exception ex) + { + certs.clear(); + ex.printStackTrace(System.err); + + System.err.println("WARNING: Error accessing keystore: " + m_keystores[i]); + } + + if (!certs.isEmpty()) + { + m_stores.addAll(certs); + certs.clear(); + } + } + + return null; + } + }); + } + if (m_stores.isEmpty()) + { + System.err.println("WARNING: No trusted CA certificates!"); + } + } + } +} Deleted: sandbox/tonit/techne.launch/src/techne/launch/main/Main.java =================================================================== --- sandbox/tonit/techne.launch/src/techne/launch/main/Main.java 2007-01-30 16:30:48 UTC (rev 25) +++ sandbox/tonit/techne.launch/src/techne/launch/main/Main.java 2007-01-30 16:36:25 UTC (rev 26) @@ -1,684 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package techne.launch.main; - -import java.io.*; -import java.net.MalformedURLException; -import java.net.URL; -import java.security.*; -import java.util.*; - -import org.apache.felix.framework.Felix; -import org.apache.felix.framework.cache.BundleCache; -import org.apache.felix.framework.util.MutablePropertyResolverImpl; -import org.apache.felix.framework.util.StringMap; - -/** - * <p> - * This class is the default way to instantiate and execute the framework. It is not - * intended to be the only way to instantiate and execute the framework; rather, it is - * one example of how to do so. When embedding the framework in a host application, - * this class can serve as a simple guide of how to do so. It may even be - * worthwhile to reuse some of its property handling capabilities. This class - * is completely static and is only intended to start a single instance of - * the framework. - * </p> -**/ -public class Main -{ - /** - * The system property name used to specify an URL to the system - * property file. - **/ - public static final String SYSTEM_PROPERTIES_PROP = "felix.system.properties"; - /** - * The default name used for the system properties file. - **/ - public static final String SYSTEM_PROPERTIES_FILE_VALUE = "system.properties"; - /** - * The system property name used to specify an URL to the configuration - * property file to be used for the created the framework instance. - **/ - public static final String CONFIG_PROPERTIES_PROP = "felix.config.properties"; - /** - * The default name used for the configuration properties file. - **/ - public static final String CONFIG_PROPERTIES_FILE_VALUE = "config.properties"; - - public static final String KEYSTORE_FILE_PROP = "felix.keystore"; - - public static final String KEYSTORE_FILE_VALUE = System.getProperty("java.home") + - File.separatorChar + "lib" + File.separatorChar + "security" + - File.separatorChar + "cacerts" + File.pathSeparatorChar + System.getProperty("user.home") + - File.separatorChar + ".keystore"; - - public static final String KEYSTORE_TYPE_PROP = "felix.keystore.type"; - - public static final String KEYSTORE_TYPE_VALUE = "JKS" + File.pathSeparatorChar + "JKS"; - - public static final String KEYSTORE_PASS_PROP = "felix.keystore.pass"; - - public static final String KEYSTORE_PASS_VALUE = "changeit" + File.pathSeparatorChar + "changeit"; - - private static Felix m_felix = null; - - /** - * <p> - * This method performs the main task of constructing an framework instance - * and starting its execution. The following functions are performed - * when invoked: - * </p> - * <ol> - * <li><i><b>Read the system properties file.<b></i> This is a file - * containing properties to be pushed into <tt>System.setProperty()</tt> - * before starting the framework. This mechanism is mainly shorthand - * for people starting the framework from the command line to avoid having - * to specify a bunch of <tt>-D</tt> system property definitions. - * The only properties defined in this file that will impact the framework's - * behavior are the those concerning setting HTTP proxies, such as - * <tt>http.proxyHost</tt>, <tt>http.proxyPort</tt>, and - * <tt>http.proxyAuth</tt>. - * </li> - * <li><i><b>Perform system property variable substitution on system - * properties.</b></i> Any system properties in the system property - * file whose value adheres to <tt>${<system-prop-name>}</tt> - * syntax will have their value substituted with the appropriate - * system property value. - * </li> - * <li><i><b>Read the framework's configuration property file.</b></i> This is - * a file containing properties used to configure the framework - * instance and to pass configuration information into - * bundles installed into the framework instance. The configuration - * property file is called <tt>config.properties</tt> by default - * and is located in the same directory as the <tt>felix.jar</tt> - * file, which is typically in the <tt>lib/</tt> directory of the - * Felix installation directory. It is possible to use a different - * location for the property file by specifying the desired URL - * using the <tt>felix.config.properties</tt> system property; - * this should be set using the <tt>-D</tt> syntax when executing - * the JVM. Refer to the - * <a href="Felix.html#start(org.apache.felix.framework.util.MutablePropertyResolver, org.apache.felix.framework.util.MutablePropertyResolver, java.util.List)"> - * <tt>Felix.start()</tt></a> method documentation for more - * information on the framework configuration options. - * </li> - * <li><i><b>Perform system property variable substitution on configuration - * properties.</b></i> Any configuration properties whose value adheres to - * <tt>${<system-prop-name>}</tt> syntax will have their value - * substituted with the appropriate system property value. - * </li> - * <li><i><b>Ensure the default bundle cache has sufficient information to - * initialize.</b></i> The default implementation of the bundle cache - * requires either a profile name or a profile directory in order to - * start. The configuration properties are checked for at least one - * of the <tt>felix.cache.profile</tt> or <tt>felix.cache.profiledir</tt> - * properties. If neither is found, the user is asked to supply a profile - * name that is added to the configuration property set. See the - * <a href="cache/DefaultBundleCache.html"><tt>DefaultBundleCache</tt></a> - * documentation for more details its configuration options. - * </li> - * <li><i><b>Creates and starts a framework instance.</b></i> A simple - * <a href="util/MutablePropertyResolver.html"><tt>MutablePropertyResolver</tt></a> - * is created for the configuration property file and is passed - * into the framework when it is started. - * </li> - * </ol> - * <p> - * It should be noted that simply starting an instance of the framework is not enough - * to create an interactive session with it. It is necessary to install - * and start bundles that provide an interactive impl; this is generally - * done by specifying an "auto-start" property in the framework configuration - * property file. If no interactive impl bundles are installed or if - * the configuration property file cannot be found, the framework will appear to - * be hung or deadlocked. This is not the case, it is executing correctly, - * there is just no way to interact with it. Refer to the - * <a href="Felix.html#start(org.apache.felix.framework.util.MutablePropertyResolver, org.apache.felix.framework.util.MutablePropertyResolver, java.util.List)"> - * <tt>Felix.start()</tt></a> method documentation for more information on - * framework configuration options. - * </p> - * @param argv An array of arguments, all of which are ignored. - * @throws Exception If an error occurs. - **/ - public static void main(String[] argv) throws Exception - { - System.out.println("Base dir: " + new File(".").getAbsolutePath()); - // Load system properties. - Main.loadSystemProperties(); - - // Read configuration properties. - Properties configProps = Main.loadConfigProperties(); - - // See if the profile name property was specified. - String profileName = configProps.getProperty(BundleCache.CACHE_PROFILE_PROP); - - // See if the profile directory property was specified. - String profileDirName = configProps.getProperty(BundleCache.CACHE_PROFILE_DIR_PROP); - - // Print welcome banner. - System.out.println("\nWelcome to Techne Runtime"); - System.out.println("============================\n"); - - // If no profile or profile directory is specified in the - // properties, then ask for a profile name. - if ((profileName == null) && (profileDirName == null)) - { - System.out.print("Enter profile name: "); - BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); - try - { - profileName = in.readLine(); - } - catch (IOException ex) - { - System.err.println("Could not read input."); - System.exit(-1); - } - /** - * @author tmenzel: we may got null from in.readline() - */ - if (profileName == null) profileName = ""; - - System.out.println(""); - if ( profileName.length() != 0) - { - configProps.setProperty(BundleCache.CACHE_PROFILE_PROP, profileName); - } - } - - // A profile directory or name must be specified. - if ((profileDirName == null) && (profileName.length() == 0)) - { - System.err.println("You must specify a profile name or directory."); - System.exit(-1); - } - - try - { - // Now create an instance of the framework. - System.out.println("Thank you, now creating felix framework instance.."); - m_felix = new Felix(); - m_felix.start( - new MutablePropertyResolverImpl(new StringMap(configProps, false)), - null, (System.getSecurityManager() == null) ? null : new TrustManager(configProps)); - System.out.println("felix done"); - } - catch (Exception ex) - { - System.err.println("Could not create framework: " + ex); - ex.printStackTrace(); - System.exit(-1); - } - } - - /** - * <p> - * Loads the properties in the system property file associated with the - * framework installation into <tt>System.setProperty()</tt>. These properties - * are not directly used by the framework in anyway. By default, the system - * property file is located in the <tt>conf/</tt> directory of the Felix - * installation directory and is called "<tt>system.properties</tt>". The - * installation directory of Felix is assumed to be the parent directory of - * the <tt>felix.jar</tt> file as found on the system class path property. - * The precise file from which to load system properties can be set by - * initializing the "<tt>felix.system.properties</tt>" system property to an - * arbitrary URL. - * </p> - **/ - public static void loadSystemProperties() - { - // The system properties file is either specified by a system - // property or it is in the same directory as the Felix JAR file. - // Try to load it from one of these places. - - // See if the property URL was specified as a property. - URL propURL = null; - String custom = System.getProperty(SYSTEM_PROPERTIES_PROP); - if (custom != null) - { - try - { - propURL = new URL(custom); - } - catch (MalformedURLException ex) - { - System.err.print("Main: " + ex); - return; - } - } - else - { - // Determine where the configuration directory is by figuring - // out where felix.jar is located on the system class path. - File confDir = null; - String classpath = System.getProperty("java.class.path"); - int index = classpath.toLowerCase().indexOf("techne.jar"); - int start = classpath.lastIndexOf(File.pathSeparator, index) + 1; - if (index > start) - { - String jarLocation = classpath.substring(start, index); - if (jarLocation.length() == 0) - { - jarLocation = "."; - } - confDir = new File(new File(jarLocation).getParent(), "conf"); - } - else - { - // Can't figure it out so use the current directory as default. - confDir = new File(System.getProperty("user.dir")); - } - - try - { - propURL = new File(confDir, SYSTEM_PROPERTIES_FILE_VALUE).toURL(); - } - catch (MalformedURLException ex) - { - System.err.print("Main: " + ex); - return; - } - } - - // Read the properties file. - Properties props = new Properties(); - InputStream is = null; - try - { - is = propURL.openConnection().getInputStream(); - props.load(is); - is.close(); - } - catch (FileNotFoundException ex) - { - // Ignore file not found. - } - catch (Exception ex) - { - System.err.println( - "Main: Error loading system properties from " + propURL); - System.err.println("Main: " + ex); - try - { - if (is != null) is.close(); - } - catch (IOException ex2) - { - // Nothing we can do. - } - return; - } - - // Perform variable substitution on specified properties. - for (Enumeration e = props.propertyNames(); e.hasMoreElements(); ) - { - String name = (String) e.nextElement(); - System.setProperty(name, - substVars(props.getProperty(name), name, null, null)); - } - } - - /** - * <p> - * Loads the configuration properties in the configuration property file - * associated with the framework installation; these properties - * are accessible to the framework and to bundles and are intended - * for configuration purposes. By default, the configuration property - * file is located in the <tt>conf/</tt> directory of the Felix - * installation directory and is called "<tt>config.properties</tt>". - * The installation directory of Felix is assumed to be the parent - * directory of the <tt>felix.jar</tt> file as found on the system class - * path property. The precise file from which to load configuration - * properties can be set by initializing the "<tt>felix.config.properties</tt>" - * system property to an arbitrary URL. - * </p> - * @return A <tt>Properties</tt> instance or <tt>null</tt> if there was an error. - **/ - public static Properties loadConfigProperties() - { - // The config properties file is either specified by a system - // property or it is in the same directory as the Felix JAR file. - // Try to load it from one of these places. - - // See if the property URL was specified as a property. - URL propURL = null; - String custom = System.getProperty(CONFIG_PROPERTIES_PROP); - if (custom != null) - { - try - { - propURL = new URL(custom); - } - catch (MalformedURLException ex) - { - System.err.print("Main: " + ex); - return null; - } - } - else - { - // Determine where the configuration directory is by figuring - // out where felix.jar is located on the system class path. - File confDir = null; - String classpath = System.getProperty("java.class.path"); - int index = classpath.toLowerCase().indexOf("techne.jar"); - int start = classpath.lastIndexOf(File.pathSeparator, index) + 1; - if (index > start) - { - String jarLocation = classpath.substring(start, index); - if (jarLocation.length() == 0) - { - jarLocation = "."; - } - confDir = new File(new File(jarLocation).getParent(), "conf"); - } - else - { - // Can't figure it out so use the current directory as default. - confDir = new File(System.getProperty("user.dir")); - } - - try - { - propURL = new File(confDir, CONFIG_PROPERTIES_FILE_VALUE).toURL(); - } - catch (MalformedURLException ex) - { - System.err.print("Main: " + ex); - return null; - } - } - - // Read the properties file. - Properties props = new Properties(); - InputStream is = null; - try - { - is = propURL.openConnection().getInputStream(); - props.load(is); - is.close(); - } - catch (FileNotFoundException ex) - { - // Ignore file not found. - } - catch (Exception ex) - { - System.err.println( - "Error loading config properties from " + propURL); - System.err.println("Main: " + ex); - try - { - if (is != null) is.close(); - } - catch (IOException ex2) - { - // Nothing we can do. - } - return null; - } - - // Perform variable substitution for system properties. - for (Enumeration e = props.propertyNames(); e.hasMoreElements(); ) - { - String name = (String) e.nextElement(); - props.setProperty(name, - substVars(props.getProperty(name), name, null, props)); - } - - return props; - } - - private static final String DELIM_START = "${"; - private static final String DELIM_STOP = "}"; - - /** - * <p> - * This method performs property variable substitution on the - * specified value. If the specified value contains the syntax - * <tt>${<prop-name>}</tt>, where <tt><prop-name></tt> - * refers to either a configuration property or a system property, - * then the corresponding property value is substituted for the variable - * placeholder. Multiple variable placeholders may exist in the - * specified value as well as nested variable placeholders, which - * are substituted from inner most to outer most. Configuration - * properties override system properties. - * </p> - * @param val The string on which to perform property substitution. - * @param currentKey The key of the property being evaluated used to - * detect cycles. - * @param cycleMap Map of variable references used to detect nested cycles. - * @param configProps Set of configuration properties. - * @return The value of the specified string after system property substitution. - * @throws IllegalArgumentException If there was a syntax error in the - * property placeholder syntax or a recursive variable reference. - **/ - public static String substVars(String val, String currentKey, - Map cycleMap, Properties configProps) - throws IllegalArgumentException - { - // If there is currently no cycle map, then create - // one for detecting cycles for this invocation. - if (cycleMap == null) - { - cycleMap = new HashMap(); - } - - // Put the current key in the cycle map. - cycleMap.put(currentKey, currentKey); - - // Assume we have a value that is something like: - // "leading ${foo.${bar}} middle ${baz} trailing" - - // Find the first ending '}' variable delimiter, which - // will correspond to the first deepest nested variable - // placeholder. - int stopDelim = val.indexOf(DELIM_STOP); - - // Find the matching starting "${" variable delimiter - // by looping until we find a start delimiter that is - // greater than the stop delimiter we have found. - int startDelim = val.indexOf(DELIM_START); - while (stopDelim >= 0) - { - int idx = val.indexOf(DELIM_START, startDelim + DELIM_START.length()); - if ((idx < 0) || (idx > stopDelim)) - { - break; - } - else if (idx < stopDelim) - { - startDelim = idx; - } - } - - // If we do not have a start or stop delimiter, then just - // return the existing value. - if ((startDelim < 0) && (stopDelim < 0)) - { - return val; - } - // At this point, we found a stop delimiter without a start, - // so throw an exception. - else if (((startDelim < 0) || (startDelim > stopDelim)) - && (stopDelim >= 0)) - { - throw new IllegalArgumentException( - "stop delimiter with no start delimiter: " - + val); - } - - // At this point, we have found a variable placeholder so - // we must perform a variable substitution on it. - // Using the start and stop delimiter indices, extract - // the first, deepest nested variable placeholder. - String variable = - val.substring(startDelim + DELIM_START.length(), stopDelim); - - // Verify that this is not a recursive variable reference. - if (cycleMap.get(variable) != null) - { - throw new IllegalArgumentException( - "recursive variable reference: " + variable); - } - - // Get the value of the deepest nested variable placeholder. - // Try to configuration properties first. - String substValue = (configProps != null) - ? configProps.getProperty(variable, null) - : null; - if (substValue == null) - { - // Ignore unknown property values. - substValue = System.getProperty(variable, ""); - } - - // Remove the found variable from the cycle map, since - // it may appear more than once in the value and we don't - // want such situations to appear as a recursive reference. - cycleMap.remove(variable); - - // Append the leading characters, the substituted value of - // the variable, and the trailing characters to get the new - // value. - val = val.substring(0, startDelim) - + substValue - + val.substring(stopDelim + DELIM_STOP.length(), val.length()); - - // Now perform substitution again, since there could still - // be substitutions to make. - val = substVars(val, currentKey, cycleMap, configProps); - - // Return the value. - return val; - } - - private static class TrustManager extends AbstractCollection - { - private String[] m_keystores = null; - private String[] m_passwds = null; - private String[] m_types = null; - private ArrayList m_stores = null; - - TrustManager(Properties config) - { - StringTokenizer tok = new StringTokenizer(System.getProperty(KEYSTORE_FILE_PROP, - config.getProperty(KEYSTORE_FILE_PROP, KEYSTORE_FILE_VALUE)), File.pathSeparator); - - m_keystores = new String[tok.countTokens()]; - - for (int i = 0;tok.hasMoreTokens();i++) - { - m_keystores[i] = tok.nextToken(); - } - - tok = new StringTokenizer(System.getProperty(KEYSTORE_PASS_PROP, - config.getProperty(KEYSTORE_PASS_PROP, KEYSTORE_PASS_VALUE)), File.pathSeparator); - - m_passwds = new String[tok.countTokens()]; - - for (int i = 0;tok.hasMoreTokens();i++) - { - m_passwds[i] = tok.nextToken(); - } - - tok = new StringTokenizer(System.getProperty(KEYSTORE_TYPE_PROP, - config.getProperty(KEYSTORE_TYPE_PROP, KEYSTORE_TYPE_VALUE)), File.pathSeparator); - - m_types = new String[tok.countTokens()]; - - for (int i = 0;tok.hasMoreTokens();i++) - { - m_types[i] = tok.nextToken(); - } - } - - public synchronized Iterator iterator() - { - if (m_stores == null) - { - loadStores(); - } - - return m_stores.iterator(); - } - - public synchronized int size() - { - if (m_stores == null) - { - loadStores(); - } - - return m_stores.size(); - } - - private void loadStores() - { - m_stores = new ArrayList(); - - if ((m_keystores.length == m_passwds.length) && (m_passwds.length == m_types.length) - && (System.getSecurityManager() != null)) - { - AccessController.doPrivileged(new PrivilegedAction() - { - public Object run() - { - List certs = new ArrayList(); - - for (int i = 0;i < m_keystores.length;i++) - { - - try - { - KeyStore ks = KeyStore.getInstance(m_types[i]); - ks.load(new FileInputStream(m_keystores[i]), m_passwds[i].toCharArray()); - for (Enumeration e = ks.aliases(); e.hasMoreElements();) - { - String alias = (String) e.nextElement(); - if (ks.isCertificateEntry(alias)) - { - certs.add(ks.getCertificate(alias)); - } - } - } - catch (Exception ex) - { - certs.clear(); - ex.printStackTrace(System.err); - - System.er... [truncated message content] |
From: <to...@us...> - 2007-01-30 16:30:53
|
Revision: 25 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=25&view=rev Author: tonit Date: 2007-01-30 08:30:48 -0800 (Tue, 30 Jan 2007) Log Message: ----------- ignore bin Property Changed: ---------------- sandbox/tonit/techne.farrt/ Property changes on: sandbox/tonit/techne.farrt ___________________________________________________________________ Name: svn:ignore + bin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-30 00:21:48
|
Revision: 24 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=24&view=rev Author: tonit Date: 2007-01-29 16:21:49 -0800 (Mon, 29 Jan 2007) Log Message: ----------- Added Paths: ----------- sandbox/tonit/tonit.logdump/resources/META-INF/MANIFEST.MF Added: sandbox/tonit/tonit.logdump/resources/META-INF/MANIFEST.MF =================================================================== --- sandbox/tonit/tonit.logdump/resources/META-INF/MANIFEST.MF (rev 0) +++ sandbox/tonit/tonit.logdump/resources/META-INF/MANIFEST.MF 2007-01-30 00:21:49 UTC (rev 24) @@ -0,0 +1,8 @@ +Manifest-Version: 1 +Created-By: Toni +Bundle-Activator: tonit.logdump.Activator +Bundle-Name: tonit.logdump +Bundle-Description: Toni's log dumper for OSGi LogService +Bundle-SymbolicName: tonit.logdump +Bundle-Version: 0 +Import-Package: org.osgi.framework;version=1.3,org.osgi.service.log \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-30 00:21:44
|
Revision: 23 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=23&view=rev Author: tonit Date: 2007-01-29 16:21:44 -0800 (Mon, 29 Jan 2007) Log Message: ----------- Added Paths: ----------- sandbox/tonit/tonit.logdump/resources/META-INF/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-30 00:18:59
|
Revision: 22 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=22&view=rev Author: tonit Date: 2007-01-29 16:18:54 -0800 (Mon, 29 Jan 2007) Log Message: ----------- Removed Paths: ------------- sandbox/tonit/tonit.logdump/bin/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-30 00:18:29
|
Revision: 21 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=21&view=rev Author: tonit Date: 2007-01-29 16:18:26 -0800 (Mon, 29 Jan 2007) Log Message: ----------- Removed Paths: ------------- sandbox/tonit/techne-env/META-INFOld/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-30 00:18:08
|
Revision: 20 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=20&view=rev Author: tonit Date: 2007-01-29 16:18:07 -0800 (Mon, 29 Jan 2007) Log Message: ----------- bin does not belong under version control Removed Paths: ------------- sandbox/tonit/techne-env/load/techne.audio.jar sandbox/tonit/techne-env/load/techne.farrt.jar sandbox/tonit/techne-env/load/techne.kernel.jar sandbox/tonit/techne-env/load/tonit.logdump.jar Deleted: sandbox/tonit/techne-env/load/techne.audio.jar =================================================================== (Binary files differ) Deleted: sandbox/tonit/techne-env/load/techne.farrt.jar =================================================================== (Binary files differ) Deleted: sandbox/tonit/techne-env/load/techne.kernel.jar =================================================================== (Binary files differ) Deleted: sandbox/tonit/techne-env/load/tonit.logdump.jar =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-30 00:17:15
|
Revision: 19 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=19&view=rev Author: tonit Date: 2007-01-29 16:17:15 -0800 (Mon, 29 Jan 2007) Log Message: ----------- Removed Paths: ------------- sandbox/tonit/techne.launch/bin/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-30 00:16:17
|
Revision: 18 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=18&view=rev Author: tonit Date: 2007-01-29 16:16:17 -0800 (Mon, 29 Jan 2007) Log Message: ----------- bin does not belong under version control Removed Paths: ------------- sandbox/tonit/techne.kernel/bin/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-30 00:15:42
|
Revision: 17 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=17&view=rev Author: tonit Date: 2007-01-29 16:15:41 -0800 (Mon, 29 Jan 2007) Log Message: ----------- Removed Paths: ------------- sandbox/tonit/techne.audio/resource/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-30 00:15:19
|
Revision: 16 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=16&view=rev Author: tonit Date: 2007-01-29 16:15:19 -0800 (Mon, 29 Jan 2007) Log Message: ----------- bin does not belong under version control Removed Paths: ------------- sandbox/tonit/techne.audio/bin/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-30 00:14:21
|
Revision: 15 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=15&view=rev Author: tonit Date: 2007-01-29 16:14:16 -0800 (Mon, 29 Jan 2007) Log Message: ----------- bin does not belong under version control Removed Paths: ------------- sandbox/tonit/techne.farrt/bin/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <to...@us...> - 2007-01-30 00:13:27
|
Revision: 14 http://techne-dev.svn.sourceforge.net/techne-dev/?rev=14&view=rev Author: tonit Date: 2007-01-29 16:13:26 -0800 (Mon, 29 Jan 2007) Log Message: ----------- Added Paths: ----------- sandbox/tonit/techne.launch/resources/ sandbox/tonit/techne.launch/resources/META-INF/ sandbox/tonit/techne.launch/resources/META-INF/LICENSE sandbox/tonit/techne.launch/resources/META-INF/MANIFEST.MF sandbox/tonit/techne.launch/resources/META-INF/NOTICE sandbox/tonit/techne.launch/resources/config.properties Added: sandbox/tonit/techne.launch/resources/META-INF/LICENSE =================================================================== --- sandbox/tonit/techne.launch/resources/META-INF/LICENSE (rev 0) +++ sandbox/tonit/techne.launch/resources/META-INF/LICENSE 2007-01-30 00:13:26 UTC (rev 14) @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. Added: sandbox/tonit/techne.launch/resources/META-INF/MANIFEST.MF =================================================================== --- sandbox/tonit/techne.launch/resources/META-INF/MANIFEST.MF (rev 0) +++ sandbox/tonit/techne.launch/resources/META-INF/MANIFEST.MF 2007-01-30 00:13:26 UTC (rev 14) @@ -0,0 +1,4 @@ +Manifest-Version: 1 +Main-Class: techne.launch.main.Main +Created-By: Toni +Class-Path: . ../lib/org.apache.felix.framework-0.9.0-incubator-SNAPSHOT.jar \ No newline at end of file Added: sandbox/tonit/techne.launch/resources/META-INF/NOTICE =================================================================== --- sandbox/tonit/techne.launch/resources/META-INF/NOTICE (rev 0) +++ sandbox/tonit/techne.launch/resources/META-INF/NOTICE 2007-01-30 00:13:26 UTC (rev 14) @@ -0,0 +1,13 @@ +Techne Launcher +Copyright 2006 The Apache Software Foundation + +This product includes software developed at +Sourceforge.net (http://www.sf.org/). + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/). + +This product includes software developed at +The OSGi Alliance (http://www.osgi.org/). +Copyright 2006 The OSGi Alliance. +Licensed under the Apache License 2.0. Added: sandbox/tonit/techne.launch/resources/config.properties =================================================================== --- sandbox/tonit/techne.launch/resources/config.properties (rev 0) +++ sandbox/tonit/techne.launch/resources/config.properties 2007-01-30 00:13:26 UTC (rev 14) @@ -0,0 +1,307 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +# +# Framework config properties. +# +org.osgi.framework.system.packages=org.osgi.framework; version=1.3.0, \ + org.osgi.service.packageadmin; version=1.2.0, \ + org.osgi.service.startlevel; version=1.0.0, \ + org.osgi.service.url; version=1.0.0, \ + ${jre-${java.specification.version}} + +#org.osgi.framework.bootdelegation=sun.*,com.sun.* +#felix.cache.profile=foo +felix.auto.start.1= \ + file:bundle/org.apache.felix.shell-${pom.version}.jar \ + file:bundle/org.apache.felix.shell.tui-${pom.version}.jar \ + file:bundle/org.apache.felix.bundlerepository-${pom.version}.jar +felix.log.level=4 +felix.startlevel.framework=1 +felix.startlevel.bundle=1 +#framework.service.urlhandlers=false + +# +# Bundle config properties. +# +org.osgi.service.http.port=8080 +obr.shell.telnet=on +#obr.repository.url=http://bundles.osgi.org/obr/browse?_xml=1&cmd=repository + + +# +# Java platform package export properties. +# +jre-1.3= \ + javax.accessibility; \ + javax.accessibility.resources; \ + javax.naming; \ + javax.naming.directory; \ + javax.naming.event; \ + javax.naming.ldap; \ + javax.naming.spi; \ + javax.rmi; \ + javax.rmi.CORBA; \ + javax.sound.midi; \ + javax.sound.midi.spi; \ + javax.sound.sampled; \ + javax.sound.sampled.spi; \ + javax.swing; \ + javax.swing.border; \ + javax.swing.colorchooser; \ + javax.swing.event; \ + javax.swing.filechooser; \ + javax.swing.plaf; \ + javax.swing.plaf.basic; \ + javax.swing.plaf.basic.resources; \ + javax.swing.plaf.metal; \ + javax.swing.plaf.metal.resources; \ + javax.swing.plaf.multi; \ + javax.swing.table; \ + javax.swing.text; \ + javax.swing.text.html; \ + javax.swing.text.html.parser; \ + javax.swing.text.rtf; \ + javax.swing.tree; \ + javax.swing.undo; \ + javax.transaction; \ + org.omg.CORBA; \ + org.omg.CORBA_2_3; \ + org.omg.CORBA_2_3.portable; \ + org.omg.CORBA.DynAnyPackage; \ + org.omg.CORBA.ORBPackage; \ + org.omg.CORBA.portable; \ + org.omg.CORBA.TypeCodePackage; \ + org.omg.CosNaming; \ + org.omg.CosNaming.NamingContextPackage; \ + org.omg.SendingContext; \ + org.omg.stub.java.rmi; \ + version="1.3.0" + +jre-1.4= \ + javax.accessibility; \ + javax.imageio; \ + javax.imageio.event; \ + javax.imageio.metadata; \ + javax.imageio.plugins.jpeg; \ + javax.imageio.spi; \ + javax.imageio.stream; \ + javax.naming; \ + javax.naming.directory; \ + javax.naming.event; \ + javax.naming.ldap; \ + javax.naming.spi; \ + javax.print; \ + javax.print.attribute; \ + javax.print.attribute.standard; \ + javax.print.event; \ + javax.rmi; \ + javax.rmi.CORBA; \ + javax.security.auth; \ + javax.security.auth.callback; \ + javax.security.auth.kerberos; \ + javax.security.auth.login; \ + javax.security.auth.spi; \ + javax.security.auth.x500; \ + javax.sound.midi; \ + javax.sound.midi.spi; \ + javax.sound.sampled; \ + javax.sound.sampled.spi; \ + javax.sql; \ + javax.swing; \ + javax.swing.border; \ + javax.swing.colorchooser; \ + javax.swing.event; \ + javax.swing.filechooser; \ + javax.swing.plaf; \ + javax.swing.plaf.basic; \ + javax.swing.plaf.metal; \ + javax.swing.plaf.multi; \ + javax.swing.table; \ + javax.swing.text; \ + javax.swing.text.html; \ + javax.swing.text.html.parser; \ + javax.swing.text.rtf; \ + javax.swing.tree; \ + javax.swing.undo; \ + javax.transaction; \ + javax.transaction.xa; \ + javax.xml.parsers; \ + javax.xml.transform; \ + javax.xml.transform.dom; \ + javax.xml.transform.sax; \ + javax.xml.transform.stream; \ + org.ietf.jgss; \ + org.omg.CORBA; \ + org.omg.CORBA_2_3; \ + org.omg.CORBA_2_3.portable; \ + org.omg.CORBA.DynAnyPackage; \ + org.omg.CORBA.ORBPackage; \ + org.omg.CORBA.portable; \ + org.omg.CORBA.TypeCodePackage; \ + org.omg.CosNaming; \ + org.omg.CosNaming.NamingContextExtPackage; \ + org.omg.CosNaming.NamingContextPackage; \ + org.omg.Dynamic; \ + org.omg.DynamicAny; \ + org.omg.DynamicAny.DynAnyFactoryPackage; \ + org.omg.DynamicAny.DynAnyPackage; \ + org.omg.IOP; \ + org.omg.IOP.CodecFactoryPackage; \ + org.omg.IOP.CodecPackage; \ + org.omg.Messaging; \ + org.omg.PortableInterceptor; \ + org.omg.PortableInterceptor.ORBInitInfoPackage; \ + org.omg.PortableServer; \ + org.omg.PortableServer.CurrentPackage; \ + org.omg.PortableServer.POAManagerPackage; \ + org.omg.PortableServer.POAPackage; \ + org.omg.PortableServer.portable; \ + org.omg.PortableServer.ServantLocatorPackage; \ + org.omg.SendingContext; \ + org.omg.stub.java.rmi; \ + org.w3c.dom; \ + org.w3c.dom.css; \ + org.w3c.dom.events; \ + org.w3c.dom.html; \ + org.w3c.dom.stylesheets; \ + org.w3c.dom.traversal; \ + org.w3c.dom.views; \ + org.xml.sax; \ + org.xml.sax.ext; \ + org.xml.sax.helpers; \ + version="1.4.0" + +jre-1.5= \ + javax.accessibility; \ + javax.activity; \ + javax.imageio; \ + javax.imageio.event; \ + javax.imageio.metadata; \ + javax.imageio.plugins.bmp; \ + javax.imageio.plugins.jpeg; \ + javax.imageio.spi; \ + javax.imageio.stream; \ + javax.management; \ + javax.management.loading; \ + javax.management.modelmbean; \ + javax.management.monitor; \ + javax.management.openmbean; \ + javax.management.relation; \ + javax.management.remote; \ + javax.management.remote.rmi; \ + javax.management.timer; \ + javax.naming; \ + javax.naming.directory; \ + javax.naming.event; \ + javax.naming.ldap; \ + javax.naming.spi; \ + javax.print; \ + javax.print.attribute; \ + javax.print.attribute.standard; \ + javax.print.event; \ + javax.rmi; \ + javax.rmi.CORBA; \ + javax.rmi.ssl; \ + javax.security.auth; \ + javax.security.auth.callback; \ + javax.security.auth.kerberos; \ + javax.security.auth.login; \ + javax.security.auth.spi; \ + javax.security.auth.x500; \ + javax.security.sasl; \ + javax.sound.midi; \ + javax.sound.midi.spi; \ + javax.sound.sampled; \ + javax.sound.sampled.spi; \ + javax.sql; \ + javax.sql.rowset; \ + javax.sql.rowset.serial; \ + javax.sql.rowset.spi; \ + javax.swing; \ + javax.swing.border; \ + javax.swing.colorchooser; \ + javax.swing.event; \ + javax.swing.filechooser; \ + javax.swing.plaf; \ + javax.swing.plaf.basic; \ + javax.swing.plaf.metal; \ + javax.swing.plaf.multi; \ + javax.swing.plaf.synth; \ + javax.swing.table; \ + javax.swing.text; \ + javax.swing.text.html; \ + javax.swing.text.html.parser; \ + javax.swing.text.rtf; \ + javax.swing.tree; \ + javax.swing.undo; \ + javax.transaction; \ + javax.transaction.xa; \ + javax.xml; \ + javax.xml.datatype; \ + javax.xml.namespace; \ + javax.xml.parsers; \ + javax.xml.transform; \ + javax.xml.transform.dom; \ + javax.xml.transform.sax; \ + javax.xml.transform.stream; \ + javax.xml.validation; \ + javax.xml.xpath; \ + org.ietf.jgss; \ + org.omg.CORBA; \ + org.omg.CORBA_2_3; \ + org.omg.CORBA_2_3.portable; \ + org.omg.CORBA.DynAnyPackage; \ + org.omg.CORBA.ORBPackage; \ + org.omg.CORBA.portable; \ + org.omg.CORBA.TypeCodePackage; \ + org.omg.CosNaming; \ + org.omg.CosNaming.NamingContextExtPackage; \ + org.omg.CosNaming.NamingContextPackage; \ + org.omg.Dynamic; \ + org.omg.DynamicAny; \ + org.omg.DynamicAny.DynAnyFactoryPackage; \ + org.omg.DynamicAny.DynAnyPackage; \ + org.omg.IOP; \ + org.omg.IOP.CodecFactoryPackage; \ + org.omg.IOP.CodecPackage; \ + org.omg.Messaging; \ + org.omg.PortableInterceptor; \ + org.omg.PortableInterceptor.ORBInitInfoPackage; \ + org.omg.PortableServer; \ + org.omg.PortableServer.CurrentPackage; \ + org.omg.PortableServer.POAManagerPackage; \ + org.omg.PortableServer.POAPackage; \ + org.omg.PortableServer.portable; \ + org.omg.PortableServer.ServantLocatorPackage; \ + org.omg.SendingContext; \ + org.omg.stub.java.rmi; \ + org.omg.stub.javax.management.remote.rmi; \ + org.w3c.dom; \ + org.w3c.dom.bootstrap; \ + org.w3c.dom.css; \ + org.w3c.dom.events; \ + org.w3c.dom.html; \ + org.w3c.dom.ls; \ + org.w3c.dom.ranges; \ + org.w3c.dom.stylesheets; \ + org.w3c.dom.traversal; \ + org.w3c.dom.views; \ + org.xml.sax; \ + org.xml.sax.ext; \ + org.xml.sax.helpers; \ + version="1.5.0" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |