<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.oomph.ui" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.oomph.ui" id="deferredEarlyStart" name="Deferred Early Start"/>
      </appInfo>
      <documentation>
         This extension point allows clients to contribute early start registrations that are deferred, by default, to run in a low priority background job.
&lt;p&gt;
The following system properties can be used to control the behavior, with defaults shown in bold:
&lt;ul&gt;
&lt;li&gt;
org.eclipse.oomph.ui.deferredEarlyStart
&lt;ul&gt;
&lt;li&gt;
false
&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;true&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
org.eclipse.oomph.ui.deferredEarlyStart.priority
&lt;ul&gt;
&lt;li&gt;
INTERACTIVE
&lt;/li&gt;
&lt;li&gt;
SHORT
&lt;/li&gt;
&lt;li&gt;
LONG
&lt;/li&gt;
&lt;li&gt;
BUILD
&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;DECORATE&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
org.eclipse.oomph.ui.deferredEarlyStart.schedule
&lt;ul&gt;
&lt;li&gt;
&lt;it&gt;A non-negative long value.&lt;/it&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;5000&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;



      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appInfo>
            <meta.element />
         </appInfo>
      </annotation>
      <complexType>
         <sequence>
            <element ref="startup" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="startup">
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  The class implementing IStartup.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn=":org.eclipse.ui.IStartup"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

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

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following example of a &lt;code&gt;deferredEarlyStart&lt;/code&gt; extension contributes one deferred early start class.

&lt;pre&gt;
   &lt;extension point=&quot;org.eclipse.oomph.ui.deferredEarlyStart&quot;&gt;
      &lt;startup class=&quot;com.foo.bar.example.ExampleEarlyStart&quot;/&gt;
   &lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiinfo"/>
      </appInfo>
      <documentation>
         A contributions must provide a class implementing org.eclipse.ui.IStartup.
      </documentation>
   </annotation>


   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2018 Eclipse contributors 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 v2.0
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/epl-v20.html
      </documentation>
   </annotation>

</schema>
