[jopr-dev] Re: rev 2749] Jopr-55 Filter out standalone Tomcat processes from the JMX plugin discovery

Greg Hinkle ghinkle at redhat.com
Sat Feb 14 14:23:18 EST 2009


We acknowledged that this wasn't a perfect solution, but it is the best 
we can do for this release cycle. We'll look at other options in the 
future (such as providing a way to avoid duplicates process matches)

-Greg

John Mazzitelli wrote:
> For example, maybe we can add new plugin configuration settings to 
> tell the JMX plugin to ignore certain filters. This allows the user to 
> ignore certain things while allowing other users not to. Maybe I want 
> to see my tomcat VMs as JMX Servers - but as of now, you have not 
> given me that choice.
>
> John Mazzitelli wrote:
>> IMO, we should not do this kind of thing.
>>
>> We basically are hardcoding knowledge about a Jopr plugin into a core 
>> RHQ plugin. This is bad practice. An RHQ plugin should not care about 
>> or know anything about a Jopr plugin. In fact, the general practice 
>> is one plugin should not know anything about another plugin.
>>
>> Pretty soon, we could potentially have bunches of these little 
>> "nuggets" all over the place and then we get into how the old JON 1.x 
>> plugin system worked - dependencies all over the place without any 
>> compartmentalization.
>>
>> Let's think this through and come up with another solution that 
>> doesn't dirty up the RHQ JMX plugin with Jopr-plugin-specific knowledge.
>>
>> -------- Original Message --------
>> Subject:     [Rhq-commits] [rhq-project.org rhq] [2749] Jopr-55 
>> Filter out standalone Tomcat processes from the JMX plugin discovery.
>> Date:     26 Jan 2009 17:45:00 -0000
>> From:     jshaughn at rhq-project.org
>> To:     rhq-commits at lists.sourceforge.net
>>
>>
>>
>> Revision
>>    2749
>> Author
>>    jshaughn
>> Date
>>    2009-01-26 11:45:00 -0600 (Mon, 26 Jan 2009)
>>
>>
>>      Log Message
>>
>> Jopr-55 Filter out standalone Tomcat processes from the JMX plugin 
>> discovery.  To manage standalone Tomcat the Jopr Tomcat plugin should 
>> be installed.
>>
>>
>>      Modified Paths
>>
>>    * 
>> rhq/trunk/modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/JMXDiscoveryComponent.java 
>>
>>      
>> <#rhqtrunkmodulespluginsjmxsrcmainjavaorgrhqpluginsjmxJMXDiscoveryComponentjava> 
>>
>>
>>
>>      Diff
>>
>>
>>        Modified:
>>        
>> rhq/trunk/modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/JMXDiscoveryComponent.java 
>>
>>        (2748 => 2749)
>>
>> --- 
>> rhq/trunk/modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/JMXDiscoveryComponent.java    
>> 2009-01-26 15:31:31 UTC (rev 2748)
>> +++ 
>> rhq/trunk/modules/plugins/jmx/src/main/java/org/rhq/plugins/jmx/JMXDiscoveryComponent.java    
>> 2009-01-26 17:45:00 UTC (rev 2749)
>> @@ -59,11 +59,16 @@
>>
>>     public static final String ADDITIONAL_CLASSPATH_ENTRIES = 
>> "additionalClassPathEntries";
>>
>> +    /* Ignore certain processes that are managed by their own 
>> plugin. For example The Tomcat plugin will
>> +     * handle tomcat processes configured for JMX management.
>> +     */
>> +    private static final String[] PROCESS_FILTERS = { 
>> "catalina.startup.Bootstrap" };
>> +
>>     public Set<DiscoveredResourceDetails> 
>> discoverResources(ResourceDiscoveryContext context) {
>>
>>         Set<DiscoveredResourceDetails> found = new 
>> HashSet<DiscoveredResourceDetails>();
>>
>> -        // This model of discovery is of questionable usefullness 
>> since if you restart your process you'll get a new resource
>> +        // This model of discovery is of questionable usefulness 
>> since if you restart your process you'll get a new resource
>>         // Works only on JDK6 and maybe some 64 bit JDK5 See 
>> JBNADM-3332.
>>         //
>>         //        Map<Integer, LocalVirtualMachine> vms;
>> @@ -114,7 +119,16 @@
>>             for (ProcessInfo process : processes) {
>>                 DiscoveredResourceDetails details = 
>> discoverProcess(context, process);
>>                 if (details != null) {
>> -                    found.add(details);
>> +                    boolean isFiltered = false;
>> +                    for (String filter : PROCESS_FILTERS) {
>> +                        if 
>> (details.getResourceName().contains(filter)) {
>> +                            isFiltered = true;
>> +                            break;
>> +                        }
>> +                    }
>> +                    if (!isFiltered) {
>> +                        found.add(details);
>> +                    }
>>                 }
>>             }
>>         } catch (Exception e) {
>> @@ -128,8 +142,7 @@
>>             String resourceKey = 
>> c.getSimpleValue(CONNECTOR_ADDRESS_CONFIG_PROPERTY, null);
>>             String connectionType = c.getSimpleValue(CONNECTION_TYPE, 
>> null);
>>
>> -            DiscoveredResourceDetails s = new 
>> DiscoveredResourceDetails(context.getResourceType(), resourceKey,
>> -                "Java VM", "?", connectionType + " [" + resourceKey 
>> + "]", null, null);
>> +            DiscoveredResourceDetails s = new 
>> DiscoveredResourceDetails(context.getResourceType(), resourceKey, 
>> "Java VM", "?", connectionType + " [" + resourceKey + "]", null, null);
>>
>>             s.setPluginConfiguration(c);
>>
>> @@ -175,14 +188,11 @@
>>             name += " (" + port + ")";
>>
>>             Configuration config = 
>> context.getDefaultPluginConfiguration();
>> -            config.put(new PropertySimple(CONNECTION_TYPE,
>> -                
>> "org.mc4j.ems.connection.support.metadata.J2SE5ConnectionTypeDescriptor")); 
>>
>> -            config.put(new 
>> PropertySimple(CONNECTOR_ADDRESS_CONFIG_PROPERTY, 
>> "service:jmx:rmi:///jndi/rmi://localhost:"
>> -                + port + "/jmxrmi"));
>> +            config.put(new PropertySimple(CONNECTION_TYPE, 
>> "org.mc4j.ems.connection.support.metadata.J2SE5ConnectionTypeDescriptor")); 
>>
>> +            config.put(new 
>> PropertySimple(CONNECTOR_ADDRESS_CONFIG_PROPERTY, 
>> "service:jmx:rmi:///jndi/rmi://localhost:" + port + "/jmxrmi"));
>>             // config.put(new PropertySimple(INSTALL_URI, 
>> process.getCurrentWorkingDirectory()));
>>
>> -            details = new 
>> DiscoveredResourceDetails(context.getResourceType(), port, name, null,
>> -                "Standalone JVM Process", config, null);
>> +            details = new 
>> DiscoveredResourceDetails(context.getResourceType(), port, name, 
>> null, "Standalone JVM Process", config, null);
>>         }
>>
>>         return details;
>>
> _______________________________________________
> jopr-dev mailing list
> jopr-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jopr-dev




More information about the jopr-dev mailing list