<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
         id="org.eclipse.orion.application"
         point="org.eclipse.core.runtime.applications">
      <application
            cardinality="1"
            thread="any"
            visible="true">
         <run
               class="org.eclipse.orion.server.configurator.WebApplication">
         </run>
      </application>
   </extension>
    <extension id="org.eclipse.orion.product" point="org.eclipse.core.runtime.products"> 
      <product name="%productName" application="org.eclipse.orion.application" description="%productBlurb"> 
          <property name="appName" value="Orion"/> 
          <property name="preferenceCustomization" value="plugin_customization.ini"/>
      </product> 
    </extension> 
   <extension
         point="org.eclipse.equinox.http.registry.servlets">
      <servlet
            alias="/file"
            class="org.eclipse.orion.internal.server.servlets.file.NewFileServlet">
      </servlet>
      <servlet
            alias="/workspace"
            class="org.eclipse.orion.internal.server.servlets.workspace.WorkspaceServlet">
      </servlet>
      <servlet
            alias="/prefs"
            class="org.eclipse.orion.server.servlets.PreferencesServlet">
      </servlet>
      <servlet
            alias="/filesearch"
            class="org.eclipse.orion.internal.server.search.SearchServlet"
            httpcontextId="org.eclipse.orion.server.configurator.httpcontext.search">
      </servlet>
      <servlet
            alias="/npm"
            class="org.eclipse.orion.server.npm.NpmServlet">
      </servlet>
      <servlet
            alias="/users"
            class="org.eclipse.orion.server.useradmin.servlets.UserServlet">
      </servlet>
      <servlet
            alias="/xfer"
            class="org.eclipse.orion.internal.server.servlets.xfer.TransferServlet">
      </servlet>
      <servlet
            alias="/gitapi"
            class="org.eclipse.orion.server.git.servlets.GitServlet">
      </servlet>
      <servlet
            alias="/site"
            class="org.eclipse.orion.internal.server.servlets.site.SiteConfigurationServlet">
      </servlet>
      <servlet
            alias="/hosted"
            class="org.eclipse.orion.internal.server.hosting.HostedSiteServlet"
            httpcontextId="org.eclipse.orion.server.configurator.httpcontext.site">
      </servlet>
      <servlet
            alias="/task"
            class="org.eclipse.orion.internal.server.servlets.task.TaskServlet">
      </servlet>
      <servlet
            alias="/help"
            class="org.eclipse.equinox.http.servlet.HttpServiceServlet"
            httpcontextId="org.eclipse.help.webapp.help"
            load-on-startup="true">
         <init-param
               name="other.info"
               value="org.eclipse.help">
         </init-param>
         <init-param
               name="server.description"
               value="Orion Help">
         </init-param>
      </servlet>
      <serviceSelector
            filter="(other.info=org.eclipse.orion)">
      </serviceSelector>
      <servlet
            alias="/useremailconfirmation"
            class="org.eclipse.orion.server.useradmin.servlets.EmailConfirmationServlet">
      </servlet>
   </extension>
   <extension
         point="org.eclipse.equinox.http.registry.filters">
      <filter
            alias="/"
            class="org.eclipse.orion.server.configurator.servlet.ExcludedExtensionGzipFilter">
         <init-param
               name="excludedExtensions"
               value="jsp, jspx, gif, jpg, png">
         </init-param>
      </filter>
      <filter
            alias="/"
            class="org.eclipse.orion.server.configurator.servlet.CacheFilter">
         <init-param
               name="directives"
               value="public, max-age=86400, must-revalidate">
         </init-param>
         <init-param
               name="includeMatches"
               value=".*[.](gif|jpg|png|bmp|tif|ico)$">
         </init-param>
         <init-param
               name="excludeMatches"
               value="^/(file|hosted|gitapi)/.*">
         </init-param>
      </filter>
      <filter
            alias="/requirejs"
            class="org.eclipse.orion.server.configurator.servlet.CacheFilter">
         <init-param
               name="directives"
               value="public, max-age=86400, must-revalidate">
         </init-param>
      </filter>      
 
      <filter
            alias="/"
            class="org.eclipse.orion.server.configurator.servlet.CacheFilter">
         <init-param
               name="directives"
               value="max-age=900, must-revalidate">
         </init-param>
         <init-param
               name="includeMatches"
               value=".*[.](js|html|css|pref)$">
         </init-param>
         <init-param
               name="excludeMatches"
               value="^/(file|hosted|gitapi|requirejs)/.*">
         </init-param>
      </filter>
      <filter
            alias="/"
            class="org.eclipse.orion.server.configurator.servlet.WelcomeFileFilter">
         <init-param
               name="includes"
               value="/">
         </init-param>
      </filter>
      <filter
            alias="/"
            class="org.eclipse.orion.internal.server.hosting.HostedSiteRequestFilter">
      </filter>
      <filter
            alias="/prefs"
            class="org.eclipse.orion.server.configurator.servlet.LoggedInUserFilter">
      </filter>
      <filter
            alias="/filesearch"
            class="org.eclipse.orion.server.configurator.servlet.LoggedInUserFilter">
      </filter>
      <filter
            alias="/npm"
            class="org.eclipse.orion.server.configurator.servlet.LoggedInUserFilter">
      </filter>
      <filter
            alias="/gitapi"
            class="org.eclipse.orion.server.configurator.servlet.LoggedInUserFilter">
      </filter>
      <filter
            alias="/users"
            class="org.eclipse.orion.server.useradmin.servlets.UserAuthFilter">
      </filter>
      <filter
            alias="/workspace"
            class="org.eclipse.orion.server.configurator.servlet.AuthorizedUserFilter">
      </filter>
      <filter
            alias="/site"
            class="org.eclipse.orion.server.configurator.servlet.AuthorizedUserFilter">
      </filter>
      <filter
            alias="/file"
            class="org.eclipse.orion.server.configurator.servlet.AuthorizedUserFilter">
      </filter>
      <filter
            alias="/xfer"
            class="org.eclipse.orion.server.configurator.servlet.AuthorizedUserFilter">
      </filter>
      <filter
            alias="/task"
            class="org.eclipse.orion.server.configurator.servlet.AuthorizedUserFilter">
      </filter>
      <serviceSelector
            filter="(other.info=org.eclipse.orion)">
      </serviceSelector>
   </extension>
   <extension
         point="org.eclipse.equinox.http.registry.httpcontexts">
      <httpcontext
            id="org.eclipse.orion.server.configurator.httpcontext.webide">
         <resource-mapping
               bundle="org.eclipse.orion.client.core"
               path="/web">
         </resource-mapping>
         <resource-mapping
               bundle="org.eclipse.orion.client.ui"
               path="/web">
         </resource-mapping>
         <mime-mapping
               extension="webapp"
               mime-type="application/x-web-app-manifest+json">
         </mime-mapping>
      </httpcontext>
      <httpcontext
            id="org.eclipse.orion.server.configurator.httpcontext.git">
         <resource-mapping
               bundle="org.eclipse.orion.client.git"
               path="/web/git">
         </resource-mapping>
      </httpcontext>      
      <httpcontext
            id="org.eclipse.orion.server.configurator.httpcontext.git.components">
         <resource-mapping
               bundle="org.eclipse.orion.client.git"
               path="/web/orion/git">
         </resource-mapping>
      </httpcontext>      
      <httpcontext
            id="org.eclipse.orion.server.configurator.httpcontext.editor.components">
         <resource-mapping
               bundle="org.eclipse.orion.client.editor"
               path="/web/orion/editor">
         </resource-mapping>
      </httpcontext>
      <httpcontext
            id="org.eclipse.orion.server.configurator.httpcontext.editor.examples">
         <resource-mapping
               bundle="org.eclipse.orion.client.editor"
               path="/web/examples/editor">
         </resource-mapping>
      </httpcontext>
      <httpcontext
            id="org.eclipse.orion.server.configurator.httpcontext.textview.components">
         <resource-mapping
               bundle="org.eclipse.orion.client.editor"
               path="/web/orion/textview">
         </resource-mapping>
      </httpcontext>
      <httpcontext
            id="org.eclipse.orion.server.configurator.httpcontext.editor.tests">
         <resource-mapping
               bundle="org.eclipse.orion.client.editor"
               path="/web/js-tests/editor">
         </resource-mapping>
      </httpcontext>
      <httpcontext
            id="org.eclipse.orion.server.configurator.httpcontext.textview.examples">
         <resource-mapping
               bundle="org.eclipse.orion.client.editor"
               path="/web/examples/textview">
         </resource-mapping>
      </httpcontext>
      <httpcontext
            id="org.eclipse.orion.server.configurator.httpcontext.textview.tests">
         <resource-mapping
               bundle="org.eclipse.orion.client.editor"
               path="/web/js-tests/textview">
         </resource-mapping>
      </httpcontext>
      <httpcontext
            id="org.eclipse.orion.server.configurator.httpcontext.search">
         <resource-mapping
               bundle="org.eclipse.orion.server.search"
               path="/">
         </resource-mapping>
      </httpcontext>
      <httpcontext
            id="org.eclipse.orion.server.configurator.httpcontext.userprofile">
         <resource-mapping
               bundle="org.eclipse.orion.client.users"
               path="/web/profile">
         </resource-mapping>
      </httpcontext>
      <httpcontext
            id="org.eclipse.orion.server.configurator.httpcontext.userprofile.components">
         <resource-mapping
               bundle="org.eclipse.orion.client.users"
               path="/web/orion/profile">
         </resource-mapping>
      </httpcontext>
      <httpcontext
            id="org.eclipse.orion.server.configurator.httpcontext.site">
         <mime-mapping
               extension="webapp"
               mime-type="application/x-web-app-manifest+json">
         </mime-mapping>
      </httpcontext>      
   </extension>
   <extension
         point="org.eclipse.equinox.http.registry.resources">
      <resource
            alias="/"
            httpcontextId="org.eclipse.orion.server.configurator.httpcontext.webide">
      </resource>
      <resource
            alias="/orion/editor"
            httpcontextId="org.eclipse.orion.server.configurator.httpcontext.editor.components">
      </resource>
      <resource
            alias="/examples/editor"
            httpcontextId="org.eclipse.orion.server.configurator.httpcontext.editor.examples">
      </resource>
      <resource
            alias="/js-tests/editor"
            httpcontextId="org.eclipse.orion.server.configurator.httpcontext.editor.tests">
      </resource>
      <resource
            alias="/orion/textview"
            httpcontextId="org.eclipse.orion.server.configurator.httpcontext.textview.components">
      </resource>
      <resource
            alias="/examples/textview"
            httpcontextId="org.eclipse.orion.server.configurator.httpcontext.textview.examples">
      </resource>
      <resource
            alias="/js-tests/textview"
            httpcontextId="org.eclipse.orion.server.configurator.httpcontext.textview.tests">
      </resource>
      <resource
            alias="/profile"
            httpcontextId="org.eclipse.orion.server.configurator.httpcontext.userprofile">
      </resource>
      <resource
            alias="/orion/profile"
            httpcontextId="org.eclipse.orion.server.configurator.httpcontext.userprofile.components">
      </resource>
      <resource
            alias="/git"
            httpcontextId="org.eclipse.orion.server.configurator.httpcontext.git">
      </resource>
      <resource
            alias="/orion/git"
            httpcontextId="org.eclipse.orion.server.configurator.httpcontext.git.components">
      </resource>
      <serviceSelector
            filter="(other.info=org.eclipse.orion)">
      </serviceSelector>
   </extension>
   <extension
         point="org.eclipse.equinox.preferences.preferences">
      <initializer
            class="org.eclipse.orion.server.configurator.configuration.OrionPreferenceInitializer">
      </initializer>
   </extension>   
</plugin>
