<?xml version="1.0" encoding="UTF-8"?>
<!--

    DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.

    Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.

    The contents of this file are subject to the terms of either the GNU
    General Public License Version 2 only ("GPL") or the Common Development
    and Distribution License("CDDL") (collectively, the "License").  You
    may not use this file except in compliance with the License.  You can
    obtain a copy of the License at
    https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
    or packager/legal/LICENSE.txt.  See the License for the specific
    language governing permissions and limitations under the License.

    When distributing the software, include this License Header Notice in each
    file and include the License file at packager/legal/LICENSE.txt.

    GPL Classpath Exception:
    Oracle designates this particular file as subject to the "Classpath"
    exception as provided by Oracle in the GPL Version 2 section of the License
    file that accompanied this code.

    Modifications:
    If applicable, add the following below the License Header, with the fields
    enclosed by brackets [] replaced by your own identifying information:
    "Portions Copyright [year] [name of copyright owner]"

    Contributor(s):
    If you wish your version of this file to be governed by only the CDDL or
    only the GPL Version 2, indicate your decision by adding "[Contributor]
    elects to include this software in this distribution under the [CDDL or GPL
    Version 2] license."  If you don't indicate a single choice of license, a
    recipient has the option to distribute your version of this file under
    either the CDDL, the GPL Version 2 or to extend the choice of license to
    its licensees as provided above.  However, if you add GPL Version 2 code
    and therefore, elected the GPL Version 2 license, then the option applies
    only if the new code is made subject to such option by the copyright
    holder.

-->

<probe-providers>
  <probe-provider moduleProviderName="glassfish" moduleName="javamail"
      probeProviderName="smtp-transport"
      class="com.sun.mail.smtp.SMTPTransport">
    <probe name="sendMessageStart">
      <method>sendMessageStart</method>
      <probe-param type="java.lang.String" name="subject" />
      <return-param type="void" />
    </probe>
    <probe name="sendMessageEnd">
      <method>sendMessageEnd</method>
      <return-param type="void" />
    </probe>
  </probe-provider>
  <probe-provider moduleProviderName="glassfish" moduleName="javamail"
      probeProviderName="iap-protocol"
      class="com.sun.mail.iap.Protocol">
    <probe name="commandStart">
      <method>commandStart</method>
      <probe-param type="java.lang.String" name="command" />
      <return-param type="void" />
    </probe>
    <probe name="commandEnd">
      <method>commandEnd</method>
      <return-param type="void" />
    </probe>
  </probe-provider>
  <probe-provider moduleProviderName="glassfish" moduleName="javamail"
      probeProviderName="pop3-protocol"
      class="com.sun.mail.pop3.Protocol">
    <probe name="simpleCommandStart">
      <method>simpleCommandStart</method>
      <probe-param type="java.lang.String" name="command" />
      <return-param type="void" />
    </probe>
    <probe name="simpleCommandEnd">
      <method>simpleCommandEnd</method>
      <return-param type="void" />
    </probe>
    <probe name="multilineCommandStart">
      <method>multilineCommandStart</method>
      <probe-param type="java.lang.String" name="command" />
      <return-param type="void" />
    </probe>
    <probe name="multilineCommandEnd">
      <method>multilineCommandEnd</method>
      <return-param type="void" />
    </probe>
  </probe-provider>
</probe-providers>
