[vmkit-commits] [vmkit] r183676 - Adding Incinerator feature to J3. Factorizing most Incinerator changes into a main directory.

Koutheir Attouchi koutheir at gmail.com
Mon Jun 10 09:15:23 PDT 2013


Author: koutheir
Date: Mon Jun 10 11:15:21 2013
New Revision: 183676

URL: http://llvm.org/viewvc/llvm-project?rev=183676&view=rev
Log:
Adding Incinerator feature to J3. Factorizing most Incinerator changes into a main directory.

Added:
    vmkit/branches/incinerator/incinerator/
    vmkit/branches/incinerator/incinerator/README.TXT   (with props)
    vmkit/branches/incinerator/incinerator/knopflerfish.patch   (with props)
    vmkit/branches/incinerator/incinerator/osgi/
    vmkit/branches/incinerator/incinerator/osgi/.bundle-pack   (with props)
    vmkit/branches/incinerator/incinerator/osgi/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/osgi/.project   (with props)
    vmkit/branches/incinerator/incinerator/osgi/bin/
    vmkit/branches/incinerator/incinerator/osgi/bin/j3/
    vmkit/branches/incinerator/incinerator/osgi/bin/j3/vm/
    vmkit/branches/incinerator/incinerator/osgi/bin/j3mgr/
    vmkit/branches/incinerator/incinerator/osgi/bundle.manifest   (with props)
    vmkit/branches/incinerator/incinerator/osgi/out/
    vmkit/branches/incinerator/incinerator/osgi/out/j3/
    vmkit/branches/incinerator/incinerator/osgi/out/j3/vm/
    vmkit/branches/incinerator/incinerator/osgi/out/j3mgr/
    vmkit/branches/incinerator/incinerator/osgi/src/
    vmkit/branches/incinerator/incinerator/osgi/src/j3/
    vmkit/branches/incinerator/incinerator/osgi/src/j3/J3Mgr.java   (with props)
    vmkit/branches/incinerator/incinerator/osgi/src/j3/vm/
    vmkit/branches/incinerator/incinerator/osgi/src/j3/vm/OSGi.java   (with props)
    vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/
    vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/Activator.java   (with props)
    vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/J3MgrImpl.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/
    vmkit/branches/incinerator/incinerator/tests/AnnotationClassTest.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/.bundle-pack   (with props)
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/.project   (with props)
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/bundle.manifest   (with props)
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/out/
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/out/BundleReloader/
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/out/j3/
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/out/j3/vm/
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/Activator.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/BundleReloader.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/SameBundleReloader.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/ScanningBundleReloader.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/j3/
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/j3/vm/
    vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/j3/vm/OSGi.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/FieldWriteTest.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/InstanceOfThisTest.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/InvokeFinalizerTest.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/LshlTest.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/LshrTest.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/MyAnnotation.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ThisReferenceTest.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ThreadTest.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/
    vmkit/branches/incinerator/incinerator/tests/benchmarks/benchmarks.odt   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/bytes.sh   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/
    vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-cascaded-leak-demo.txt   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-cascaded-leak-sol.txt   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-registration-leak-demo.txt   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-registration-leak-sol.txt   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-simple-leak-demo.txt   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-simple-leak-sol.txt   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-thread-leak-demo.txt   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-thread-leak-sol.txt   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/float.sh   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref-corrected.csv   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref.csv   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref.plot   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/mon-process.sh   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/old/
    vmkit/branches/incinerator/incinerator/tests/benchmarks/old/monitor_process.sh   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/reinstall-count.txt   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/run-dacapo.sh   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/run-mon-process.sh   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/scenarios.odt   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/statistics.sh   (with props)
    vmkit/branches/incinerator/incinerator/tests/benchmarks/std-deviation.sh   (with props)
    vmkit/branches/incinerator/incinerator/tests/debug.txt   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.bundle-pack   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.project   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/bin/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/bin/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/bin/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/bin/ijvm/tests/A/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/bundle.manifest   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/out/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/out/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/out/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/out/ijvm/tests/A/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/A.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/Token.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.bundle-pack   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.project   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/bin/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/bin/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/bin/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/bin/ijvm/tests/AImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/bundle.manifest   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/out/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/out/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/out/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/out/ijvm/tests/AImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/AImpl.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/Activator.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/InfiniteResurrecter.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/TokenImpl.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.bundle-pack   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.project   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/bundle.manifest   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/out/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/out/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/out/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/out/ijvm/tests/Alarm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/src/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/src/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/src/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/src/ijvm/tests/Alarm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/src/ijvm/tests/Alarm/Alarm.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.bundle-pack   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.project   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/bundle.manifest   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/out/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/out/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/out/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/out/ijvm/tests/AlarmController/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/Activator.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/AlarmWatchDog.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.bundle-pack   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.project   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/bundle.manifest   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/out/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/out/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/out/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/out/ijvm/tests/AlarmImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/Activator.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/AlarmConfig_v1.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/AlarmImpl_v1.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.bundle-pack   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.project   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/bundle.manifest   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/out/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/out/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/out/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/out/ijvm/tests/AlarmImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/Activator.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/AlarmConfig_v2.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/AlarmImpl_v2.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.bundle-pack   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.project   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/bin/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/bin/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/bin/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/bin/ijvm/tests/B/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/bin/ijvm/tests/BImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/bundle.manifest   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/out/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/out/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/out/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/out/ijvm/tests/B/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/out/ijvm/tests/BImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/B/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/B/B.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/Activator.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/BImpl.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.bundle-pack   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.project   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/bin/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/bin/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/bin/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/bin/ijvm/tests/BundleMgmtStress/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/bundle.manifest   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/out/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/out/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/out/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/out/ijvm/tests/BundleMgmtStress/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/src/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/src/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/src/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/src/ijvm/tests/BundleMgmtStress/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/src/ijvm/tests/BundleMgmtStress/Activator.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.bundle-pack   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.project   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/bin/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/bin/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/bin/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/bin/ijvm/tests/C/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/bundle.manifest   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/out/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/out/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/out/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/out/ijvm/tests/C/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/src/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/src/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/src/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/src/ijvm/tests/C/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/src/ijvm/tests/C/C.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.bundle-pack   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.project   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/bin/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/bin/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/bin/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/bin/ijvm/tests/CImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/bundle.manifest   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/out/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/out/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/out/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/out/ijvm/tests/CImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/Activator.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/CImpl.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.bundle-pack   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.project   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/bin/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/bin/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/bin/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/bin/ijvm/tests/D/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/bin/ijvm/tests/DImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/bundle.manifest   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/out/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/out/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/out/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/out/ijvm/tests/D/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/out/ijvm/tests/DImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/D/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/D/D.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/Activator.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/DImpl.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.bundle-pack   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.project   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/bin/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/bin/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/bin/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/bin/ijvm/tests/Runner/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/bundle.manifest   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/out/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/out/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/out/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/out/ijvm/tests/Runner/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/Activator.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/Runner.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/java-grant-all.policy   (with props)
    vmkit/branches/incinerator/incinerator/tests/minimal.bug.xargs   (with props)
    vmkit/branches/incinerator/incinerator/tests/minimal.http.xargs   (with props)
    vmkit/branches/incinerator/incinerator/tests/minimal.xargs   (with props)
    vmkit/branches/incinerator/incinerator/tests/resurrection/
    vmkit/branches/incinerator/incinerator/tests/resurrection/.classpath   (with props)
    vmkit/branches/incinerator/incinerator/tests/resurrection/.project   (with props)
    vmkit/branches/incinerator/incinerator/tests/resurrection/bin/
    vmkit/branches/incinerator/incinerator/tests/resurrection/bin/resurrection/
    vmkit/branches/incinerator/incinerator/tests/resurrection/src/
    vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/
    vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/resurrect.java   (with props)
    vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/resurrected.java   (with props)

Added: vmkit/branches/incinerator/incinerator/README.TXT
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/README.TXT?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/README.TXT (added)
+++ vmkit/branches/incinerator/incinerator/README.TXT Mon Jun 10 11:15:21 2013
@@ -0,0 +1,115 @@
+=============
+Requirements:
+=============
+
+* Install required packages (Debian):
+apt-get install ant antlr libgconf2-dev libgtk2.0-dev sharutils
+
+* Install required packages (SUSE):
+zypper install ant gconf2-devel gtk2-devel
+
+* If you want to use OpenJDK:
+apt-get install default-jre default-jdk
+
+==============
+GNU Classpath:
+==============
+
+wget http://ftp.gnu.org/gnu/classpath/classpath-0.99.tar.gz
+tar zxf classpath-0.99.tar.gz
+ln -s classpath-0.99 classpath
+cd classpath
+./configure --disable-plugin --disable-examples --disable-Werror
+make -j12
+cd lib
+ln -sf ../native/jni/gtk-peer/.libs/libgtkpeer.so
+ln -sf ../native/jni/gconf-peer/.libs/libgconfpeer.so
+ln -sf ../native/jni/java-io/.libs/libjavaio.so
+ln -sf ../native/jni/java-lang/.libs/libjavalangreflect.so
+ln -sf ../native/jni/java-lang/.libs/libjavalang.so
+ln -sf ../native/jni/java-net/.libs/libjavanet.so
+ln -sf ../native/jni/java-nio/.libs/libjavanio.so
+ln -sf ../native/jni/java-util/.libs/libjavautil.so
+
+* Go root
+cd classpath
+sudo make install
+sudo ldconfig
+
+=====
+LLVM:
+=====
+
+* Get it (git):
+
+git clone http://llvm.org/git/llvm.git
+cd llvm/tools
+git clone http://llvm.org/git/clang.git
+cd ../projects
+git clone http://llvm.org/git/compiler-rt.git
+cd compiler-rt
+git config branch.master.rebase true
+cd ../../tools/clang
+git config branch.master.rebase true
+cd ../..
+git config branch.master.rebase true
+
+* You can also get it via svn:
+
+svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
+cd llvm/tools
+svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
+cd ../projects
+svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
+cd ..
+
+* Patch it:
+
+cd llvm
+patch -p1 < ../ijvm/patches/llvm.patch
+
+* Make it (release mode):
+
+./configure --enable-optimized --enable-assertions --enable-jit --enable-threads --enable-pthreads --enable-pic --enable-targets=host,cpp --disable-docs --disable-doxygen
+make -j12 ENABLE_OPTIMIZED=1 BUILD_EXAMPLES=0 ENABLE_DOCS=0
+ln -s Release+Asserts Debug+Asserts
+
+* You can also make it in debug mode, but this is is not necessary to debug compiled programs:
+
+./configure --disable-optimized --enable-assertions --enable-debug-runtime --enable-debug-symbols --enable-keep-symbols --enable-jit --enable-threads --enable-pthreads --enable-pic --enable-targets=x86,cpp --disable-docs --disable-doxygen
+make -j12 ENABLE_OPTIMIZED=0 BUILD_EXAMPLES=0 ENABLE_DOCS=0
+
+======
+VMKit:
+======
+
+* Get it (git):
+
+git clone git://scm.gforge.inria.fr/vmkit2/vmkit2.git -b ijvm ijvm
+or:
+git clone git+ssh://YOUR_USER_NAME@scm.gforge.inria.fr//gitroot/vmkit2/vmkit2.git -b ijvm ijvm
+* You can also get it via svn:
+
+svn co http://llvm.org/svn/llvm-project/vmkit/trunk vmkit
+
+* Make it (debug mode):
+
+./configure --enable-incinerator --with-mmtk-plan=org.mmtk.plan.marksweep.MS --with-llvmsrc=/home/koutheir/PhD/VMKit/llvm --with-llvmobj=/home/koutheir/PhD/VMKit/llvm --with-gnu-classpath-libs=/home/koutheir/PhD/VMKit/classpath/lib --with-gnu-classpath-glibj=/home/koutheir/PhD/VMKit/classpath/lib/glibj.zip
+./configure --enable-incinerator --with-mmtk-plan=org.mmtk.plan.immix.Immix --with-llvmsrc=/home/koutheir/PhD/VMKit/llvm --with-llvmobj=/home/koutheir/PhD/VMKit/llvm --with-gnu-classpath-libs=/home/koutheir/PhD/VMKit/classpath/lib --with-gnu-classpath-glibj=/home/koutheir/PhD/VMKit/classpath/lib/glibj.zip
+make -j12 ENABLE_OPTIMIZED=0 REQUIRES_FRAME_POINTER=1 KEEP_SYMBOLS=1 DEBUG_RUNTIME=1 DEBUG_SYMBOLS=1
+
+./configure --with-mmtk-plan=org.mmtk.plan.marksweep.MS --with-llvmsrc=/home/koutheir/PhD/VMKit/llvm --with-llvmobj=/home/koutheir/PhD/VMKit/llvm/build.x86 --with-gnu-classpath-libs=/home/koutheir/PhD/VMKit/classpath-0.99/build.x86/lib --with-gnu-classpath-glibj=/home/koutheir/PhD/VMKit/classpath-0.99/build.x86/lib/glibj.zip
+./configure --enable-incinerator --with-mmtk-plan=org.mmtk.plan.marksweep.MS --with-llvmsrc=/home/koutheir/PhD/VMKit/llvm --with-llvmobj=/home/koutheir/PhD/VMKit/llvm/build.x86 --with-gnu-classpath-libs=/home/koutheir/PhD/VMKit/classpath-0.99/build.x86/lib --with-gnu-classpath-glibj=/home/koutheir/PhD/VMKit/classpath-0.99/build.x86/lib/glibj.zip
+
+=============
+Knopflerfish:
+=============
+
+* Apply patch:
+cd knopflerfish
+patch -p1 < ../ijvm/knopflerfish.patch
+cd ..
+
+* Recompile Knopflerfish:
+cd knopflerfish/osgi
+ant default

