<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.jem.proxy">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.jem.proxy" id="contributors" name="Proxy Configuration Contributors"/>
      </appInfo>
      <documentation>
         This extension point is used to supply configuration contributors for proxy support. You can supply a contributor for a specific classpath container or for a plugin.
&lt;p&gt;
The way configuration contributors work is that when a proxy vm is started, it first runs through all of the explicit contributors that were given to it. It then goes through the classpath of the project and finds the containers. If the container implements IConfigurationContributor, it will be called as a contributor. Then all of the extensions of this extension point will be searched for those have the same container id, and if so they will be called as a contributor.
&lt;p&gt;
The extensions will be called in plugin order. In other words if plugin A depends on plugin B, the contribution in plugin A will not be called before the contribution in plugin B.
&lt;p&gt;
If a plugin is in the classpath of the project (in other words the project is PDE plugin development project and requires a plugin) then the contributor with the given plugin id will be called.
&lt;p&gt;
Both container and plugin can be specified, but at least one of them must be specified. If both are specified, then this entry will be used if either the container or the plugin is found in the classpath.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="contributor" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  a fully qualified identifier of the target extension point
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  an optional identifier of the extension instance
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  an optional name of the extension instance
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="contributor">
      <annotation>
         <appInfo>
            <meta.element labelAttribute="class"/>
         </appInfo>
         <documentation>
            A contributor. Either the container or the plugin attributes must be set.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="container" type="string">
            <annotation>
               <documentation>
                  contributor is for a container. The value is the container id (e.g. &quot;JRE_CONTAINER&quot;).
               </documentation>
            </annotation>
         </attribute>
         <attribute name="plugin" type="string">
            <annotation>
               <documentation>
                  contributor is for a plugin. The value is the plugin id (e.g. &quot;org.eclipse.swt&quot;).
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the class that implements this contributor. The class must implement IConfigurationContributor.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.jem.internal.proxy.core.IConfigurationContributor"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         1.0.0
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following is an example of a contributor: 

&lt;p&gt;
&lt;pre&gt;
 &lt;extension point=&quot;org.eclipse.jem.proxy.contributors&quot;&gt;
  &lt;contributor
   class=&quot;com.example.ContributorImplementation&quot;
   container=&quot;MY_CONTAINER&quot;&gt;
  &lt;/contributor&gt;
 &lt;/extension&gt;
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         The &lt;samp&gt;class&lt;/samp&gt; attribute must be a fully-qualified class that implements the &lt;samp&gt;org.eclipse.jem.internal.proxy.core.IConfigurationContributor&lt;/samp&gt; interface.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         There is &lt;samp&gt;org.eclipse.jem.internal.proxy.core.ConfigurationContributorAdapter&lt;/samp&gt; available to subclass to provide specific overrides. The default for the adapter is that it doesn&apos;t do anything.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2004 IBM Corporation and others.&lt;br&gt;
All rights reserved. This program and the accompanying materials are made 
available under the terms of the Eclipse Public License v1.0 which accompanies 
this distribution, and is available at 
&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
      </documentation>
   </annotation>

</schema>
