# Heap Dump Provider

###### Identifier:

org.eclipse.mat.api.heapDumpProvider

###### Since:

1.0

###### Description:

The Acquire Heap Dump menu option allows the user to request a heap dump on a local running Java process. This extension point allows the retrieval of a list of running VMs of a particular type, and the triggering of a dump on one of those processes.

###### Configuration Markup:

<!ELEMENT extension (provider)*>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED

>

<!ELEMENT provider EMPTY>

<!ATTLIST provider

impl CDATA #REQUIRED

>

- impl - implements `org.eclipse.mat.snapshot.acquire.IHeapDumpProvider`.

###### Examples:

The following is an example of a heap dump provider declaration;

       <extension
             name="IBM Virtual Machines"
             point="org.eclipse.mat.api.heapDumpProvider">
          <provider
                impl="org.eclipse.mat.ibmvm.acquire.DumpFactory">
          </provider>
       </extension>

The dump provider must implement `org.eclipse.mat.snapshot.acquire.IHeapDumpProvider`. Argument annotations can be used to specify arguments to be filled in by the user.

    @Name("My Dump type")
    public class MyDumpProvider implements org.eclipse.mat.snapshot.acquire.IHeapDumpProvider
    {
     @Argument
     File dumpingProgram;

Argument annotations can also be used on VmInfo types.

    public class MyVmInfo extends VmInfo
    {
        public enum DumpType
        {
            DUMP1("dump1"), //$NON-NLS-1$
            Dump2("dump2"); //$NON-NLS-1$
            String type;
            private DumpType(String s) {
                type = s;
            }
        }
        @Argument
        public DumpType type = DumpType.DUMP1;

###### API Information:

The value of the impl attribute must represent an implementor of `org.eclipse.mat.snapshot.acquire.IHeapDumpProvider`.

###### Supplied Implementation:

The standard supplied heap dump providers are for Oracle/Sun JVMs and for IBM Virtual Machines for Java. They are `org.eclipse.mat.hprof.acquire.JMapHeapDumpProvider` and `org.eclipse.mat.ibmvm.acquire.DumpFactory` (actually an IExecutableExtensionFactory).

Copyright (c) 2010,2011 SAP AG and IBM Corporation
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/