Propchange: vmkit/branches/incinerator/incinerator/README.TXT
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/knopflerfish.patch
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/knopflerfish.patch?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/knopflerfish.patch (added)
+++ vmkit/branches/incinerator/incinerator/knopflerfish.patch Mon Jun 10 11:15:21 2013
@@ -0,0 +1,29 @@
+Index: knopflerfish/osgi/framework/src/j3/vm/OSGi.java
+===================================================================
+--- knopflerfish/osgi/framework/src/j3/vm/OSGi.java	1970-01-01 01:00:00.000000000 +0100
++++ knopflerfish/osgi/framework/src/j3/vm/OSGi.java	2012-10-27 00:08:43.000000000 +0200
+@@ -0,0 +1,6 @@
++package j3.vm;
++
++public class OSGi
++{
++	public static native void associateBundleClass(long bundleID, Class classObject);
++}
+Index: knopflerfish/osgi/framework/src/org/knopflerfish/framework/BundleClassLoader.java
+===================================================================
+--- knopflerfish/osgi/framework/src/org/knopflerfish/framework/BundleClassLoader.java	2012-10-27 02:29:49.852807353 +0200
++++ knopflerfish/osgi/framework/src/org/knopflerfish/framework/BundleClassLoader.java	2012-10-27 02:36:22.287024825 +0200
+@@ -821,9 +821,12 @@
+     }
+     Vector av = classPath.componentExists(path, onlyFirst);
+     if (av != null) {
+       try {
+-        return action.get(av, path, name, pkg, this);
++        Object cl = action.get(av, path, name, pkg, this);
++        if (cl instanceof Class)
++          j3.vm.OSGi.associateBundleClass(getBundle().getBundleId(), (Class)cl);
++        return cl;
+       } catch (IOException ioe) {
+         fwCtx.listeners.frameworkError(bpkgs.bg.bundle, ioe);
+         return null;
+       }

Propchange: vmkit/branches/incinerator/incinerator/knopflerfish.patch
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/osgi/.bundle-pack
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/osgi/.bundle-pack?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/osgi/.bundle-pack (added)
+++ vmkit/branches/incinerator/incinerator/osgi/.bundle-pack Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<bundlejar>
+<resource dst="" pattern=".*\.class" src="/j3mgr/out" type="0"/>
+</bundlejar>

Propchange: vmkit/branches/incinerator/incinerator/osgi/.bundle-pack
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/osgi/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/osgi/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/osgi/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/osgi/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.svn/**|**/CVS/**" including="**/*.java" kind="src" path="src"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.EXECUTION_ENVIRONMENT_CONTAINER"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.FRAMEWORK_CONTAINER">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/osgi/service/packageadmin/"/>
+			<accessrule kind="accessible" pattern="org/osgi/framework/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="output" path="out"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/osgi/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/osgi/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/osgi/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/osgi/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/osgi/.project (added)
+++ vmkit/branches/incinerator/incinerator/osgi/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>j3mgr</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.knopflerfish.eclipse.core.bundlebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.knopflerfish.eclipse.core.bundlenature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/osgi/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/osgi/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/osgi/bundle.manifest
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/osgi/bundle.manifest?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/osgi/bundle.manifest (added)
+++ vmkit/branches/incinerator/incinerator/osgi/bundle.manifest Mon Jun 10 11:15:21 2013
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-Vendor: Koutheir Attouchi
+Bundle-Version: 1.0.0
+Bundle-Name: J3 Virtual Machine Manager
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: j3mgr
+Bundle-Activator: j3mgr.Activator
+Export-Package: j3
+Import-Package: org.osgi.framework, org.osgi.service.packageadmin
+

Propchange: vmkit/branches/incinerator/incinerator/osgi/bundle.manifest
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/osgi/src/j3/J3Mgr.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/osgi/src/j3/J3Mgr.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/osgi/src/j3/J3Mgr.java (added)
+++ vmkit/branches/incinerator/incinerator/osgi/src/j3/J3Mgr.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,20 @@
+package j3;
+
+public interface J3Mgr
+{
+	public void setBundleStaleReferenceCorrected(
+		long bundleID, boolean corrected) throws Throwable;
+	public boolean isBundleStaleReferenceCorrected(
+		long bundleID) throws Throwable;
+	
+	// THE FOLLOWING METHODS ARE DEBUGGING HELPERS
+	// THEY SHOULD BE REMOVED IN PRODUCTION
+	
+	public void dumpClassLoaderBundles() throws Throwable;
+	public void dumpReferencesToObject(String obj_address) throws Throwable;
+	public void setBundleStaleReferenceCorrected(
+		String bundleNameOrID, String corrected) throws Throwable;
+	public void isBundleStaleReferenceCorrected(
+		String bundleNameOrID) throws Throwable;
+	public void forceStaleReferenceScanning() throws Throwable;
+}

Propchange: vmkit/branches/incinerator/incinerator/osgi/src/j3/J3Mgr.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/osgi/src/j3/J3Mgr.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/osgi/src/j3/vm/OSGi.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/osgi/src/j3/vm/OSGi.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/osgi/src/j3/vm/OSGi.java (added)
+++ vmkit/branches/incinerator/incinerator/osgi/src/j3/vm/OSGi.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,15 @@
+package j3.vm;
+
+public class OSGi
+{
+	// OSGi hooks and information gathering
+	public static native void associateBundleClass(long bundleID, Class classObject);
+    public static native void notifyBundleUninstalled(long bundleID);
+	
+	// Commands
+    public static native void setBundleStaleReferenceCorrected(long bundleID, boolean corrected);
+    public static native boolean isBundleStaleReferenceCorrected(long bundleID);
+	public static native void dumpClassLoaderBundles();
+	public static native void dumpReferencesToObject(long obj);
+	public static native void forceStaleReferenceScanning();
+}

Propchange: vmkit/branches/incinerator/incinerator/osgi/src/j3/vm/OSGi.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/osgi/src/j3/vm/OSGi.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/Activator.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/Activator.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/Activator.java (added)
+++ vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/Activator.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,28 @@
+package j3mgr;
+
+import j3.J3Mgr;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator
+	implements BundleActivator
+{
+	J3MgrImpl mgr;
+
+	public void start(BundleContext bundleContext) throws Exception
+	{
+		mgr = new J3MgrImpl();
+		mgr.open(bundleContext);
+		
+		bundleContext.registerService(J3Mgr.class.getName(), mgr, null);
+	}
+
+	public void stop(BundleContext bundleContext) throws Exception
+	{
+		if (mgr != null) {
+			mgr.close();
+			mgr = null;
+		}
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/Activator.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/J3MgrImpl.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/J3MgrImpl.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/J3MgrImpl.java (added)
+++ vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/J3MgrImpl.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,137 @@
+package j3mgr;
+
+import j3.J3Mgr;
+
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.BundleListener;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.packageadmin.PackageAdmin;
+
+public class J3MgrImpl
+	implements J3Mgr, BundleListener
+{
+	BundleContext context;
+	
+	public void open(BundleContext bundleContext)
+	{
+		context = bundleContext;
+		
+		context.addBundleListener(this);
+	}
+
+	public void close()
+	{
+		context.removeBundleListener(this);
+		context = null;
+	}
+
+	public void setBundleStaleReferenceCorrected(
+		long bundleID, boolean corrected) throws Throwable
+	{
+		j3.vm.OSGi.setBundleStaleReferenceCorrected(bundleID, corrected);
+		
+		if (!corrected || (context.getBundle(bundleID) != null))
+			return;	// Bundle ignored, or still installed
+		
+		// Inexistent bundle to be corrected, probably uninstalled,
+		// Notify the VM now.
+		j3.vm.OSGi.notifyBundleUninstalled(bundleID);
+		refreshFramework();
+	}
+
+	public boolean isBundleStaleReferenceCorrected(
+		long bundleID) throws Throwable
+	{
+		return j3.vm.OSGi.isBundleStaleReferenceCorrected(bundleID);
+	}
+
+	public void bundleChanged(BundleEvent event)
+	{
+		if (event.getType() != BundleEvent.UNINSTALLED) return;
+		
+		try {
+			refreshFramework();
+			j3.vm.OSGi.notifyBundleUninstalled(event.getBundle().getBundleId());
+		} catch (Throwable e) {}
+	}
+	
+	void refreshFramework()
+	{
+		ServiceReference pkgAdminRef =
+			(ServiceReference)context.getServiceReference(
+				"org.osgi.service.packageadmin.PackageAdmin");
+		PackageAdmin pkgAdmin = (PackageAdmin)context.getService(pkgAdminRef);
+		pkgAdmin.refreshPackages(null);
+		context.ungetService(pkgAdminRef);
+	}
+	
+	// THE FOLLOWING METHODS ARE DEBUGGING HELPERS
+	// THEY SHOULD BE REMOVED IN PRODUCTION
+	
+	public void setBundleStaleReferenceCorrected(
+		String bundleNameOrID, String corrected) throws Throwable
+	{
+		long bundleID = getBundleID(bundleNameOrID);
+		if (bundleID == -1) throw new IllegalArgumentException(bundleNameOrID);
+
+		setBundleStaleReferenceCorrected(bundleID, corrected.equals("yes"));
+	}
+	
+	public void isBundleStaleReferenceCorrected(
+		String bundleNameOrID) throws Throwable
+	{
+		long bundleID = getBundleID(bundleNameOrID);
+		if (bundleID == -1) throw new IllegalArgumentException(bundleNameOrID);
+		
+		boolean value = isBundleStaleReferenceCorrected(bundleID);
+		System.out.println(
+			"isBundleStaleReferenceCorrected(bundleID=" + bundleID + ") = " +
+			(value ? "yes" : "no"));
+	}
+
+	long getBundleID(String symbolicNameOrID)
+	{
+		try {
+			long bundleID = Long.parseLong(symbolicNameOrID);
+			
+			if (context.getBundle(bundleID) == null) {
+				System.out.println(
+					"WARNING: bundleID=" + bundleID +
+					" is invalid, probably already uninstalled.");
+			}
+			
+			return (bundleID < 0) ? -1 : bundleID;
+		} catch (NumberFormatException e) {
+			// This is not a bundle ID, it must be a symbolic name
+		}
+		
+		Bundle[] bundles = context.getBundles();
+		for (int i=0; i < bundles.length; ++i) {
+			if (symbolicNameOrID.equals(bundles[i].getSymbolicName()))
+				return bundles[i].getBundleId();
+		}
+		return -1;
+	}
+
+	public void dumpClassLoaderBundles() throws Throwable
+	{
+		j3.vm.OSGi.dumpClassLoaderBundles();
+	}
+
+	public void dumpReferencesToObject(String obj_address) throws Throwable
+	{
+		long obj = 0;
+		if (obj_address.startsWith("0x"))
+			obj_address = obj_address.substring(2);
+		obj = Long.parseLong(obj_address, 16);
+		
+		j3.vm.OSGi.dumpReferencesToObject(obj);
+	}
+
+	public void forceStaleReferenceScanning() throws Throwable
+	{
+		j3.vm.OSGi.forceStaleReferenceScanning();
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/J3MgrImpl.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/osgi/src/j3mgr/J3MgrImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/AnnotationClassTest.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/AnnotationClassTest.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/AnnotationClassTest.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/AnnotationClassTest.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,51 @@
+import java.lang.Deprecated;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+/**
+ * Created with IntelliJ IDEA.
+ * User: inti
+ * Date: 11/14/12
+ * Time: 11:08 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class AnnotationClassTest {
+
+  static class Sample {
+    @Deprecated
+    @MyAnnotation (property=5)
+    public int x;
+    
+    @MyAnnotation (property=5)
+    public int y() {
+    	return x*x;
+    }
+  }
+
+  public static void main(String[] args) throws Exception {
+    Field f = Sample.class.getField("x");
+    Method m = Sample.class.getMethod("y");
+    Sample sample = new Sample();
+    sample.x = 14;
+    
+    f.getDeclaredAnnotations();
+
+    MyAnnotation xx = (MyAnnotation)f.getAnnotation(MyAnnotation.class);
+		MyAnnotation yy = (MyAnnotation)f.getAnnotation(MyAnnotation.class);
+		
+		
+
+    check(f.getInt(sample) == 14);
+    f.setInt(sample, 17);
+    check(f.getInt(sample) == 17);
+    check(xx != null);
+    check(yy != null);
+    //int s = yy.property();
+    //check(s == 5);
+  }
+
+  private static void check(boolean b) throws Exception {
+    if (!b) throw new Exception("Test failed!!!");
+  }
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/AnnotationClassTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/AnnotationClassTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/BundleReloader/.bundle-pack
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/BundleReloader/.bundle-pack?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/BundleReloader/.bundle-pack (added)
+++ vmkit/branches/incinerator/incinerator/tests/BundleReloader/.bundle-pack Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<bundlejar>
+<resource dst="" pattern=".*\.class" src="/BundleReloader/out" type="0"/>
+</bundlejar>

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/.bundle-pack
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/BundleReloader/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/BundleReloader/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/BundleReloader/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/tests/BundleReloader/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.svn/**|**/CVS/**" including="**/*.java" kind="src" path="src"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.EXECUTION_ENVIRONMENT_CONTAINER"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.FRAMEWORK_CONTAINER">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/osgi/service/packageadmin/"/>
+			<accessrule kind="accessible" pattern="org/osgi/framework/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="output" path="out"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/BundleReloader/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/BundleReloader/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/BundleReloader/.project (added)
+++ vmkit/branches/incinerator/incinerator/tests/BundleReloader/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>BundleReloader</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.knopflerfish.eclipse.core.bundlebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.knopflerfish.eclipse.core.bundlenature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/BundleReloader/bundle.manifest
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/BundleReloader/bundle.manifest?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/BundleReloader/bundle.manifest (added)
+++ vmkit/branches/incinerator/incinerator/tests/BundleReloader/bundle.manifest Mon Jun 10 11:15:21 2013
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-Vendor: Koutheir Attouchi
+Bundle-Version: 1.0.0
+Bundle-Name: BundleReloader
+Bundle-ManifestVersion: 2
+Bundle-Activator: BundleReloader.Activator
+Import-Package: org.osgi.framework, org.osgi.service.packageadmin
+Bundle-SymbolicName: BundleReloader
+Bundle-RequiredExecutionEnvironment: OSGi/Minimum-1.0
+

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/bundle.manifest
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/Activator.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/Activator.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/Activator.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/Activator.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,33 @@
+package BundleReloader;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator
+	implements BundleActivator
+{
+	static final String target_bundle = "file:///home/koutheir/PhD/VMKit/knopflerfish/osgi/jars/http/http_all-3.1.2.jar";
+	static final boolean reinstall_is_update = true;
+	static final boolean stale_ref_elimination = false;
+
+	BundleContext context;
+	SameBundleReloader reloader;
+	//ScanningBundleReloader reloader;
+	
+	public void start(BundleContext context) throws Exception
+	{
+		this.context = context;
+		
+		reloader = new SameBundleReloader(context, reinstall_is_update, stale_ref_elimination, target_bundle);
+		//reloader = new ScanningBundleReloader(context);
+		reloader.start();
+	}
+	
+	public void stop(BundleContext context) throws Exception
+	{
+		reloader.stop();
+		reloader = null;
+		
+		this.context = null;
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/Activator.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/BundleReloader.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/BundleReloader.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/BundleReloader.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/BundleReloader.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,119 @@
+package BundleReloader;
+
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.packageadmin.PackageAdmin;
+
+public class BundleReloader
+{
+	final BundleContext context;
+	final boolean on_incinerator, stale_ref_elimination, reinstall_is_update;
+	
+	ServiceReference pkg_admin_ref;
+	PackageAdmin pkg_admin;
+
+	public BundleReloader(BundleContext context, boolean reinstall_is_update, boolean stale_ref_elimination)
+	{
+		this.context = context;
+		this.reinstall_is_update = reinstall_is_update;
+		this.stale_ref_elimination = stale_ref_elimination;
+		
+		pkg_admin_ref = context.getServiceReference(
+			"org.osgi.service.packageadmin.PackageAdmin");
+		pkg_admin = (PackageAdmin)context.getService(pkg_admin_ref);
+		
+		on_incinerator = isRunningOnIncinerator();
+		System.out.println("Running on Incinerator: " + (on_incinerator ? "yes" : "no"));
+	}
+	
+	protected void finalize()
+	{
+		context.ungetService(pkg_admin_ref);
+	}
+
+	public void reinstallBundle(String bundle_location) throws Throwable
+	{
+		Bundle[] bundles = new Bundle[] {
+			context.installBundle(bundle_location)
+		};
+		
+		long bundleID = bundles[0].getBundleId();
+		try {
+			bundles[0].start();
+			Thread.sleep(100);
+			
+			if (on_incinerator)
+				j3.vm.OSGi.setBundleStaleReferenceCorrected(bundleID, stale_ref_elimination);
+	
+			bundles[0].stop();
+			bundles[0].uninstall();
+		
+			pkg_admin.refreshPackages(bundles);
+			System.gc();
+			
+			if (on_incinerator)
+				j3.vm.OSGi.notifyBundleUninstalled(bundleID);
+		} catch (Throwable e) {
+			try {
+				bundles[0].uninstall();
+				pkg_admin.refreshPackages(bundles);
+			} catch (Exception ignore) {}
+			
+			throw e;
+		}
+	}
+	
+	public Bundle startBundleUpdating(String bundle_location) throws Exception
+	{
+		Bundle bundle = context.installBundle(bundle_location);
+		bundle.start();
+		Thread.sleep(300);
+		
+		if (on_incinerator)
+			j3.vm.OSGi.setBundleStaleReferenceCorrected(bundle.getBundleId(), stale_ref_elimination);
+		
+		return bundle;
+	}
+	
+	public void updateBundle(Bundle[] bundles) throws Throwable
+	{
+		Throwable updateException = null;
+		for (int retry = 10; retry > 0; --retry) {
+			try {
+				bundles[0].update();
+				
+				updateException = null;
+				retry = 0;
+			} catch (IllegalStateException e) {
+				updateException = e;
+				Thread.sleep(500);
+			}
+		}
+		
+		if (updateException != null)
+			throw updateException;
+		
+		pkg_admin.refreshPackages(bundles);
+		Thread.sleep(200);
+		System.gc();
+	}
+	
+	public void installBundle(String bundle_location) throws Exception
+	{
+		context.installBundle(bundle_location);
+	}
+	
+	boolean isRunningOnIncinerator()
+	{
+		boolean r = false;
+		try {
+			j3.vm.OSGi.isBundleStaleReferenceCorrected(
+				context.getBundle().getBundleId());
+			r = true;
+		}
+		catch (UnsatisfiedLinkError ignore) {}
+		catch (Throwable ignore) {r = true;}
+		return r;
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/BundleReloader.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/BundleReloader.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/SameBundleReloader.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/SameBundleReloader.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/SameBundleReloader.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/SameBundleReloader.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,105 @@
+package BundleReloader;
+
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+
+public class SameBundleReloader
+	implements Runnable
+{
+	final BundleContext context;
+	final Thread worker;
+	final boolean reinstall_is_update;
+	final String bundle_path;
+	
+	BundleReloader reloader;
+	
+	volatile boolean cancelWork;
+	volatile long loopCount;
+	
+	public SameBundleReloader(BundleContext context, boolean reinstall_is_update, boolean stale_ref_elimination, String bundle_path)
+	{
+		this.context = context;
+		this.reinstall_is_update = reinstall_is_update;
+		this.bundle_path = bundle_path;
+		
+		reloader = new BundleReloader(context, reinstall_is_update, stale_ref_elimination);
+		
+		cancelWork = true;
+		worker = new Thread(this, "SameBundleReloader");
+	}
+	
+	public void start()
+	{
+		cancelWork = false;
+		worker.start();
+	}
+	
+	public void stop() throws Exception
+	{
+		if (cancelWork) return;
+
+		cancelWork = true;
+		worker.join();
+	}
+	
+	public void run()
+	{
+		if (runInit())
+			runTask();
+		runTerm();
+	}	
+	
+	boolean runInit()
+	{
+		System.out.println(reinstall_is_update ?
+			"Bundle update running..." :
+			"Bundle reinstallation running...");
+		
+		try {Thread.sleep(5000);}
+		catch (Exception e) {}
+		
+		return !cancelWork;
+	}
+	
+	void runTask()
+	{
+		if (reinstall_is_update)
+			runTaskUpdate();
+		else
+			runTaskReinstall();
+	}
+	
+	void runTerm()
+	{
+		cancelWork = true;
+		System.out.println("Bundle reinstallation done. Count: " + loopCount);
+	}
+	
+	void runTaskUpdate()
+	{
+		Bundle[] bundles = new Bundle[1];
+		try {
+			bundles[0] = reloader.startBundleUpdating(bundle_path);
+
+			for (loopCount = 0; !cancelWork; ++loopCount)
+				reloader.updateBundle(bundles);
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+		
+		if (bundles[0] != null) {
+			//try {bundles[0].uninstall();}
+			//catch (Throwable e) {e.printStackTrace();}
+		}
+	}
+	
+	void runTaskReinstall()
+	{
+		try {
+			for (loopCount = 0; !cancelWork; ++loopCount)
+				reloader.reinstallBundle(bundle_path);
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/SameBundleReloader.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/SameBundleReloader.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/ScanningBundleReloader.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/ScanningBundleReloader.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/ScanningBundleReloader.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/ScanningBundleReloader.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,86 @@
+package BundleReloader;
+
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+
+public class ScanningBundleReloader
+	implements Runnable
+{
+	final BundleContext context;
+	final Thread worker;
+	
+	BundleReloader reloader;
+	
+	volatile boolean cancelWork;
+	volatile long currentBundleID;
+	
+	public ScanningBundleReloader(BundleContext context)
+	{
+		this.context = context;
+		currentBundleID = context.getBundle().getBundleId();
+		
+		reloader = new BundleReloader(context, true, true);
+		
+		cancelWork = true;
+		worker = new Thread(this, "ScanningBundleReloader");
+	}
+	
+	public void start()
+	{
+		cancelWork = false;
+		worker.start();
+	}
+	
+	public void stop() throws Exception
+	{
+		if (cancelWork) return;
+
+		cancelWork = true;
+		worker.join();
+	}
+	
+	public void run()
+	{
+		if (runInit())
+			runTask();
+		runTerm();
+	}	
+	
+	boolean runInit()
+	{
+		System.out.println("Bundle update running...");
+		
+		try {Thread.sleep(1000);}
+		catch (Exception e) {}
+		
+		return !cancelWork;
+	}
+	
+	void runTask()
+	{
+		Bundle[] bundles = new Bundle[1];
+		try {
+			for (bundles[0] = getNextBundle();
+				(bundles[0] != null) && (!cancelWork);
+				bundles[0] = getNextBundle())
+			{
+				System.out.println("Bundle update: #" + currentBundleID + " (" + bundles[0].getSymbolicName() + ")");
+				reloader.updateBundle(bundles);
+				Thread.sleep(4000);
+			}
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+	}
+	
+	void runTerm()
+	{
+		cancelWork = true;
+		System.out.println("Bundle reinstallation done.");
+	}
+	
+	Bundle getNextBundle()
+	{
+		return context.getBundle(++currentBundleID);
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/ScanningBundleReloader.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/BundleReloader/ScanningBundleReloader.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/j3/vm/OSGi.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/j3/vm/OSGi.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/j3/vm/OSGi.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/j3/vm/OSGi.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,13 @@
+package j3.vm;
+
+public class OSGi
+{
+	// OSGi hooks and information gathering
+	public static native void associateBundleClass(long bundleID, Class classObject);
+    public static native void notifyBundleUninstalled(long bundleID);
+	
+	// Commands
+    public static native void setBundleStaleReferenceCorrected(long bundleID, boolean corrected);
+    public static native boolean isBundleStaleReferenceCorrected(long bundleID);
+	public static native void dumpClassLoaderBundles();
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/j3/vm/OSGi.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/BundleReloader/src/j3/vm/OSGi.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/FieldWriteTest.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/FieldWriteTest.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/FieldWriteTest.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/FieldWriteTest.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,28 @@
+import java.lang.Thread;
+
+public class FieldWriteTest {
+  static class FieldWriterThread extends Thread {
+    boolean val = false;
+
+    FieldWriterThread() { super(); }
+
+    public void run() {
+      val = true;
+    }
+  }
+
+  public static void check(boolean b) throws Exception {
+    if (!b) throw new Exception("Check failed!");
+  }
+
+  public static void main(String[] args) throws Exception {
+    for (int i = 0; i < 100; ++i) {
+      FieldWriterThread t = new FieldWriterThread();
+      t.start();
+      check(t.isAlive());
+      t.join(); // Synchronization point!
+      check(!t.isAlive());
+      check(t.val);
+    }
+  }
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/FieldWriteTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/FieldWriteTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/InstanceOfThisTest.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/InstanceOfThisTest.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/InstanceOfThisTest.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/InstanceOfThisTest.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,27 @@
+public class InstanceOfThisTest {
+  public static void main(String[] args) {
+    new A().maybeFoo();
+    new B().maybeFoo();
+    new C().maybeFoo();
+  }
+
+  static class A {
+    void maybeFoo() {
+      if (this instanceof B)
+        ((B)this).foo();
+    }
+  }
+
+  static class B extends A {
+    void foo() {
+      System.out.println("B!");
+    }
+  }
+
+  static class C extends B {
+    void foo() {
+      System.out.println("C!");
+    }
+  }
+}
+

Propchange: vmkit/branches/incinerator/incinerator/tests/InstanceOfThisTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/InstanceOfThisTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/InvokeFinalizerTest.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/InvokeFinalizerTest.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/InvokeFinalizerTest.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/InvokeFinalizerTest.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,5 @@
+public class InvokeFinalizerTest {
+  public static void main(String[] args) throws Throwable {
+    new InvokeFinalizerTest().finalize();
+  }
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/InvokeFinalizerTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/InvokeFinalizerTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/LshlTest.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/LshlTest.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/LshlTest.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/LshlTest.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,15 @@
+class LshlTest {
+  public static void check(boolean b) throws Exception {
+    if (!b) throw new Exception("Check failed!");
+  }
+
+  public static void main(String[] args) throws Exception {
+    long l = 1;
+    check(l == 1);
+    check(l << 10 == 1024);
+    check(l << 32 == 4294967296L);
+    check(l << 64 == 1);
+    check(l << 128 == 1);
+    check(l << -10 == 18014398509481984L);
+  }
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/LshlTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/LshlTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/LshrTest.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/LshrTest.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/LshrTest.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/LshrTest.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,15 @@
+class LshrTest {
+  public static void check(boolean b) throws Exception {
+    if (!b) throw new Exception("Check failed!");
+  }
+
+  public static void main(String[] args) throws Exception {
+    long l = 1;
+    check(l == 1);
+    check(l >> 10 == 0);
+    check(l >> 32 == 0);
+    check(l >> 64 == 1);
+    check(l >> 128 == 1);
+    check(l >> -10 == 0);
+  }
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/LshrTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/LshrTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/MyAnnotation.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/MyAnnotation.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/MyAnnotation.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/MyAnnotation.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,6 @@
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+ at Retention(RetentionPolicy.RUNTIME)
+public @interface MyAnnotation {
+		int property();
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/MyAnnotation.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/MyAnnotation.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ThisReferenceTest.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ThisReferenceTest.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ThisReferenceTest.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ThisReferenceTest.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,18 @@
+public class ThisReferenceTest {
+  public static void main(String[] args) {
+    try {
+      new ThisReferenceTest().foo();
+    } catch (NullPointerException e) {
+    }
+  }
+
+  public void foo() {
+    Nested other = null;
+    other.bar(this, 2L);
+  }
+
+  public static class Nested {
+    public void bar(ThisReferenceTest other, long l) {
+    }
+  }
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ThisReferenceTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ThisReferenceTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ThreadTest.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ThreadTest.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ThreadTest.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ThreadTest.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+public class ThreadTest extends Thread {
+  public void run() {
+    // Nothing
+  }
+
+  public static void main(String[] args) throws InterruptedException {
+    int count = 10000;
+    try {
+    	count = Integer.parseInt(args[0]);
+    }
+    catch (Exception e) {
+    }
+    for(int i = 0; i < count ; ++i) {
+      Thread t1 = new ThreadTest();
+      Thread t2 = new ThreadTest();
+      t1.start();
+      t2.start();
+
+      t1.join();
+      t2.join();
+    }
+  }
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ThreadTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ThreadTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/benchmarks.odt
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/benchmarks.odt?rev=183676&view=auto
==============================================================================
Binary file - no diff available.

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/benchmarks.odt
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/benchmarks.odt
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/bytes.sh
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/bytes.sh?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/bytes.sh (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/bytes.sh Mon Jun 10 11:15:21 2013
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+. ./float.sh
+
+# Converts size from some size unit to bytes unit.
+function get_size_in_bytes()
+{
+	local size=$1
+	local number=$(echo "$size" | cut -d ' ' -f 1)
+	local unit=$(echo "$size" | cut -d ' ' -f 2)
+	local factor=1
+
+	case $unit in
+	B ) factor=1 ;;
+	kB ) factor=1024 ;;
+	mB ) factor=1048576 ;;
+	gB ) factor=1073741824 ;;
+	tB ) factor=1099511627776 ;;
+	esac
+	
+	float_eval "$number * $factor"
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/bytes.sh
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-cascaded-leak-demo.txt
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-cascaded-leak-demo.txt?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-cascaded-leak-demo.txt (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-cascaded-leak-demo.txt Mon Jun 10 11:15:21 2013
@@ -0,0 +1,70 @@
+Framework launched
+AImpl provides A
+BImpl exports and provides B
+BImpl got A @ startup
+BImpl got Token from A
+CImpl exports and provides C
+CImpl got B @ startup
+AImpl got C
+DImpl exports and provides D
+DImpl got C @ startup
+> bundles
+   id  level/state name
+   --------------------
+   11  1/active    A                13  1/active    A Implementation
+   14  1/active    B Implementation 10  1/active    J3 Virtual Machine Manager
+   12  1/active    C                15  1/active    C Implementation
+   16  1/active    D Implementation
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+...
+classLoader=0xb4e53e98	bundleID=11
+classLoader=0xb50b5ac0	bundleID=12
+classLoader=0xb5056070	bundleID=13
+classLoader=0xb4e13a68	bundleID=14
+classLoader=0xb4b06f38	bundleID=15
+classLoader=0xb4bcd178	bundleID=16
+> stop 13
+AImpl no more provides A
+AImpl lost C but keeps a stale reference to it
+BImpl lost A but keeps a stale reference to it
+Stopped: A Implementation (#13)
+> framework uninstall 13
+Uninstalled: A Implementation (#13)
+> framework refresh
+> framework meminfo -gc
+Total: 0  Free: 0  Max: 0  (kB)
+> stop 14
+BImpl no more provides B
+BImpl lost A but keeps a stale reference to it
+CImpl lost B but keeps a stale reference to it
+Stopped: B Implementation (#14)
+> framework uninstall 14
+Uninstalled: B Implementation (#14)
+> framework refresh
+CImpl no more provides C
+CImpl lost B but keeps a stale reference to it
+DImpl lost C but keeps a stale reference to it
+> framework meminfo -gc
+Total: 0  Free: 0  Max: 0  (kB)
+> stop 15
+Stopped: C Implementation (#15)
+> framework uninstall 15
+Uninstalled: C Implementation (#15)
+> framework refresh
+> framework meminfo -gc
+Total: 0  Free: 0  Max: 0  (kB)
+> bundles
+   id  level/state name
+   --------------------
+   11  1/active    A            10  1/active    J3 Virtual Machine Manager
+   12  1/active    C            16  1/active    D Implementation
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+...
+classLoader=0xb4e53e98	bundleID=11
+classLoader=0xb50b5ac0	bundleID=12
+classLoader=0xb5056070	bundleID=13
+classLoader=0xb4e13a68	bundleID=14
+classLoader=0xb4b06f38	bundleID=15
+classLoader=0xb4bcd178	bundleID=16
\ No newline at end of file

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-cascaded-leak-demo.txt
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-cascaded-leak-demo.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-cascaded-leak-sol.txt
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-cascaded-leak-sol.txt?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-cascaded-leak-sol.txt (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-cascaded-leak-sol.txt Mon Jun 10 11:15:21 2013
@@ -0,0 +1,86 @@
+Framework launched
+AImpl provides A
+BImpl exports and provides B
+BImpl got A @ startup
+BImpl got Token from A
+CImpl exports and provides C
+CImpl got B @ startup
+AImpl got C
+DImpl exports and provides D
+DImpl got C @ startup
+> bundles
+   id  level/state name
+   --------------------
+   11  1/active    A                13  1/active    A Implementation
+   14  1/active    B Implementation 10  1/active    J3 Virtual Machine Manager
+   12  1/active    C                15  1/active    C Implementation
+   16  1/active    D Implementation
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+...
+classLoader=0xb60cc280	bundleID=11
+classLoader=0xb6389478	bundleID=12
+classLoader=0xb63bd550	bundleID=13
+classLoader=0xb63709a0	bundleID=14
+classLoader=0xb61558d8	bundleID=15
+classLoader=0xb5e1c120	bundleID=16
+> framework call j3.J3Mgr resetReferencesToBundle ijvm.tests.AImpl
+resetReferencesToBundle: #13 ijvm.tests.AImpl
+Stopping bundle: ijvm.tests.AImpl
+AImpl no more provides A
+AImpl lost C but keeps a stale reference to it
+BImpl lost A but keeps a stale reference to it
+Uninstalling bundle: ijvm.tests.AImpl
+Refreshing framework...
+Result: null
+Resetting stale references to bundle #13
+Resetting ref=0x50bebfa4 obj=0x514a57f4(class=ijvm/tests/AImpl/Activator) source=0x50bebf9c(class=[Ljava/lang/Object;)
+Resetting ref=0x50beb888 obj=0x50370c74(class=ijvm/tests/AImpl/TokenImpl) source=0x50beb880(class=[Ljava/lang/Object;)
+Resetting ref=0x50beb854 obj=0x50006184(class=ijvm/tests/AImpl/AImpl) source=0x50beb84c(class=[Ljava/lang/Object;)
+WARNING: Source object is stale source=0x50370c74(class=ijvm/tests/AImpl/TokenImpl)
+WARNING: Source object is stale source=0x50006184(class=ijvm/tests/AImpl/AImpl)
+Resetting ref=0x515d2ef4 obj=0x514a57f4(class=ijvm/tests/AImpl/Activator) source=0x515d2eec(class=org/knopflerfish/framework/ServiceListenerEntry)
+WARNING: Ignored stale reference ref=0x5158139c obj=0x503709a4(class=j3::VMClassLoader,loader=0xb691d798,javaLoader=0x51581384,javaClass=org/knopflerfish/framework/BundleClassLoader) source=0x51581384(class=org/knopflerfish/framework/BundleClassLoader)
+Bundle class loader unloaded, bundleID=13
+> framework call j3.J3Mgr resetReferencesToBundle ijvm.tests.BImpl
+resetReferencesToBundle: #14 ijvm.tests.BImpl
+Stopping bundle: ijvm.tests.BImpl
+BImpl no more provides B
+BImpl lost A but keeps a stale reference to it
+CImpl lost B but keeps a stale reference to it
+Uninstalling bundle: ijvm.tests.BImpl
+Refreshing framework...
+Result: null
+CImpl no more provides C
+CImpl lost B but keeps a stale reference to it
+DImpl lost C but keeps a stale reference to it
+Resetting stale references to bundle #14
+WARNING: Ignored stale reference ref=0x5158145c obj=0x50370b6c(class=j3::VMClassLoader,loader=0xb6a79a30,javaLoader=0x51581444,javaClass=org/knopflerfish/framework/BundleClassLoader) source=0x51581444(class=org/knopflerfish/framework/BundleClassLoader)
+Resetting ref=0x50bebd34 obj=0x50006194(class=ijvm/tests/BImpl/BImpl) source=0x50bebd2c(class=[Ljava/lang/Object;)
+WARNING: Source object is stale source=0x50006194(class=ijvm/tests/BImpl/BImpl)
+Resetting ref=0x5160358c obj=0x5160331c(class=ijvm/tests/BImpl/Activator) source=0x51603584(class=org/knopflerfish/framework/ServiceListenerEntry)
+> framework call j3.J3Mgr resetReferencesToBundle ijvm.tests.CImpl
+resetReferencesToBundle: #15 ijvm.tests.CImpl
+Stopping bundle: ijvm.tests.CImpl
+Uninstalling bundle: ijvm.tests.CImpl
+Refreshing framework...
+Result: null
+Resetting stale references to bundle #15
+Resetting ref=0x50013f70 obj=0x50370e54(class=ijvm/tests/CImpl/CImpl) source=0x50013f68(class=[Ljava/lang/Object;)
+WARNING: Source object is stale source=0x50370e54(class=ijvm/tests/CImpl/CImpl)
+WARNING: Source object is stale source=0x50370e54(class=ijvm/tests/CImpl/CImpl)
+WARNING: Ignored stale reference ref=0x5158151c obj=0x50370d58(class=j3::VMClassLoader,loader=0xb61558d8,javaLoader=0x51581504,javaClass=org/knopflerfish/framework/BundleClassLoader) source=0x51581504(class=org/knopflerfish/framework/BundleClassLoader)
+WARNING: Ignored stale reference ref=0x5158145c obj=0x50370b6c(class=j3::VMClassLoader,loader=0xb63709a0,javaLoader=0x51581444,javaClass=org/knopflerfish/framework/BundleClassLoader) source=0x51581444(class=org/knopflerfish/framework/BundleClassLoader)
+Bundle class loader unloaded, bundleID=15
+Bundle class loader unloaded, bundleID=14
+> bundles
+   id  level/state name
+   --------------------
+   11  1/active    A            10  1/active    J3 Virtual Machine Manager
+   12  1/active    C            16  1/active    D Implementation
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+...
+classLoader=0xb60cc280	bundleID=11
+classLoader=0xb6389478	bundleID=12
+classLoader=0xb5e1c120	bundleID=16
\ No newline at end of file

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-cascaded-leak-sol.txt
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-cascaded-leak-sol.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-registration-leak-demo.txt
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-registration-leak-demo.txt?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-registration-leak-demo.txt (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-registration-leak-demo.txt Mon Jun 10 11:15:21 2013
@@ -0,0 +1,36 @@
+Framework launched
+AImpl provides A
+CImpl exports and provides C
+AImpl got C
+> bundles
+   id  level/state name
+   --------------------
+   12  1/active    C                13  1/active    A Implementation
+   15  1/active    C Implementation 10  1/active    J3 Virtual Machine Manager
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+...
+classLoader=0xb4c803c8	bundleID=12
+classLoader=0xb4c7a780	bundleID=13
+...
+classLoader=0xb4c71868	bundleID=15
+> stop 13
+AImpl no more provides A
+AImpl lost C but keeps a stale reference to it
+Stopped: A Implementation (#13)
+> framework uninstall 13
+Uninstalled: A Implementation (#13)
+> framework refresh
+> framework meminfo -gc
+Total: 0  Free: 0  Max: 0  (kB)
+> bundles
+   id  level/state name
+   --------------------
+   12  1/active    C                       15  1/active    C Implementation
+   10  1/active    J3 Virtual Machine Manager
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+classLoader=0xb4c803c8	bundleID=12
+classLoader=0xb4c7a780	bundleID=13
+...
+classLoader=0xb4c71868	bundleID=15

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-registration-leak-demo.txt
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-registration-leak-demo.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-registration-leak-sol.txt
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-registration-leak-sol.txt?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-registration-leak-sol.txt (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-registration-leak-sol.txt Mon Jun 10 11:15:21 2013
@@ -0,0 +1,40 @@
+Framework launched
+AImpl provides A
+CImpl exports and provides C
+AImpl got C
+> bundles
+   id  level/state name
+   --------------------
+   12  1/active    C                13  1/active    A Implementation
+   15  1/active    C Implementation 10  1/active    J3 Virtual Machine Manager
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+...
+classLoader=0xb56330b8	bundleID=12
+classLoader=0xb58afe78	bundleID=13
+...
+classLoader=0xb5a4d8c8	bundleID=15
+> framework call j3.J3Mgr resetReferencesToBundle ijvm.tests.AImpl
+resetReferencesToBundle: #13 ijvm.tests.AImpl
+Stopping bundle: ijvm.tests.AImpl
+AImpl no more provides A
+AImpl lost C but keeps a stale reference to it
+Uninstalling bundle: ijvm.tests.AImpl
+Refreshing framework...
+Result: null
+Resetting stale references to bundle #13
+Resetting ref=0x5144e034 obj=0x514a50ec(class=ijvm/tests/AImpl/Activator) source=0x5144e02c(class=[Ljava/lang/Object;)
+WARNING: Source object is stale source=0x50006184(class=ijvm/tests/AImpl/AImpl)
+Resetting ref=0x515f420c obj=0x514a50ec(class=ijvm/tests/AImpl/Activator) source=0x515f4204(class=org/knopflerfish/framework/ServiceListenerEntry)
+WARNING: Ignored stale reference ref=0x5158339c obj=0x503719ec(class=j3::VMClassLoader,loader=0xb58afe78,javaLoader=0x51583384,javaClass=org/knopflerfish/framework/BundleClassLoader) source=0x51583384(class=org/knopflerfish/framework/BundleClassLoader)
+Bundle class loader unloaded, bundleID=13
+> bundles
+   id  level/state name
+   --------------------
+   12  1/active    C                       15  1/active    C Implementation
+   10  1/active    J3 Virtual Machine Manager
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+classLoader=0xb56330b8	bundleID=12
+...
+classLoader=0xb5a4d8c8	bundleID=15
\ No newline at end of file

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-registration-leak-sol.txt
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-registration-leak-sol.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-simple-leak-demo.txt
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-simple-leak-demo.txt?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-simple-leak-demo.txt (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-simple-leak-demo.txt Mon Jun 10 11:15:21 2013
@@ -0,0 +1,38 @@
+Framework launched
+AImpl provides A
+BImpl exports and provides B
+BImpl got A @ startup
+BImpl got Token from A
+> bundles
+   id  level/state name
+   --------------------
+   11  1/active    A                 13  1/active    A Implementation
+   14  1/active    B Implementation  10  1/active    J3 Virtual Machine Manager
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+...
+classLoader=0xb6621458	bundleID=11
+...
+classLoader=0xb6f42b68	bundleID=13
+classLoader=0xb654e3b8	bundleID=14
+...
+> stop 13
+AImpl no more provides A
+...
+BImpl lost A but keeps a stale reference to it
+Stopped: A Implementation (#13)
+> framework uninstall 13
+Uninstalled: A Implementation (#13)
+> framework refresh
+> framework meminfo -gc
+Total: 0  Free: 0  Max: 0  (kB)
+> bundles
+   id  level/state name
+   --------------------
+   11  1/active    A                       14  1/active    B Implementation
+   10  1/active    J3 Virtual Machine Manager
+> framework call j3.J3Mgr dumpClassLoaderBundles
+classLoader=0xb6621458	bundleID=11
+...
+classLoader=0xb6f42b68	bundleID=13
+classLoader=0xb654e3b8	bundleID=14
\ No newline at end of file

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-simple-leak-demo.txt
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-simple-leak-demo.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-simple-leak-sol.txt
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-simple-leak-sol.txt?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-simple-leak-sol.txt (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-simple-leak-sol.txt Mon Jun 10 11:15:21 2013
@@ -0,0 +1,45 @@
+Framework launched
+AImpl provides A
+BImpl exports and provides B
+BImpl got A @ startup
+BImpl got Token from A
+> bundles
+   id  level/state name
+   --------------------
+   11  1/active    A                  13  1/active    A Implementation
+   14  1/active    B Implementation   10  1/active    J3 Virtual Machine Manager
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+...
+classLoader=0xb4391f0	bundleID=11
+...
+classLoader=0xb413318	bundleID=13
+classLoader=0xb503a30	bundleID=14
+...
+> framework call j3.J3Mgr resetReferencesToBundle ijvm.tests.AImpl
+resetReferencesToBundle: #13 ijvm.tests.AImpl
+Stopping bundle: ijvm.tests.AImpl
+AImpl no more provides A
+...
+BImpl lost A but keeps a stale reference to it
+Uninstalling bundle: ijvm.tests.AImpl
+Refreshing framework...
+...
+Resetting stale references to bundle #13
+Resetting ref=0x502a7d9c obj=0x50372cb0(class=ijvm/tests/AImpl/TokenImpl) source=0x502a7d94(class=[Ljava/lang/Object;)
+Resetting ref=0x502a7d68 obj=0x50006184(class=ijvm/tests/AImpl/AImpl) source=0x502a7d60(class=[Ljava/lang/Object;)
+WARNING: Source object is stale source=0x50372cb0(class=ijvm/tests/AImpl/TokenImpl)
+WARNING: Source object is stale source=0x50006184(class=ijvm/tests/AImpl/AImpl)
+Resetting ref=0x515f420c obj=0x514a50a4(class=ijvm/tests/AImpl/Activator) source=0x515f4204(class=org/knopflerfish/framework/ServiceListenerEntry)
+WARNING: Ignored stale reference ref=0x5158339c obj=0x503729e0(class=j3::VMClassLoader,loader=0xb413318,javaLoader=0x51583384,javaClass=org/knopflerfish/framework/BundleClassLoader) source=0x51583384(class=org/knopflerfish/framework/BundleClassLoader)
+Bundle class loader unloaded, bundleID=13
+> bundles
+   id  level/state name
+   --------------------
+   11  1/active    A                       14  1/active    B Implementation
+   10  1/active    J3 Virtual Machine Manager
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+classLoader=0xb4391f0	bundleID=11
+...
+classLoader=0xb503a30	bundleID=14
\ No newline at end of file

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-simple-leak-sol.txt
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-simple-leak-sol.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-thread-leak-demo.txt
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-thread-leak-demo.txt?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-thread-leak-demo.txt (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-thread-leak-demo.txt Mon Jun 10 11:15:21 2013
@@ -0,0 +1,48 @@
+Framework launched
+AImpl provides A
+Started runner bundle.
+Runner bundle got A @ startup.
+Started runner thread: Runner 2
+Started runner thread: Runner 1
+Runner 2: sleeping for 2792
+Runner 2: woke up
+Runner 1: sleeping for 2580
+Runner 1: woke up
+Runner 2: sleeping for 2704
+...
+> bundles
+   id  level/state name
+   --------------------
+   11  1/active    A             13  1/active    A Implementation
+   17  1/active    Runner        10  1/active    J3 Virtual Machine Manager
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+...
+classLoader=0xb4939af0	bundleID=11
+...
+classLoader=0xb4b4adf0	bundleID=13
+classLoader=0xb4bfdb08	bundleID=17
+> stop 13
+AImpl no more provides A
+...
+Stopped: A Implementation (#13)
+> framework uninstall 13
+Uninstalled: A Implementation (#13)
+> framework refresh
+> framework meminfo -gc
+Total: 0  Free: 0  Max: 0  (kB)
+> bundles
+   id  level/state name
+   --------------------
+   11  1/active    A             14  1/installed B Implementation
+   17  1/active    Runner        10  1/active    J3 Virtual Machine Manager
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+classLoader=0xb4939af0	bundleID=11
+...
+classLoader=0xb4b4adf0	bundleID=13
+classLoader=0xb4bfdb08	bundleID=17
+Runner 1: sleeping for 2398
+Runner 1: woke up
+Runner 2: sleeping for 2627
+...
\ No newline at end of file

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-thread-leak-demo.txt
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-thread-leak-demo.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-thread-leak-sol.txt
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-thread-leak-sol.txt?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-thread-leak-sol.txt (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-thread-leak-sol.txt Mon Jun 10 11:15:21 2013
@@ -0,0 +1,70 @@
+Framework launched
+AImpl provides A
+Started runner bundle.
+Runner bundle got A @ startup.
+Started runner thread: Runner 2
+Started runner thread: Runner 1
+Runner 2: sleeping for 2792
+Runner 2: woke up
+Runner 1: sleeping for 2580
+Runner 1: woke up
+Runner 2: sleeping for 2704
+...
+> bundles
+   id  level/state name
+   --------------------
+   11  1/active    A             13  1/active    A Implementation
+   17  1/active    Runner        10  1/active    J3 Virtual Machine Manager
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+...
+classLoader=0xb16fdb8	bundleID=11
+...
+classLoader=0xc563de8	bundleID=13
+classLoader=0xc80f440	bundleID=17
+> framework call j3.J3Mgr resetReferencesToBundle ijvm.tests.AImpl
+resetReferencesToBundle: #13 ijvm.tests.AImpl
+Stopping bundle: ijvm.tests.AImpl
+AImpl no more provides A
+AImpl lost C but keeps a stale reference to it
+Uninstalling bundle: ijvm.tests.AImpl
+Refreshing framework...
+Result: null
+Resetting stale references to bundle #13
+Resetting ref=0x109fef04 obj=0x50006184(class=ijvm/tests/AImpl/AImpl)
+Resetting ref=0x108febe4 obj=0x50006184(class=ijvm/tests/AImpl/AImpl)
+Resetting ref=0x108fece8 obj=0x50006184(class=ijvm/tests/AImpl/AImpl)
+Resetting ref=0x108fee00 obj=0x50006184(class=ijvm/tests/AImpl/AImpl)
+Resetting ref=0x108fee14 obj=0x50006184(class=ijvm/tests/AImpl/AImpl)
+Resetting ref=0x108fef04 obj=0x50006184(class=ijvm/tests/AImpl/AImpl)
+Resetting ref=0x108fef00 obj=0x50006184(class=ijvm/tests/AImpl/AImpl)
+Resetting ref=0x108feefc obj=0x50006184(class=ijvm/tests/AImpl/AImpl)
+Resetting ref=0xb6812160 obj=0x50006184(class=ijvm/tests/AImpl/AImpl)
+Resetting ref=0x50016228 obj=0x50006184(class=ijvm/tests/AImpl/AImpl) source=0x5001621c(class=ijvm/tests/Runner/Activator)
+Resetting ref=0x50009518 obj=0x50006184(class=ijvm/tests/AImpl/AImpl) source=0x50009514(class=ijvm/tests/Runner/Runner)
+Resetting ref=0x50009478 obj=0x50006184(class=ijvm/tests/AImpl/AImpl) source=0x50009474(class=ijvm/tests/Runner/Runner)
+WARNING: Source object is stale source=0x50006184(class=ijvm/tests/AImpl/AImpl)
+Resetting ref=0x515f420c obj=0x514a502c(class=ijvm/tests/AImpl/Activator) source=0x515f4204(class=org/knopflerfish/framework/ServiceListenerEntry)
+WARNING: Ignored stale reference ref=0x5158339c obj=0x503709d4(class=j3::VMClassLoader,loader=0xc563de8,javaLoader=0x51583384,javaClass=org/knopflerfish/framework/BundleClassLoader) source=0x51583384(class=org/knopflerfish/framework/BundleClassLoader)
+Runner 2: woke up
+Bundle class loader unloaded, bundleID=13
+Exception in thread "Runner 1" java.lang.NullPointerException
+   at ijvm.tests.Runner.Runner.run(Runner.java:44)
+   at java.lang.Thread.run(Thread.java:745)
+   at java.lang.VMThread.run(VMThread.java:120)
+Stopped runner thread: Runner 2
+java.lang.NullPointerException
+   at ijvm.tests.Runner.Runner.run(Runner.java:28)
+   at java.lang.Thread.run(Thread.java:745)
+   at java.lang.VMThread.run(VMThread.java:120)
+> bundles
+   id  level/state name
+   --------------------
+   11  1/active    A                       17  1/active    Runner
+   10  1/active    J3 Virtual Machine Manager
+   ...
+> framework call j3.J3Mgr dumpClassLoaderBundles
+...
+classLoader=0xb16fdb8	bundleID=11
+...
+classLoader=0xc80f440	bundleID=17

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-thread-leak-sol.txt
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/demo/console-thread-leak-sol.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/float.sh
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/float.sh?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/float.sh (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/float.sh Mon Jun 10 11:15:21 2013
@@ -0,0 +1,36 @@
+#/bin/bash
+
+float_scale=2
+
+# Evaluate then output an equation into a float number with $float_scale precision.
+function float_eval()
+{
+	local stat=0
+	local result=0.0
+	
+	if [[ $# -gt 0 ]]; then
+		result=$(echo "scale=$float_scale; $*"|bc -q 2>/dev/null)
+		stat=$?
+		
+		if [[ "$stat" -eq 0 && -z "$result" ]]; then stat=1; fi
+	fi
+	
+	echo -n $result
+	return $stat
+}
+
+# Evaluate an equation into a condition.
+function float_cond()
+{
+	local cond=0
+	
+	if [[ $# -gt 0 ]]; then
+		cond=$(echo "$*"|bc -q 2>/dev/null)
+		
+		if [[ -z "$cond" ]]; then cond=0; fi
+		if [[ "$cond" != 0 && "$cond" != 1 ]]; then cond=0; fi
+	fi
+	
+	local stat=$(($cond == 0))
+	return $stat
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/float.sh
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref-corrected.csv
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref-corrected.csv?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref-corrected.csv (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref-corrected.csv Mon Jun 10 11:15:21 2013
@@ -0,0 +1,107 @@
+#Time,PID,%usr,%system,%guest,%CPU,CPU,minflt/s,majflt/s,VSZ,RSS,%MEM,Command
+00:00,17993,0.00,0.00,0.00,0.00,7,0.00,0.00,1156292,99424,0.80,j3
+00:01,17993,0.00,0.00,0.00,0.00,7,0.00,0.00,1156292,99424,0.80,j3
+00:02,17993,0.00,0.00,0.00,0.00,7,0.00,0.00,1156292,99424,0.80,j3
+00:03,17993,0.00,0.00,0.00,0.00,7,0.00,0.00,1156292,99424,0.80,j3
+00:04,17993,0.00,0.00,0.00,0.00,7,0.00,0.00,1156292,99424,0.80,j3
+00:05,17993,26.00,0.00,0.00,26.00,10,223.00,0.00,1157012,100020,0.80,j3
+00:06,17993,99.00,0.00,0.00,99.00,10,151.00,0.00,1157428,100548,0.81,j3
+00:07,17993,89.00,1.00,0.00,90.00,11,1202.00,0.00,1159168,102484,0.82,j3
+00:08,17993,78.00,1.00,0.00,79.00,11,1168.00,0.00,1159168,102592,0.82,j3
+00:09,17993,78.00,3.00,0.00,81.00,11,1168.00,0.00,1159168,102440,0.82,j3
+00:10,17993,77.00,2.00,0.00,79.00,11,1168.00,0.00,1159168,102552,0.82,j3
+00:11,17993,78.00,1.00,0.00,79.00,11,1168.00,0.00,1159168,102400,0.82,j3
+00:12,17993,78.00,2.00,0.00,80.00,11,1040.00,0.00,1158656,101984,0.82,j3
+00:13,17993,79.00,1.00,0.00,80.00,11,1168.00,0.00,1158656,101832,0.82,j3
+00:14,17993,78.00,2.00,0.00,80.00,11,1295.00,0.00,1159168,102504,0.82,j3
+00:15,17993,78.00,1.00,0.00,79.00,11,1167.00,0.00,1159168,102352,0.82,j3
+00:16,17993,79.00,1.00,0.00,80.00,11,1167.00,0.00,1159168,102728,0.82,j3
+00:17,17993,78.00,2.00,0.00,80.00,11,1168.00,0.00,1159168,102576,0.82,j3
+00:18,17993,78.00,2.00,0.00,80.00,11,1168.00,0.00,1159168,102688,0.82,j3
+00:19,17993,79.00,1.00,0.00,80.00,11,1184.00,0.00,1159232,102536,0.82,j3
+00:20,17993,77.00,3.00,0.00,80.00,11,1168.00,0.00,1159232,102648,0.82,j3
+00:21,17993,78.00,1.00,0.00,79.00,11,1168.00,0.00,1159232,102496,0.82,j3
+00:22,17993,34.00,2.00,0.00,36.00,11,440.00,0.00,1158656,102024,0.82,j3
+00:23,17993,74.00,2.00,0.00,76.00,11,1166.00,0.00,1159232,102452,0.82,j3
+00:24,17993,77.00,2.00,0.00,79.00,11,1167.00,0.00,1159232,102564,0.82,j3
+00:25,17993,77.00,2.00,0.00,79.00,11,1167.00,0.00,1159232,102676,0.82,j3
+00:26,17993,78.00,2.00,0.00,80.00,11,1168.00,0.00,1159232,102788,0.82,j3
+00:27,17993,78.00,2.00,0.00,80.00,10,1167.00,0.00,1159232,102636,0.82,j3
+00:28,17993,78.00,2.00,0.00,80.00,10,1168.00,0.00,1159232,102484,0.82,j3
+00:29,17993,78.00,2.00,0.00,80.00,10,1168.00,0.00,1159232,102596,0.82,j3
+00:30,17993,78.00,1.00,0.00,79.00,10,1152.00,0.00,1159168,102444,0.82,j3
+00:31,17993,77.00,2.00,0.00,79.00,10,1178.00,0.00,1159300,102580,0.82,j3
+00:32,17993,76.00,3.00,0.00,79.00,11,1187.00,0.00,1159300,102476,0.82,j3
+00:33,17993,78.00,2.00,0.00,80.00,11,1188.00,0.00,1159432,102636,0.82,j3
+00:34,17993,79.00,1.00,0.00,80.00,11,1188.00,0.00,1159564,102796,0.82,j3
+00:35,17993,77.00,2.00,0.00,79.00,11,1188.00,0.00,1159564,102692,0.82,j3
+00:36,17993,79.00,1.00,0.00,80.00,11,1060.00,0.00,1159760,103164,0.83,j3
+00:37,17993,77.00,2.00,0.00,79.00,11,1186.00,0.00,1159760,103056,0.83,j3
+00:38,17993,77.00,2.00,0.00,79.00,11,1188.00,0.00,1159896,103216,0.83,j3
+00:39,17993,76.00,3.00,0.00,79.00,11,1186.00,0.00,1160028,103112,0.83,j3
+00:40,17993,79.00,1.00,0.00,80.00,8,1188.00,0.00,1160028,103272,0.83,j3
+00:41,17993,77.00,2.00,0.00,79.00,8,1187.00,0.00,1160160,103168,0.83,j3
+00:42,17993,78.00,2.00,0.00,80.00,8,1188.00,0.00,1160160,103592,0.83,j3
+00:43,17993,78.00,2.00,0.00,80.00,9,1188.00,0.00,1160292,103488,0.83,j3
+00:44,17993,77.00,2.00,0.00,79.00,9,1188.00,0.00,1160424,103912,0.83,j3
+00:45,17993,78.00,2.00,0.00,80.00,9,1188.00,0.00,1160424,103808,0.83,j3
+00:46,17993,77.00,2.00,0.00,79.00,9,1188.00,0.00,1160556,103704,0.83,j3
+00:47,17993,79.00,1.00,0.00,80.00,9,1186.00,0.00,1160556,103860,0.83,j3
+00:48,17993,79.00,1.00,0.00,80.00,9,1187.00,0.00,1160688,103756,0.83,j3
+00:49,17993,76.00,3.00,0.00,79.00,9,1188.00,0.00,1160820,103916,0.83,j3
+00:50,17993,77.00,2.00,0.00,79.00,9,1188.00,0.00,1160820,104076,0.83,j3
+00:51,17993,78.00,3.00,0.00,81.00,9,1188.00,0.00,1160952,104236,0.84,j3
+00:52,17993,77.00,2.00,0.00,79.00,9,1187.00,0.00,1160952,104396,0.84,j3
+00:53,17993,62.00,2.00,0.00,64.00,9,893.00,0.00,1160508,103808,0.83,j3
+00:54,17993,50.00,2.00,0.00,52.00,9,870.00,0.00,1161020,104368,0.84,j3
+00:55,17993,78.00,1.00,0.00,79.00,9,1060.00,0.00,1160644,104000,0.83,j3
+00:56,17993,77.00,1.00,0.00,78.00,10,1188.00,0.00,1161220,104472,0.84,j3
+00:57,17993,77.00,2.00,0.00,79.00,10,1186.00,0.00,1161352,104632,0.84,j3
+00:58,17993,78.00,2.00,0.00,80.00,10,1186.00,0.00,1161484,104528,0.84,j3
+00:59,17993,77.00,3.00,0.00,80.00,10,1187.00,0.00,1161484,104684,0.84,j3
+01:00,17993,79.00,1.00,0.00,80.00,10,1187.00,0.00,1161616,104844,0.84,j3
+01:01,17993,77.00,2.00,0.00,79.00,10,1172.00,0.00,1161552,105004,0.84,j3
+01:02,17993,77.00,2.00,0.00,79.00,10,1187.00,0.00,1161684,105164,0.84,j3
+01:03,17993,77.00,3.00,0.00,80.00,10,1059.00,0.00,1161880,105108,0.84,j3
+01:04,17993,76.00,3.00,0.00,79.00,10,1187.00,0.00,1161880,105268,0.84,j3
+01:05,17993,76.00,2.00,0.00,78.00,10,1187.00,0.00,1162016,105160,0.84,j3
+01:06,17993,78.00,2.00,0.00,80.00,10,1185.00,0.00,1162016,105056,0.84,j3
+01:07,17993,78.00,2.00,0.00,80.00,11,1188.00,0.00,1162148,105480,0.85,j3
+01:08,17993,76.00,4.00,0.00,80.00,11,1172.00,0.00,1162084,105376,0.84,j3
+01:09,17993,75.00,4.00,0.00,79.00,11,1188.00,0.00,1162216,105800,0.85,j3
+01:10,17993,78.00,1.00,0.00,79.00,11,1060.00,0.00,1162412,105744,0.85,j3
+01:11,17993,77.00,1.00,0.00,78.00,11,1186.00,0.00,1162412,105900,0.85,j3
+01:12,17993,78.00,1.00,0.00,79.00,11,1188.00,0.00,1162544,105796,0.85,j3
+01:13,17993,78.00,2.00,0.00,80.00,11,1185.00,0.00,1162544,105692,0.85,j3
+01:14,17993,78.00,3.00,0.00,81.00,11,1188.00,0.00,1162676,105852,0.85,j3
+01:15,17993,78.00,2.00,0.00,80.00,11,1188.00,0.00,1162808,105748,0.85,j3
+01:16,17993,77.00,2.00,0.00,79.00,11,1172.00,0.00,1162744,106172,0.85,j3
+01:17,17993,78.00,1.00,0.00,79.00,11,1060.00,0.00,1162364,105540,0.85,j3
+01:18,17993,77.00,2.00,0.00,79.00,11,1188.00,0.00,1162940,106540,0.85,j3
+01:19,17993,76.00,3.00,0.00,79.00,11,1186.00,0.00,1163072,106432,0.85,j3
+01:20,17993,80.00,1.00,0.00,81.00,11,1188.00,0.00,1163204,106328,0.85,j3
+01:21,17993,78.00,2.00,0.00,80.00,11,1187.00,0.00,1163204,106488,0.85,j3
+01:22,17993,76.00,3.00,0.00,79.00,11,1188.00,0.00,1163340,106384,0.85,j3
+01:23,17993,79.00,1.00,0.00,80.00,11,1186.00,0.00,1163340,106544,0.85,j3
+01:24,17993,78.00,2.00,0.00,80.00,11,1188.00,0.00,1163472,106704,0.86,j3
+01:25,17993,78.00,2.00,0.00,80.00,11,1188.00,0.00,1163604,106864,0.86,j3
+01:26,17993,78.00,3.00,0.00,81.00,11,1186.00,0.00,1163604,107020,0.86,j3
+01:27,17993,78.00,2.00,0.00,80.00,11,1188.00,0.00,1163736,107180,0.86,j3
+01:28,17993,78.00,2.00,0.00,80.00,11,1185.00,0.00,1163736,107076,0.86,j3
+01:29,17993,77.00,2.00,0.00,79.00,10,1187.00,0.00,1163868,107236,0.86,j3
+01:30,17993,32.00,0.00,0.00,32.00,10,446.00,0.00,1163868,107100,0.86,j3
+01:31,17993,76.00,4.00,0.00,80.00,10,1171.00,0.00,1163936,106996,0.86,j3
+01:32,17993,77.00,1.00,0.00,78.00,10,1186.00,0.00,1163936,107152,0.86,j3
+01:33,17993,77.00,2.00,0.00,79.00,10,1059.00,0.00,1164136,107360,0.86,j3
+01:34,17993,79.00,1.00,0.00,80.00,10,1188.00,0.00,1164268,107520,0.86,j3
+01:35,17993,78.00,1.00,0.00,79.00,10,1186.00,0.00,1164268,107680,0.86,j3
+01:36,17993,76.00,3.00,0.00,79.00,10,1185.00,0.00,1164400,107840,0.86,j3
+01:37,17993,80.00,1.00,0.00,81.00,10,1188.00,0.00,1164400,107736,0.86,j3
+01:38,17993,78.00,2.00,0.00,80.00,10,1186.00,0.00,1164532,107892,0.87,j3
+01:39,17993,77.00,2.00,0.00,79.00,10,1172.00,0.00,1164468,107788,0.86,j3
+01:40,17993,77.00,3.00,0.00,80.00,11,1188.00,0.00,1164600,107684,0.86,j3
+01:41,17993,77.00,2.00,0.00,79.00,11,1059.00,0.00,1164796,108156,0.87,j3
+01:42,17993,77.00,2.00,0.00,79.00,11,1188.00,0.00,1164796,108052,0.87,j3
+01:43,17993,78.00,2.00,0.00,80.00,11,1186.00,0.00,1164928,108208,0.87,j3
+01:44,17993,77.00,2.00,0.00,79.00,9,1188.00,0.00,1164928,108368,0.87,j3
+01:45,17993,78.00,2.00,0.00,80.00,9,1185.00,0.00,1165060,108528,0.87,j3

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref-corrected.csv
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref.csv
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref.csv?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref.csv (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref.csv Mon Jun 10 11:15:21 2013
@@ -0,0 +1,107 @@
+#Time,PID,%usr,%system,%guest,%CPU,CPU,minflt/s,majflt/s,VSZ,RSS,%MEM,Command
+00:00,16914,0.00,0.00,0.00,0.00,1,0.00,0.00,1158780,102464,0.82,j3
+00:01,16914,0.00,0.00,0.00,0.00,1,0.00,0.00,1158780,102464,0.82,j3
+00:02,16914,34.00,0.00,0.00,34.00,1,216.00,0.00,1159356,103068,0.83,j3
+00:03,16914,95.00,0.00,0.00,95.00,1,298.00,0.00,1160508,104388,0.84,j3
+00:04,16914,73.00,2.00,0.00,75.00,1,2968.00,0.00,1172468,116000,0.93,j3
+00:05,16914,75.00,0.00,0.00,75.00,1,3006.00,0.00,1184476,128144,1.03,j3
+00:06,16914,75.00,1.00,0.00,76.00,1,3009.00,0.00,1196580,140024,1.12,j3
+00:07,16914,74.00,2.00,0.00,76.00,1,3009.00,0.00,1208544,152168,1.22,j3
+00:08,16914,75.00,1.00,0.00,76.00,1,3008.00,0.00,1220632,164048,1.32,j3
+00:09,16914,74.00,2.00,0.00,76.00,1,3006.00,0.00,1232592,176188,1.41,j3
+00:10,16914,75.00,2.00,0.00,77.00,1,3008.00,0.00,1244708,188064,1.51,j3
+00:11,16914,75.00,0.00,0.00,75.00,1,2910.00,0.00,1256504,199680,1.60,j3
+00:12,16914,73.00,2.00,0.00,75.00,1,2810.00,0.00,1267896,211292,1.69,j3
+00:13,16914,75.00,2.00,0.00,77.00,1,3005.00,0.00,1279800,223168,1.79,j3
+00:14,16914,76.00,1.00,0.00,77.00,1,2940.00,0.00,1291640,235048,1.88,j3
+00:15,16914,74.00,1.00,0.00,75.00,1,2780.00,0.00,1303032,246132,1.97,j3
+00:16,16914,77.00,2.00,0.00,79.00,1,3006.00,0.00,1314936,258008,2.07,j3
+00:17,16914,74.00,1.00,0.00,75.00,1,2713.00,0.00,1326264,268832,2.16,j3
+00:18,16914,75.00,3.00,0.00,78.00,1,3007.00,0.00,1338168,280976,2.25,j3
+00:19,16914,73.00,2.00,0.00,75.00,1,2727.00,0.00,1348472,291800,2.34,j3
+00:20,16914,77.00,1.00,0.00,78.00,1,2944.00,0.00,1360312,303680,2.44,j3
+00:21,16914,76.00,1.00,0.00,77.00,1,2770.00,0.00,1371704,314768,2.52,j3
+00:22,16914,77.00,0.00,0.00,77.00,1,2711.00,0.00,1383032,325588,2.61,j3
+00:23,16914,75.00,2.00,0.00,77.00,1,2710.00,0.00,1393336,336408,2.70,j3
+00:24,16914,28.00,1.00,0.00,29.00,1,1201.00,0.00,1398712,341156,2.74,j3
+00:25,16914,73.00,3.00,0.00,76.00,1,2711.00,0.00,1409016,351980,2.82,j3
+00:26,16914,77.00,0.00,0.00,77.00,1,2707.00,0.00,1420344,362804,2.91,j3
+00:27,16914,76.00,2.00,0.00,78.00,1,2709.00,0.00,1430648,373628,3.00,j3
+00:28,16914,75.00,2.00,0.00,77.00,1,2710.00,0.00,1441976,384448,3.08,j3
+00:29,16914,77.00,1.00,0.00,78.00,1,2710.00,0.00,1452280,395536,3.17,j3
+00:30,16914,76.00,1.00,0.00,77.00,1,2706.00,0.00,1463608,406360,3.26,j3
+00:31,16914,73.00,5.00,0.00,78.00,1,2706.00,0.00,1473912,417184,3.35,j3
+00:32,16914,75.00,2.00,0.00,77.00,1,2703.00,0.00,1485240,428004,3.43,j3
+00:33,16914,77.00,3.00,0.00,80.00,1,2729.00,0.00,1495544,438824,3.52,j3
+00:34,16914,75.00,2.00,0.00,77.00,1,2728.00,0.00,1506872,449648,3.61,j3
+00:35,16914,76.00,2.00,0.00,78.00,1,2583.00,0.00,1517112,459944,3.69,j3
+00:36,16914,76.00,1.00,0.00,77.00,1,2594.00,0.00,1526904,470504,3.77,j3
+00:37,16914,77.00,2.00,0.00,79.00,1,2731.00,0.00,1538232,481328,3.86,j3
+00:38,16914,78.00,1.00,0.00,79.00,1,2689.00,0.00,1548472,492152,3.95,j3
+00:39,16914,76.00,1.00,0.00,77.00,1,2490.00,0.00,1558264,501916,4.02,j3
+00:40,16914,76.00,3.00,0.00,79.00,1,2735.00,0.00,1569592,512740,4.11,j3
+00:41,16914,76.00,2.00,0.00,78.00,1,2436.00,0.00,1579320,522772,4.19,j3
+00:42,16914,76.00,2.00,0.00,78.00,1,2723.00,0.00,1589624,533596,4.28,j3
+00:43,16914,78.00,2.00,0.00,80.00,1,2635.00,0.00,1600888,544156,4.36,j3
+00:44,16914,75.00,3.00,0.00,78.00,1,2531.00,0.00,1610680,554188,4.44,j3
+00:45,16914,78.00,1.00,0.00,79.00,1,2571.00,0.00,1620920,564484,4.53,j3
+00:46,16914,78.00,1.00,0.00,79.00,1,2602.00,0.00,1630712,575040,4.61,j3
+00:47,16914,77.00,1.00,0.00,78.00,1,2413.00,0.00,1640440,584544,4.69,j3
+00:48,16914,78.00,2.00,0.00,80.00,1,2653.00,0.00,1651704,595100,4.77,j3
+00:49,16914,76.00,2.00,0.00,78.00,1,2458.00,0.00,1661496,605132,4.85,j3
+00:50,16914,78.00,2.00,0.00,80.00,1,2408.00,0.00,1671224,614636,4.93,j3
+00:51,16914,75.00,4.00,0.00,79.00,1,2412.00,0.00,1680952,624140,5.00,j3
+00:52,16914,79.00,0.00,0.00,79.00,1,2610.00,0.00,1691192,634700,5.09,j3
+00:53,16914,79.00,1.00,0.00,80.00,1,2441.00,0.00,1700920,644468,5.17,j3
+00:54,16914,78.00,2.00,0.00,80.00,1,2416.00,0.00,1710648,653964,5.24,j3
+00:55,16914,78.00,1.00,0.00,79.00,1,2427.00,0.00,1720376,663728,5.32,j3
+00:56,16914,79.00,0.00,0.00,79.00,1,2394.00,0.00,1730104,673232,5.40,j3
+00:57,16914,78.00,2.00,0.00,80.00,1,2376.00,0.00,1738808,682736,5.47,j3
+00:58,16914,78.00,2.00,0.00,80.00,1,2211.00,0.00,1748024,691712,5.55,j3
+00:59,16914,77.00,0.00,0.00,77.00,1,2405.00,0.00,1757752,701216,5.62,j3
+01:00,16914,79.00,1.00,0.00,80.00,1,2406.00,0.00,1767480,710984,5.70,j3
+01:01,16914,41.00,0.00,0.00,41.00,1,1203.00,0.00,1771832,715736,5.74,j3
+01:02,16914,80.00,1.00,0.00,81.00,1,2401.00,0.00,1781560,725504,5.82,j3
+01:03,16914,78.00,2.00,0.00,80.00,1,2408.00,0.00,1791288,735272,5.90,j3
+01:04,16914,78.00,2.00,0.00,80.00,1,2110.00,0.00,1799416,743452,5.96,j3
+01:05,16914,77.00,2.00,0.00,79.00,1,2406.00,0.00,1809144,753220,6.04,j3
+01:06,16914,78.00,2.00,0.00,80.00,1,2404.00,0.00,1818872,762720,6.12,j3
+01:07,16914,80.00,1.00,0.00,81.00,1,2355.00,0.00,1828536,772224,6.19,j3
+01:08,16914,77.00,3.00,0.00,80.00,1,2161.00,0.00,1837752,780932,6.26,j3
+01:09,16914,78.00,2.00,0.00,80.00,1,2404.00,0.00,1846456,790436,6.34,j3
+01:10,16914,81.00,0.00,0.00,81.00,1,2306.00,0.00,1856120,799668,6.41,j3
+01:11,16914,79.00,0.00,0.00,79.00,1,2213.00,0.00,1865336,808376,6.48,j3
+01:12,16914,79.00,3.00,0.00,82.00,1,2400.00,0.00,1875064,818144,6.56,j3
+01:13,16914,78.00,1.00,0.00,79.00,1,2110.00,0.00,1883192,826592,6.63,j3
+01:14,16914,81.00,1.00,0.00,82.00,1,2405.00,0.00,1892920,836096,6.70,j3
+01:15,16914,79.00,1.00,0.00,80.00,1,2106.00,0.00,1901048,844544,6.77,j3
+01:16,16914,81.00,0.00,0.00,81.00,1,2405.00,0.00,1910776,854048,6.85,j3
+01:17,16914,77.00,2.00,0.00,79.00,1,2109.00,0.00,1918904,862496,6.92,j3
+01:18,16914,79.00,4.00,0.00,83.00,1,2333.00,0.00,1928568,871736,6.99,j3
+01:19,16914,78.00,1.00,0.00,79.00,1,2175.00,0.00,1937784,880448,7.06,j3
+01:20,16914,80.00,2.00,0.00,82.00,1,2113.00,0.00,1945912,888896,7.13,j3
+01:21,16914,81.00,1.00,0.00,82.00,1,2339.00,0.00,1955576,898400,7.20,j3
+01:22,16914,78.00,2.00,0.00,80.00,1,2163.00,0.00,1963768,907112,7.27,j3
+01:23,16914,81.00,0.00,0.00,81.00,1,2112.00,0.00,1971896,915560,7.34,j3
+01:24,16914,81.00,2.00,0.00,83.00,1,2303.00,0.00,1981560,924796,7.42,j3
+01:25,16914,80.00,1.00,0.00,81.00,1,2205.00,0.00,1990776,933508,7.49,j3
+01:26,16914,78.00,2.00,0.00,80.00,1,2113.00,0.00,1998904,941952,7.55,j3
+01:27,16914,81.00,1.00,0.00,82.00,1,2110.00,0.00,2007032,950400,7.62,j3
+01:28,16914,81.00,2.00,0.00,83.00,1,2104.00,0.00,2016184,958848,7.69,j3
+01:29,16914,80.00,1.00,0.00,81.00,1,2345.00,0.00,2024824,968352,7.76,j3
+01:30,16914,81.00,1.00,0.00,82.00,1,2164.00,0.00,2034040,976800,7.83,j3
+01:31,16914,81.00,0.00,0.00,81.00,1,2108.00,0.00,2042168,985248,7.90,j3
+01:32,16914,41.00,1.00,0.00,42.00,1,905.00,0.00,2045944,988944,7.93,j3
+01:33,16914,78.00,1.00,0.00,79.00,1,2105.00,0.00,2054072,997392,8.00,j3
+01:34,16914,81.00,1.00,0.00,82.00,1,2387.00,0.00,2063736,1006896,8.07,j3
+01:35,16914,81.00,1.00,0.00,82.00,1,2174.00,0.00,2071928,1015604,8.14,j3
+01:36,16914,80.00,0.00,0.00,80.00,1,2123.00,0.00,2081080,1024052,8.21,j3
+01:37,16914,81.00,2.00,0.00,83.00,1,2145.00,0.00,2089208,1032764,8.28,j3
+01:38,16914,79.00,4.00,0.00,83.00,1,2138.00,0.00,2097336,1041204,8.35,j3
+01:39,16914,80.00,1.00,0.00,81.00,1,2129.00,0.00,2106488,1049648,8.42,j3
+01:40,16914,80.00,3.00,0.00,83.00,1,2334.00,0.00,2115128,1059144,8.49,j3
+01:41,16914,81.00,1.00,0.00,82.00,1,2175.00,0.00,2124280,1067856,8.56,j3
+01:42,16914,81.00,1.00,0.00,82.00,1,2185.00,0.00,2132472,1076304,8.63,j3
+01:43,16914,82.00,2.00,0.00,84.00,1,2102.00,0.00,2140536,1084752,8.70,j3
+01:44,16914,80.00,1.00,0.00,81.00,1,2118.00,0.00,2149688,1093464,8.77,j3
+01:45,16914,81.00,2.00,0.00,83.00,1,2176.00,0.00,2157880,1102176,8.84,j3

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref.csv
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref.plot
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref.plot?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref.plot (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref.plot Mon Jun 10 11:15:21 2013
@@ -0,0 +1,27 @@
+#!/usr/bin/gnuplot -p
+
+set datafile separator ","
+set datafile missing '_'
+set datafile commentschars "#"
+
+set ylabel "Memory usage (lower is better)"
+set ytics border nomirror
+set grid ytics
+set yrange [0:*]
+set format y "%.1s %cB"
+
+set xtics 15 axis nomirror
+set border 3
+set xdata time
+set format x "%M:%S"
+set timefmt "%M:%S"
+
+# set title "Stale reference memory leaks in J3 and Incinerator"
+
+#set term svg
+#set term postscript clip 12
+#set term latex
+set term wxt 0
+plot	\
+	'j3-stale-ref.csv' using 1:(column(11)*1024) linecolor rgb "grey" linewidth "2pt" title "J3" with lines,	\
+	'j3-stale-ref-corrected.csv' using 1:(column(11)*1024) linecolor rgb "orange" linewidth "2pt" title "Incinerator" with lines

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/j3-stale-ref.plot
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/mon-process.sh
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/mon-process.sh?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/mon-process.sh (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/mon-process.sh Mon Jun 10 11:15:21 2013
@@ -0,0 +1,36 @@
+#/bin/bash
+
+# program & ./mon-process.sh $!
+
+. ./statistics.sh
+
+input=$1
+duration=$2
+
+if [ 0 -ne "$input" ] 2>/dev/null ; then
+	# Input is a PID
+	input_type='-p'
+else
+	# Input is a command name
+	input_type='-C'
+fi
+
+# Collect statistics data
+rawdata="$(sudo nice -n -10 pidstat "$input_type" "$input" -hru 1 $duration)"
+
+rawdata="$(echo "$rawdata" | grep '^[# 0-9]' | sed 's/^#//g' | sed 's/^ \+//g' | tr -s ' ' ',')"
+head="$(echo "$rawdata" | head -1)"
+data="$(echo "$rawdata" | grep -v '^[^0-9]')"
+
+# Rebase time
+base_time=$(echo "$data" | head -1 | cut -d ',' -f 1)
+timefmt=%M:%S
+
+echo "#$head"
+for i in $data ; do
+	old_time=$(echo "$i" | cut -d ',' -f 1)
+	new_time=$(rebase_time_then_format $base_time $timefmt $old_time)
+
+	remaining_data=$(echo "$i" | cut -d ',' -f 2-)
+	echo "$new_time,$remaining_data"
+done

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/mon-process.sh
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/old/monitor_process.sh
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/old/monitor_process.sh?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/old/monitor_process.sh (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/old/monitor_process.sh Mon Jun 10 11:15:21 2013
@@ -0,0 +1,172 @@
+#/bin/bash
+
+# ps -ww -o etime:1,pid:1,time:1,%cpu,%mem,rss -C "$1" # |tr -s ' ' ','
+
+float_scale=2
+page_size=$(getconf PAGESIZE)
+clock_tick=$(getconf CLK_TCK)
+
+# Evaluate then output an equation into a float number with $float_scale precision.
+function float_eval()
+{
+	local stat=0
+	local result=0.0
+	
+	if [[ $# -gt 0 ]]; then
+		result=$(echo "scale=$float_scale; $*"|bc -q 2>/dev/null)
+		stat=$?
+		
+		if [[ "$stat" -eq 0 && -z "$result" ]]; then stat=1; fi
+	fi
+	
+	echo -n $result
+	return $stat
+}
+
+# Evaluate an equation into a condition.
+function float_cond()
+{
+	local cond=0
+	
+	if [[ $# -gt 0 ]]; then
+		cond=$(echo "$*"|bc -q 2>/dev/null)
+		
+		if [[ -z "$cond" ]]; then cond=0; fi
+		if [[ "$cond" != 0 && "$cond" != 1 ]]; then cond=0; fi
+	fi
+	
+	local stat=$(($cond == 0))
+	return $stat
+}
+
+# Outputs a PID given a process name.
+# If multiple processes of the same program exist, only one PID will be output.
+function get_pid_from_name()
+{
+	local process_name=$1
+
+	ps --no-headers -ww -o pid:1 -C "$process_name"|head -n 1
+	return $?
+}
+
+# Returns the memory data usage in bytes for a PID
+function get_memory_data_usage()
+{
+	local pid=$1
+	if [ -z "$pid" ]; then return 1; fi;
+	
+	local memory_data_pages=$(cat /proc/$pid/statm 2>/dev/null|cut -d ' ' -f 6)
+	if [ -z "$memory_data_pages" ]; then return 1; fi;
+
+	float_eval "$memory_data_pages * $page_size"
+}
+
+# Converts size from some size unit to bytes unit.
+function get_size_in_bytes()
+{
+	local size=$1
+	local number=$(echo "$size"|cut -d ' ' -f 1)
+	local unit=$(echo "$size"|cut -d ' ' -f 2)
+	local factor=1
+
+	case $unit in
+	B ) factor=1 ;;
+	kB ) factor=1024 ;;
+	mB ) factor=1048576 ;;
+	gB ) factor=1073741824 ;;
+	esac
+	
+	float_eval "$number * $factor"
+}
+
+# Returns writable memory usage, given a PID.
+function get_writable_memory_usage()
+{
+	local pid=$1
+	if [ -z "$pid" ]; then return 1; fi;
+
+	local sum=0
+	local oldIFS=$IFS
+IFS='
+'
+	for entry in $(cat /proc/$pid/smaps|tr -s ' '|grep '^Private_Dirty: [^0]'|cut -d ' ' -f '2,3'); do
+		sum=$(float_eval "$sum + $(get_size_in_bytes $entry)")
+	done
+	IFS=oldIFS
+
+	echo $sum
+}
+
+# Returns the CPU time (user+kernel) in seconds, given a PID.
+function get_cpu_time()
+{
+	local pid=$1
+	if [ -z "$pid" ]; then return 1; fi;
+
+	local user_time=$(cat /proc/$pid/stat 2>/dev/null|cut -d ' ' -f 14)
+	if [ -z "$user_time" ]; then return 1; fi;
+
+	local kernel_time=$(cat /proc/$pid/stat 2>/dev/null|cut -d ' ' -f 15)
+	if [ -z "$kernel_time" ]; then return 1; fi;
+
+	float_eval "($user_time + $kernel_time) / $clock_tick"
+}
+
+# Outputs the CPU average usage, given a PID.
+function get_cpu_avg_usage()
+{
+	local pid=$1
+	local avg_period=$2
+	local _cpu_avg_usage=$3
+	local _last_cpu_time=$4
+	local last_cpu_time
+
+	eval last_cpu_time='$'$_last_cpu_time''
+
+	if [ -z "$pid" ]; then return 1; fi;
+
+	if [ -z "$last_cpu_time" ]; then
+		last_cpu_time=$(get_cpu_time $pid)
+		if [ -z "$last_cpu_time" ]; then return 1; fi;
+	fi;
+
+	local cpu_time=$(get_cpu_time $pid)
+	if [ -z "$cpu_time" ]; then return 1; fi;
+
+	local cpu_avg_usage=$(float_eval "100 * ( $cpu_time - $last_cpu_time ) / $avg_period")
+#	local cpu_avg_usage=$(float_eval "$cpu_time - $last_cpu_time"),$(float_eval "100 * ( $cpu_time - $last_cpu_time ) / $avg_period")
+
+	eval $_cpu_avg_usage="'$cpu_avg_usage'"
+	eval $_last_cpu_time="'$cpu_time'"
+	return 0
+}
+
+period=
+the_date=
+the_last_date=$(date '+%s')
+the_last_cpu_time=
+the_cpu_avg_usage=
+
+sleep 1
+
+echo "PID,DATE,MEM_DATA,CPU_USAGE"
+#echo "DATE,PID,MEM_DATA,CPU_TIME,CPU_TIME_DIFF,CPU_USAGE"
+
+while true
+do
+	pid=$(get_pid_from_name "$1")
+
+	if [ ! -z "$pid" ]; then
+		the_date=$(date '+%s')
+		period=$(($the_date - $the_last_date))
+		the_last_date=$the_date
+
+		if [ "$period" -gt "0" ]; then
+			get_cpu_avg_usage $pid $period the_cpu_avg_usage the_last_cpu_time
+
+#			echo "$(date '+%F %T'),$pid,$(get_writable_memory_usage $pid),$(get_cpu_time $pid),$the_cpu_avg_usage"
+#			echo "$(date -d "@$the_date" '+%F %T'),$pid,$(get_writable_memory_usage $pid),$the_cpu_avg_usage"
+			echo "$pid,$the_date,$(get_writable_memory_usage $pid),$the_cpu_avg_usage"
+		fi;
+	fi;
+done

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/old/monitor_process.sh
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/reinstall-count.txt
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/reinstall-count.txt?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/reinstall-count.txt (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/reinstall-count.txt Mon Jun 10 11:15:21 2013
@@ -0,0 +1,5 @@
+j3 bundle reinstallation count: 1120
+(1449024-99204)/1120=1205 bytes=1.18 Kilobytes
+
+Incinerator bundle reinstallation count: 875
+(109096-103240)/875=7 bytes

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/reinstall-count.txt
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/reinstall-count.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/run-dacapo.sh
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/run-dacapo.sh?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/run-dacapo.sh (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/run-dacapo.sh Mon Jun 10 11:15:21 2013
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+dacapo_dir=/home/koutheir/PhD/VMKit/vmkit/tests/dacapo/2006-10-MR2
+
+cd $dacapo_dir
+make ENABLE_IJVM=0 -j12

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/run-dacapo.sh
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/run-mon-process.sh
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/run-mon-process.sh?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/run-mon-process.sh (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/run-mon-process.sh Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+$* &
+./mon-process.sh $!

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/run-mon-process.sh
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/scenarios.odt
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/scenarios.odt?rev=183676&view=auto
==============================================================================
Binary file - no diff available.

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/scenarios.odt
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/scenarios.odt
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/statistics.sh
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/statistics.sh?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/statistics.sh (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/statistics.sh Mon Jun 10 11:15:21 2013
@@ -0,0 +1,68 @@
+#/bin/bash
+
+. ./float.sh
+
+# calc_count
+# stdin holds one number per line
+function calc_count()
+{
+	local count=0
+
+	while read i ; do
+		count=$(($count + 1))
+	done
+
+	echo -n $count
+}
+
+# calc_average
+# stdin holds one number per line
+function calc_average()
+{
+	local average=0
+	local count=0
+
+	while read i ; do
+		count=$(($count + 1))
+		average=$(float_eval $average + $i)
+	done
+
+	average=$(float_eval $average / $count)
+	echo -n $average
+}
+
+# calc_variance $average
+# stdin holds one number per line
+function calc_variance()
+{
+	local average=$1
+	local count=0
+	local variance=0
+
+	while read i ; do
+		count=$(($count + 1))
+		variance=$(float_eval $variance + '(' $i - $average ')^2' )
+	done
+
+	variance=$(float_eval $variance / $count)
+	echo -n $variance
+}
+
+# calc_standard_deviation $average
+# stdin holds one number per line
+function calc_standard_deviation()
+{
+	local average=$1
+	float_eval 'sqrt(' $(calc_variance $average) ')'
+}
+
+# rebase_time_then_format $base_time_in_seconds $timefmt $current_time_in_seconds
+function rebase_time_then_format()
+{
+	local base_time=$1
+	local timefmt=$2
+	local current_time=$3
+
+	local diff_sec=$(($current_time - $base_time))
+	date "+$timefmt" -d "2000-01-01 00:00:00 CET + $diff_sec seconds"
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/statistics.sh
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/benchmarks/std-deviation.sh
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/benchmarks/std-deviation.sh?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/benchmarks/std-deviation.sh (added)
+++ vmkit/branches/incinerator/incinerator/tests/benchmarks/std-deviation.sh Mon Jun 10 11:15:21 2013
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+# Compute average, variance, and standard deviation given a list of numbers.
+
+. ./statistics.sh
+
+data="$(tr -s ' ' '\n' | tr -s '\n')"
+
+average=$(echo "$data" | calc_average)
+count=$(echo "$data" | calc_count $average)
+variance=$(echo "$data" | calc_variance $average)
+std_dev=$(echo "$data" | calc_standard_deviation $average)
+
+echo "count=$count"
+echo "average=$average"
+echo "variance=$variance"
+echo "standard deviation=$std_dev"

Propchange: vmkit/branches/incinerator/incinerator/tests/benchmarks/std-deviation.sh
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/debug.txt
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/debug.txt?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/debug.txt (added)
+++ vmkit/branches/incinerator/incinerator/tests/debug.txt Mon Jun 10 11:15:21 2013
@@ -0,0 +1,43 @@
+framework call j3.J3Mgr setBundleStaleReferenceCorrected ijvm.tests.AImpl yes
+framework call j3.J3Mgr setBundleStaleReferenceCorrected ijvm.tests.BImpl yes
+framework call j3.J3Mgr setBundleStaleReferenceCorrected ijvm.tests.CImpl yes
+stop 12
+stop 13
+stop 14
+
+start 12 13 14
+stop 12
+
+framework call j3.J3Mgr isBundleStaleReferenceCorrected 39
+framework call j3.J3Mgr setBundleStaleReferenceCorrected 8 yes
+
+enter framework
+call j3.J3Mgr isBundleStaleReferenceCorrected 14
+call j3.J3Mgr setBundleStaleReferenceCorrected 14 yes
+update 14
+
+framework call j3.J3Mgr dumpClassLoaderBundles
+
+stop 8
+uninstall 8
+refresh
+meminfo -gc
+call j3.J3Mgr setBundleStaleReferenceCorrected 14 yes
+call j3.J3Mgr dumpReferencesToObject 0x51934ab4
+
+refresh
+meminfo -gc
+
+
+enter framework
+call j3.J3Mgr setBundleStaleReferenceCorrected 11 no
+meminfo -gc
+update 11
+refresh
+meminfo -gc
+
+STALE = {http/http_all-3.1.2.jar, useradmin/useradmin_all-3.0.3.jar, device/device_all-3.0.0.jar, kxml/kxml-2.3.0.kf3.jar}
+
+call j3.J3Mgr forceStaleReferenceScanning
+
+fromupdate 15 file:/media/Data/Documents/PhD/VMKit/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/out/ijvm.tests.Alarm_v2.0-2.0.0.jar

Propchange: vmkit/branches/incinerator/incinerator/tests/debug.txt
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/debug.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.bundle-pack
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.bundle-pack?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.bundle-pack (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.bundle-pack Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<bundlejar>
+<resource dst="" pattern=".*\.class" src="/ijvm.tests.A/out" type="0"/>
+</bundlejar>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.bundle-pack
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.svn/**|**/CVS/**" including="**/*.java" kind="src" path="src"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.EXECUTION_ENVIRONMENT_CONTAINER"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.FRAMEWORK_CONTAINER">
+		<accessrules>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="output" path="out"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.project (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ijvm.tests.A</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.knopflerfish.eclipse.core.bundlebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.knopflerfish.eclipse.core.bundlenature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/bundle.manifest
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/bundle.manifest?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/bundle.manifest (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/bundle.manifest Mon Jun 10 11:15:21 2013
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-Version: 1.0.0
+Bundle-Name: A
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: ijvm.tests.A
+Export-Package: ijvm.tests.A
+

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/bundle.manifest
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/A.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/A.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/A.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/A.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,7 @@
+package ijvm.tests.A;
+
+public interface A
+{
+	public void performA();
+	public Token getToken();
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/A.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/A.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/Token.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/Token.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/Token.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/Token.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,6 @@
+package ijvm.tests.A;
+
+public interface Token
+{
+	public int getValue();
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/Token.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.A/src/ijvm/tests/A/Token.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.bundle-pack
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.bundle-pack?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.bundle-pack (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.bundle-pack Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<bundlejar>
+<resource dst="" pattern=".*\.class" src="/ijvm.tests.AImpl/out" type="0"/>
+</bundlejar>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.bundle-pack
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.svn/**|**/CVS/**" including="**/*.java" kind="src" path="src"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.EXECUTION_ENVIRONMENT_CONTAINER"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.FRAMEWORK_CONTAINER">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/osgi/util/tracker/"/>
+			<accessrule kind="accessible" pattern="org/osgi/framework/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.BUNDLE_CONTAINER/ijvm.tests.A">
+		<accessrules>
+			<accessrule kind="accessible" pattern="ijvm/tests/A/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.BUNDLE_CONTAINER/ijvm.tests.C">
+		<accessrules>
+			<accessrule kind="accessible" pattern="ijvm/tests/C/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="output" path="out"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.project (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ijvm.tests.AImpl</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.knopflerfish.eclipse.core.bundlebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.knopflerfish.eclipse.core.bundlenature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/bundle.manifest
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/bundle.manifest?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/bundle.manifest (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/bundle.manifest Mon Jun 10 11:15:21 2013
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Bundle-Version: 1.0.0
+Bundle-Name: AImpl
+Bundle-Activator: ijvm.tests.AImpl.Activator
+Bundle-ManifestVersion: 2
+Import-Package: ijvm.tests.A, ijvm.tests.C, org.osgi.util.tracker, org
+ .osgi.framework
+Bundle-SymbolicName: ijvm.tests.AImpl
+

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/bundle.manifest
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/AImpl.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/AImpl.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/AImpl.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/AImpl.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,28 @@
+package ijvm.tests.AImpl;
+
+import java.util.ArrayList;
+
+import ijvm.tests.A.A;
+import ijvm.tests.A.Token;
+import ijvm.tests.C.C;
+
+public class AImpl
+	implements A
+{
+	public ArrayList<C> c;
+
+	public AImpl()
+	{
+		c = new ArrayList<C>();
+	}
+	
+	public void performA()
+	{
+		System.out.println("AImpl.performA");
+	}
+
+	public Token getToken()
+	{
+		return new TokenImpl((int)(Math.random() * 100.0));
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/AImpl.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/AImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/Activator.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/Activator.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/Activator.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/Activator.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,97 @@
+package ijvm.tests.AImpl;
+
+import ijvm.tests.A.A;
+import ijvm.tests.C.C;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceListener;
+import org.osgi.util.tracker.ServiceTracker;
+
+public class Activator
+	implements BundleActivator, ServiceListener
+{
+	private BundleContext context;
+	private ServiceTracker cST;
+	private AImpl a;
+	private C c;
+
+	public void start(BundleContext bundleContext) throws Exception
+	{
+		System.out.println("AImpl provides A");
+		context = bundleContext;
+
+		a = new AImpl();
+
+		cST = new ServiceTracker(context, C.class.getName(), null);
+		cST.open();
+				
+		C service = (C)cST.getService();
+		if (service != null) {
+			System.out.println("AImpl got C @ startup");
+			
+			a.c.add(service);
+			this.registerMyself();
+		}
+		
+		InfiniteResurrecter.class.getName();
+		
+		context.addServiceListener(this, "(objectclass=" + C.class.getName() + ")");
+		context.registerService(A.class.getName(), a, null);	
+	}
+
+	public void stop(BundleContext bundleContext) throws Exception
+	{
+		System.out.println("AImpl no more provides A");
+		
+		context.removeServiceListener(this);
+		context = null;
+
+		System.out.println("AImpl lost C but keeps a stale reference to it");
+		cST.close();
+		cST = null;
+		
+		//a = null;
+	}
+
+	public void serviceChanged(ServiceEvent event)
+	{
+		Object service = context.getService(event.getServiceReference());
+		
+		switch(event.getType()) {
+		case ServiceEvent.REGISTERED:
+			if (C.class.isInstance(service)) {
+				System.out.println("AImpl got C");
+				a.c.add((C)service);
+				
+				this.registerMyself();
+			}
+			break;
+			
+		case ServiceEvent.UNREGISTERING:
+			if (C.class.isInstance(service)) {
+				System.out.println("AImpl lost C but keeps a stale reference to it");
+			}
+			break;
+		}
+	}
+	
+	private void registerMyself()
+	{
+		C oneC = a.c.get(a.c.size() - 1);
+		c = oneC;
+		
+		oneC.registerObject(this);
+	}
+	
+	protected void finalize()
+	{
+		try {
+			System.out.println(getClass().getName() + ".finalize()");
+			new InfiniteResurrecter(c, this);
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/Activator.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/InfiniteResurrecter.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/InfiniteResurrecter.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/InfiniteResurrecter.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/InfiniteResurrecter.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,24 @@
+package ijvm.tests.AImpl;
+
+import ijvm.tests.C.C;
+
+public class InfiniteResurrecter
+{
+	C c;
+	Object target;
+	
+	public InfiniteResurrecter(C c, Object o)
+	{
+		System.out.println(getClass().getName() + ": resurrecting " + o);
+		
+		this.c = c;
+		this.target = o;
+		
+		c.registerObject(this);
+	}
+	
+	protected void finalize()
+	{
+		new InfiniteResurrecter(this.c, target);
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/InfiniteResurrecter.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/InfiniteResurrecter.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/TokenImpl.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/TokenImpl.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/TokenImpl.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/TokenImpl.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,34 @@
+package ijvm.tests.AImpl;
+
+import java.util.ArrayList;
+
+import ijvm.tests.A.Token;
+
+public class TokenImpl
+	implements Token
+{
+	static final int ChunkSize = 2 * 1024;
+	static final int ChunkCount = 64;
+	
+	ArrayList<byte[]> BigData;
+	
+	public TokenImpl(int value)
+	{
+		BigData = new ArrayList<byte[]>();
+		
+		for (int i=0; i<ChunkCount; ++i) {
+			byte[] chunk = new byte[ChunkSize];
+		
+			for (int j=0; j<ChunkSize; ++j)
+				chunk[j] = (byte)(j % 256);
+				
+			BigData.add(chunk);
+		}
+	}
+	
+	public int getValue()
+	{
+		byte[] chunk = BigData.get((int)(Math.random() * ChunkCount));
+		return chunk[(int)(Math.random() * ChunkSize)];
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/TokenImpl.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AImpl/src/ijvm/tests/AImpl/TokenImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.bundle-pack
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.bundle-pack?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.bundle-pack (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.bundle-pack Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<bundlejar>
+<resource dst="" pattern=".*\.class" src="/ijvm.tests.Alarm/out" type="0"/>
+</bundlejar>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.bundle-pack
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.svn/**|**/CVS/**" including="**/*.java" kind="src" path="src"/>
+	<classpathentry exported="true" kind="con" path="org.knopflerfish.eclipse.core.EXECUTION_ENVIRONMENT_CONTAINER"/>
+	<classpathentry exported="true" kind="con" path="org.knopflerfish.eclipse.core.FRAMEWORK_CONTAINER">
+		<accessrules>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="output" path="out"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.project (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ijvm.tests.Alarm</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.knopflerfish.eclipse.core.bundlebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.knopflerfish.eclipse.core.bundlenature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/bundle.manifest
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/bundle.manifest?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/bundle.manifest (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/bundle.manifest Mon Jun 10 11:15:21 2013
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-Vendor: Koutheir Attouchi
+Bundle-Version: 1.0.0
+Bundle-Name: ijvm.tests.Alarm
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: ijvm.tests.Alarm
+Export-Package: ijvm.tests.Alarm
+

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/bundle.manifest
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/src/ijvm/tests/Alarm/Alarm.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/src/ijvm/tests/Alarm/Alarm.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/src/ijvm/tests/Alarm/Alarm.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/src/ijvm/tests/Alarm/Alarm.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,18 @@
+package ijvm.tests.Alarm;
+
+public interface Alarm
+{
+	public void setState(boolean on);
+	public boolean state();
+	
+	public void setMinTemperatureThreshold(double value) throws Exception;
+	public double minTemperatureThreshold();
+	
+	public void setMaxTemperatureThreshold(double value) throws Exception;
+	public double maxTemperatureThreshold();
+	
+	public void setMaxGazThreshold(double value) throws Exception;
+	public double maxGazThreshold();
+	
+	public void saveConfig() throws Exception;
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/src/ijvm/tests/Alarm/Alarm.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm/src/ijvm/tests/Alarm/Alarm.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.bundle-pack
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.bundle-pack?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.bundle-pack (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.bundle-pack Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<bundlejar>
+<resource dst="" pattern=".*\.class" src="/ijvm.tests.AlarmController/out" type="0"/>
+</bundlejar>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.bundle-pack
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.svn/**|**/CVS/**" including="**/*.java" kind="src" path="src"/>
+	<classpathentry exported="true" kind="con" path="org.knopflerfish.eclipse.core.EXECUTION_ENVIRONMENT_CONTAINER"/>
+	<classpathentry exported="true" kind="con" path="org.knopflerfish.eclipse.core.FRAMEWORK_CONTAINER">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/osgi/util/tracker/"/>
+			<accessrule kind="accessible" pattern="org/osgi/framework/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry exported="true" kind="con" path="org.knopflerfish.eclipse.core.BUNDLE_CONTAINER/ijvm.tests.Alarm">
+		<accessrules>
+			<accessrule kind="accessible" pattern="ijvm/tests/Alarm/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="output" path="out"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.project (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ijvm.tests.AlarmController</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.knopflerfish.eclipse.core.bundlebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.knopflerfish.eclipse.core.bundlenature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/bundle.manifest
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/bundle.manifest?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/bundle.manifest (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/bundle.manifest Mon Jun 10 11:15:21 2013
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-Vendor: Koutheir Attouchi
+Bundle-Version: 1.0.0
+Bundle-Name: ijvm.tests.AlarmController
+Bundle-ManifestVersion: 2
+Bundle-Activator: ijvm.tests.AlarmController.Activator
+Import-Package: ijvm.tests.Alarm, org.osgi.util.tracker, org.osgi.fram
+ ework
+Bundle-SymbolicName: ijvm.tests.AlarmController
+

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/bundle.manifest
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/Activator.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/Activator.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/Activator.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/Activator.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,92 @@
+package ijvm.tests.AlarmController;
+
+import ijvm.tests.Alarm.Alarm;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceListener;
+import org.osgi.util.tracker.ServiceTracker;
+
+public class Activator
+	implements BundleActivator, ServiceListener
+{
+	BundleContext context;
+	volatile Alarm alarm;
+	ServiceTracker alarmServiceTracker;
+	AlarmWatchDog watchdog;
+
+	public void start(BundleContext bundleContext) throws Exception
+	{
+		System.out.println(getClass().getName() + " consumes " + Alarm.class.getName());
+		context = bundleContext;
+		
+		alarmServiceTracker = new ServiceTracker(context, Alarm.class.getName(), null);
+		alarmServiceTracker.open();
+		
+		alarm = (Alarm)alarmServiceTracker.getService();
+		updateWatchDog();
+		
+		context.addServiceListener(this, "(objectclass=" + Alarm.class.getName() + ")");
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception
+	{
+		if (alarm != null) {
+			alarm.saveConfig();
+			alarm = null;
+		}
+		updateWatchDog();
+		
+		context.removeServiceListener(this);
+		alarmServiceTracker.close();
+
+		System.out.println(getClass().getName() + " no more consumes " + Alarm.class.getName());
+	}
+
+	public void serviceChanged(ServiceEvent event)
+	{
+		Object service = context.getService(event.getServiceReference());
+		
+		switch(event.getType()) {
+		case ServiceEvent.REGISTERED:
+			if (Alarm.class.isInstance(service)) {
+				if (alarm == null)
+					alarm = (Alarm)service;
+				updateWatchDog();
+				System.out.println(getClass().getName() + " got a new " + Alarm.class.getName());
+			}
+			break;
+			
+		case ServiceEvent.UNREGISTERING:
+			if (Alarm.class.isInstance(service)) {
+				//alarm = null;
+				updateWatchDog();
+				System.out.println(getClass().getName() + " lost " + Alarm.class.getName());
+			}
+			break;
+		}
+	}
+	
+	void updateWatchDog()
+	{
+		try {
+			if (alarm == null && watchdog != null) {
+				// Stop the watch dog
+				watchdog.stop();
+				watchdog = null;
+			} else if (alarm != null && watchdog == null) {
+				// Start a new watch dog
+				watchdog = new AlarmWatchDog(alarm);
+				watchdog.start();
+			} else if (alarm != null && watchdog != null && watchdog.alarm() != alarm) {
+				// Modify the watch dog
+				watchdog.stop();
+				watchdog = new AlarmWatchDog(alarm);
+				watchdog.start();
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/Activator.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/AlarmWatchDog.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/AlarmWatchDog.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/AlarmWatchDog.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/AlarmWatchDog.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,53 @@
+package ijvm.tests.AlarmController;
+
+import ijvm.tests.Alarm.Alarm;
+
+class AlarmWatchDog
+	implements Runnable
+{
+	volatile boolean cancel;
+	volatile Thread thread;
+	final Alarm alarm;
+	
+	public AlarmWatchDog(Alarm alarm)
+	{
+		this.alarm = alarm;
+	}
+	
+	public Alarm alarm()
+	{
+		return alarm;
+	}
+	
+	public void start() throws Exception
+	{
+		while (thread != null && thread.isAlive())
+			stop();
+		
+		cancel = false;
+		thread = new Thread(this, getClass().getName());
+		thread.start();
+	}
+	
+	public void stop() throws Exception
+	{
+		if (thread == null || !thread.isAlive()) return;
+		
+		cancel = true;
+		thread.join();
+	}
+	
+	public void run()
+	{
+		System.out.println(getClass().getName() + ": monitoring...");
+		
+		while (!cancel) {
+			try {Thread.sleep(1000);} catch (Exception ignored) {}
+			if (alarm.state() == false) continue;
+			
+			System.out.println("ALARM! ALARM! ALARM! ALARM!");
+		}
+
+		System.out.println(getClass().getName() + ": stopped.");
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/AlarmWatchDog.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.AlarmController/src/ijvm/tests/AlarmController/AlarmWatchDog.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.bundle-pack
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.bundle-pack?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.bundle-pack (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.bundle-pack Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<bundlejar>
+<resource dst="" pattern=".*\.class" src="/ijvm.tests.Alarm_v1.0/out" type="0"/>
+</bundlejar>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.bundle-pack
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.svn/**|**/CVS/**" including="**/*.java" kind="src" path="src"/>
+	<classpathentry exported="true" kind="con" path="org.knopflerfish.eclipse.core.EXECUTION_ENVIRONMENT_CONTAINER"/>
+	<classpathentry exported="true" kind="con" path="org.knopflerfish.eclipse.core.FRAMEWORK_CONTAINER">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/osgi/framework/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry exported="true" kind="con" path="org.knopflerfish.eclipse.core.BUNDLE_CONTAINER/ijvm.tests.Alarm">
+		<accessrules>
+			<accessrule kind="accessible" pattern="ijvm/tests/Alarm/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="output" path="out"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.project (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ijvm.tests.Alarm_v1.0</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.knopflerfish.eclipse.core.bundlebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.knopflerfish.eclipse.core.bundlenature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/bundle.manifest
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/bundle.manifest?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/bundle.manifest (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/bundle.manifest Mon Jun 10 11:15:21 2013
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Bundle-Vendor: Koutheir Attouchi
+Bundle-Version: 1.0.0
+Bundle-Name: ijvm.tests.AlarmImpl
+Bundle-ManifestVersion: 2
+Bundle-Activator: ijvm.tests.AlarmImpl.Activator
+Import-Package: org.osgi.framework, ijvm.tests.Alarm
+Bundle-SymbolicName: ijvm.tests.AlarmImpl
+

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/bundle.manifest
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/Activator.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/Activator.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/Activator.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/Activator.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,34 @@
+package ijvm.tests.AlarmImpl;
+
+import ijvm.tests.Alarm.Alarm;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+
+public class Activator
+	implements BundleActivator
+{
+	BundleContext context;
+	AlarmImpl_v1 alarm;
+	ServiceRegistration alarmServiceReg;
+
+	public void start(BundleContext bundleContext) throws Exception
+	{
+		System.out.println(getClass().getName() + " provides " + Alarm.class.getName());
+		context = bundleContext;
+		
+		alarm = new AlarmImpl_v1();
+		alarm.open(context);
+		
+		alarmServiceReg = context.registerService(Alarm.class.getName(), alarm, null);
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception
+	{
+		alarmServiceReg.unregister();
+		alarm.close();
+		
+		System.out.println(getClass().getName() + " no more provides " + Alarm.class.getName());
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/Activator.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/AlarmConfig_v1.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/AlarmConfig_v1.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/AlarmConfig_v1.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/AlarmConfig_v1.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,126 @@
+package ijvm.tests.AlarmImpl;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.util.Scanner;
+
+import org.osgi.framework.BundleContext;
+
+class AlarmConfig_v1
+{
+	File config_file;
+	double min_temperature;
+	double max_temperature;
+	double max_gaz;
+	
+	public void open(BundleContext bundleContext) throws Exception
+	{
+		config_file = bundleContext.getDataFile("alarm.conf");
+		loadConfig();
+	}
+	
+	public void close() throws Exception
+	{
+		saveConfig();
+	}
+	
+	void loadConfig() throws Exception
+	{
+		initConfig();
+		
+		if (!config_file.exists()) {
+			saveConfig();
+			return;
+		}
+		
+		loadSimpleConfig();
+	}
+	
+	void loadSimpleConfig() throws Exception
+	{
+		FileReader fr = new FileReader(config_file);
+		Scanner s = new Scanner(fr);
+		
+		try {
+			while (s.hasNextLine()) {
+				if (s.hasNext("min_temperature")) {
+					s.next("min_temperature");
+					min_temperature = s.nextDouble();
+				} else if (s.hasNext("max_temperature")) {
+					s.next("max_temperature");
+					max_temperature = s.nextDouble();
+				} else if (s.hasNext("max_gaz")) {
+					s.next("max_gaz");
+					max_gaz = s.nextDouble();
+				} else
+					s.nextLine();
+			}
+		} finally {
+			s.close();
+		}
+		
+		System.out.println(getClass().getName() + ": Simple config loaded");
+	}
+	
+	void initConfig()
+	{
+		min_temperature = -40.0;
+		max_temperature = 60.0;
+		max_gaz = 10.0;
+		
+		System.out.println(getClass().getName() + ": Simple config initialized");
+	}
+	
+	void saveConfig() throws Exception
+	{
+		FileWriter fw = new FileWriter(config_file);
+		
+		try {
+			fw.write(
+				"min_temperature " + min_temperature + "\n" +
+				"max_temperature " + max_temperature + "\n" +
+				"max_gaz " + max_gaz + "\n");
+			
+			fw.flush();
+		} finally {
+			fw.close();
+		}
+		
+		System.out.println(getClass().getName() + ": Simple config saved");
+	}
+
+	public void setMinTemperatureThreshold(double value) throws Exception
+	{
+		min_temperature = value;
+		saveConfig();
+	}
+
+	public double minTemperatureThreshold()
+	{
+		return min_temperature;
+	}
+
+	public void setMaxTemperatureThreshold(double value) throws Exception
+	{
+		max_temperature = value;
+		saveConfig();
+	}
+
+	public double maxTemperatureThreshold()
+	{
+		return max_temperature;
+	}
+
+	public void setMaxGazThreshold(double value) throws Exception
+	{
+		max_gaz = value;
+		saveConfig();
+	}
+
+	public double maxGazThreshold()
+	{
+		return max_gaz;
+	}
+
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/AlarmConfig_v1.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/AlarmConfig_v1.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/AlarmImpl_v1.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/AlarmImpl_v1.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/AlarmImpl_v1.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/AlarmImpl_v1.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,80 @@
+package ijvm.tests.AlarmImpl;
+
+import org.osgi.framework.BundleContext;
+
+import ijvm.tests.Alarm.Alarm;
+
+public class AlarmImpl_v1
+	implements Alarm
+{
+	boolean state;
+	AlarmConfig_v1 config;
+	
+	AlarmImpl_v1()
+	{
+		System.out.println(getClass().getName() + " loaded");
+		
+		state = false;
+	}
+
+	protected void finalize()
+	{
+		System.out.println(getClass().getName() + " unloaded");
+	}
+	
+	public void open(BundleContext bundleContext) throws Exception
+	{
+		config = new AlarmConfig_v1();
+		config.open(bundleContext);
+	}
+	
+	public void close() throws Exception
+	{
+		config.close();
+	}
+	
+	public void setState(boolean on)
+	{
+		state = on;
+	}
+
+	public boolean state()
+	{
+		return state;
+	}
+
+	public void setMinTemperatureThreshold(double value) throws Exception
+	{
+		config.setMinTemperatureThreshold(value);
+	}
+
+	public double minTemperatureThreshold()
+	{
+		return config.minTemperatureThreshold();
+	}
+
+	public void setMaxTemperatureThreshold(double value) throws Exception
+	{
+		config.setMaxTemperatureThreshold(value);
+	}
+
+	public double maxTemperatureThreshold()
+	{
+		return config.maxTemperatureThreshold();
+	}
+
+	public void setMaxGazThreshold(double value) throws Exception
+	{
+		config.setMaxGazThreshold(value);
+	}
+
+	public double maxGazThreshold()
+	{
+		return config.maxGazThreshold();
+	}
+
+	public void saveConfig() throws Exception
+	{
+		config.saveConfig();
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/AlarmImpl_v1.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v1.0/src/ijvm/tests/AlarmImpl/AlarmImpl_v1.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.bundle-pack
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.bundle-pack?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.bundle-pack (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.bundle-pack Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<bundlejar>
+<resource dst="" pattern=".*\.class" src="/ijvm.tests.Alarm_v2.0/out" type="0"/>
+</bundlejar>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.bundle-pack
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.svn/**|**/CVS/**" including="**/*.java" kind="src" path="src"/>
+	<classpathentry exported="true" kind="con" path="org.knopflerfish.eclipse.core.EXECUTION_ENVIRONMENT_CONTAINER"/>
+	<classpathentry exported="true" kind="con" path="org.knopflerfish.eclipse.core.FRAMEWORK_CONTAINER">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/osgi/framework/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry exported="true" kind="con" path="org.knopflerfish.eclipse.core.BUNDLE_CONTAINER/ijvm.tests.Alarm">
+		<accessrules>
+			<accessrule kind="accessible" pattern="ijvm/tests/Alarm/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry exported="true" kind="con" path="org.knopflerfish.eclipse.core.BUNDLE_CONTAINER/org.knopflerfish.bundle.crimson">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/xml/sax/helpers/"/>
+			<accessrule kind="accessible" pattern="javax/xml/parsers/"/>
+			<accessrule kind="accessible" pattern="org/xml/sax/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="output" path="out"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.project (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ijvm.tests.Alarm_v2.0</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.knopflerfish.eclipse.core.bundlebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.knopflerfish.eclipse.core.bundlenature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/bundle.manifest
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/bundle.manifest?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/bundle.manifest (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/bundle.manifest Mon Jun 10 11:15:21 2013
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-Vendor: Koutheir Attouchi
+Bundle-Version: 2.0.0
+Bundle-Name: ijvm.tests.AlarmImpl
+Bundle-ManifestVersion: 2
+Bundle-Activator: ijvm.tests.AlarmImpl.Activator
+Import-Package: org.osgi.framework, ijvm.tests.Alarm, org.xml.sax, jav
+ ax.xml.parsers, org.xml.sax.helpers
+Bundle-SymbolicName: ijvm.tests.AlarmImpl
+

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/bundle.manifest
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/Activator.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/Activator.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/Activator.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/Activator.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,34 @@
+package ijvm.tests.AlarmImpl;
+
+import ijvm.tests.Alarm.Alarm;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+
+public class Activator
+	implements BundleActivator
+{
+	BundleContext context;
+	AlarmImpl_v2 alarm;
+	ServiceRegistration alarmServiceReg;
+
+	public void start(BundleContext bundleContext) throws Exception
+	{
+		System.out.println(getClass().getName() + " provides " + Alarm.class.getName());
+		context = bundleContext;
+		
+		alarm = new AlarmImpl_v2();
+		alarm.open(context);
+		
+		alarmServiceReg = context.registerService(Alarm.class.getName(), alarm, null);
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception
+	{
+		alarmServiceReg.unregister();
+		alarm.close();
+		
+		System.out.println(getClass().getName() + " no more provides " + Alarm.class.getName());
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/Activator.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/AlarmConfig_v2.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/AlarmConfig_v2.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/AlarmConfig_v2.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/AlarmConfig_v2.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,221 @@
+package ijvm.tests.AlarmImpl;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Scanner;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.osgi.framework.BundleContext;
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+class AlarmConfig_v2
+{
+	File config_file;
+	double min_temperature;
+	double max_temperature;
+	double max_gaz;
+
+	public void open(BundleContext bundleContext) throws Exception
+	{
+		config_file = bundleContext.getDataFile("alarm.conf");
+		loadConfig();
+	}
+	
+	public void close() throws Exception
+	{
+		saveConfig();
+	}
+	
+	void loadConfig() throws Exception
+	{
+		initConfig();
+		
+		if (!config_file.exists()) {
+			saveConfig();
+			return;
+		}
+		
+		loadXMLConfig();
+	}
+	
+	void loadXMLConfig() throws Exception
+	{
+		if (!configIsXML())
+			migrateConfig();
+			
+		InputSource is = new InputSource(
+			new InputStreamReader(
+				new FileInputStream(config_file), "UTF-8"));
+		is.setEncoding("UTF-8");
+		
+		DefaultHandler xmlHandler = new DefaultHandler() {
+			boolean config = false, temperature = false, gaz = false, min = false, max = false;
+			
+			public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
+				if (!config && qName.equalsIgnoreCase("config"))
+					config = true;
+				else if (config && !temperature && qName.equalsIgnoreCase("temperature"))
+					temperature = true;
+				else if (temperature && !min && qName.equalsIgnoreCase("min"))
+					min = true;
+				else if (temperature && !max && qName.equalsIgnoreCase("max"))
+					max = true;
+				else if (config && !gaz && qName.equalsIgnoreCase("gaz"))
+					gaz = true;
+				else if (gaz && !max && qName.equalsIgnoreCase("max"))
+					max = true;
+			}
+			
+		    public void endElement (String uri, String localName, String qName) throws SAXException {
+				if (config && qName.equalsIgnoreCase("config"))
+					config = false;
+				else if (temperature && qName.equalsIgnoreCase("temperature"))
+					temperature = false;
+				else if (gaz && qName.equalsIgnoreCase("gaz"))
+					gaz = false;
+				else if (min && qName.equalsIgnoreCase("min"))
+					min = false;
+				else if (max && qName.equalsIgnoreCase("max"))
+					max = false;
+		    }
+
+		    public void characters (char ch[], int start, int length) throws SAXException {
+		    	if (temperature && min)
+		    		min_temperature = Double.parseDouble(new String(ch, start, length));
+		    	else if (temperature && max)
+		    		max_temperature = Double.parseDouble(new String(ch, start, length));
+		    	else if (gaz && max)
+		    		max_gaz = Double.parseDouble(new String(ch, start, length));
+		    }
+		};
+		
+		SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
+		parser.parse(is, xmlHandler);
+		
+		System.out.println(getClass().getName() + ": XML config loaded");
+	}
+
+	boolean configIsXML() throws IOException
+	{
+		FileReader fr =  null;
+		boolean r = false;
+		
+		try {
+			fr = new FileReader(config_file);
+			r = (fr.read() == '<');
+		} finally {			
+			fr.close();
+		}
+		return r;
+	}
+	
+	void loadSimpleConfig() throws Exception
+	{
+		FileReader fr = new FileReader(config_file);
+		Scanner s = new Scanner(fr);
+		
+		try {
+			while (s.hasNextLine()) {
+				if (s.hasNext("min_temperature")) {
+					s.next("min_temperature");
+					min_temperature = s.nextDouble();
+				} else if (s.hasNext("max_temperature")) {
+					s.next("max_temperature");
+					max_temperature = s.nextDouble();
+				} else if (s.hasNext("max_gaz")) {
+					s.next("max_gaz");
+					max_gaz = s.nextDouble();
+				} else
+					s.nextLine();
+			}
+		} finally {
+			s.close();
+		}
+		
+		System.out.println(getClass().getName() + ": Simple config loaded");
+	}
+	
+	void initConfig()
+	{
+		min_temperature = -40.0;
+		max_temperature = 60.0;
+		max_gaz = 10.0;
+		
+		System.out.println(getClass().getName() + ": XML config initialized");
+	}
+	
+	void saveConfig() throws Exception
+	{
+		FileWriter fw = new FileWriter(config_file);
+		
+		try {
+			fw.write(
+				"<config>\n" +
+				" <temperature>\n" +
+				"  <min>" + min_temperature + "</min>\n" +
+				"  <max>" + max_temperature + "</max>\n" +
+				" </temperature>\n" +
+				" <gaz>\n" +
+				"  <max>" + max_gaz + "</max>\n" +
+				" </gaz>\n" +
+				"</config>\n");
+			
+			fw.flush();
+		} finally {
+			fw.close();
+		}
+		
+		System.out.println(getClass().getName() + ": XML config saved");
+	}
+	
+	void migrateConfig() throws Exception
+	{
+		System.out.println(getClass().getName() + ": Migrating config from simple to XML");
+		
+		loadSimpleConfig();
+		saveConfig();
+	}
+
+	public void setMinTemperatureThreshold(double value) throws Exception
+	{
+		min_temperature = value;
+		saveConfig();
+	}
+
+	public double minTemperatureThreshold()
+	{
+		return min_temperature;
+	}
+
+	public void setMaxTemperatureThreshold(double value) throws Exception
+	{
+		max_temperature = value;
+		saveConfig();
+	}
+
+	public double maxTemperatureThreshold()
+	{
+		return max_temperature;
+	}
+
+	public void setMaxGazThreshold(double value) throws Exception
+	{
+		max_gaz = value;
+		saveConfig();
+	}
+
+	public double maxGazThreshold()
+	{
+		return max_gaz;
+	}
+
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/AlarmConfig_v2.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/AlarmConfig_v2.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/AlarmImpl_v2.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/AlarmImpl_v2.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/AlarmImpl_v2.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/AlarmImpl_v2.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,78 @@
+package ijvm.tests.AlarmImpl;
+
+import org.osgi.framework.BundleContext;
+
+import ijvm.tests.Alarm.Alarm;
+
+public class AlarmImpl_v2
+	implements Alarm
+{
+	boolean state;
+	AlarmConfig_v2 config;
+	
+	AlarmImpl_v2()
+	{
+		System.out.println(getClass().getName() + " loaded");
+		
+		state = false;
+	}
+
+	protected void finalize()
+	{
+		System.out.println(getClass().getName() + " unloaded");
+	}
+	
+	public void open(BundleContext bundleContext) throws Exception
+	{
+		config = new AlarmConfig_v2();
+		config.open(bundleContext);
+	}
+	
+	public void close() throws Exception
+	{
+		config.close();
+	}
+	
+	public void setState(boolean on)
+	{
+		state = on;
+	}
+
+	public boolean state()
+	{
+		setState(Math.random() >= 0.5);
+		return state;
+	}
+
+	public void setMinTemperatureThreshold(double value) throws Exception
+	{
+	}
+
+	public double minTemperatureThreshold()
+	{
+		return 0.0;
+	}
+
+	public void setMaxTemperatureThreshold(double value) throws Exception
+	{
+	}
+
+	public double maxTemperatureThreshold()
+	{
+		return 0.0;
+	}
+
+	public void setMaxGazThreshold(double value) throws Exception
+	{
+	}
+
+	public double maxGazThreshold()
+	{
+		return 0.0;
+	}
+
+	public void saveConfig() throws Exception
+	{
+		config.saveConfig();
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/AlarmImpl_v2.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Alarm_v2.0/src/ijvm/tests/AlarmImpl/AlarmImpl_v2.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.bundle-pack
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.bundle-pack?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.bundle-pack (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.bundle-pack Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<bundlejar>
+<resource dst="" pattern=".*\.class" src="/ijvm.tests.BImpl/out" type="0"/>
+</bundlejar>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.bundle-pack
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.svn/**|**/CVS/**" including="**/*.java" kind="src" path="src"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.EXECUTION_ENVIRONMENT_CONTAINER"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.FRAMEWORK_CONTAINER">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/osgi/util/tracker/"/>
+			<accessrule kind="accessible" pattern="org/osgi/framework/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.BUNDLE_CONTAINER/ijvm.tests.A">
+		<accessrules>
+			<accessrule kind="accessible" pattern="ijvm/tests/A/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="output" path="out"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.project (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ijvm.tests.BImpl</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.knopflerfish.eclipse.core.bundlebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.knopflerfish.eclipse.core.bundlenature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/bundle.manifest
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/bundle.manifest?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/bundle.manifest (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/bundle.manifest Mon Jun 10 11:15:21 2013
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-Version: 1.0.0
+Bundle-Name: BImpl
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: ijvm.tests.BImpl
+Export-Package: ijvm.tests.B
+Bundle-Activator: ijvm.tests.BImpl.Activator
+Import-Package: ijvm.tests.A, org.osgi.framework, org.osgi.util.tracke
+ r
+

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/bundle.manifest
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/B/B.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/B/B.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/B/B.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/B/B.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,6 @@
+package ijvm.tests.B;
+
+public interface B
+{
+	public void performB();
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/B/B.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/B/B.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/Activator.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/Activator.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/Activator.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/Activator.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,90 @@
+package ijvm.tests.BImpl;
+
+import ijvm.tests.A.A;
+import ijvm.tests.A.Token;
+import ijvm.tests.B.B;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceListener;
+import org.osgi.util.tracker.ServiceTracker;
+
+public class Activator
+	implements BundleActivator, ServiceListener
+{
+	private BundleContext context;
+
+	private ServiceTracker aST;
+	private BImpl b;
+	
+	public void start(BundleContext bundleContext) throws Exception
+	{
+		System.out.println("BImpl exports and provides B");
+		context = bundleContext;
+
+		b = new BImpl();
+		
+		aST = new ServiceTracker(context, A.class.getName(), null);
+		aST.open();
+		
+		A service = (A)aST.getService();
+		if (service != null) {
+			System.out.println("BImpl got A @ startup");
+			
+			b.a.add(service);
+			this.useA();
+		}
+		
+		context.addServiceListener(this, "(objectclass=" + A.class.getName() + ")");
+		context.registerService(B.class.getName(), b, null);
+	}
+
+	public void stop(BundleContext bundleContext) throws Exception
+	{
+		System.out.println("BImpl no more provides B");
+
+		context.removeServiceListener(this);
+		context = null;
+		
+		System.out.println("BImpl lost A but keeps a stale reference to it");
+		aST.close();
+		aST = null;
+		// a = null;
+		
+		b = null;
+	}
+
+	public void serviceChanged(ServiceEvent event)
+	{
+		Object service = context.getService(event.getServiceReference());
+		
+		switch(event.getType()) {
+		case ServiceEvent.REGISTERED:
+			if (A.class.isInstance(service)) {
+				System.out.println("BImpl got A");
+				b.a.add((A)service);
+				
+				this.useA();
+			}
+			break;
+			
+		case ServiceEvent.UNREGISTERING:
+			if (A.class.isInstance(service)) {
+				System.out.println("BImpl lost A but keeps a stale reference to it");
+			}
+			break;
+		}
+	}
+	
+	private void useA()
+	{
+		A oneA = b.a.get(b.a.size() - 1);
+		Token token = oneA.getToken();
+		token.getValue();
+		
+		b.tokens.add(token);
+		
+		System.out.println("BImpl got Token from A");
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/Activator.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/BImpl.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/BImpl.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/BImpl.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/BImpl.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,25 @@
+package ijvm.tests.BImpl;
+
+import java.util.ArrayList;
+
+import ijvm.tests.A.A;
+import ijvm.tests.A.Token;
+import ijvm.tests.B.B;
+
+public class BImpl
+	implements B
+{
+	public ArrayList<A> a;
+	public ArrayList<Token> tokens;
+	
+	public BImpl()
+	{
+		a = new ArrayList<A>();
+		tokens = new ArrayList<Token>();
+	}
+	
+	public void performB()
+	{
+		System.out.println("BImpl.performB");
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/BImpl.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BImpl/src/ijvm/tests/BImpl/BImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.bundle-pack
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.bundle-pack?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.bundle-pack (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.bundle-pack Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<bundlejar>
+<resource dst="" pattern=".*\.class" src="/ijvm.tests.BundleMgmtStress/out" type="0"/>
+</bundlejar>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.bundle-pack
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.svn/**|**/CVS/**" including="**/*.java" kind="src" path="src"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.EXECUTION_ENVIRONMENT_CONTAINER"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.FRAMEWORK_CONTAINER">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/osgi/util/tracker/"/>
+			<accessrule kind="accessible" pattern="org/osgi/framework/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.BUNDLE_CONTAINER/j3mgr">
+		<accessrules>
+			<accessrule kind="accessible" pattern="j3/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="output" path="out"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.project (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ijvm.tests.BundleMgmtStress</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.knopflerfish.eclipse.core.bundlebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.knopflerfish.eclipse.core.bundlenature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/bundle.manifest
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/bundle.manifest?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/bundle.manifest (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/bundle.manifest Mon Jun 10 11:15:21 2013
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Bundle-Version: 1.0.0
+Bundle-Name: BundleMgmtStress
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: ijvm.tests.BundleMgmtStress
+Bundle-Activator: ijvm.tests.BundleMgmtStress.Activator
+Import-Package: j3, org.osgi.framework, org.osgi.util.tracker
+

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/bundle.manifest
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/src/ijvm/tests/BundleMgmtStress/Activator.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/src/ijvm/tests/BundleMgmtStress/Activator.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/src/ijvm/tests/BundleMgmtStress/Activator.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/src/ijvm/tests/BundleMgmtStress/Activator.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,118 @@
+package ijvm.tests.BundleMgmtStress;
+
+import j3.J3Mgr;
+
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleException;
+import org.osgi.util.tracker.ServiceTracker;
+
+public class Activator
+	implements BundleActivator, Runnable
+{
+	static final boolean correctStaleReferences = false;
+	static final String targetBundle = "file:///home/koutheir/PhD/VMKit/knopflerfish/osgi/jars/http/http_all-3.1.2.jar";
+	static final long firstBundleID = 8;
+	
+	BundleContext context;
+	Thread worker;
+	volatile boolean cancelWork;
+	ServiceTracker j3mgrST;
+	J3Mgr j3mgr;
+	long loopCount;
+
+	public void start(BundleContext bundleContext) throws Exception
+	{
+		context = bundleContext;
+
+		j3mgrST = new ServiceTracker(context, J3Mgr.class.getName(), null);
+		j3mgrST.open();
+		j3mgr = (J3Mgr)j3mgrST.getService();
+		if (j3mgr == null) {
+			throw new BundleException(
+				"J3 Management service must be started before this service.");
+		}
+		
+		loopCount = 0;
+		
+		cancelWork = false;
+		worker = new Thread(this, "Stresser");
+		worker.start();
+	}
+
+	public void stop(BundleContext bundleContext) throws Exception
+	{
+		if (!cancelWork) {
+			cancelWork = true;
+			
+			if (worker != null) {
+				worker.join();
+				worker = null;
+			}
+		}
+		
+		System.out.println("Bundle reinstallation count: " + loopCount);
+		context = null;
+	}
+
+	public void run()
+	{
+		System.out.println("Bundle management stress running...");
+		try {
+			Thread.sleep(2000);
+		} catch (Exception e) {}
+		
+		try {
+			uninstallBundle(context.getBundle(firstBundleID));
+
+			while (!cancelWork) {
+				Bundle bundle = context.installBundle(targetBundle);
+				bundle.start();
+				Thread.sleep(100);
+								
+				uninstallBundle(bundle);
+			}
+		} catch (Throwable e) {
+			cancelWork = true;
+			e.printStackTrace();
+		}
+		
+		System.out.println("Bundle management stress done.");
+		
+		try {
+			cancelWork = true;
+			Bundle thisBundle = context.getBundle();
+			int currentState = thisBundle.getState();
+			
+			if (currentState == Bundle.ACTIVE ||
+				currentState == Bundle.STARTING) {
+				thisBundle.stop();
+			}
+			worker = null;
+		} catch (BundleException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	void uninstallBundle(Bundle bundle) throws Throwable
+	{	
+		if (bundle == null) return;
+		
+		try {
+			j3mgr.setBundleStaleReferenceCorrected(
+				bundle.getBundleId(), correctStaleReferences);
+		} catch (UnsatisfiedLinkError e) {
+			if (correctStaleReferences)
+				throw e;
+		}
+		
+		bundle.stop();
+		bundle.uninstall();
+		System.out.println("Uninstalled: bundleID=" + bundle.getBundleId());
+		
+		loopCount++;
+		
+		System.gc();
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/src/ijvm/tests/BundleMgmtStress/Activator.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.BundleMgmtStress/src/ijvm/tests/BundleMgmtStress/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.bundle-pack
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.bundle-pack?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.bundle-pack (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.bundle-pack Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<bundlejar>
+<resource dst="" pattern=".*\.class" src="/ijvm.tests.C/out" type="0"/>
+</bundlejar>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.bundle-pack
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.svn/**|**/CVS/**" including="**/*.java" kind="src" path="src"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.EXECUTION_ENVIRONMENT_CONTAINER"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.FRAMEWORK_CONTAINER">
+		<accessrules>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="output" path="out"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.project (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ijvm.tests.C</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.knopflerfish.eclipse.core.bundlebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.knopflerfish.eclipse.core.bundlenature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/bundle.manifest
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/bundle.manifest?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/bundle.manifest (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/bundle.manifest Mon Jun 10 11:15:21 2013
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-Version: 1.0.0
+Bundle-Name: C
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: ijvm.tests.C
+Export-Package: ijvm.tests.C
+

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/bundle.manifest
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/src/ijvm/tests/C/C.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/src/ijvm/tests/C/C.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/src/ijvm/tests/C/C.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/src/ijvm/tests/C/C.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,7 @@
+package ijvm.tests.C;
+
+public interface C
+{
+	public void performC();
+	public void registerObject(Object o);
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/src/ijvm/tests/C/C.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.C/src/ijvm/tests/C/C.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.bundle-pack
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.bundle-pack?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.bundle-pack (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.bundle-pack Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<bundlejar>
+<resource dst="" pattern=".*\.class" src="/ijvm.tests.CImpl/out" type="0"/>
+</bundlejar>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.bundle-pack
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.svn/**|**/CVS/**" including="**/*.java" kind="src" path="src"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.EXECUTION_ENVIRONMENT_CONTAINER"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.FRAMEWORK_CONTAINER">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/osgi/util/tracker/"/>
+			<accessrule kind="accessible" pattern="org/osgi/framework/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.BUNDLE_CONTAINER/ijvm.tests.BImpl">
+		<accessrules>
+			<accessrule kind="accessible" pattern="ijvm/tests/B/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.BUNDLE_CONTAINER/ijvm.tests.C">
+		<accessrules>
+			<accessrule kind="accessible" pattern="ijvm/tests/C/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="output" path="out"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.project (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ijvm.tests.CImpl</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.knopflerfish.eclipse.core.bundlebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.knopflerfish.eclipse.core.bundlenature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/bundle.manifest
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/bundle.manifest?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/bundle.manifest (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/bundle.manifest Mon Jun 10 11:15:21 2013
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Bundle-Version: 1.0.0
+Bundle-Name: CImpl
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: ijvm.tests.CImpl
+Bundle-Activator: ijvm.tests.CImpl.Activator
+Import-Package: ijvm.tests.B, ijvm.tests.C, org.osgi.framework, org.os
+ gi.util.tracker
+

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/bundle.manifest
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/Activator.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/Activator.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/Activator.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/Activator.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,75 @@
+package ijvm.tests.CImpl;
+
+import ijvm.tests.B.B;
+import ijvm.tests.C.C;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceListener;
+import org.osgi.util.tracker.ServiceTracker;
+
+public class Activator
+	implements BundleActivator, ServiceListener
+{
+	private BundleContext context;
+
+	private ServiceTracker bST;
+	private CImpl c;
+
+	public void start(BundleContext bundleContext) throws Exception
+	{
+		System.out.println("CImpl exports and provides C");
+		context = bundleContext;
+
+		c = new CImpl();
+
+		bST = new ServiceTracker(context, B.class.getName(), null);
+		bST.open();
+		
+		B service = (B)bST.getService();
+		if (service != null) {
+			System.out.println("CImpl got B @ startup");
+			
+			c.b.add(service);
+		}
+		
+		context.addServiceListener(this, "(objectclass=" + B.class.getName() + ")");
+		context.registerService(C.class.getName(), c, null);
+	}
+
+	public void stop(BundleContext bundleContext) throws Exception
+	{
+		System.out.println("CImpl no more provides C");
+
+		context.removeServiceListener(this);
+		context = null;
+		
+		System.out.println("CImpl lost B but keeps a stale reference to it");
+		bST.close();
+		bST = null;
+		// b = null;
+		
+		c = null;
+	}
+
+	public void serviceChanged(ServiceEvent event)
+	{
+		Object service = context.getService(event.getServiceReference());
+		
+		switch(event.getType()) {
+		case ServiceEvent.REGISTERED:
+			if (B.class.isInstance(service)) {
+				System.out.println("CImpl got B");
+				c.b.add((B)service);
+			}
+			break;
+			
+		case ServiceEvent.UNREGISTERING:
+			if (B.class.isInstance(service)) {
+				System.out.println("CImpl lost B but keeps a stale reference to it");
+			}
+			break;
+		}
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/Activator.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/CImpl.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/CImpl.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/CImpl.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/CImpl.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,29 @@
+package ijvm.tests.CImpl;
+
+import java.util.ArrayList;
+
+import ijvm.tests.B.B;
+import ijvm.tests.C.C;
+
+public class CImpl
+	implements C
+{
+	ArrayList<Object> registeredObjects;
+	public ArrayList<B> b;
+	
+	CImpl()
+	{
+		b = new ArrayList<B>();
+		registeredObjects = new ArrayList<Object>();
+	}
+	
+	public void performC()
+	{
+		System.out.println("CImpl.performC");
+	}
+
+	public void registerObject(Object o)
+	{
+		registeredObjects.add(o);
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/CImpl.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.CImpl/src/ijvm/tests/CImpl/CImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.bundle-pack
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.bundle-pack?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.bundle-pack (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.bundle-pack Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<bundlejar>
+<resource dst="" pattern=".*\.class" src="/ijvm.tests.DImpl/out" type="0"/>
+</bundlejar>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.bundle-pack
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.svn/**|**/CVS/**" including="**/*.java" kind="src" path="src"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.EXECUTION_ENVIRONMENT_CONTAINER"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.FRAMEWORK_CONTAINER">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/osgi/util/tracker/"/>
+			<accessrule kind="accessible" pattern="org/osgi/framework/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.BUNDLE_CONTAINER/ijvm.tests.C">
+		<accessrules>
+			<accessrule kind="accessible" pattern="ijvm/tests/C/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="output" path="out"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.project (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ijvm.tests.DImpl</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.knopflerfish.eclipse.core.bundlebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.knopflerfish.eclipse.core.bundlenature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/bundle.manifest
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/bundle.manifest?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/bundle.manifest (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/bundle.manifest Mon Jun 10 11:15:21 2013
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Bundle-Version: 1.0.0
+Bundle-Name: DImpl
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: ijvm.tests.DImpl
+Export-Package: ijvm.tests.D
+Bundle-Activator: ijvm.tests.DImpl.Activator
+Import-Package: ijvm.tests.C, org.osgi.framework, org.osgi.util.tracke
+ r
+

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/bundle.manifest
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/D/D.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/D/D.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/D/D.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/D/D.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,6 @@
+package ijvm.tests.D;
+
+public interface D
+{
+	public void performD();
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/D/D.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/D/D.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/Activator.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/Activator.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/Activator.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/Activator.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,75 @@
+package ijvm.tests.DImpl;
+
+import ijvm.tests.C.C;
+import ijvm.tests.D.D;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceListener;
+import org.osgi.util.tracker.ServiceTracker;
+
+public class Activator
+	implements BundleActivator, ServiceListener
+{
+	private BundleContext context;
+
+	private ServiceTracker cST;
+	private DImpl d;
+	
+	public void start(BundleContext bundleContext) throws Exception
+	{
+		System.out.println("DImpl exports and provides D");
+		context = bundleContext;
+
+		d = new DImpl();
+
+		cST = new ServiceTracker(context, C.class.getName(), null);
+		cST.open();
+		
+		C service = (C)cST.getService();
+		if (service != null) {
+			System.out.println("DImpl got C @ startup");
+			
+			d.c.add(service);
+		}
+		
+		context.addServiceListener(this, "(objectclass=" + C.class.getName() + ")");
+		context.registerService(D.class.getName(), d, null);
+	}
+
+	public void stop(BundleContext bundleContext) throws Exception
+	{
+		System.out.println("DImpl no more provides D");
+
+		context.removeServiceListener(this);
+		context = null;
+		
+		System.out.println("DImpl lost C but keeps a stale reference to it");
+		cST.close();
+		cST = null;
+		// c = null;
+		
+		d = null;
+	}
+
+	public void serviceChanged(ServiceEvent event)
+	{
+		Object service = context.getService(event.getServiceReference());
+		
+		switch(event.getType()) {
+		case ServiceEvent.REGISTERED:
+			if (C.class.isInstance(service)) {
+				System.out.println("DImpl got C");
+				d.c.add((C)service);
+			}
+			break;
+			
+		case ServiceEvent.UNREGISTERING:
+			if (C.class.isInstance(service)) {
+				System.out.println("DImpl lost C but keeps a stale reference to it");
+			}
+			break;
+		}
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/Activator.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/DImpl.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/DImpl.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/DImpl.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/DImpl.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,22 @@
+package ijvm.tests.DImpl;
+
+import java.util.ArrayList;
+
+import ijvm.tests.C.C;
+import ijvm.tests.D.D;
+
+public class DImpl
+	implements D
+{
+	public ArrayList<C> c;
+	
+	public DImpl()
+	{
+		c = new ArrayList<C>();
+	}
+	
+	public void performD()
+	{
+		System.out.println("DImpl.performB");
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/DImpl.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.DImpl/src/ijvm/tests/DImpl/DImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.bundle-pack
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.bundle-pack?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.bundle-pack (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.bundle-pack Mon Jun 10 11:15:21 2013
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<bundlejar>
+<resource dst="" pattern=".*\.class" src="/ijvm.tests.Runner/out" type="0"/>
+</bundlejar>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.bundle-pack
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry excluding="**/.svn/**|**/CVS/**" including="**/*.java" kind="src" path="src"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.EXECUTION_ENVIRONMENT_CONTAINER"/>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.FRAMEWORK_CONTAINER">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/osgi/util/tracker/"/>
+			<accessrule kind="accessible" pattern="org/osgi/framework/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="con" path="org.knopflerfish.eclipse.core.BUNDLE_CONTAINER/ijvm.tests.A">
+		<accessrules>
+			<accessrule kind="accessible" pattern="ijvm/tests/A/"/>
+			<accessrule kind="nonaccessible" pattern="**/*"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="output" path="out"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.project (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ijvm.tests.Runner</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.knopflerfish.eclipse.core.bundlebuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.knopflerfish.eclipse.core.bundlenature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/bundle.manifest
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/bundle.manifest?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/bundle.manifest (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/bundle.manifest Mon Jun 10 11:15:21 2013
@@ -0,0 +1,9 @@
+Manifest-Version: 1.0
+Bundle-Version: 1.0.0
+Bundle-Name: Runner
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: ijvm.tests.Runner
+Bundle-Activator: ijvm.tests.Runner.Activator
+Import-Package: ijvm.tests.A, org.osgi.framework, org.osgi.util.tracke
+ r
+

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/bundle.manifest
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/Activator.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/Activator.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/Activator.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/Activator.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,71 @@
+package ijvm.tests.Runner;
+
+import ijvm.tests.A.A;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleException;
+import org.osgi.util.tracker.ServiceTracker;
+
+public class Activator
+	implements BundleActivator, Runnable
+{
+	private BundleContext context;
+	private ServiceTracker aST;
+	private A a;
+	private Runner runner1, runner2;
+	private Thread runnerThread1, runnerThread2, cancellerThread;
+
+	public void start(BundleContext bundleContext) throws Exception
+	{
+		System.out.println("Started runner bundle.");
+		context = bundleContext;
+		
+		aST = new ServiceTracker(context, A.class.getName(), null);
+		aST.open();
+		
+		a = (A)aST.getService();
+		if (a == null) {
+			aST.close();
+			aST = null;
+			
+			throw new BundleException("Runner bundle could not get A @ startup");
+		}
+		System.out.println("Runner bundle got A @ startup.");
+
+		runnerThread1 = new Thread(runner1 = new Runner(a), "Runner 1");
+		runnerThread2 = new Thread(runner2 = new Runner(a), "Runner 2");
+		runnerThread1.start();
+		runnerThread2.start();
+		
+//		cancellerThread = new Thread(this, "Runner Canceller");
+//		cancellerThread.start();
+	}
+
+	public void stop(BundleContext bundleContext) throws Exception
+	{
+		System.out.println("Stopped runner bundle.");
+		
+		context = null;
+		
+		System.out.println("Runner bundle lost A but keeps a stale reference to it");
+		aST.close();
+		aST = null;
+		// a = null;
+		
+//		runner1.cancel();
+//		runner2.cancel();
+//		runnerThread1.join();
+//		runnerThread2.join();
+	}
+
+	public void run()
+	{
+		try {
+			Thread.sleep(5000);
+			runner1.cancel();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/Activator.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/Runner.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/Runner.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/Runner.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/Runner.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,55 @@
+package ijvm.tests.Runner;
+
+public class Runner
+	implements Runnable
+{
+	private Object obj;
+	private static boolean sleeping;
+	private boolean cancelRunning;
+	
+	{
+		sleeping = false;
+	}
+	
+	public Runner(Object o)
+	{
+		cancelRunning = false;
+		obj = o;
+	}
+	
+	public void cancel()
+	{
+		System.out.println("Cancelling runner thread: " + Thread.currentThread().getName());
+		cancelRunning = true;
+	}
+	
+	public void run()
+	{
+		System.out.println("Started runner thread: " + Thread.currentThread().getName());
+		
+		try {
+			while (!cancelRunning) {
+				long delay = 2000 + (long)(Math.random() * 1000.0);
+				
+				synchronized(obj) {
+					while (sleeping)
+						obj.wait();
+					sleeping = true;
+					
+					System.out.println(Thread.currentThread().getName() + ": sleeping for " + delay);
+					Thread.sleep(delay);
+					System.out.println(Thread.currentThread().getName() + ": woke up");
+					
+					sleeping = false;
+					obj.notifyAll();
+				}
+				
+				Thread.sleep(200);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		
+		System.out.println("Stopped runner thread: " + Thread.currentThread().getName());
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/Runner.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/ijvm.tests.Runner/src/ijvm/tests/Runner/Runner.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/java-grant-all.policy
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/java-grant-all.policy?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/java-grant-all.policy (added)
+++ vmkit/branches/incinerator/incinerator/tests/java-grant-all.policy Mon Jun 10 11:15:21 2013
@@ -0,0 +1 @@
+grant { permission java.security.AllPermission; };

Propchange: vmkit/branches/incinerator/incinerator/tests/java-grant-all.policy
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/minimal.bug.xargs
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/minimal.bug.xargs?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/minimal.bug.xargs (added)
+++ vmkit/branches/incinerator/incinerator/tests/minimal.bug.xargs Mon Jun 10 11:15:21 2013
@@ -0,0 +1,42 @@
+-Dorg.knopflerfish.framework.system.export.all_13=false
+-Dorg.knopflerfish.framework.verbosity=0
+
+-Forg.knopflerfish.framework.debug.errors=true
+-Forg.knopflerfish.framework.debug.packages=false
+-Forg.knopflerfish.framework.debug.classloader=false
+
+-Forg.knopflerfish.http.dnslookup=true
+-Forg.osgi.service.http.port=8080
+
+-Dorg.knopflerfish.gosg.jars=file:///home/koutheir/PhD/VMKit/knopflerfish/osgi/jars/;file:///home/koutheir/PhD/VMKit/incinerator/incinerator/osgi/out/;file:///home/koutheir/PhD/VMKit/incinerator/incinerator/tests/
+
+-Forg.knopflerfish.startlevel.use=true
+
+-init
+
+-istart j3mgr-1.0.0.jar
+
+-istart log/log_all-3.1.3.jar
+-istart cm/cm_all-3.0.4.jar
+-istart util/util-2.0.1.jar
+-istart console/console_all-3.0.4.jar
+-istart frameworkcommands/frameworkcommands-3.2.0.jar
+-istart logcommands/logcommands-3.1.1.jar
+-istart cm_cmd/cm_cmd-3.0.2.jar
+-istart consoletty/consoletty-3.0.1.jar
+-istart useradmin/useradmin_api-3.0.3.jar
+-istart util/util-2.0.1.jar
+
+-launch
+
+#-install BundleReloader/out/BundleReloader-1.0.0.jar
+
+#-istart event/event_all-3.0.8.jar
+#-istart useradmin/useradmin_all-3.0.3.jar
+
+-istart  ijvm.tests.A/out/ijvm.tests.A-1.0.0.jar
+-istart  ijvm.tests.C/out/ijvm.tests.C-1.0.0.jar
+-istart  ijvm.tests.AImpl/out/ijvm.tests.AImpl-1.0.0.jar
+-istart  ijvm.tests.BImpl/out/ijvm.tests.BImpl-1.0.0.jar
+-istart  ijvm.tests.CImpl/out/ijvm.tests.CImpl-1.0.0.jar
+-istart  ijvm.tests.DImpl/out/ijvm.tests.DImpl-1.0.0.jar

Propchange: vmkit/branches/incinerator/incinerator/tests/minimal.bug.xargs
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/minimal.http.xargs
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/minimal.http.xargs?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/minimal.http.xargs (added)
+++ vmkit/branches/incinerator/incinerator/tests/minimal.http.xargs Mon Jun 10 11:15:21 2013
@@ -0,0 +1,44 @@
+-Dorg.knopflerfish.framework.system.export.all_13=false
+-Dorg.knopflerfish.framework.verbosity=0
+
+-Forg.knopflerfish.framework.debug.errors=true
+-Forg.knopflerfish.framework.debug.packages=false
+-Forg.knopflerfish.framework.debug.classloader=false
+#-Forg.knopflerfish.framework.debug.permissions=false
+
+-Forg.knopflerfish.http.dnslookup=true
+-Forg.osgi.service.http.port=8080
+
+-Dhttp.proxyHost=proxy
+-Dhttp.proxyPort=3128
+
+#-Forg.knopflerfish.framework.all_signed=false
+
+-Dorg.knopflerfish.gosg.jars=file:///home/koutheir/PhD/VMKit/knopflerfish/osgi/jars/;file:///home/koutheir/PhD/VMKit/incinerator/incinerator/osgi/out/;file:///home/koutheir/PhD/VMKit/incinerator/incinerator/tests/
+
+-Forg.knopflerfish.startlevel.use=true
+
+-init
+
+-istart  j3mgr-1.0.0.jar
+
+-install log/log_all-3.1.3.jar
+-install cm/cm_all-3.0.4.jar
+-install util/util-2.0.1.jar
+-istart console/console_all-3.0.4.jar
+-istart frameworkcommands/frameworkcommands-3.2.0.jar
+-istart logcommands/logcommands-3.1.1.jar
+-istart cm_cmd/cm_cmd-3.0.2.jar
+-istart consoletty/consoletty-3.0.1.jar
+-istart useradmin/useradmin_api-3.0.3.jar
+-istart util/util-2.0.1.jar
+
+-launch
+
+-install BundleReloader/out/BundleReloader-1.0.0.jar
+
+-install jsdk/jsdk_api-2.5.0.kf3-2.jar
+
+#-istart http/http_all-3.1.2.jar
+#-istart httpconsole/httpconsole_all-3.0.2.jar
+#-istart httproot/httproot-3.0.1.jar

Propchange: vmkit/branches/incinerator/incinerator/tests/minimal.http.xargs
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/minimal.xargs
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/minimal.xargs?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/minimal.xargs (added)
+++ vmkit/branches/incinerator/incinerator/tests/minimal.xargs Mon Jun 10 11:15:21 2013
@@ -0,0 +1,87 @@
+#-Dorg.knopflerfish.framework.bundlestorage=memory
+-Dorg.knopflerfish.framework.system.export.all_13=false
+-Dorg.knopflerfish.framework.verbosity=0
+
+-Forg.knopflerfish.framework.debug.errors=true
+-Forg.knopflerfish.framework.debug.packages=false
+-Forg.knopflerfish.framework.debug.classloader=false
+#-Forg.knopflerfish.framework.debug.permissions=false
+
+#-Forg.osgi.framework.system.packages.extra=
+
+-Forg.knopflerfish.http.dnslookup=true
+-Forg.osgi.service.http.port=8080
+
+#-Dhttp.proxyHost=proxy
+#-Dhttp.proxyPort=3128
+
+#-Forg.knopflerfish.framework.all_signed=false
+
+-Dorg.knopflerfish.gosg.jars=file:///home/koutheir/PhD/VMKit/knopflerfish/osgi/jars/;file:///home/koutheir/PhD/VMKit/incinerator/incinerator/tests/plugins/
+
+-Forg.knopflerfish.startlevel.use=true
+
+-init
+
+-install log/log_all-3.1.3.jar
+-install cm/cm_all-3.0.4.jar
+-install util/util-2.0.1.jar
+-istart console/console_all-3.0.4.jar
+-istart frameworkcommands/frameworkcommands-3.2.0.jar
+-istart logcommands/logcommands-3.1.1.jar
+-istart cm_cmd/cm_cmd-3.0.2.jar
+-istart consoletty/consoletty-3.0.1.jar
+-istart useradmin/useradmin_api-3.0.3.jar
+-istart util/util-2.0.1.jar
+
+-launch
+
+-istart  j3mgr-1.0.0.jar
+
+#-istart  ijvm.tests.A-1.0.0.jar
+#-istart  ijvm.tests.C-1.0.0.jar
+#-istart  ijvm.tests.AImpl-1.0.0.jar
+#-istart  ijvm.tests.BImpl-1.0.0.jar
+#-istart  ijvm.tests.CImpl-1.0.0.jar
+#-istart  ijvm.tests.DImpl-1.0.0.jar
+#-install ijvm.tests.Runner-1.0.0.jar
+-install BundleReloader-1.0.0.jar
+
+-install desktop/desktop_all-3.2.5.jar
+-install comm-linux/comm-linux_all-2.0.0.jar
+-install command/command_all-0.1.jar
+-install jsdk/jsdk_api-2.5.0.kf3-2.jar
+
+-istart kxml/kxml-2.3.0.kf3.jar
+-istart metatype/metatype-3.0.0.jar
+-istart kf_metatype/kf_metatype_all-3.0.2.jar
+-istart component/component_all-3.1.14.jar
+-istart event/event_all-3.0.8.jar
+-istart cm_desktop/cm_desktop_all-3.0.0.jar
+-istart threadio/threadio_all-0.1.0.jar
+-istart consoletcp/consoletcp_all-2.0.0.jar
+-istart soapobject/soapobject_all-0.0.2.jar
+-istart crimson/crimson-2.1.0.kf3.jar
+-istart measurement/measurement-3.0.1.jar
+-istart position/position-3.0.1.jar
+-istart sslj2sp/sslj2sp-2.0.0.jar
+-istart xerces/xerces-2.10.1.kf3.jar
+-istart xml/xml-3.0.1.jar
+-istart cm/cm_all-3.0.4.jar
+-istart commons-logging/commons-logging_all-2.0.0.kf3.jar
+-istart console/console_all-3.0.4.jar
+-istart prefs/prefs_all-3.0.1.jar
+-istart io/io_all-3.0.1.jar
+-istart device/device_all-3.0.0.jar
+-istart xalan/xalan-2.7.1.kf3_01.jar
+-istart basicdriverlocator/basicdriverlocator_all-3.0.0.jar
+-istart connectors/connectors_all-2.0.1.jar
+#-istart http/http_all-3.1.2.jar
+#-istart httpconsole/httpconsole_all-3.0.2.jar
+#-istart httproot/httproot-3.0.1.jar
+-istart useradmin/useradmin_all-3.0.3.jar
+-istart scrcommands/scrcommands-1.1.0.jar
+-istart serialportdevice/serialportdevice_all-2.0.1.jar
+-istart bundlerepository/bundlerepository_all-3.1.2.jar
+-istart commandtty/commandtty-2.0.0.jar
+-istart console2command/console2command-1.0.0.jar

Propchange: vmkit/branches/incinerator/incinerator/tests/minimal.xargs
------------------------------------------------------------------------------
    svn:executable = *

Added: vmkit/branches/incinerator/incinerator/tests/resurrection/.classpath
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/resurrection/.classpath?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/resurrection/.classpath (added)
+++ vmkit/branches/incinerator/incinerator/tests/resurrection/.classpath Mon Jun 10 11:15:21 2013
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

Propchange: vmkit/branches/incinerator/incinerator/tests/resurrection/.classpath
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/resurrection/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/resurrection/.project
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/resurrection/.project?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/resurrection/.project (added)
+++ vmkit/branches/incinerator/incinerator/tests/resurrection/.project Mon Jun 10 11:15:21 2013
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>resurrection</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Propchange: vmkit/branches/incinerator/incinerator/tests/resurrection/.project
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/resurrection/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/resurrect.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/resurrect.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/resurrect.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/resurrect.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,40 @@
+package resurrection;
+
+public class resurrect
+{
+	public static volatile resurrected objRef = null;
+
+	public static void main(String args[])
+	{
+		newUnreachable();
+		for (int i=0; i < 2; ++i)
+			makeUnreachable(i);
+	}
+	
+	static void newUnreachable()
+	{
+		new resurrected();
+	}
+	
+	static void makeUnreachable(int i)
+	{
+		System.out.println("Making objRef unreachable, round " + (i + 1)); 
+		
+		objRef = null;
+		collectObject();
+	}
+	
+	static void collectObject()
+	{
+		System.out.println("objRef = " + objRef); 
+		
+		try {
+			System.out.println("Run GC..."); 
+			System.gc();
+			Thread.sleep(2000);
+		} catch (Exception ignored) {}
+		
+		System.out.println("After GC..."); 
+		System.out.println("objRef = " + objRef);
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/resurrect.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/resurrect.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/resurrected.java
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/resurrected.java?rev=183676&view=auto
==============================================================================
--- vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/resurrected.java (added)
+++ vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/resurrected.java Mon Jun 10 11:15:21 2013
@@ -0,0 +1,11 @@
+package resurrection;
+
+public class resurrected
+{
+	protected void finalize()
+	{
+		System.out.println("Finalize invoked, resurrect this object.");
+		
+		resurrect.objRef = this;
+	}
+}

Propchange: vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/resurrected.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: vmkit/branches/incinerator/incinerator/tests/resurrection/src/resurrection/resurrected.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain





More information about the vmkit-commits mailing list