<?xml version = '1.0' encoding = 'UTF-8'?>
<!--
  Copyright 2006 The Apache Software Foundation.

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<jpr:project xmlns:jpr="http://xmlns.oracle.com/ide/project">
   <hash n="component-versions">
      <value n="oracle.adf.dt.migration.ProjectMigrator" v="10.1.3.0.3"/>
      <value n="oracle.adfdt.controller.jsf.addin.JSFProjectMigrator" v="10.1.3.0.3"/>
      <value n="oracle.adfdt.controller.struts.addin.db.ADFStrutsProjectMigrator" v="10.1.3.0.3"/>
      <value n="oracle.adfdt.controller.struts.addin.StrutsProjectMigrator" v="10.1.3.0.2;10.1.3.0.3"/>
      <value n="oracle.bm.commonIde.ProjectUpgrader" v="10.1.3.0.3"/>
      <value n="oracle.ide.model.Project" v="10.1.3.0.2;10.1.3.0.3"/>
      <value n="oracle.ide.model.ResourcePathsMigrator" v="10.1.3.0.3"/>
      <value n="oracle.jbo.dt.jclient.migrator.JCProjectMigrator" v="10.1.3.0.3"/>
      <value n="oracle.jbo.dt.jdevx.ui.appnav.APProjectMigrator" v="10.1.3.0.3"/>
      <value n="oracle.jdeveloper.dbmodeler.migration.ProjectMigratorHelper" v="10.1.3.0.3"/>
      <value n="oracle.jdeveloper.offlinedb.migration.OfflineDBProjectMigrator" v="10.1.3.0.2;10.1.3.0.3"/>
      <value n="oracle.jdevimpl.jsp.JspMigrator" v="10.1.3.0.2;10.1.3.0.3"/>
      <value n="oracle.jdevimpl.runner.RunConfigurationsMigrator" v="10.1.3.0.3"/>
      <value n="oracle.jdevimpl.webservices.WebServicesMigratorHelper" v="10.1.3.0.2;10.1.3.0.3"/>
      <value n="oracle.toplink.addin.migration.TopLinkProjectMigrator" v="10.1.3.0.3"/>
   </hash>
   <list n="contentSets">
      <string v="oracle.jdeveloper.model.PathsConfiguration/javaContentSet"/>
      <string v="oracle.jdeveloper.model.J2eeSettings/webContentSet"/>
      <string v="oracle.ide.model.ResourcePaths/resourcesContentSet"/>
   </list>
   <hash n="oracle.ide.model.DependencyConfiguration">
      <list n="dependencyList"/>
   </hash>
   <hash n="oracle.ide.model.ResourcePaths">
      <hash n="resourcesContentSet">
         <list n="pattern-filters">
            <string v="+**"/>
         </list>
         <list n="url-path" />
      </hash>
   </hash>
   <hash n="oracle.jdeveloper.compiler.OjcConfiguration">
      <value n="assertionsEnabled" v="true"/>
      <list n="copyRes">
         <string v=".java"/>
      </list>
      <value n="internalEncoding" v="Default"/>
      <value n="reverseCopyRes" v="true"/>
      <value n="showObjectDotStaticWarnings" v="true"/>
      <value n="showPartialImportWarnings" v="true"/>
      <value n="showUnusedImportWarnings" v="true"/>
      <value n="useJavac" v="true"/>
   </hash>
   <hash n="oracle.jdeveloper.model.J2eeSettings">
      <value n="j2eeWebAppName" v="maven-generated-webapp"/>
      <value n="j2eeWebContextRoot" v="maven-generated-context-root"/>
      <hash n="webContentSet">
         <list n="url-path" />
      </hash>
   </hash>
   <hash n="oracle.jdeveloper.model.PathsConfiguration">
      <hash n="javaContentSet">
         <list n="pattern-filters">
            <string v="+**"/>
         </list>
         <list n="url-path" />
      </hash>
   </hash>
   <hash n="oracle.jdevimpl.config.JProjectLibraries">
      <list n="exportedReferences"/>
      <hash n="internalDefinitions">
         <list n="libraryDefinitions" />
      </hash>
      <list n="libraryReferences" />
   </hash>
   <hash n="oracle.jdevimpl.config.JProjectPaths">
      <url n="outputDirectory" />
   </hash>
   <hash n="oracle.jdevimpl.webapp.jsp.libraries.model.ProjectTagLibraries">
      <hash n="libraries"/>
   </hash>
</jpr:project>