<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!--
     Copyright (c) 2005, 2023 IBM Corporation and others.

     This program and the accompanying materials
     are made available under the terms of the Eclipse Public License 2.0
     which accompanies this distribution, and is available at
     https://www.eclipse.org/legal/epl-2.0/
     
 	 SPDX-License-Identifier: EPL-2.0
 
     Contributors:
         IBM Corporation - initial API and implementation
 -->

<plugin>

    
<!-- Extension point definitions -->
   <extension-point id="classpathProviders" name="%classpathProviders" schema="schema/classpathProviders.exsd"/>
   <extension-point id="runtimeClasspathEntryResolvers" name="%runtimeClasspathEntryResolvers" schema="schema/runtimeClasspathEntryResolvers.exsd"/>
   <extension-point id="runtimeClasspathEntries" name="%runtimeClasspathEntries" schema="schema/runtimeClasspathEntries.exsd"/>
   <extension-point id="vmConnectors" name="%vmConnectors" schema="schema/vmConnectors.exsd"/>
   <extension-point id="vmInstallTypes" name="%vmInstallTypes" schema="schema/vmInstallTypes.exsd"/>
   <extension-point id="executionEnvironments" name="%executionEnvironments" schema="schema/executionEnvironments.exsd"/>
   <extension-point id="vmInstalls" name="%vmInstalls" schema="schema/vmInstalls.exsd"/>
   <extension-point id="libraryLocationResolvers" name="%libraryLocationResolvers" schema="schema/libraryLocationResolvers.exsd"/>
   <extension-point id="workspaceProjectDescribers" name="%projectSourceDescribers" schema="schema/workspaceProjectDescribers.exsd"/>
   <extension-point id="sourceContainerResolvers" name="%sourceContainerResolvers" schema="schema/sourceContainerResolvers.exsd"/>

