<?xml version="1.0" encoding="utf-8"?>
<html>
    <head>
        <title>web tools platform adopters</title>
    </head>
    <body>
        <h1>WTP Adopters</h1>
        <h2>Introduction</h2>
        <p>
            WTP is a
            <em>platform</em>
            and so adoption by others is a major goal of the project.
            You are a WTP
            <em>adopter</em>
            if you are a commercial vendor or an Open Source project
            that is using or is planning to use WTP in one or more of
            your products. This page lists information for WTP adopters.
        </p>
        <h2>Hot Bugs</h2>
        <p>
            The WTP project gives high priority to bugs that promote
            adoption. If you are an adopter and need a fix for an
            upcoming release, please follow the
            <a
                href="https://wiki.eclipse.org/WTP/Hotbug_Policy">hot bug process</a>
            to request that your bug be placed on the Hot List. We can't
            guarantee that we'll fix every Hot Bug, but we will give
            them high priorties.
        </p>
        <h2> WTP API Policy</h2>
        <p>
            The
            <a
                href="https://wiki.eclipse.org/WTP_API_Policy">WTP API Policy</a>
            can be found on the
            <a
                href="https://wiki.eclipse.org/Category:Eclipse_Web_Tools_Platform_Project">wiki</a>.</p>
        <h2>Tools to generate API and non-API usage reports</h2>
        <p>
            The PDE, in the Eclipse Platform, provides tools to scan
            your code to see what API, and non-API, your code uses from
            WTP (or other Eclipse projects). See
            <a
                href="http://help.eclipse.org/galileo/index.jsp?nav=/4_2_3">Eclipse Help</a>
            and various
            <a
                href="https://wiki.eclipse.org/PDE/API_Tools/Resources">Eclispe wiki pages</a>
            and
            <a
                href="http://eclipsesource.com/blogs/2009/02/17/pde-api-tools-and-usage-scans/">blog entries</a>
            for details and ways to get started.
        </p>
        <p>
            As an adopter, you can make use of these scan reports in
            several ways, mostly concerned with non-API use:
            <ul>
                <li>Check what non-API your code uses, and see if there
                    is an API way to accomplish the same thing.</li>
                <li>If you find you do need to use a non-API for
                    something, and there is no API alternative, you are
                    welcome to open an enhancement requests for WTP to
                    provide the function as API. Be sure to describe
                    your current non-API use, but also be clear on your
                    whole use-case, and what you are need to accomplish.
                    The solution is seldom simply to declare non-API as
                    API.</li>
                <li>Even if we can not provide the API you need (due to
                    not having enough time and resources to do
                    everything we need to) it is helpful to have non-API
                    usage reports simply so we can be sensitive you
                    needs, and when possible, avoid changing these
                    non-APIs, unless there is a good reason to.</li>
            </ul>
        </p>
    </body>
</html>