<?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.
-->
<jws:workspace xmlns:jws="http://xmlns.oracle.com/ide/project">
   <hash n="component-versions">
      <value n="oracle.adf.share.dt.migration.jps.JaznCredStoreMigratorHelper" v="11.1.1.0.0"/>
      <value n="oracle.adfdtinternal.model.ide.security.wizard.AdfSecurityMigrator" v="11.1.1.0.0"/>
      <value n="oracle.ide.model.Project" v="10.1.3.0.4;11.1.1.0.0"/>
      <value n="oracle.jdevimpl.runner.oc4j.EmbeddedServerMigratorHelper" v="11.1.1.0.0"/>
      <value n="oracle.jdevimpl.webservices.WebServicesMigratorHelper" v="11.1.1.0.0"/>
      <value n="oracle.jdevimpl.xml.oc4j.ds.DataSourcesMigratorHelper" v="11.1.1.0.0"/>
      <value n="oracle.jdevimpl.xml.oc4j.jps.JpsConfigMigratorHelper" v="11.1.1.0.0"/>
      <value n="oracle.mds.internal.dt.ide.migrator.MDSConfigMigratorHelper" v="11.1.1.0.0"/>
      <value n="oracle.webcenter.internal.dt.migration.WebCenterWorkspaceMigrator" v="11.1.1.0.0"/>
   </hash>
   <list n="listOfChildren" />
</jws:workspace>