<!-- Extensions -->
   <extension
         point="org.eclipse.jdt.launching.vmInstallTypes">
      <vmInstallType
            class="org.eclipse.jdt.internal.launching.StandardVMType"
            id="org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType">
      </vmInstallType>
      <vmInstallType
            class="org.eclipse.jdt.internal.launching.Standard11xVMType"
            id="org.eclipse.jdt.launching.Standard11xVMType">
      </vmInstallType>
      <vmInstallType
            class="org.eclipse.jdt.internal.launching.EEVMType"
            id="org.eclipse.jdt.launching.EEVMType">
      </vmInstallType>
   </extension>
   <extension
         point="org.eclipse.debug.core.launchConfigurationTypes">
      <launchConfigurationType
            allowPrototypes="true"
            allowCommandLine="true"
            allowOutputMerging="true"
            delegate="org.eclipse.jdt.launching.sourcelookup.advanced.AdvancedJavaLaunchDelegate"
            delegateDescription="%localJavaApplicationDelegate.description"
            delegateName="%eclipseJDTLauncher.name"
            id="org.eclipse.jdt.launching.localJavaApplication"
            migrationDelegate="org.eclipse.jdt.internal.launching.JavaMigrationDelegate"
            modes="run, debug"
            name="%localJavaApplication"
            sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"
            sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer">
      </launchConfigurationType>
      <launchConfigurationType
            delegate="org.eclipse.jdt.internal.launching.sourcelookup.advanced.AdvancedRemoteJavaLaunchDelegate"
            delegateDescription="%remoteJavaApplicationDelegate.description"
            delegateName="%eclipseJDTLauncher.name"
            id="org.eclipse.jdt.launching.remoteJavaApplication"
            migrationDelegate="org.eclipse.jdt.internal.launching.JavaMigrationDelegate"
            modes="debug"
            name="%remoteJavaApplication"
            sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"
            sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer">
      </launchConfigurationType>
      <launchConfigurationType
            delegate="org.eclipse.jdt.internal.launching.JavaAppletLaunchConfigurationDelegate"
            delegateDescription="%javaAppletDelegate.description"
            delegateName="%eclipseJDTLauncher.name"
            id="org.eclipse.jdt.launching.javaApplet"
            migrationDelegate="org.eclipse.jdt.internal.launching.JavaMigrationDelegate"
            modes="run, debug"
            name="%appletLabel"
            sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"
            sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer">
      </launchConfigurationType>
   </extension>
   <extension
         point="org.eclipse.debug.core.sourceLocators">
      <sourceLocator
            name="%javaSourceLocatorName"
            class="org.eclipse.jdt.launching.sourcelookup.JavaSourceLocator"
            id="org.eclipse.jdt.launching.javaSourceLocator">
      </sourceLocator>
   </extension>
   <extension
         point="org.eclipse.jdt.launching.vmConnectors">
      <vmConnector
            class="org.eclipse.jdt.internal.launching.SocketAttachConnector"
            id="org.eclipse.jdt.launching.socketAttachConnector">
      </vmConnector>
      <vmConnector
            class="org.eclipse.jdt.internal.launching.SocketListenConnector"
            id="org.eclipse.jdt.launching.socketListenConnector">
      </vmConnector>
   </extension>
   <extension
         point="org.eclipse.jdt.core.classpathVariableInitializer">
      <classpathVariableInitializer
            variable="JRE_LIB"
            class="org.eclipse.jdt.internal.launching.JavaClasspathVariablesInitializer"
            deprecated="%classpathVariableInitializer.deprecated"
            readOnly="true">
      </classpathVariableInitializer>
      <classpathVariableInitializer
            variable="JRE_SRC"
            class="org.eclipse.jdt.internal.launching.JavaClasspathVariablesInitializer"
            deprecated="%classpathVariableInitializer.deprecated"
            readOnly="true">
      </classpathVariableInitializer>
      <classpathVariableInitializer
            variable="JRE_SRCROOT"
            class="org.eclipse.jdt.internal.launching.JavaClasspathVariablesInitializer"
            deprecated="%classpathVariableInitializer.deprecated"
            readOnly="true">
      </classpathVariableInitializer>
   </extension>
   <extension
         point="org.eclipse.jdt.core.classpathContainerInitializer">
      <classpathContainerInitializer
            class="org.eclipse.jdt.internal.launching.JREContainerInitializer"
            id="org.eclipse.jdt.launching.JRE_CONTAINER">
      </classpathContainerInitializer>
   </extension>
   <extension
         point="org.eclipse.jdt.launching.runtimeClasspathEntryResolvers">
      <runtimeClasspathEntryResolver
            container="org.eclipse.jdt.launching.JRE_CONTAINER"
            variable="JRE_LIB"
            class="org.eclipse.jdt.internal.launching.JRERuntimeClasspathEntryResolver"
            id="org.eclipse.jdt.launching.JRE_RESOLVER">
      </runtimeClasspathEntryResolver>      
      <runtimeClasspathEntryResolver
      		runtimeClasspathEntryId="org.eclipse.jdt.launching.classpathentry.variableClasspathEntry"
            class="org.eclipse.jdt.internal.launching.VariableClasspathResolver"
            id="org.eclipse.jdt.launching.variableClasspathResolver">
      </runtimeClasspathEntryResolver>
   </extension>
   <extension
         point="org.eclipse.jdt.launching.runtimeClasspathEntries">
      <runtimeClasspathEntry
            id="org.eclipse.jdt.launching.classpathentry.defaultClasspath"
            class="org.eclipse.jdt.internal.launching.DefaultProjectClasspathEntry">
      </runtimeClasspathEntry>
      <runtimeClasspathEntry
            id="org.eclipse.jdt.launching.classpathentry.variableClasspathEntry"
            class="org.eclipse.jdt.internal.launching.VariableClasspathEntry">
      </runtimeClasspathEntry>
   </extension>   
   <extension
         point="org.eclipse.debug.core.launchConfigurationComparators">
      <launchConfigurationComparator
            attribute="org.eclipse.jdt.launching.CLASSPATH"
            class="org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator"
            id="org.eclipse.jdt.launching.classpathComparator">
      </launchConfigurationComparator>
      <launchConfigurationComparator
            attribute="org.eclipse.jdt.launching.SOURCE_PATH"
            class="org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator"
            id="org.eclipse.jdt.launching.sourcepathComparator">
      </launchConfigurationComparator>
   </extension>
   
   <!-- Source Lookup -->
   <extension point="org.eclipse.debug.core.sourceContainerTypes">
   		<sourceContainerType
   			id="org.eclipse.jdt.launching.sourceContainer.javaProject"
   			name="%javaProjectSourceContainerType.name"
   			description="%javaProjectSourceContainerType.description"
   			class="org.eclipse.jdt.internal.launching.JavaProjectSourceContainerTypeDelegate">
   		</sourceContainerType> 
   		<sourceContainerType
   			id="org.eclipse.jdt.launching.sourceContainer.packageFragmentRoot"
   			name="%packageFragmentRootSourceContainerType.name"
   			description="%packageFragmentRootSourceContainerType.description"
   			class="org.eclipse.jdt.internal.launching.PackageFragmentRootSourceContainerTypeDelegate">
   		</sourceContainerType>    		
   		<sourceContainerType
   			id="org.eclipse.jdt.launching.sourceContainer.classpathVariable"
   			name="%classpathVariableSourceContainerType.name"
   			description="%classpathVariableSourceContainerType.description"
   			class="org.eclipse.jdt.internal.launching.ClasspathVariableSourceContainerTypeDelegate">
   		</sourceContainerType>   		
   		<sourceContainerType
   			id="org.eclipse.jdt.launching.sourceContainer.classpathContainer"
   			name="%classpathContainerSourceContainerType.name"
   			description="%classpathContainerSourceContainerType.description"
   			class="org.eclipse.jdt.internal.launching.ClasspathContainerSourceContainerTypeDelegate">
   		</sourceContainerType>    		
   </extension>
   <extension point="org.eclipse.debug.core.sourcePathComputers">
   		<sourcePathComputer
   			id="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer"
   			class="org.eclipse.jdt.launching.sourcelookup.containers.JavaSourcePathComputer">
   		</sourcePathComputer>
   </extension>
   <extension point="org.eclipse.debug.core.sourceLocators">
   		<sourceLocator
   			id="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"
   			class="org.eclipse.jdt.internal.launching.JavaSourceLookupDirector"
   			name="%javaSourceLookupDirector.name">
   		</sourceLocator>
   		<sourceLocator
   			id="org.eclipse.jdt.launching.sourceLocator.JavaAdvancedSourceLookupDirector"
   			class="org.eclipse.jdt.internal.launching.sourcelookup.advanced.AdvancedSourceLookupDirector"
   			name="%javaAdvancedSourceLookupDirector.name">
   		</sourceLocator>
   </extension>
   <extension
         point="org.eclipse.core.runtime.preferences">
      <modifier class="org.eclipse.jdt.internal.launching.JREPreferenceModifyListener"/>
      <initializer
            class="org.eclipse.jdt.internal.launching.LaunchingPreferenceInitializer">
      </initializer>
   </extension>
   
   <extension
         point="org.eclipse.ui.trace.traceComponents">
      <component
            id="org.eclipse.jdt.launching.component"
            label="%launchingTrace.name">
         <bundle
               consumed="true"
               name="org.eclipse.jdt.launching">
         </bundle>
      </component>
   </extension>

   <extension point="org.eclipse.core.expressions.propertyTesters">
      <propertyTester
            class="org.eclipse.jdt.internal.launching.JavaLaunchableTester"
            id="org.eclipse.jdt.launching.JavaLaunchableTester"
            namespace="org.eclipse.jdt.launching"
            properties="hasMain, extendsClass, extendsInterface, hasMethod, isContainer, hasProjectNature, buildpathReference, hasMethodWithAnnotation, hasTypeWithAnnotation, isPackageFragment, isPackageFragmentRoot"
            type="org.eclipse.core.runtime.IAdaptable"/>            
      <propertyTester
            class="org.eclipse.jdt.internal.launching.sourcelookup.advanced.JDIStratumPropertyTester"
            id="org.eclipse.jdt.internal.launching.sourcelookup.advanced.jdtStratumTest"
            namespace="org.eclipse.jdt.launching"
            properties="jdtstratum"
            type="org.eclipse.debug.core.model.DebugElement"/>
   </extension>
   <extension
         id="jreContainerMarker"
         point="org.eclipse.core.resources.markers"
      	 name= "%jreContainerMarkerProblemName">
      <super type="org.eclipse.core.resources.problemmarker"/>
      <persistent value="true"/>
   </extension>
   <extension
         id="jreCompilerComplianceMarker"
         name="%jreComplilerComplianceMarkerProblemName"
         point="org.eclipse.core.resources.markers">
      <super type="org.eclipse.core.resources.problemmarker"/>
      <persistent value="true"/>
   </extension> 
   
      <extension
         point="org.eclipse.jdt.launching.executionEnvironments">
      <environment
            description="%environment.description.0"
            id="OSGi/Minimum-1.0"
            ruleParticipant="org.eclipse.jdt.internal.launching.environments.DefaultAccessRuleParticipant"/>
      <environment
            description="%environment.description.1"
            id="OSGi/Minimum-1.1"
            ruleParticipant="org.eclipse.jdt.internal.launching.environments.DefaultAccessRuleParticipant"/>
      <environment
            description="%environment.description.10"
            id="OSGi/Minimum-1.2"
            ruleParticipant="org.eclipse.jdt.internal.launching.environments.DefaultAccessRuleParticipant"/>            
      <environment
            description="%environment.description.2"
            id="JRE-1.1"
            ruleParticipant="org.eclipse.jdt.internal.launching.environments.DefaultAccessRuleParticipant"/>
      <environment
            description="%environment.description.3"
            id="J2SE-1.2"
            ruleParticipant="org.eclipse.jdt.internal.launching.environments.DefaultAccessRuleParticipant"/>
      <environment
            description="%environment.description.4"
            id="J2SE-1.3"
            ruleParticipant="org.eclipse.jdt.internal.launching.environments.DefaultAccessRuleParticipant"/>
      <environment
            description="%environment.description.5"
            id="J2SE-1.4"
            ruleParticipant="org.eclipse.jdt.internal.launching.environments.DefaultAccessRuleParticipant"/>
      <environment
            description="%environment.description.6"
            id="J2SE-1.5"
            ruleParticipant="org.eclipse.jdt.internal.launching.environments.DefaultAccessRuleParticipant"/>
      <environment
            description="%environment.description.7"
            id="CDC-1.0/Foundation-1.0"
            ruleParticipant="org.eclipse.jdt.internal.launching.environments.DefaultAccessRuleParticipant"/>
      <environment
            description="%environment.description.8"
            id="CDC-1.1/Foundation-1.1"
            ruleParticipant="org.eclipse.jdt.internal.launching.environments.DefaultAccessRuleParticipant"/>
      <environment
            description="%environment.description.9"
            id="JavaSE-1.6"
            ruleParticipant="org.eclipse.jdt.internal.launching.environments.DefaultAccessRuleParticipant"/>
      <environment
            description="%environment.description.11"
            id="JavaSE-1.7"
            ruleParticipant="org.eclipse.jdt.internal.launching.environments.DefaultAccessRuleParticipant"/>
      <environment
            description="%environment.description.12"
            id="JavaSE-1.8"
            ruleParticipant="org.eclipse.jdt.internal.launching.environments.DefaultAccessRuleParticipant">
      </environment>
      <environment
            description="%environment.description.13"
            id="JavaSE-9">
      </environment> 
      <environment
            description="%environment.description.14"
            id="JavaSE-10"
            compliance="10">
      </environment>
      <environment
            description="%environment.description.15"
            id="JavaSE-11"
            compliance="11">
      </environment>
      <environment
            description="%environment.description.16"
            id="JavaSE-12"
            compliance="12">
      </environment>
      <environment
            description="%environment.description.17"
            id="JavaSE-13"
            compliance="13">
      </environment> 
      <environment
            description="%environment.description.18"
            id="JavaSE-14"
            compliance="14">
      </environment>
      <environment
            description="%environment.description.19"
            id="JavaSE-15"
            compliance="15">
      </environment>
      <environment
            description="%environment.description.20"
            id="JavaSE-16"
            compliance="16">
      </environment>
      <environment
            description="%environment.description.21"
            id="JavaSE-17"
            compliance="17">
      </environment>
      <environment
            description="%environment.description.22"
            id="JavaSE-18"
            compliance="18">
      </environment>
      <environment
            description="%environment.description.23"
            id="JavaSE-19"
            compliance="19">
      </environment>
      <environment
            description="%environment.description.24"
            id="JavaSE-20"
            compliance="20">
      </environment>         
      <analyzer
            class="org.eclipse.jdt.internal.launching.environments.ExecutionEnvironmentAnalyzer"
            id="org.eclipse.jdt.launching.eeAnalyzer"/>
      <ruleParticipant
            class="org.eclipse.jdt.internal.launching.environments.DefaultAccessRuleParticipant"
            id="org.eclipse.jdt.launching.defaultParticipant">
      </ruleParticipant>
   </extension>
      <extension
            point="org.eclipse.jdt.core.compilationParticipant">
         <compilationParticipant
               class="org.eclipse.jdt.internal.launching.EECompilationParticipant"
               createsProblems="true"
               id="org.eclipse.jdt.launching.compilationParticipant.ee">
            <managedMarker
                  markerType="org.eclipse.jdt.launching.jreContainerMarker">
            </managedMarker>
            <managedMarker
                  markerType="org.eclipse.jdt.launching.jreCompilerComplianceMarker">
            </managedMarker>
         </compilationParticipant>
      </extension>
      <extension
            point="org.eclipse.core.variables.dynamicVariables">
         <variable
               description="%ee.home.description"
               name="ee_home"
               resolver="org.eclipse.jdt.internal.launching.environments.ExecutionEnvironmentVariableResolver">
         </variable>
         <variable
               description="%project.classpath.description"
               name="project_classpath"
               resolver="org.eclipse.jdt.internal.launching.ProjectClasspathVariableResolver">
         </variable>
         <variable
               description="%sourcelookup.javaagent.description"
               name="sourcelookup_javaagent"
               resolver="org.eclipse.jdt.internal.launching.sourcelookup.advanced.JavaagentVariableResolver"
               supportsArgument="false">
         </variable>
      </extension>
      <extension
            point="org.eclipse.jdt.launching.libraryLocationResolvers">
         <resolver
               class="org.eclipse.jdt.internal.launching.JavaFxLibraryResolver">
         </resolver>
      </extension>
     
</plugin>
