[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