<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?><!--
    Copyright (c) 2002, 2009 IBM Corporation and others.
    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
    http://www.eclipse.org/legal/epl-v10.html
    
    Contributors:
        IBM Corporation - initial API and implementation
 -->

<plugin>
   	<!-- Classpath variable initializer -->
	<extension point = "org.eclipse.jdt.core.classpathVariableInitializer">
		<classpathVariableInitializer
			variable="TEST_LIB"
			class="org.eclipse.jdt.core.tests.model.VariablesInitializer"/>
		<classpathVariableInitializer
			variable="TEST_SRC"
			class="org.eclipse.jdt.core.tests.model.VariablesInitializer"/>
		<classpathVariableInitializer
			variable="TEST_ROOT"
			class="org.eclipse.jdt.core.tests.model.VariablesInitializer"/>
  <classpathVariableInitializer
        class="org.eclipse.jdt.core.tests.model.VariablesInitializer"
        deprecated="%classpathVariableInitializer.deprecated.0"
        variable="TEST_DEPRECATED">
  </classpathVariableInitializer>
  <classpathVariableInitializer
        class="org.eclipse.jdt.core.tests.model.VariablesInitializer"
        readOnly="true"
        variable="TEST_READ_ONLY">
  </classpathVariableInitializer>
  <classpathVariableInitializer
        class="org.eclipse.jdt.core.tests.model.VariablesInitializer"
        deprecated="%classpathVariableInitializer.deprecated.1"
        readOnly="true"
        variable="TEST_DEPRECATED_READ_ONLY">
  </classpathVariableInitializer>
	</extension>		

	<!-- Classpath container initializer -->
	<extension point = "org.eclipse.jdt.core.classpathContainerInitializer">
		<classpathContainerInitializer
			id="org.eclipse.jdt.core.tests.model.TEST_CONTAINER"
			class="org.eclipse.jdt.core.tests.model.ContainerInitializer"/>
	</extension>

	<!-- Extra Java-like file extensions -->
	<extension point="org.eclipse.core.contenttype.contentTypes"> 
	    <file-association 
	        content-type="org.eclipse.jdt.core.javaSource"
	        file-extensions="foo,bar"/>
	</extension>

	<!-- Repository provider -->
	<extension point="org.eclipse.team.core.repository">
		<repository
			id="org.eclipse.jdt.core.tests.model.pessimisticnature"
			class="org.eclipse.jdt.core.tests.model.TestPessimisticProvider">
		</repository>;
	</extension>
	
	<!-- Compilation participant -->
	 <extension point="org.eclipse.jdt.core.compilationParticipant">
	   <compilationParticipant
          class="org.eclipse.jdt.core.tests.model.TestCompilationParticipant"
          createsProblems="true"
          id="org.eclipse.jdt.core.tests.model.compilationparticipant"
          requiredSourceLevel="1.4"
          modifiesEnvironment="true">
       <requires id="non.existing"/>
    </compilationParticipant>
	 </extension>
  <extension
        point="org.eclipse.core.filesystem.filesystems">
     <filesystem
           scheme="jdt.core.test">
        <run
              class="org.eclipse.jdt.core.tests.model.TestFileSystem">
        </run>
     </filesystem>
  </extension>
	
</plugin>
