jdk/src/share/classes/sun/tracing/MultiplexProviderFactory.java
author kamg
Thu, 08 May 2008 09:16:03 -0400
changeset 491 a394684ccfe6
parent 406 bde3a21bcab0
child 4323 da93d0c0f2f2
permissions -rw-r--r--
6697875: Copyright headers need to be upgraded with GPL derivative Summary: Update copyright headers to GPL Reviewed-by: xdono
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
406
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
     1
/*
491
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
     2
 * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
     4
 *
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
     7
 * published by the Free Software Foundation.  Sun designates this
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
     9
 * by Sun in the LICENSE file that accompanied this code.
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
    10
 *
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
    15
 * accompanied this code).
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
    16
 *
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
    20
 *
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
    21
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
    22
 * CA 95054 USA or visit www.sun.com if you need additional information or
a394684ccfe6 6697875: Copyright headers need to be upgraded with GPL derivative
kamg
parents: 406
diff changeset
    23
 * have any questions.
406
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    24
 */
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    25
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    26
package sun.tracing;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    27
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    28
import java.lang.reflect.Method;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    29
import java.lang.reflect.InvocationTargetException;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    30
import java.util.HashMap;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    31
import java.util.HashSet;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    32
import java.util.Set;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    33
import java.util.logging.Logger;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    34
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    35
import com.sun.tracing.ProviderFactory;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    36
import com.sun.tracing.Provider;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    37
import com.sun.tracing.Probe;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    38
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    39
/**
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    40
 * Factory class to create tracing Providers.
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    41
 *
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    42
 * This factory creates a "multiplex provider", which is a provider that
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    43
 * encapsulates a list of providers and whose probes trigger a corresponding
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    44
 * trigger in each of the encapsulated providers' probes.
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    45
 *
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    46
 * This is used when there are multiple tracing frameworks activated at once.
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    47
 * A user-defined provider gets implementation for each of the activated
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    48
 * frameworks and this multiplex framework is what is ultimately passed
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    49
 * back to the user.  All probe triggers are multiplexed to each
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    50
 * active framework.
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    51
 *
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    52
 * @since 1.7
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    53
 */
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    54
public class MultiplexProviderFactory extends ProviderFactory {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    55
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    56
    private Set<ProviderFactory> factories;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    57
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    58
    public MultiplexProviderFactory(Set<ProviderFactory> factories) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    59
        this.factories = factories;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    60
    }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    61
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    62
    public <T extends Provider> T createProvider(Class<T> cls) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    63
        HashSet<Provider> providers = new HashSet<Provider>();
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    64
        for (ProviderFactory factory : factories) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    65
            providers.add(factory.createProvider(cls));
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    66
        }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    67
        MultiplexProvider provider = new MultiplexProvider(cls, providers);
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    68
        try {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    69
            provider.init();
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    70
        } catch (Exception e) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    71
            // Probably a permission problem (can't get declared members)
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    72
            Logger.getAnonymousLogger().warning(
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    73
                "Could not initialize tracing provider: " + e.getMessage());
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    74
        }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    75
        return provider.newProxyInstance();
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    76
    }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    77
}
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    78
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    79
class MultiplexProvider extends ProviderSkeleton {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    80
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    81
    private Set<Provider> providers;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    82
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    83
    protected ProbeSkeleton createProbe(Method m) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    84
        return new MultiplexProbe(m, providers);
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    85
    }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    86
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    87
    MultiplexProvider(Class<? extends Provider> type, Set<Provider> providers) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    88
        super(type);
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    89
        this.providers = providers;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    90
    }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    91
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    92
    public void dispose() {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    93
        for (Provider p : providers) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    94
            p.dispose();
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    95
        }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    96
        super.dispose();
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    97
    }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    98
}
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
    99
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   100
class MultiplexProbe extends ProbeSkeleton {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   101
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   102
    private Set<Probe> probes;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   103
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   104
    MultiplexProbe(Method m, Set<Provider> providers) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   105
        super(m.getParameterTypes());
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   106
        probes = new HashSet<Probe>();
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   107
        for (Provider p : providers) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   108
            Probe probe = p.getProbe(m);
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   109
            if (probe != null) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   110
                probes.add(probe);
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   111
            }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   112
        }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   113
    }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   114
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   115
    public boolean isEnabled() {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   116
        for (Probe p : probes) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   117
            if (p.isEnabled()) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   118
                return true;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   119
            }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   120
        }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   121
        return false;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   122
    }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   123
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   124
    public void uncheckedTrigger(Object[] args) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   125
        for (Probe p : probes) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   126
            try {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   127
                // try the fast path
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   128
                ProbeSkeleton ps = (ProbeSkeleton)p;
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   129
                ps.uncheckedTrigger(args);
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   130
            } catch (ClassCastException e) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   131
                // Probe.trigger takes an "Object ..." varargs parameter,
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   132
                // so we can't call it directly.
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   133
                try {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   134
                    Method m = Probe.class.getMethod(
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   135
                        "trigger", Class.forName("[java.lang.Object"));
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   136
                    m.invoke(p, args);
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   137
                } catch (Exception e1) {
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   138
                    assert false; // This shouldn't happen
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   139
                }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   140
            }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   141
        }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   142
    }
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   143
}
bde3a21bcab0 6690122: Provide a mechanism for specifying Java-level USDT-like dtrace probes
kamg
parents:
diff changeset
   144