<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>org.eclipse.emf.cdo.lm.modules</name>
	<comment></comment>
	<projects>
	</projects>
  <buildSpec>
    <buildCommand>
      <name>org.eclipse.jdt.core.javabuilder</name>
      <arguments>
      </arguments>
    </buildCommand>
    <buildCommand>
      <name>org.eclipse.pde.ManifestBuilder</name>
      <arguments>
      </arguments>
    </buildCommand>
    <buildCommand>
      <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
      <arguments>
      </arguments>
    </buildCommand>
    <buildCommand>
      <name>org.eclipse.oomph.version.VersionBuilder</name>
      <arguments>
        <dictionary>
          <key>check.maven.pom</key>
          <value>true</value>
        </dictionary>
        <dictionary>
          <key>ignore.lower.bound.dependency.ranges</key>
          <value>true</value>
        </dictionary>
        <dictionary>
          <key>release.path</key>
          <value>/org.eclipse.emf.cdo.releng/versions/release.xml</value>
        </dictionary>
      </arguments>
    </buildCommand>
  </buildSpec>
  <natures>
    <nature>org.eclipse.pde.PluginNature</nature>
    <nature>org.eclipse.jdt.core.javanature</nature>
    <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
    <nature>org.eclipse.oomph.version.VersionNature</nature>
  </natures>
  <filteredResources>
    <filter>
      <id>1396939000000</id>
      <name></name>
      <type>10</type>
      <matcher>
        <id>org.eclipse.ui.ide.multiFilter</id>
        <arguments>1.0-projectRelativePath-matches-true-false-target</arguments>
      </matcher>
    </filter>
  </filteredResources>
</projectDescription>
