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