Mercurial > hg > release > thermostat-1.6
changeset 1727:a15b633b7335
Set up default boot delegation to make vm-profiler work
PR 2588
Reviewed-by: jerboaa
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2015-March/013390.html
author | Omair Majid <omajid@redhat.com> |
---|---|
date | Mon, 30 Mar 2015 10:10:43 -0400 |
parents | df0b23875ffb |
children | ef983c4da7ea |
files | distribution/docs/thermostat.1 main/src/main/java/com/redhat/thermostat/main/impl/FrameworkOptions.java main/src/test/java/com/redhat/thermostat/main/ThermostatTest.java main/src/test/java/com/redhat/thermostat/main/impl/FrameworkOptionsTest.java vm-profiler/jvm-agent/src/main/java/com/redhat/thermostat/vm/profiler/agent/jvm/ProfilerInstrumentor.java |
diffstat | 5 files changed, 26 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/distribution/docs/thermostat.1 Thu Aug 20 14:12:33 2015 +0200 +++ b/distribution/docs/thermostat.1 Mon Mar 30 10:10:43 2015 -0400 @@ -54,6 +54,9 @@ Ignore exact bundle versions and use whatever version is available. --boot-delegation Boot delegation string passed on to the OSGi framework. + Defaults to + "com.redhat.thermostat.vm.profiler.agent.jvm,org.objectweb.asm,org.objectweb.asm.commons" + .SS "Command Options and Command Arguments" Please see .B "thermostat help"
--- a/main/src/main/java/com/redhat/thermostat/main/impl/FrameworkOptions.java Thu Aug 20 14:12:33 2015 +0200 +++ b/main/src/main/java/com/redhat/thermostat/main/impl/FrameworkOptions.java Mon Mar 30 10:10:43 2015 -0400 @@ -82,6 +82,7 @@ public FrameworkOptions(String[] args) { this.globalOptions = new HashMap<>(); + initializeDefaultGlobalOptions(); this.otherOptions = processGlobalOptions(args); } @@ -116,6 +117,16 @@ return toProcess.toArray(new String[] {}); } + private void initializeDefaultGlobalOptions() { + // set up default boot delegation to allow the vm-profiler to work + // correctly by default + globalOptions.put(Option.BOOT_DELEGATION, + "com.redhat.thermostat.vm.profiler.agent.jvm," + + "org.objectweb.asm," + + "org.objectweb.asm.commons"); + } + + public String[] getOtherOptions() { return otherOptions; }
--- a/main/src/test/java/com/redhat/thermostat/main/ThermostatTest.java Thu Aug 20 14:12:33 2015 +0200 +++ b/main/src/test/java/com/redhat/thermostat/main/ThermostatTest.java Mon Mar 30 10:10:43 2015 -0400 @@ -118,16 +118,6 @@ } @Test - public void verifyNoBootDelegationArgIsPassedAsNull() { - String[] args = {}; - thermostat.start(paths, args); - - verify(provider).start(eq(new String[]{})); - FrameworkOptions opts = optsCaptor.getValue(); - assertNull(opts.bootDelegationValue()); - } - - @Test public void verifyBootDelegationIsPassedAlong() { String[] args = {"--boot-delegation=foo"}; thermostat.start(paths, args);
--- a/main/src/test/java/com/redhat/thermostat/main/impl/FrameworkOptionsTest.java Thu Aug 20 14:12:33 2015 +0200 +++ b/main/src/test/java/com/redhat/thermostat/main/impl/FrameworkOptionsTest.java Mon Mar 30 10:10:43 2015 -0400 @@ -48,11 +48,20 @@ public class FrameworkOptionsTest { @Test + public void verifyDefaults() { + String[] args = new String[] { "help" }; + FrameworkOptions opts = new FrameworkOptions(args); + assertFalse(opts.printOsgiInfo()); + assertFalse(opts.ignoreBundleVersions()); + assertTrue(opts.bootDelegationValue().contains("com.redhat.thermostat.vm.profiler")); + assertEquals(Arrays.asList("help"), + Arrays.asList(opts.getOtherOptions())); + } + + @Test public void canGetPrintOsgiInfo() { String[] args = new String[] { "--print-osgi-info", "help" }; FrameworkOptions opts = new FrameworkOptions(args); - assertNull(opts.bootDelegationValue()); - assertFalse(opts.ignoreBundleVersions()); assertTrue(opts.printOsgiInfo()); assertEquals(Arrays.asList("help"), Arrays.asList(opts.getOtherOptions())); @@ -63,8 +72,6 @@ String[] args = new String[] { "--boot-delegation=foo", "help" }; FrameworkOptions opts = new FrameworkOptions(args); assertEquals("foo", opts.bootDelegationValue()); - assertFalse(opts.ignoreBundleVersions()); - assertFalse(opts.printOsgiInfo()); assertEquals(Arrays.asList("help"), Arrays.asList(opts.getOtherOptions())); } @@ -73,9 +80,7 @@ public void canGetIgnoreBundleVersion() { String[] args = new String[] { "--ignore-bundle-versions", "help" }; FrameworkOptions opts = new FrameworkOptions(args); - assertNull(opts.bootDelegationValue()); assertTrue(opts.ignoreBundleVersions()); - assertFalse(opts.printOsgiInfo()); assertEquals(Arrays.asList("help"), Arrays.asList(opts.getOtherOptions())); }
--- a/vm-profiler/jvm-agent/src/main/java/com/redhat/thermostat/vm/profiler/agent/jvm/ProfilerInstrumentor.java Thu Aug 20 14:12:33 2015 +0200 +++ b/vm-profiler/jvm-agent/src/main/java/com/redhat/thermostat/vm/profiler/agent/jvm/ProfilerInstrumentor.java Mon Mar 30 10:10:43 2015 -0400 @@ -59,7 +59,7 @@ ignorePackageRegexps.add(Pattern.compile("com\\.redhat\\.thermostat\\.vm\\.profiler\\.agent\\.jvm\\..*")); // our dependencies - ignorePackageRegexps.add(Pattern.compile("org.objectweb.asm\\..*")); + ignorePackageRegexps.add(Pattern.compile("org\\.objectweb\\.asm\\..*")); } @Override