Index: admin/monitor/src/main/java/org/glassfish/admin/monitor/StatsProviderManagerDelegateImpl.java =================================================================== --- admin/monitor/src/main/java/org/glassfish/admin/monitor/StatsProviderManagerDelegateImpl.java (revision 43951) +++ admin/monitor/src/main/java/org/glassfish/admin/monitor/StatsProviderManagerDelegateImpl.java (working copy) @@ -649,6 +649,8 @@ return handles; } + // TODO TODO TODO + // Here is where the slash meta-character is handled private TreeNode createSubTree(TreeNode parent, String subTreePath) { StringTokenizer st = new StringTokenizer(subTreePath, "/"); TreeNode parentNode = parent; @@ -657,7 +659,7 @@ enableTreeNode(parentNode); while (st.hasMoreTokens()) { - TreeNode subTreeNode = createSubTreeNode(parentNode, st.nextToken()); + TreeNode subTreeNode = createSubTreeNode(parentNode, st.nextToken()); parentNode = subTreeNode; } return parentNode; @@ -762,16 +764,17 @@ } private TreeNode getPluginPointNode(PluginPoint pp, TreeNode serverNode) { - //TODO - if (pp.getName().equals(serverNode.getName())) - return serverNode; - else { - String subTreePath = pp.getPath(); - // skip the "server", to avoid duplicate server node - if (subTreePath.startsWith(instanceName)) - subTreePath = subTreePath.substring(subTreePath.indexOf("/") + 1, subTreePath.length()); - return createSubTree(serverNode, subTreePath); - } + // Byron Nevins 12/17/2010 + // pp is over in GMBL. It is an enum and there are 2 and only 2 possible values: + // (1) "server", "server" + // (2) "applications", "server/applications" + // It is too risky & difficult to fix GMBL to support instances right now + // so we deal with it, perfectly, below. + + if (pp == PluginPoint.APPLICATIONS) + return createSubTree(serverNode, "applications"); + + return serverNode; } private TreeNode constructServerPP() { Index: admin/monitor/src/main/java/org/glassfish/admin/monitor/StatsProviderRegistry.java =================================================================== --- admin/monitor/src/main/java/org/glassfish/admin/monitor/StatsProviderRegistry.java (revision 43921) +++ admin/monitor/src/main/java/org/glassfish/admin/monitor/StatsProviderRegistry.java (working copy) @@ -87,7 +87,7 @@ StatsProviderRegistryElement spre = new StatsProviderRegistryElement(spInfo); - initialize(spre, spInfo.getConfigElement(), spInfo.getStatsProvider()); + initialize(spre, spInfo.getConfigElement(), spInfo.getStatsProvider()); } private void initialize(StatsProviderRegistryElement spre, String configStr, Object statsProvider) { Index: core/kernel/src/main/java/com/sun/enterprise/v3/admin/MonitoringReporter.java =================================================================== --- core/kernel/src/main/java/com/sun/enterprise/v3/admin/MonitoringReporter.java (revision 43950) +++ core/kernel/src/main/java/com/sun/enterprise/v3/admin/MonitoringReporter.java (working copy) @@ -195,12 +195,6 @@ //"server.something"? String localPattern = prependServerDot(pattern); - - - // Weird -- but this is how it works internally! - if (!isDas()) - localPattern = serverEnv.getInstanceName() + "." + localPattern; - org.glassfish.flashlight.datatree.TreeNode tn = datareg.get(serverEnv.getInstanceName()); if (tn == null) { @@ -251,7 +245,7 @@ while (it.hasNext()) { Object obj = it.next(); - String line = possiblyRemoveServerString(obj.toString()); + String line = obj.toString(); line = line.replace(SLASH, "/") + " = " + map.get(obj); if (plainReporter != null) @@ -264,19 +258,6 @@ setSuccess(); } - private String possiblyRemoveServerString(String in) { - if (isDas()) - return in; - - String iname = serverEnv.getInstanceName(); - String inameAndServer = iname + ".server"; - - if (in.startsWith(inameAndServer)) - return StringUtils.replace(in, inameAndServer, iname); - - return in; - } - private void doList(String localPattern, List ltn) { // list means only print things that have children. Don't print the children. ActionReport.MessagePart topPart = reporter.getTopMessagePart(); @@ -325,21 +306,23 @@ } private String prependServerDot(String s) { + // note -- we are now running in either DAS or an instance and we are going to gather up + // data ONLY for this server. I.e. the DAS dispatching has already happened. + // we really need this pattern to start with the instance-name (DAS's instance-name is "server" + // Issue#15054 // this is pretty intricate but this is what we want to happen for these samples: - //asadmin get -m network.thread-pool.totalexecutedtasks-count ==> ERROR no target + // asadmin get -m network.thread-pool.totalexecutedtasks-count ==> ERROR no target // asadmin get -m server.network.thread-pool.totalexecutedtasks-count ==> OK, return DAS's data // asadmin get -m *.network.thread-pool.totalexecutedtasks-count ==> OK return DAS and instances' data // asadmin get -m i1.network.thread-pool.totalexecutedtasks-count ==> OK return data for i1 - // asadmin get -m i1.server.network.thread-pool.totalexecutedtasks-count ==> no data for "server...." - // So -- if they give "i1.server.blah" we add yet another '.server' to force it to fail! + final String namedot = serverEnv.getInstanceName() + "."; - - if (s.startsWith(SERVERDOT) && isDas()) + if(s.startsWith(namedot)) return s; - return SERVERDOT + s; + return namedot + s; } private boolean validate() { @@ -620,6 +603,5 @@ Habitat habitat; private OutputType outputType; private final static String DOTTED_NAME = ".dotted-name"; - private static final String SERVERDOT = "server."; private final StringBuilder cliOutput = new StringBuilder(); }