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

<plugin>
  <extension point="org.eclipse.jdt.core.classpathContainerInitializer">
    <classpathContainerInitializer
      id="org.eclipse.jst.server.core.container"
      class="org.eclipse.jst.server.core.internal.RuntimeClasspathContainerInitializer"/>
  </extension>

  <extension point="org.eclipse.wst.server.core.moduleTypes">
    <moduleType
       id="j2ee.web"
       name="%moduleTypeJ2EEWebName"/>
    <moduleType
       id="j2ee.ejb"
       name="%moduleTypeJ2EEEJBName"/>
    <moduleType
       id="j2ee.appClient"
       name="%moduleTypeJ2EEClientName"/>
    <moduleType
       id="j2ee.connector"
       name="%moduleTypeJ2EERARName"/>
    <moduleType
       id="j2ee.ear"
       name="%moduleTypeJ2EEEARName"/>
  </extension>

  <extension point="org.eclipse.wst.server.core.runtimeTypes">
    <runtimeType
       id="org.eclipse.jst.server.core.runtimeType"
       name="%runtimeTypeName"
       description="%runtimeTypeDescription"
       class="org.eclipse.jst.server.core.internal.GenericRuntime">
       <moduleType
         types="j2ee.*"
         versions="*"/>
       <moduleType
         types="utility"
         versions="*"/>
    </runtimeType>
  </extension>

  <extension point="org.eclipse.wst.server.core.runtimeTargetHandlers">
    <runtimeTargetHandler
      id="org.eclipse.jst.server.core.runtimeTarget"
      runtimeTypeIds="org.eclipse.jst.server.core.runtimeType"
      class="org.eclipse.jst.server.core.internal.GenericRuntimeTargetHandler"/>
  </extension>

  <extension point="org.eclipse.core.expressions.propertyTesters">
    <propertyTester
      namespace="org.eclipse.jst.cactus.expressions"
      type="org.eclipse.core.runtime.IAdaptable"
      class="org.eclipse.jst.server.core.internal.cactus.ServletTestCasePropertyTester"
      properties="isServletTestCase"
      id="org.eclipse.jst.server.cactus.expression"/>
  </extension>

  <extension point="org.eclipse.wst.server.core.moduleArtifactAdapters">
    <moduleArtifactAdapter
      id="org.eclipse.jst.server.cactus.moduleArtifactAdapter"
      class="org.eclipse.jst.server.core.internal.cactus.CactusModuleArtifactAdapterDelegate"
      priority="10">
      <enablement>
         <or>
            <instanceof value="org.eclipse.jdt.core.IMethod"/>
            <instanceof value="org.eclipse.jdt.core.ICompilationUnit"/>
            <instanceof value="org.eclipse.jdt.core.IType"/>
         </or>
      </enablement>
    </moduleArtifactAdapter>
  </extension>

  <extension point="org.eclipse.wst.server.core.launchableAdapters">
    <launchableAdapter
       id="org.eclipse.jst.server.cactus.launchableAdapter"
       class="org.eclipse.jst.server.core.internal.cactus.CactusLaunchableAdapterDelegate"/>
  </extension>

  <extension point="org.eclipse.wst.server.core.clients">
    <client
      id="org.eclipse.jst.server.jndi"
      name="%launchableJndi"
      description="%launchableJndiDescription"
      priority="-100"
      launchable="org.eclipse.jst.server.core.JndiLaunchable"
      class="org.eclipse.jst.server.core.internal.J2EELaunchableClient"/>
  </extension>

</plugin>