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.
|