Skip to Content.
Sympa Menu

notify-dpml - svn commit: r2247 - in development/laboratory/ide/eclipse: org.apache.avalon.ide.eclipse.core org.apache.avalon.ide.eclipse.core/bin org.apache.avalon.ide.eclipse.core/bin/org org.apache.avalon.ide.eclipse.core/bin/org/apache org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/resource org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/tools org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/xmlmodel org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/merlin/core org.apache.avalon.ide.eclipse.core/docs org.apache.avalon.ide.eclipse.core/docs/eclipse org.apache.avalon.ide.eclipse.core/docs/eclipse/html org.apache.avalon.ide.eclipse.core/docs/eclipse/html/concepts org.apache.avalon.ide.eclipse.core/docs/eclipse/html/downloads org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference org.apache.avalon.ide.eclipse.core/docs/eclipse/html/samples org.apache.avalon.ide.eclipse.core/docs/eclipse/html/tasks org.apache.avalon.ide.eclipse.core/docs/eclipse/html/whatsnew org.apache.avalon.ide.eclipse.core/lib org.apache.avalon.ide.eclipse.core/lib/avalon-framework org.apache.avalon.ide.eclipse.core/src org.apache.avalon.ide.eclipse.core/src/org org.apache.avalon.ide.eclipse.core/src/org/apache org.apache.avalon.ide.eclipse.core/src/org/apache/avalon org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/merlin/core org.apache.avalon.ide.eclipse.features org.apache.avalon.ide.eclipse.launch org.apache.avalon.ide.eclipse.launch/bin org.apache.avalon.ide.eclipse.launch/bin/org org.apache.avalon.ide.eclipse.launch/bin/org/apache org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/builder org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/launch org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/launch/container org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/launch/ui org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/nature org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/util org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/util/defaults org.apache.avalon.ide.eclipse.launch/doc org.apache.avalon.ide.eclipse.launch/icons org.apache.avalon.ide.eclipse.launch/lib org.apache.avalon.ide.eclipse.launch/src org.apache.avalon.ide.eclipse.launch/src/org org.apache.avalon.ide.eclipse.launch/src/org/apache org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/builder org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/ui org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/nature org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults org.apache.avalon.ide.eclipse.repository org.apache.avalon.ide.eclipse.repository/doc org.apache.avalon.ide.eclipse.repository/html org.apache.avalon.ide.eclipse.repository/icons org.apache.avalon.ide.eclipse.repository/lib org.apache.avalon.ide.eclipse.repository/schema org.apache.avalon.ide.eclipse.repository/src org.apache.avalon.ide.eclipse.repository/src/org org.apache.avalon.ide.eclipse.repository/src/org/apache org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/actions org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/properties org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views org.apache.avalon.ide.eclipse.ui org.apache.avalon.ide.eclipse.ui/bin org.apache.avalon.ide.eclipse.ui/bin/icons org.apache.avalon.ide.eclipse.ui/bin/org org.apache.avalon.ide.eclipse.ui/bin/org/apache org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/operation org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/preferences org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/ui org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/ui/tools org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/wizards org.apache.avalon.ide.eclipse.ui/icons org.apache.avalon.ide.eclipse.ui/icons/full org.apache.avalon.ide.eclipse.ui/icons/full/ctool16 org.apache.avalon.ide.eclipse.ui/icons/full/dtool16 org.apache.avalon.ide.eclipse.ui/icons/full/etool16 org.apache.avalon.ide.eclipse.ui/icons/full/obj16 org.apache.avalon.ide.eclipse.ui/icons/full/wizban org.apache.avalon.ide.eclipse.ui/properties org.apache.avalon.ide.eclipse.ui/src org.apache.avalon.ide.eclipse.ui/src/icons org.apache.avalon.ide.eclipse.ui/src/org org.apache.avalon.ide.eclipse.ui/src/org/apache org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/operation org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/preferences org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards org.apache.avalon.ide.eclipse.ui/templates org.apache.avalon.ide.eclipse.ui/test org.apache.avalon.ide.eclipse.ui/test/test org.apache.avalon.ide.eclipse.ui/test/test/org org.apache.avalon.ide.eclipse.ui/test/test/org/apache org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/core org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/core/resource org.apache.avalon.ide.eclipse.update org.apache.avalon.ide.eclipse.update/features org.apache.avalon.ide.eclipse.update/plugins org.apache.avalon.ide.eclipse.update/web org.apache.avalon.ide.eclipse.update/zip_dist org.apache.avalon.ide.repository org.apache.avalon.ide.repository.testrepo org.apache.avalon.ide.repository.testrepo/src org.apache.avalon.ide.repository.testrepo/src/org org.apache.avalon.ide.repository.testrepo/src/org/apache org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository/testrepo org.apache.avalon.ide.repository/src org.apache.avalon.ide.repository/src/org org.apache.avalon.ide.repository/src/org/apache org.apache.avalon.ide.repository/src/org/apache/avalon org.apache.avalon.ide.repository/src/org/apache/avalon/ide org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance

notify-dpml AT lists.ibiblio.org

Subject: DPML Notify

List archive

Chronological Thread  
  • From: peter AT neubauer.se
  • To: notify-dpml AT lists.ibiblio.org
  • Subject: svn commit: r2247 - in development/laboratory/ide/eclipse: org.apache.avalon.ide.eclipse.core org.apache.avalon.ide.eclipse.core/bin org.apache.avalon.ide.eclipse.core/bin/org org.apache.avalon.ide.eclipse.core/bin/org/apache org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/resource org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/tools org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/xmlmodel org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/merlin/core org.apache.avalon.ide.eclipse.core/docs org.apache.avalon.ide.eclipse.core/docs/eclipse org.apache.avalon.ide.eclipse.core/docs/eclipse/html org.apache.avalon.ide.eclipse.core/docs/eclipse/html/concepts org.apache.avalon.ide.eclipse.core/docs/eclipse/html/downloads org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference org.apache.avalon.ide.eclipse.core/docs/eclipse/html/samples org.apache.avalon.ide.eclipse.core/docs/eclipse/html/tasks org.apache.avalon.ide.eclipse.core/docs/eclipse/html/whatsnew org.apache.avalon.ide.eclipse.core/lib org.apache.avalon.ide.eclipse.core/lib/avalon-framework org.apache.avalon.ide.eclipse.core/src org.apache.avalon.ide.eclipse.core/src/org org.apache.avalon.ide.eclipse.core/src/org/apache org.apache.avalon.ide.eclipse.core/src/org/apache/avalon org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/merlin/core org.apache.avalon.ide.eclipse.features org.apache.avalon.ide.eclipse.launch org.apache.avalon.ide.eclipse.launch/bin org.apache.avalon.ide.eclipse.launch/bin/org org.apache.avalon.ide.eclipse.launch/bin/org/apache org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/builder org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/launch org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/launch/container org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/launch/ui org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/nature org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/util org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/util/defaults org.apache.avalon.ide.eclipse.launch/doc org.apache.avalon.ide.eclipse.launch/icons org.apache.avalon.ide.eclipse.launch/lib org.apache.avalon.ide.eclipse.launch/src org.apache.avalon.ide.eclipse.launch/src/org org.apache.avalon.ide.eclipse.launch/src/org/apache org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/builder org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/ui org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/nature org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults org.apache.avalon.ide.eclipse.repository org.apache.avalon.ide.eclipse.repository/doc org.apache.avalon.ide.eclipse.repository/html org.apache.avalon.ide.eclipse.repository/icons org.apache.avalon.ide.eclipse.repository/lib org.apache.avalon.ide.eclipse.repository/schema org.apache.avalon.ide.eclipse.repository/src org.apache.avalon.ide.eclipse.repository/src/org org.apache.avalon.ide.eclipse.repository/src/org/apache org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/actions org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/properties org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views org.apache.avalon.ide.eclipse.ui org.apache.avalon.ide.eclipse.ui/bin org.apache.avalon.ide.eclipse.ui/bin/icons org.apache.avalon.ide.eclipse.ui/bin/org org.apache.avalon.ide.eclipse.ui/bin/org/apache org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/operation org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/preferences org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/ui org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/ui/tools org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/wizards org.apache.avalon.ide.eclipse.ui/icons org.apache.avalon.ide.eclipse.ui/icons/full org.apache.avalon.ide.eclipse.ui/icons/full/ctool16 org.apache.avalon.ide.eclipse.ui/icons/full/dtool16 org.apache.avalon.ide.eclipse.ui/icons/full/etool16 org.apache.avalon.ide.eclipse.ui/icons/full/obj16 org.apache.avalon.ide.eclipse.ui/icons/full/wizban org.apache.avalon.ide.eclipse.ui/properties org.apache.avalon.ide.eclipse.ui/src org.apache.avalon.ide.eclipse.ui/src/icons org.apache.avalon.ide.eclipse.ui/src/org org.apache.avalon.ide.eclipse.ui/src/org/apache org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/operation org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/preferences org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards org.apache.avalon.ide.eclipse.ui/templates org.apache.avalon.ide.eclipse.ui/test org.apache.avalon.ide.eclipse.ui/test/test org.apache.avalon.ide.eclipse.ui/test/test/org org.apache.avalon.ide.eclipse.ui/test/test/org/apache org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/core org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/core/resource org.apache.avalon.ide.eclipse.update org.apache.avalon.ide.eclipse.update/features org.apache.avalon.ide.eclipse.update/plugins org.apache.avalon.ide.eclipse.update/web org.apache.avalon.ide.eclipse.update/zip_dist org.apache.avalon.ide.repository org.apache.avalon.ide.repository.testrepo org.apache.avalon.ide.repository.testrepo/src org.apache.avalon.ide.repository.testrepo/src/org org.apache.avalon.ide.repository.testrepo/src/org/apache org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository/testrepo org.apache.avalon.ide.repository/src org.apache.avalon.ide.repository/src/org org.apache.avalon.ide.repository/src/org/apache org.apache.avalon.ide.repository/src/org/apache/avalon org.apache.avalon.ide.repository/src/org/apache/avalon/ide org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance
  • Date: Fri, 08 Apr 2005 13:52:20 -0400

Author: peter AT neubauer.se
Date: Fri Apr 8 13:52:15 2005
New Revision: 2247

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/.classpath

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/.cvsignore

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/.project
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/resource/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/resource/manager.hierarchy.ucd

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/resource/package.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/tools/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/tools/package.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/xmlmodel/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/xmlmodel/overview.jpg
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/xmlmodel/overview.ucd

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/xmlmodel/package.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/merlin/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/merlin/core/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/merlin/core/package.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/build.properties

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/build.xml
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/book.css

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/concepts/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/concepts/maintopic.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/concepts/merlincontainer.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/concepts/merlindeveloper.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/desktop.ini

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/downloads/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/downloads/.cvsignore

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/about_dialog.jpg
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/about_menu.jpg
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/dependentcomponenttutorial.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/helloworldtutorial.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/installation.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/maintopic.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/systemrequirements.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/updatemanagerinstallation.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/updatemanagerinstallation2x.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/zipfileinstallation.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/AboutDialog.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/Consol_run_output.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/NewProject.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/NewProjectDetails.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/NewProjectPage.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/NewProjectSelection.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/PackageView.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/Plug-in-list.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/apache_avalon.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/context_help.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/context_help_done.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/main_preference.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/process_update_2x.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/run_as.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/selected_updates_2x.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/site_bookmark_2x.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update1.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update2.jpg
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update3.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update4.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update5.jpg
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update_feature_2x.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update_manager_2x.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update_open_2x.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/index.htm

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference/maintopic.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference/programmersreference.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference/technicalreference.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference/technicalreferencecontainer.htm

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/samples/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/samples/maintopic.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/samples/persistenceexample.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/samples/webserverexample.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/tasks/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/tasks/createproject.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/tasks/createprojecttemplates.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/tasks/maintopic.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/toc.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/whatsnew/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/whatsnew/version004.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/tocconcepts.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/tocgettingstarted.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/tocreference.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/tocsamples.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/toctasks.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/eclipse.prefs
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/avalon-framework/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/avalon-framework/.cvsignore

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/commons-collections-2.0.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/commons-lang.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/commons-logging.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/dom4j.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/xdoclet-1.2b4.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/xjavadoc-1.0.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/xstream-0.2.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/maven.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/plugin.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/project.properties

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/project.xml
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/AbstractResourceManager.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/BlockResourceManager.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/ClassResourceManager.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/ComponentResourceManager.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/EclipseResource.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/JavaDocResource.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/ProjectResourceManager.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/SystemResource.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/TemplateResource.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/Test.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/XMLResource.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/manager.hierarchy.ucd

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/package.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools/ClassNameAnalyzer.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools/DynProjectParam.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools/EclipseDirectoryHelper.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools/package.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/AttributeContainer.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/AttributeContainerConverter.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/Directory.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/Library.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/ProjectMeta.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/ProjectModel.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/ProjectModelConfiguration.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/Template.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/XStream.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/overview.jpg
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/overview.ucd

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/package.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/merlin/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/merlin/core/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/merlin/core/MerlinDeveloperCore.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/merlin/core/package.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/toc.xml
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.features/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.features/.cvsignore

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.features/build.properties

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.features/feature.xml
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/.classpath

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/.cvsignore

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/.project

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/MerlinDeveloperLaunchsrc.zip
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/builder/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/launch/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/launch/container/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/launch/ui/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/nature/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/util/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/util/defaults/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/util/defaults/package.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/build.properties

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/build.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/doc/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/doc/book.css

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/doc/schema.css

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/icons/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/icons/merlin.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/icons/merlin_light.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/icons/plugin.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/avalon-framework-api-4.1.5.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/avalon-framework-impl-4.1.5.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/avalon-util-criteria-1.0.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/avalon-util-defaults-1.1.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/avalon-util-env-1.0.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/avalon-util-exception-1.0.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/merlin-api-3.2.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/merlin-bootstrap-1.0.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/merlin-cli-3.2.4.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/merlin-impl-3.2.4.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/maven.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/plugin.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/project.properties

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/project.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/builder/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/builder/IMerlinBuilder.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/builder/MerlinBuilderFactory.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/MerlinContainerConfigNature.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/MerlinDeveloperLaunch.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/MerlinLaunchConfigurationDelegate.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/MerlinLaunchShortcut.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/AvalonContainer.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/IAvalonContainer.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/MerlinContainerEnvironment.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/MerlinEmbeddedContainer.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/MerlinExternalContainer.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/ui/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/ui/MerlinServerTabGroup.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/nature/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/nature/MerlinProjectNature.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/Defaults.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/DefaultsBuilder.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/DefaultsFinder.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/SimpleDefaultsFinder.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/SystemDefaultsFinder.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/package.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/build.properties

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/doc/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/doc/book.css

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/doc/org_apache_avalon_ide_eclipse_org.apache.avalon.ide.eclipse.repository.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/doc/org_apache_avalon_ide_eclipse_repository_agent.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/doc/schema.css

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/html/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/html/maintopic.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/html/subtopic.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/html/toc.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/icons/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/icons/sample.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/lib/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/lib/repository-tools.jar
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/plugin.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/schema/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/schema/agent.exsd

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/PluginResources.properties

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/RepositoryPlugin.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/ResourceManager.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/actions/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/actions/RepositoryAction.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/actions/ValidateAction.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandler.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerException.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerInstalled.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerResolved.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerStarted.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerStopped.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerUninstalled.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerUnresolved.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerUpdated.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/AddRepositoryDialog.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/AvalonPreferencePage.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/RepositoryListEditor.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/RepositoryPreferencePage.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/URLValidator.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/properties/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/properties/RepositoryPropertyPage.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/NameSorter.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/ParentNode.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/RepositoryNameValidator.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/RepositoryView.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/ViewContentProvider.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/ViewLabelProvider.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/ViewNode.java
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/.classpath

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/.cvsignore

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/.project
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/icons/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/icons/plugin.properties

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/org/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/org/apache/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/operation/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/preferences/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/ui/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/ui/MerlinDeveloperUIResources.properties

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/ui/tools/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/wizards/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/build.properties

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/build.xml
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/Thumbs.db
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/checked.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/ctool16/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/ctool16/Thumbs.db
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/ctool16/exportjar_wiz.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/ctool16/java_app.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/ctool16/newjprj_wiz.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/dtool16/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/dtool16/Thumbs.db
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/dtool16/exportjar_wiz.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/dtool16/newjprj_wiz.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/etool16/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/etool16/Thumbs.db
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/etool16/exportjar_wiz.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/etool16/newjprj_wiz.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/obj16/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/obj16/Thumbs.db
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/obj16/file_obj.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/wizban/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/wizban/Thumbs.db
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/wizban/jar_pack_wiz.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/wizban/newjprj_wiz.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/merlin.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/merlin_light.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/sample.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/unchecked.gif
(contents, props changed)

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/plugin.properties

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/plugin.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/properties/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/properties/NewProjectConfigTest.xcfg

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/properties/NewProjectWizard.xcfg
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/icons/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/icons/plugin.properties

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/operation/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/operation/AbstractGeneratorOperation.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/preferences/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/preferences/MerlinMainPreferencePage.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/MerlinDeveloperUI.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/MerlinDeveloperUIResources.properties

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools/AvalonProposals.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools/ExampleBuilder.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools/ImageViewerEditor.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools/JavadocProcessor.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewMerlinNatureWizard.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewMerlinProjectSelectionPage.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewMerlinProjectWizard.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewMerlinProjectWizardPage.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewProjectWizard.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/WizardUtil.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/templates/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/templates/TutorialHello.Block.Template

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/templates/TutorialHello.Component.template

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/templates/TutorialHello.XInfo.Template
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/test/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/test/org/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/test/org/apache/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/core/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/core/resource/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/core/resource/AllTests.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/core/resource/ProjectResourceManagerTest.java
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/features/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/features/.cvsignore

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/index.html

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/plugins/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/plugins/.cvsignore

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/site.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/web/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/web/site.css

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/web/site.xsl

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/zip_dist/

development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/zip_dist/.cvsignore
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/build.properties

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/plugin.xml

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/apache/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository/testrepo/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository/testrepo/TestRepoRepositoryAgent.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository/testrepo/TestRepoRepositoryAgentFactory.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository/testrepo/TestrepoPlugin.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/repository-tools.jardesc
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/Compliance.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/InvalidSchemeException.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgent.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentCreationException.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentEvent.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentFactory.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentFactoryEvent.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentFactoryListener.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentListener.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryConnectionException.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryException.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryFormatException.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositorySchemeDescriptor.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryTypeRegistry.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryTypeRegistryEvent.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryTypeRegistryListener.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/ResourceGroupInfo.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/ResourceInfo.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/ResourceInfoNotAvailableException.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/Version.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/AvalonDateVersion.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/ComplianceGroupImpl.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/ConventionalVersion.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/GenericSchemeDescriptor.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/NonVersion.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/ResourceGroupInfoImpl.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/ResourceInfoImpl.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/SimpleRepositoryRegistry.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/EmptyCompliance.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/FortressCompliance.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/GenericCompliance.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/MerlinCompliance.java

development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/PhoenixCompliance.java
Log:
resurrecting the old Merlin Studio plugin suite. it now builds in eclipse
3.1M6 and executes.
Will start examining it and start moving pieces to metro, if applicable


Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/.classpath
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/.classpath
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/"/>
+ <classpathentry kind="lib" path="lib/xstream-0.2.jar"/>
+ <classpathentry kind="lib" path="lib/xdoclet-1.2b4.jar"/>
+ <classpathentry kind="lib" path="lib/xjavadoc-1.0.jar"/>
+ <classpathentry kind="lib" path="lib/commons-collections-2.0.jar"/>
+ <classpathentry kind="lib" path="lib/commons-lang.jar"/>
+ <classpathentry kind="lib" path="lib/commons-logging.jar"/>
+ <classpathentry kind="con"
path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/.cvsignore
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/.cvsignore
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,4 @@
+bin
+*.jar
+*.zip
+target

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/.project
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/.project
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>metro-studio-core</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.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/resource/manager.hierarchy.ucd
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/resource/manager.hierarchy.ucd
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<editmodel:ClassDiagramEditModel xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:editmodel="editmodel.xmi" xmlns:null="null" size="1050,658"
id="org.apache.avalon.ide.eclipse.core.resource" metadata="nsuml-1.4"
initialized="true" zoom="0.75">
+ <children xsi:type="editmodel:ClassEditModel" location="839,481"
size="191,103"
id="org.apache.avalon.ide.eclipse.core.resource/ClassResourceManager"
runTimeClassModel="">
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <children xsi:type="editmodel:CompartmentEditModel" size="147,54">
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ClassResourceManager#ClassResourceManager(Lorg.eclipse.core.resources.IProject;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ClassResourceManager#getFullyQualifiedName()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ClassResourceManager#synchronize()"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager&lt;-org.apache.avalon.ide.eclipse.core.resource/ClassResourceManager"
source="//@children.0" target="//@children.1"
targetEnd="//@children.0/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.0/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel" location="95,0"
anchorKind="FixedAtEdge" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="155,281" anchorKind="FixedAtEdge"/>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel"
targetConnections="//@children.3/ AT sourceConnections.0
//@children.4/ AT sourceConnections.0 //@children.2/ AT sourceConnections.0
//@children.0/ AT sourceConnections.0" location="430,41" size="209,283"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager"
runTimeClassModel="changed,javaDocResource,templateResource,project,eclipseResource,xmlResource">
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <children xsi:type="editmodel:CompartmentEditModel" size="162,234">
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#AbstractResourceManager(Lorg.eclipse.core.resources.IProject;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#AbstractResourceManager()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#getEclipseResource()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#getJavaDocResource()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#getProject()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#getTemplateResource()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#getXmlResource()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#isChanged()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#setChanged(Z)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#setJavaDocResource(Lorg.apache.avalon.ide.eclipse.core.resource.JavaDocResource;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#setXmlResource(Lorg.apache.avalon.ide.eclipse.core.resource.XMLResource;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#setProject(Lorg.eclipse.core.resources.IProject;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#setTemplateResource(Lorg.apache.avalon.ide.eclipse.core.resource.TemplateResource;)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" location="559,481"
size="231,85"
id="org.apache.avalon.ide.eclipse.core.resource/ComponentResourceManager"
runTimeClassModel="xinfoFile,containedClasses">
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <children xsi:type="editmodel:CompartmentEditModel" size="174,36">
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ComponentResourceManager#ComponentResourceManager(Lorg.eclipse.core.resources.IFile;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ComponentResourceManager#getClassResources()"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager&lt;-org.apache.avalon.ide.eclipse.core.resource/ComponentResourceManager"
source="//@children.2" target="//@children.1"
targetEnd="//@children.2/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.2/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="115,0" anchorKind="FixedAtEdge" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="122,281" anchorKind="FixedAtEdge"/>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" location="62,481"
size="203,157"
id="org.apache.avalon.ide.eclipse.core.resource/ProjectResourceManager"
runTimeClassModel="pluginId,createProjectResources(Lorg.apache.avalon.ide.eclipse.core.xmlmodel.ProjectModel;Lorg.apache.avalon.ide.eclipse.core.tools.DynProjectParam;),getPluginPathName()">
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <children xsi:type="editmodel:CompartmentEditModel" size="171,108">
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ProjectResourceManager#ProjectResourceManager(Lorg.eclipse.core.resources.IProject;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ProjectResourceManager#getPluginId()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ProjectResourceManager#ProjectResourceManager(Lorg.apache.avalon.ide.eclipse.core.xmlmodel.ProjectModel;Lorg.apache.avalon.ide.eclipse.core.tools.DynProjectParam;Ljava.lang.String;Ljava.lang.String;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ProjectResourceManager#getProjectModelConfiguration(Ljava.lang.String;Ljava.lang.String;)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager&lt;-org.apache.avalon.ide.eclipse.core.resource/ProjectResourceManager"
source="//@children.3" target="//@children.1"
targetEnd="//@children.3/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.3/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="101,0" anchorKind="FixedAtEdge" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="71,281" anchorKind="FixedAtEdge"/>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" location="314,481"
size="193,67"
id="org.apache.avalon.ide.eclipse.core.resource/BlockResourceManager"
runTimeClassModel="">
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <children xsi:type="editmodel:CompartmentEditModel" size="146,18">
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/BlockResourceManager#BlockResourceManager()"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager&lt;-org.apache.avalon.ide.eclipse.core.resource/BlockResourceManager"
source="//@children.4" target="//@children.1"
targetEnd="//@children.4/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.4/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="95,-1" anchorKind="FixedAtEdge" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="86,281" anchorKind="FixedAtEdge"/>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <diagramOptions xsi:type="null:ClassDiagramOptions"/>
+ <classDiagramPreferences xsi:type="editmodel:UMLClassDiagramPreference"
attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural"
showPublicAttributes="true" showPackageAttributes="true"
showPublicMethods="true" showPackageMethods="true"
showPublicInnerClasses="true" showPackageInnerClasses="true"
showInterfaceStereotype="true" showClassStereotype="true"
showPackageStereotype="true"/>
+</editmodel:ClassDiagramEditModel>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/resource/package.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/resource/package.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,17 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="de">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>Resource package</title>
+</head>
+
+<body>
+
+<p>Resource package</p>
+
+</body>
+
+</html>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/tools/package.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/tools/package.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,17 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="de">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>Resource package</title>
+</head>
+
+<body>
+
+<p>tools package</p>
+
+</body>
+
+</html>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/xmlmodel/overview.jpg
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/xmlmodel/overview.ucd
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/xmlmodel/overview.ucd
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<editmodel:ClassDiagramEditModel xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:editmodel="editmodel.xmi" xmlns:null="null" size="945,809"
id="org.apache.avalon.ide.eclipse.core.xmlmodel" metadata="nsuml-1.4"
initialized="true" scrolledY="-4">
+ <children xsi:type="editmodel:ClassEditModel"
targetConnections="//@children.5/ AT sourceConnections.0" location="62,145"
size="204,75"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModelConfiguration"
runTimeClassModel="newInstance(Lorg.apache.avalon.ide.eclipse.core.resource.XMLResource;)">
+ <children xsi:type="editmodel:CompartmentEditModel" size="181,36">
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModelConfiguration#wizards"/>
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModelConfiguration#xmlResource"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="144,54"/>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel@wizards+org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModelConfiguration@"
source="//@children.0" target="//@children.1"
targetEnd="//@children.0/ AT sourceConnections.0/ AT children.2"
label="//@children.0/ AT sourceConnections.0/ AT children.0"
sourceEnd="//@children.0/ AT sourceConnections.0/ AT children.1"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:WireLabelEditModel" size="1,14"
fontInfo="Arial-8-0" anchorKind="MiddlePart"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="203,23"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel@wizards+org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModelConfiguration@|org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModelConfiguration#"
anchorKind="FixedAtEdge" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" location="0,35"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel@wizards+org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModelConfiguration@|org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel#wizards"
anchorKind="FixedAtEdge"
multiplicityLabel="//@children.0/ AT sourceConnections.0/ AT children.2/ AT children.1"
roleLabel="//@children.0/ AT sourceConnections.0/ AT children.2/ AT children.0"
orderingLabel="//@children.0/ AT sourceConnections.0/ AT children.2/ AT children.2"
navigable="true" flags="2">
+ <children xsi:type="editmodel:LabelEditModel" size="51,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ <children xsi:type="editmodel:LabelEditModel" size="17,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ <children xsi:type="editmodel:LabelEditModel" size="35,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ </children>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel"
targetConnections="//@children.6/ AT sourceConnections.0
//@children.0/ AT sourceConnections.0" location="430,133" size="205,111"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel"
runTimeClassModel="setParameter(Lorg.apache.avalon.ide.eclipse.core.tools.DynWizardParam;),getParameter(),getDirectories(),addDirectory(Lorg.apache.avalon.ide.eclipse.core.xmlmodel.Directory;),ProjectMeta(),getImage(),setDescription(Ljava.lang.String;),setLabel(Ljava.lang.String;),getDescription(),getLabel()">
+ <children xsi:type="editmodel:CompartmentEditModel" size="182,72">
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel#label"/>
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel#description"/>
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel#directories"/>
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel#parameter"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="100,180"/>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@directories+org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel@"
source="//@children.1" target="//@children.2"
targetEnd="//@children.1/ AT sourceConnections.0/ AT children.2"
label="//@children.1/ AT sourceConnections.0/ AT children.0"
sourceEnd="//@children.1/ AT sourceConnections.0/ AT children.1"
connectionRouterKind="Manhattan">
+ <children xsi:type="editmodel:WireLabelEditModel" size="1,14"
fontInfo="Arial-8-0" anchorKind="MiddlePart"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="36,110"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@directories+org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel@|org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel#"
attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@directories+org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel@|org.apache.avalon.ide.eclipse.core.xmlmodel/Directory#directories"

multiplicityLabel="//@children.1/ AT sourceConnections.0/ AT children.2/ AT children.1"
roleLabel="//@children.1/ AT sourceConnections.0/ AT children.2/ AT children.0"
navigable="true">
+ <children xsi:type="editmodel:LabelEditModel" size="64,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ <children xsi:type="editmodel:LabelEditModel" size="17,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ </children>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel"
targetConnections="//@children.1/ AT sourceConnections.0
//@children.7/ AT sourceConnections.0" location="466,319" size="134,93"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Directory"
runTimeClassModel="setSource(Ljava.lang.Boolean;),addTemplate(Lorg.apache.avalon.ide.eclipse.core.xmlmodel.Template;),addLibrary(Lorg.apache.avalon.ide.eclipse.core.xmlmodel.Library;),getTemplates(),isSource(),Directory(),getLibraries()">
+ <children xsi:type="editmodel:CompartmentEditModel" size="111,54">
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Directory#source"/>
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Directory#templates"/>
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Directory#libraries"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="95,126"/>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Template@templates+org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@"
source="//@children.2" target="//@children.3"
targetEnd="//@children.2/ AT sourceConnections.0/ AT children.2"
label="//@children.2/ AT sourceConnections.0/ AT children.0"
sourceEnd="//@children.2/ AT sourceConnections.0/ AT children.1"
connectionRouterKind="Manhattan">
+ <children xsi:type="editmodel:WireLabelEditModel" size="1,14"
fontInfo="Arial-8-0" anchorKind="MiddlePart"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="86,93"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Template@templates+org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@|org.apache.avalon.ide.eclipse.core.xmlmodel/Directory#"
attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Template@templates+org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@|org.apache.avalon.ide.eclipse.core.xmlmodel/Template#templates"

multiplicityLabel="//@children.2/ AT sourceConnections.0/ AT children.2/ AT children.1"
roleLabel="//@children.2/ AT sourceConnections.0/ AT children.2/ AT children.0"
navigable="true">
+ <children xsi:type="editmodel:LabelEditModel" size="54,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ <children xsi:type="editmodel:LabelEditModel" size="17,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ </children>
+ </sourceConnections>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Library@libraries+org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@"
source="//@children.2" target="//@children.4"
targetEnd="//@children.2/ AT sourceConnections.1/ AT children.2"
label="//@children.2/ AT sourceConnections.1/ AT children.0"
sourceEnd="//@children.2/ AT sourceConnections.1/ AT children.1"
connectionRouterKind="Manhattan">
+ <children xsi:type="editmodel:WireLabelEditModel" size="1,14"
fontInfo="Arial-8-0" anchorKind="MiddlePart"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" location="7,93"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Library@libraries+org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@|org.apache.avalon.ide.eclipse.core.xmlmodel/Directory#"
attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Library@libraries+org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@|org.apache.avalon.ide.eclipse.core.xmlmodel/Library#libraries"

multiplicityLabel="//@children.2/ AT sourceConnections.1/ AT children.2/ AT children.1"
roleLabel="//@children.2/ AT sourceConnections.1/ AT children.2/ AT children.0"
navigable="true">
+ <children xsi:type="editmodel:LabelEditModel" size="51,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ <children xsi:type="editmodel:LabelEditModel" size="17,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ </children>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel"
targetConnections="//@children.2/ AT sourceConnections.0
//@children.9/ AT sourceConnections.0" location="613,506" size="118,57"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Template"
runTimeClassModel="getFileName(),setFileName(Ljava.lang.String;),Template()">
+ <children xsi:type="editmodel:CompartmentEditModel" size="95,18">
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Template#fileName"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="89,54"/>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel"
targetConnections="//@children.2/ AT sourceConnections.1" location="328,506"
size="103,57" id="org.apache.avalon.ide.eclipse.core.xmlmodel/Library"
runTimeClassModel="getName(),setName(Ljava.lang.String;),Library()">
+ <children xsi:type="editmodel:CompartmentEditModel" size="80,18">
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Library#name"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="73,54"/>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:IndicationEditModel"
source="//@children.4" target="//@children.8"
targetEnd="//@children.4/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.4/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="47,57" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="129,-1"/>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:NotepadEditModel" location="67,57"
size="193,52" note="Configuration object for all &#xD;&#xA;entries in the
'New Project&quot; Wizard">
+ <sourceConnections xsi:type="editmodel:IndicationEditModel"
source="//@children.5" target="//@children.0"
targetEnd="//@children.5/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.5/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="97,-1" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="100,75"/>
+ </sourceConnections>
+ </children>
+ <children xsi:type="editmodel:NotepadEditModel" location="396,51"
size="273,38" note="Represents a single entity (= a single project) in
the&#xD;&#xA;selection page of the 'New Project' Wizard.">
+ <sourceConnections xsi:type="editmodel:IndicationEditModel"
source="//@children.6" target="//@children.1"
targetEnd="//@children.6/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.6/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="134,38" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="106,-2"/>
+ </sourceConnections>
+ </children>
+ <children xsi:type="editmodel:NotepadEditModel" location="181,345"
size="208,38" note="There can be many directories within &#xD;&#xA;a new
project">
+ <sourceConnections xsi:type="editmodel:IndicationEditModel"
source="//@children.7" target="//@children.2"
targetEnd="//@children.7/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.7/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="208,18" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="-1,47"/>
+ </sourceConnections>
+ </children>
+ <children xsi:type="editmodel:NotepadEditModel"
targetConnections="//@children.4/ AT sourceConnections.0" location="255,599"
size="252,38" note="In a directory there can be many libs&#xD;&#xA;(also this
maybe quite meaningless sometimes)"/>
+ <children xsi:type="editmodel:NotepadEditModel" location="561,598"
size="221,66" note="There can be many Templates in &#xD;&#xA;one
Directory.&#xD;&#xA;Template can be of any type like Java &#xD;&#xA;source
files, xml files or simple text files.">
+ <sourceConnections xsi:type="editmodel:IndicationEditModel"
source="//@children.9" target="//@children.3"
targetEnd="//@children.9/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.9/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="104,-4" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="55,56"/>
+ </sourceConnections>
+ </children>
+ <diagramOptions xsi:type="null:ClassDiagramOptions"/>
+ <classDiagramPreferences xsi:type="editmodel:UMLClassDiagramPreference"
attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural"
showPublicAttributes="true" showPackageAttributes="true"
showPublicMethods="true" showPackageMethods="true"
showPublicInnerClasses="true" showPackageInnerClasses="true"
showInterfaceStereotype="true" showClassStereotype="true"
showPackageStereotype="true"/>
+</editmodel:ClassDiagramEditModel>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/xmlmodel/package.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/xmlmodel/package.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,17 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="de">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>Resource package</title>
+</head>
+
+<body>
+
+<p>xmlmodel package</p>
+
+</body>
+
+</html>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/merlin/core/package.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/merlin/core/package.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,17 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="de">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>Resource package</title>
+</head>
+
+<body>
+
+<p>core package</p>
+
+</body>
+
+</html>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/build.properties
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/build.properties
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,11 @@
+bin.includes = plugin.xml,\
+ *.jar,\
+ MerlinDeveloperCore.jar,\
+ lib/,\
+ docs/,\
+ toc.xml
+source.MerlinDeveloperCore.jar = src/
+src.includes = src/,\
+ toc.xml,\
+ plugin.xml,\
+ docs/

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/build.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/build.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.apache.avalon.MerlinDeveloperCore" default="build.jars"
basedir=".">
+
+ <property name="bootclasspath" value=""/>
+ <property name="basews" value="${ws}"/>
+ <property name="baseos" value="${os}"/>
+ <property name="basearch" value="${arch}"/>
+ <property name="basenl" value="${nl}"/>
+ <property name="javacFailOnError" value="false"/>
+ <property name="javacDebugInfo" value="on"/>
+ <property name="javacVerbose" value="true"/>
+ <property name="javacSource" value="1.3"/>
+ <property name="javacTarget" value="1.1"/>
+
+ <target name="init" depends="properties">
+ <property name="temp.folder" value="${basedir}/temp.folder"/>
+ <property name="plugin.destination" value="${basedir}"/>
+ <property name="build.result.folder" value="${basedir}"/>
+ </target>
+
+ <target name="properties" if="eclipse.running">
+ <property name="build.compiler"
value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+ </target>
+
+ <target name="build.update.jar" depends="init" description="Build the
plug-in: org.apache.avalon.MerlinDeveloperCore for an update site.">
+ <delete dir="${temp.folder}"/>
+ <mkdir dir="${temp.folder}"/>
+ <antcall target="build.jars"/>
+ <antcall target="gather.bin.parts">
+ <param name="destination.temp.folder"
value="${temp.folder}/"/>
+ </antcall>
+ <zip
zipfile="${plugin.destination}/org.apache.avalon.MerlinDeveloperCore_0.0.4.jar"
basedir="${temp.folder}/org.apache.avalon.MerlinDeveloperCore_0.0.4"
filesonly="false" whenempty="skip"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+
+ <target name="gather.bin.parts" depends="init"
if="destination.temp.folder">
+ <mkdir
dir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperCore_0.0.4"/>
+ <copy
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperCore_0.0.4">
+ <fileset dir="${build.result.folder}"
includes="plugin.xml,*.jar,MerlinDeveloperCore.jar,lib/,docs/,toc.xml"
/>
+ </copy>
+ <copy
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperCore_0.0.4">
+ <fileset dir="${basedir}"
includes="plugin.xml,*.jar,MerlinDeveloperCore.jar,lib/,docs/,toc.xml"
/>
+ </copy>
+ </target>
+
+ <target name="MerlinDeveloperCore.jar" depends="init"
unless="MerlinDeveloperCore.jar" description="Create jar:
MerlinDeveloperCore.jar.">
+ <delete dir="${temp.folder}/MerlinDeveloperCore.jar.bin"/>
+ <mkdir dir="${temp.folder}/MerlinDeveloperCore.jar.bin"/>
+ <!-- compile the source code -->
+ <javac destdir="${temp.folder}/MerlinDeveloperCore.jar.bin"
failonerror="${javacFailOnError}" verbose="${javacVerbose}"
debug="${javacDebugInfo}" includeAntRuntime="no"
bootclasspath="${bootclasspath}"
classpath="../../plugins/org.eclipse.core.boot_3.0.0/boot.jar;lib/xstream-0.2.jar;lib/xdoclet-1.2b4.jar;lib/xjavadoc-1.0.jar;lib/commons-collections-2.0.jar;lib/commons-lang.jar;lib/commons-logging.jar;../../plugins/org.eclipse.core.runtime_3.0.0/runtime.jar;../../plugins/org.eclipse.core.resources_3.0.0/resources.jar;../../plugins/org.eclipse.core.resources.win32_3.0.0/resources.jar;../../plugins/org.eclipse.ui_3.0.0/ui.jar;../../plugins/org.eclipse.help_3.0.0/help.jar;../../plugins/org.eclipse.swt_3.0.0/ws/${basews}/swt.jar;../../plugins/org.eclipse.swt.win32_3.0.0/ws/${basews}/swt.jar;../../plugins/org.eclipse.jface_3.0.0/jface.jar;../../plugins/org.eclipse.ui.workbench_3.0.0/workbench.jar;../../plugins/org.eclipse.jdt.core_3.0.0/jdtcore.jar;../../plugins/com.swtdesigner.fragment.jdt.core_1.2.2/jdtcore.jar;../../plugins/com.swtdesigner.fragment.jdt.core_1.2.2/designerJdtCore.jar;../../plugins/org.eclipse.text_3.0.0/text.jar;../../plugins/org.eclipse.ant.core_3.0.0/antsupport.jar;../../plugins/org.eclipse.core.variables_3.0.0/variables.jar;../../plugins/org.eclipse.team.core_3.0.0/team.jar;../../plugins/org.eclipse.jdt.launching_3.0.0/launching.jar;../../plugins/org.eclipse.debug.core_3.0.0/dtcore.jar;../../plugins/org.eclipse.jdt.debug_3.0.0/jdi.jar;../../plugins/org.eclipse.jdt.debug_3.0.0/jdimodel.jar;../../plugins/org.eclipse.jdt.debug_3.0.0/tools.jar;../../plugins/org.junit_3.8.1/junit.jar"
source="${javacSource}" target="${javacTarget}" >
+ <src path="src/" />
+ </javac>
+ <!-- copy necessary resources -->
+ <copy todir="${temp.folder}/MerlinDeveloperCore.jar.bin">
+ <fileset dir="src/" excludes="**/*.java"
/>
+ </copy>
+ <mkdir dir="${build.result.folder}"/>
+ <jar jarfile="${build.result.folder}/MerlinDeveloperCore.jar"
basedir="${temp.folder}/MerlinDeveloperCore.jar.bin"/>
+ <delete dir="${temp.folder}/MerlinDeveloperCore.jar.bin"/>
+ </target>
+
+ <target name="MerlinDeveloperCoresrc.zip" depends="init"
unless="MerlinDeveloperCoresrc.zip">
+ <mkdir dir="${build.result.folder}"/>
+ <zip
zipfile="${build.result.folder}/MerlinDeveloperCoresrc.zip" filesonly="false"
whenempty="skip">
+ <fileset dir="src/" includes="**/*.java"
/>
+ </zip>
+ </target>
+
+ <target name="build.jars" depends="init" description="Build all the
jars for the plug-in: org.apache.avalon.MerlinDeveloperCore.">
+ <available property="MerlinDeveloperCore.jar"
file="${build.result.folder}/MerlinDeveloperCore.jar"/>
+ <antcall target="MerlinDeveloperCore.jar"/>
+ </target>
+
+ <target name="build.sources" depends="init">
+ <available property="MerlinDeveloperCoresrc.zip"
file="${build.result.folder}/MerlinDeveloperCoresrc.zip"/>
+ <antcall target="MerlinDeveloperCoresrc.zip"/>
+ </target>
+
+ <target name="build.zips" depends="init">
+ </target>
+
+ <target name="gather.sources" depends="init"
if="destination.temp.folder">
+ <mkdir
dir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperCore_0.0.4"/>
+ <copy
file="${build.result.folder}/MerlinDeveloperCoresrc.zip"
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperCore_0.0.4"/>
+ <copy
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperCore_0.0.4">
+ <fileset dir="${basedir}"
includes="src/,toc.xml,plugin.xml,docs/" />
+ </copy>
+ </target>
+
+ <target name="gather.logs" depends="init"
if="destination.temp.folder">
+ <mkdir
dir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperCore_0.0.4"/>
+ <copy file="${temp.folder}/MerlinDeveloperCore.jar.bin.log"
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperCore_0.0.4"/>
+ </target>
+
+ <target name="clean" depends="init" description="Clean the plug-in:
org.apache.avalon.MerlinDeveloperCore of all the zips, jars and logs
created.">
+ <delete
file="${build.result.folder}/MerlinDeveloperCore.jar"/>
+ <delete
file="${build.result.folder}/MerlinDeveloperCoresrc.zip"/>
+ <delete
file="${plugin.destination}/org.apache.avalon.MerlinDeveloperCore_0.0.4.jar"/>
+ <delete
file="${plugin.destination}/org.apache.avalon.MerlinDeveloperCore_0.0.4.zip"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+
+ <target name="refresh" depends="init" if="eclipse.running"
description="Refresh this folder.">
+ <eclipse.convertPath
fileSystemPath="C:/develop/eclipse/workspace/org.apache.avalon.ide.eclipse.core/"
property="resourcePath"/>
+ <eclipse.refreshLocal
resource="org.apache.avalon.MerlinDeveloperCore" depth="infinite"/>
+ </target>
+
+ <target name="zip.plugin" depends="init" description="Create a zip
containing all the elements for the plug-in:
org.apache.avalon.MerlinDeveloperCore.">
+ <delete dir="${temp.folder}"/>
+ <mkdir dir="${temp.folder}"/>
+ <antcall target="build.jars"/>
+ <antcall target="build.sources"/>
+ <antcall target="gather.bin.parts">
+ <param name="destination.temp.folder"
value="${temp.folder}/"/>
+ </antcall>
+ <antcall target="gather.sources">
+ <param name="destination.temp.folder"
value="${temp.folder}/"/>
+ </antcall>
+ <delete>
+ <fileset dir="${temp.folder}" includes="**/*.bin.log"
/>
+ </delete>
+ <zip
zipfile="${plugin.destination}/org.apache.avalon.MerlinDeveloperCore_0.0.4.zip"
basedir="${temp.folder}" filesonly="true" whenempty="skip"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+
+</project>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/book.css
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/book.css
Fri Apr 8 13:52:15 2005
@@ -0,0 +1 @@
+P.Code {
display: block;
text-align: left;
text-indent: 0.00pt;
margin-top: 0.000000pt;
margin-bottom: 0.000000pt;
margin-right: 0.000000pt;
margin-left: 15pt;
font-size: 10.000000pt;
font-weight: medium;
font-style: Regular;
color: #4444CC;
text-decoration: none;
vertical-align: baseline;
text-transform: none;
font-family: "Courier New";
}
H6.CaptionFigColumn {
display: block;
text-align: left;
text-indent: 0.000000pt;
margin-top: 3.000000pt;
margin-bottom: 11.000000pt;
margin-right: 0.000000pt;
margin-left: 0.000000pt;
font-size: 9.000000pt;
font-weight: medium;
font-style: Italic;
color: #000000;
text-decoration: none;
vertical-align: baseline;
text-transform: none;
font-family: "Arial";
}
P.Note {
display: block;
text-align: left;
text-indent: 0pt;
margin-top: 19.500000pt;
margin-bottom: 19.500000pt;
margin-right: 0.000000pt;
margin-left: 30pt;
font-size: 11.000000pt;
font-weight: medium;
font-style: Italic;
color: #000000;
text-decoration: none;
vertical-align: baseline;
text-transform: none;
font-family: "Arial";
}
EM.UILabel {
font-weight: Bold;
font-style: Regular;
text-decoration: none;
vertical-align: baseline;
text-transform: none;
}
EM.CodeName {
font-weight: Bold;
font-style: Regular;
text-decoration: none;
vertical-align: baseline;
text-transform: none;
font-family:"Courier New";
}




/* following font face declarations need to be removed for DBCS */

body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd,
dt {font-family: Arial, Helvetica, sans-serif; color: #000000}
pre { font-family: Courier, monospace}

/* end font face declarations */

/* following font size declarations should be OK for DBCS */
body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd,
dt {font-size: 10pt; }
pre { font-size: 10pt}

/* end font size declarations */

body { background: #FFFFFF}
h1 { font-size: 18pt; margin-top: 5; margin-bottom: 1 }
h2 { font-size: 14pt; margin-top: 25; margin-bottom: 3 }
h3 { font-size: 11pt; margin-top: 20; margin-bottom: 3 }
h4 { font-size: 10pt; margin-top: 20; margin-bottom: 3; font-style:
italic }
p { margin-top: 10px; margin-bottom: 10px }
pre { margin-left: 6; font-size: 9pt }
a:link { color: #0000FF }
a:hover { color: #000080 }
a:visited { text-decoration: underline }
ul { margin-top: 0; margin-bottom: 10 }
li { margin-top: 0; margin-bottom: 0 }
li p { margin-top: 0; margin-bottom: 0 }
ol { margin-top: 0; margin-bottom: 10 }
dl { margin-top: 0; margin-bottom: 10 }
dt { margin-top: 0; margin-bottom: 0; font-weight: bold }
dd { margin-top: 0; margin-bottom: 0 }
strong { font-weight: bold}
em { font-style: italic}
var { font-style: italic}
div.revision { border-left-style: solid; border-left-width: thin;
border-left-color: #7B68EE; padding-left:5
}
th { font-weight: bold }
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/concepts/maintopic.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/concepts/maintopic.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,20 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 23:00:31 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 23:00:31 -0000
+vti_cacheddtm:TX|15 Jan 2004 23:00:31 -0000
+vti_filesize:IR|271
+vti_cachedtitle:SR|Main Topic
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=iso-8859-1
+vti_charset:SR|windows-1252
+vti_title:SR|Main Topic
+vti_lineageid:SR|{723B9D53-A849-4696-8A33-3E4B7F18A940}
+vti_backlinkinfo:VX|
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 23:00:31 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/concepts/merlincontainer.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/concepts/merlincontainer.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,20 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 23:00:30 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 23:00:30 -0000
+vti_cacheddtm:TX|15 Jan 2004 23:00:30 -0000
+vti_filesize:IR|269
+vti_cachedtitle:SR|Sub Topic
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=iso-8859-1
+vti_charset:SR|windows-1252
+vti_title:SR|Sub Topic
+vti_lineageid:SR|{EBD14EA5-1FEB-4AB3-9C84-78835F8FFB6F}
+vti_backlinkinfo:VX|
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 23:00:30 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/concepts/merlindeveloper.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/concepts/merlindeveloper.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,20 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 23:00:32 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 23:00:32 -0000
+vti_cacheddtm:TX|15 Jan 2004 23:00:32 -0000
+vti_filesize:IR|273
+vti_cachedtitle:SR|Sub Topic 2
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=iso-8859-1
+vti_charset:SR|windows-1252
+vti_title:SR|Sub Topic 2
+vti_lineageid:SR|{B5A4CD1B-2C72-4D28-8E63-0DEF29289FC1}
+vti_backlinkinfo:VX|
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 23:00:32 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/desktop.ini
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/desktop.ini
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,5 @@
+[.ShellClassInfo]
+IconFile=_vti_pvt/fpdbw.ico
+IconIndex=0
+ConfirmFileOp=0
+InfoTip=Stores your local web site

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/downloads/.cvsignore
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/downloads/.cvsignore
Fri Apr 8 13:52:15 2005
@@ -0,0 +1 @@
+*.zip

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/about_dialog.jpg
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/about_menu.jpg
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/dependentcomponenttutorial.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/dependentcomponenttutorial.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,20 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 22:59:55 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 22:59:55 -0000
+vti_cacheddtm:TX|15 Jan 2004 22:59:55 -0000
+vti_filesize:IR|273
+vti_cachedtitle:SR|Sub Topic 2
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=iso-8859-1
+vti_charset:SR|windows-1252
+vti_title:SR|Sub Topic 2
+vti_lineageid:SR|{C25FA09F-DA7C-4E4D-8CD4-B0788E2AFF3A}
+vti_backlinkinfo:VX|
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 22:59:55 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/helloworldtutorial.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/helloworldtutorial.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,54 @@
+<html">
+
+<head>
+<meta http-equiv="Content-Language" content="de">
+<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252"><title>New Page 1</title>
+<LINK REL="stylesheet" HREF="../book.css" CHARSET="ISO-8859-1"
TYPE="text/css">
+</head>
+
+<body>
+
+<table border="0" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
+ <tr>
+ <td width="100%" style="border-left-width: 1; border-right-width: 1;
border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1">
+ <img border="0" src="../icons/apache_avalon.gif" vspace="7" width="372"
height="48"></td>
+ </tr>
+</table>
+
+
+<h1>&nbsp;</h1>
+<h1><span lang="en-us">Creating the &quot;Hello World&quot;
component</span></h1>
+
+
+<p>&nbsp;</p>
+<p><span lang="en-us">For creating and running our first simple component we
first create a new
+project named &quot;Hello World&quot;.</span></p>
+<p><span lang="en-us">Please follow the instructions for creating a
+<a href="../tasks/createproject.html">new MerlinContainer project</a>.
</span> </p>
+<p>&nbsp;</p>
+<p><span lang="en-us">After you have created the project, you should see a
project structure like
+this:</span></p>
+<p><img border="0" src="../icons/PackageView.gif" width="347"
height="228"></p>
+<p>&nbsp;</p>
+<p><span lang="en-us">After you have created the new project with the
</span>&quot;<span lang="en-us">Hello World</span>&quot;<span lang="en-us">
Component, you
+now should run the component.</span></p>
+<p>&nbsp;</p>
+<p><span lang="en-us">This is done by opening the &quot;run / run as...
&quot; Action Button</span>.</p>
+<p><span lang="en-us">Now select the &quot;Merlin Container&quot; item and
the &quot;Hello World&quot; component will
+start. </span> </p>
+<p>&nbsp;</p>
+<p><img border="0" src="../icons/run_as.gif" width="466" height="216"></p>
+<p>&nbsp;</p>
+<p><span lang="en-us">You will see the output of the component in the
Console view.</span></p>
+<p>
+<img border="0" src="../icons/Consol_run_output.gif" width="762"
height="825"></p>
+<p>&nbsp;</p>
+<p><span lang="en-us">In the next step we will change small peaces in code
to get closer to the
+principles of the Merlin Container.</span></p>
+<p>&nbsp;</p>
+<p><span lang="en-us">&nbsp; </span> </p>
+
+
+</body>
+
+</html>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/installation.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/installation.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,22 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 22:59:53 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 22:59:53 -0000
+vti_cacheddtm:TX|15 Jan 2004 22:59:53 -0000
+vti_filesize:IR|283
+vti_cachedtitle:SR|New Page 0
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|GENERATOR Microsoft\\ FrontPage\\ 5.0 ProgId
FrontPage.Editor.Document HTTP-EQUIV=Content-Type text/html;\\
charset=windows-1252
+vti_charset:SR|windows-1252
+vti_progid:SR|FrontPage.Editor.Document
+vti_generator:SR|Microsoft FrontPage 5.0
+vti_title:SR|New Page 0
+vti_lineageid:SR|{A6811642-122D-4EC7-AFA1-F5F38409E20D}
+vti_backlinkinfo:VX|
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 22:59:53 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/maintopic.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/maintopic.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,20 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 22:59:52 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 22:59:52 -0000
+vti_cacheddtm:TX|15 Jan 2004 22:59:52 -0000
+vti_filesize:IR|271
+vti_cachedtitle:SR|Main Topic
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=iso-8859-1
+vti_charset:SR|windows-1252
+vti_title:SR|Main Topic
+vti_lineageid:SR|{73A7D0F8-39F8-4C20-95CA-6568BE45EC3C}
+vti_backlinkinfo:VX|
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 22:59:52 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/systemrequirements.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/systemrequirements.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,56 @@
+<html">
+
+<head>
+<meta http-equiv="Content-Language" content="de">
+<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252"><title>New Page 1</title>
+<LINK REL="stylesheet" HREF="../book.css" CHARSET="ISO-8859-1"
TYPE="text/css">
+</head>
+
+<body>
+
+<table border="0" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
+ <tr>
+ <td width="100%" style="border-left-width: 1; border-right-width: 1;
border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1">
+ <img border="0" src="../icons/apache_avalon.gif" vspace="7" width="372"
height="48"></td>
+ </tr>
+</table>
+
+
+<h1>&nbsp;</h1>
+<h1><span lang="en-us">System Requirements</span></h1>
+
+
+<p style="margin-top: 20px"><span lang="en-us">MerlinDeveloper is developed
on
+an NT/2000/XP basis. Also MerlinDeveloper should run on all other operating
<br>
+systems on which the Eclipse environment is available it is not tested
yet.</span></p>
+
+
+<p><span lang="en-us">If anybody is testing
+MerlinDeveloper on other platforms, please let us know whether you
succeeded.</span></p>
+
+
+<p><span lang="en-us">MerlinDeveloper is tested on
+the following Eclipse Versions:</span></p>
+
+
+<ul>
+ <li><span lang="en-us">Eclipse 2.</span>0.x</li>
+ <li>Eclipse 2.1.x</li>
+ <li><span lang="en-us">Eclipse 3.0 (M5)</span></li>
+ <li><span lang="en-us">Eclipse 3.0 (M6) Build: I20040121. Because of too
many
+ bugs the official M6 distribution is not recommended!</span></li>
+</ul>
+<p>&nbsp;</p>
+<p>Right now, MerlinDeveloper is only running with JDK1.4 or higher.&nbsp;
</p>
+<p><span lang="en-us">Tests with IBM JDKs are on the way.</span></p>
+<p><span lang="en-us">&nbsp;</span></p>
+<p><span lang="en-us"><b>Note: </b>Either if you
+start MerlinDeveloper the first time or you create your first Merlin
Container
+project, you have to be connected to the internet! This is because of a
+repository service of Merlin, which automatically reloads all needed
resources
+from a central repository over the internet.</span></p>
+
+
+</body>
+
+</html>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/updatemanagerinstallation.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/updatemanagerinstallation.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,67 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="de">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<LINK REL="stylesheet" HREF="../book.css" CHARSET="ISO-8859-1"
TYPE="text/css">
+<title>New Page 1</title>
+</head>
+
+<body>
+
+<table border="0" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
+ <tr>
+ <td width="100%" style="border-left-width: 1; border-right-width: 1;
border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1">
+ <img border="0" src="../icons/apache_avalon.gif" vspace="7" width="372"
height="48"></td>
+ </tr>
+</table>
+
+<h1>&nbsp;</h1>
+
+
+<h1><span lang="en-us">Installation (Update Manager, Eclipse 3.0) </span>
</h1>
+<p><span lang="en-us">Eclipse has got a very comfortable update manager,
through
+which you can install new software very easily.</span></p>
+<p><span lang="en-us">An other advantage of the Update Manger is that you
can
+check if there are new or updated software modules of your loaded plugins
+available. You can than download and install those modules with the Update
+Manager without downloading the whole Plugin again.</span></p>
+<p>&nbsp;</p>
+<p><span lang="en-us">Please open the &quot;Install/Update&quot;
Manager...</span></p>
+<p><span lang="en-us"><img border="0" src="../icons/update1.gif" width="344"
height="139"></span></p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p><span lang="en-us">and select &quot;Search for new features to
install&quot;.</span></p>
+<p><span lang="en-us"><img border="0" src="../icons/update2.jpg" width="427"
height="250"></span></p>
+<p><span lang="en-us">Please press &quot;next&quot;.</span></p>
+<p><span lang="en-us">You will enter the wizard page, which shows all
currently available
+Update Sites. If you open the Update Manger the first time this page will
empty.</span></p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+<p><span lang="en-us">Now press the &quot;Add Update Site...&quot;
button...</span></p>
+<p><img border="0" src="../icons/update3.gif" width="356" height="132"></p>
+<p><span lang="en-us">and enter the name and the url of MerlinDevelopers
Update
+Site as shown above.</span></p>
+<p>&nbsp;</p>
+<p><span lang="en-us">After pressing Ok, you should see something like
this...</span></p>
+<p><img border="0" src="../icons/update4.gif" width="600" height="500"></p>
+<p><span lang="en-us">If you open the Node in the TreeView, the Update
Manager will connect to the
+Update Site. The &quot;Next&quot; button will be enabled if the connection
is established.</span></p>
+<p><span lang="en-us">Please select the checkbox &quot;Other&quot;</span></p>
+<p><span lang="en-us">Pressing the &quot;Next&quot; button will switch to
the next
+Wizard Page and show all
+available versions of MerlinDeveloper.</span></p>
+<p>&nbsp;</p>
+<p><span lang="en-us">Select the feature and the version you want to
install.</span></p>
+<p><span lang="en-us"><img border="0" src="../icons/update5.jpg" width="621"
height="429"></span></p>
+<p><span lang="en-us">Pressing &quot;Next&quot; will lead you through the
installation process.</span></p>
+<p><span lang="en-us">After finishing the installation process you will be
asked to restart your
+Eclipse installation. </span> </p>
+<p>&nbsp;</p>
+
+
+</body>
+
+</html>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/updatemanagerinstallation2x.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/updatemanagerinstallation2x.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,86 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="de">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<LINK REL="stylesheet" HREF="../book.css" CHARSET="ISO-8859-1"
TYPE="text/css">
+<title>New Page 1</title>
+</head>
+
+<body>
+
+<table border="0" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
+ <tr>
+ <td width="100%" style="border-left-width: 1; border-right-width: 1;
border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1">
+ <img border="0" src="../icons/apache_avalon.gif" vspace="7" width="372"
height="48"></td>
+ </tr>
+</table>
+
+<h1>&nbsp;</h1>
+
+
+<h1><span lang="en-us">Installation (Update Manager, Eclipse </span> 2<span
lang="en-us">.</span>x<span lang="en-us">) </span> </h1>
+
+
+<p>To install MerlinDeveloper in Eclipse 2.x, you have to open the Update
Manger
+from the Help menue as shown below.</p>
+
+
+<p><img border="0" src="../icons/update_open_2x.gif" width="312"
height="197"></p>
+
+
+<p>This will open the Update Manager perspective.</p>
+
+
+<p>Here you should add the MerlinDeveloper Update Site by open the &quot;New
/ Site
+Bookmark...&quot; Dialog.</p>
+
+
+<p>
+<img border="0" src="../icons/update_manager_2x.gif" width="389"
height="418"></p>
+
+
+<p>&nbsp;</p>
+
+
+<p>Please enter the Update Site as shown below.</p>
+
+
+<p><img border="0" src="../icons/site_bookmark_2x.gif" width="438"
height="581"></p>
+
+
+<p>&nbsp;</p>
+
+
+<p>Now this bookmark will be shown in the &quot;Feature Updates&quot;
browser.</p>
+
+
+<p>
+<img border="0" src="../icons/update_feature_2x.gif" width="753"
height="584"></p>
+
+
+<p>&nbsp;</p>
+
+
+<p>Pressing the install button will start the download process. After
+successfuly installed, you will be asked to restart the workbench.</p>
+
+
+<p>After restart, you could check the installation as shown in the &quot;<a
href="zipfileinstallation.html">.zip
+distribution</a>&quot; section.</p>
+
+
+<p>&nbsp;</p>
+
+
+<p>&nbsp;</p>
+
+
+<p>&nbsp;</p>
+
+
+</body>
+
+</html>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/zipfileinstallation.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted/zipfileinstallation.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,80 @@
+
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="de">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<LINK REL="stylesheet" HREF="../book.css" CHARSET="ISO-8859-1"
TYPE="text/css">
+<title>New Page 1</title>
+</head>
+
+<body>
+
+<table border="0" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
+ <tr>
+ <td width="100%" style="border-left-width: 1; border-right-width: 1;
border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1">
+ <img border="0" src="../icons/apache_avalon.gif" vspace="7" width="372"
height="48"></td>
+ </tr>
+</table>
+
+<h1>&nbsp;</h1>
+
+<h1><span lang="en-us">Installation (.zip Distribution)</span></h1>
+
+<p><span lang="en-us">You can download the binary installation of
MerlinDeveloper
+<a href="../downloads/MerlinDeveloper_0.0.2.zip">here</a>.</span></p>
+<p style="margin-top: 20px"><span lang="en-us">To install MerlinDeveloper
through our downloadable .zip file, please proceed
+with the following steps:</span></p>
+<ol>
+ <li><span lang="en-us">Please make sure, that you have installed a valid
+ eclipse version. (see <a href="systemrequirements.html">System
Requirements</a>).</span></li>
+ <li>
+ <p style="margin-top: 20"><span lang="en-us">Extract the content of the
.zip archive 'MerlinDeveloper_[version].zip'
+ into directory $ECLIPSE_HOME$</span>/plugins<span lang="en-us">, where
$ECLIPSE_HOME$ is the directory where
+ Eclipse is installed.&nbsp;&nbsp; <br>
+ In Windows, this is usually C:\Eclipse<br>
+ &nbsp; </span> </li>
+ <li><span lang="en-us">Start Eclipse - if Eclipse is already running,
please restart Eclipse.<br>
+ &nbsp; </span> </li>
+ <li><span lang="en-us">After you have restarted Eclipse you can check that
MerlinDeveloper was successfully installed and loaded.<br>
+ <br>
+ &nbsp;</span><p><span lang="en-us">First open the &quot;About
Dialog&quot;.<br>
+ &nbsp; </span>
+ </p>
+ <table id="AutoNumber1" style="BORDER-COLLAPSE: collapse"
borderColor="#111111" cellSpacing="0" cellPadding="0" border="0" width="749">
+ <tr>
+ <td width="144">
+ <span lang="en-us">
+ <img border="0" src="about_menu.jpg" width="169"
height="122"></span></td>
+ <td width="32">&nbsp;</td>
+ <td width="400">
+ <p style="margin-top: 0"><span lang="en-us">Select the menu item
<b>Help &gt; About</b> <br>
+ &nbsp;</span></td>
+ </tr>
+ </table>
+ <p>&nbsp;<p>&nbsp;<p>&nbsp;<p><span lang="en-us">Please press <b>Plug-in
Details</b> button in About dialog. <br>
+ &nbsp;</span><p><span lang="en-us"><img border="0"
src="../icons/AboutDialog.gif" width="472" height="346"></span><p>&nbsp;<p>
+ <span lang="en-us">Now you should see this list:</span><p>
+ &nbsp;<p><span lang="en-us">&nbsp;<img border="0"
src="../icons/Plug-in-list.gif" width="599" height="111"></span></li>
+</ol>
+<p>&nbsp;</p>
+<p><span lang="en-us">If you don�t see those MerlinDeveloper Plug-ins in the
list:</span></p>
+<ol type="a">
+ <li><span lang="en-us">Check that you have installed the correct version
of MerlinDeveloper for
+ the version of Eclipse that you are using.<br>
+ &nbsp; </span> </li>
+ <li><span lang="en-us">Check for error messages in
file:&nbsp;&nbsp;&nbsp;&nbsp; $ECLIPSE_HOME$\workspace\.metadata\.log
+ <br>
+ &nbsp; </span> </li>
+ <li><span lang="en-us">Shutdown Eclipse, delete this file, start Eclipse
again, and try to use
+ MerlinDeveloper.&nbsp; <br>
+ This process will remove old error messages and only include messages
about
+ the MerlinDeveloper or Eclipse loading process in the file listed above..
+ </span> </li>
+</ol>
+
+</body>
+
+</html>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/AboutDialog.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/Consol_run_output.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/NewProject.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/NewProjectDetails.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/NewProjectPage.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/NewProjectSelection.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/PackageView.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/Plug-in-list.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/apache_avalon.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/context_help.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/context_help_done.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/main_preference.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/process_update_2x.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/run_as.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/selected_updates_2x.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/site_bookmark_2x.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update1.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update2.jpg
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update3.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update4.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update5.jpg
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update_feature_2x.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update_manager_2x.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons/update_open_2x.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/index.htm
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/index.htm
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,80 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1"><title>New Page 1</title>
+ <style>
+<!--
+h1 { font-family: Arial; font-size: 18pt; font-weight: bold }
+p { font-family: Arial; font-size: 10pt }
+ol { font-family: Arial; font-size: 10pt }
+ul { font-family: Arial; font-size: 10pt }
+-->
+ </style>
+
+</head>
+
+<body>
+
+<table border="0" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
+ <tr>
+ <td width="100%" style="border-left-width: 1; border-right-width: 1;
border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1">
+ <img border="0" src="icons/apache_avalon.gif" vspace="7" width="372"
height="48"></td>
+ </tr>
+</table>
+
+&nbsp;<h1>MerlinDeveloper</h1>
+
+<ul>
+ <li>What's new<ul>
+ <li><a href="whatsnew/version004.html">Version 0.0.4</a></li>
+</ul>
+
+ </li>
+ <li>Getting Started<ul>
+ <li>Installation<ul>
+ <li><a href="gettingstarted/systemrequirements.html">System
Requirements</a></li>
+ <li><a href="gettingstarted/zipfileinstallation.html">Installation (.zip
+ Distribution)</a></li>
+ <li><a href="gettingstarted/updatemanagerinstallation.html">Installation
+ (UpdateManager, Eclipse 3.0)</a></li>
+ <li><a
href="gettingstarted/updatemanagerinstallation2x.html">Installation
(UpdateManager, Eclipse 2.x)</a></li>
+ </ul>
+ </li>
+ <li>HelloWorld Tutorial<ul>
+ <li><a href="gettingstarted/helloworldtutorial.html">Creating and
launching the HelloWorld Component</a></li>
+ <li>&quot;Playing&quot; with the HelloWorld Component</li>
+ </ul>
+ </li>
+ <li>Dependent
+ Components Tutorial</li>
+ </ul>
+ </li>
+ <li>Concepts<ul>
+ <li>Merlin Container</li>
+ <li>MerlinDeveloper</li>
+ </ul>
+ </li>
+ <li>Tasks / UseCases<ul>
+ <li><a href="tasks/CreateProject.html">Create a new Project</a></li>
+ <li>Create a new ProjectTemplate</li>
+ <li>Launching a block</li>
+ <li>Add a new component</li>
+ </ul>
+ </li>
+ <li>Reference<ul>
+ <li>Programmers Reference</li>
+ <li>Technical Reference (Plugin)</li>
+ <li>Technical Reference
+ (Container) </li>
+ </ul>
+ </li>
+ <li>ApplicationSamples<ul>
+ <li>WebServer Example</li>
+ <li>AddressBook Example</li>
+ </ul>
+ </li>
+</ul>
+
+</body>
+
+</html>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference/maintopic.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference/maintopic.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,20 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 23:00:19 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 23:00:19 -0000
+vti_cacheddtm:TX|15 Jan 2004 23:00:19 -0000
+vti_filesize:IR|271
+vti_cachedtitle:SR|Main Topic
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=iso-8859-1
+vti_charset:SR|windows-1252
+vti_title:SR|Main Topic
+vti_lineageid:SR|{B91B28E8-9253-4C4B-BB10-895EE8395A57}
+vti_backlinkinfo:VX|
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 23:00:19 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference/programmersreference.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference/programmersreference.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,20 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 23:00:16 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 23:00:16 -0000
+vti_cacheddtm:TX|15 Jan 2004 23:00:16 -0000
+vti_filesize:IR|269
+vti_cachedtitle:SR|Sub Topic
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=iso-8859-1
+vti_charset:SR|windows-1252
+vti_title:SR|Sub Topic
+vti_lineageid:SR|{9F089A36-7BE5-432A-98C2-6431E272380C}
+vti_backlinkinfo:VX|
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 23:00:16 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference/technicalreference.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference/technicalreference.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,20 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 23:00:17 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 23:00:17 -0000
+vti_cacheddtm:TX|15 Jan 2004 23:00:17 -0000
+vti_filesize:IR|273
+vti_cachedtitle:SR|Sub Topic 2
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=iso-8859-1
+vti_charset:SR|windows-1252
+vti_title:SR|Sub Topic 2
+vti_lineageid:SR|{07A11CD9-CEC6-4122-96D9-707184B36B2F}
+vti_backlinkinfo:VX|
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 23:00:17 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference/technicalreferencecontainer.htm
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference/technicalreferencecontainer.htm
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,22 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 23:00:18 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 23:00:18 -0000
+vti_cacheddtm:TX|15 Jan 2004 23:00:18 -0000
+vti_filesize:IR|279
+vti_cachedtitle:SR|New Page 0
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|GENERATOR Microsoft\\ FrontPage\\ 5.0 ProgId
FrontPage.Editor.Document HTTP-EQUIV=Content-Type text/html;\\
charset=windows-1252
+vti_charset:SR|windows-1252
+vti_progid:SR|FrontPage.Editor.Document
+vti_generator:SR|Microsoft FrontPage 5.0
+vti_title:SR|New Page 0
+vti_lineageid:SR|{E82A7B3F-0ADC-4A91-AB05-2DDDD5C056F6}
+vti_backlinkinfo:VX|
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 23:00:18 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/samples/maintopic.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/samples/maintopic.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,20 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 23:00:24 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 23:00:24 -0000
+vti_cacheddtm:TX|15 Jan 2004 23:00:24 -0000
+vti_filesize:IR|271
+vti_cachedtitle:SR|Main Topic
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=iso-8859-1
+vti_charset:SR|windows-1252
+vti_title:SR|Main Topic
+vti_lineageid:SR|{80D54946-5ACE-4FEA-9AE4-A972665DAC11}
+vti_backlinkinfo:VX|
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 23:00:24 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/samples/persistenceexample.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/samples/persistenceexample.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,20 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 23:00:21 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 23:00:21 -0000
+vti_cacheddtm:TX|15 Jan 2004 23:00:21 -0000
+vti_filesize:IR|273
+vti_cachedtitle:SR|Sub Topic 2
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=iso-8859-1
+vti_charset:SR|windows-1252
+vti_title:SR|Sub Topic 2
+vti_lineageid:SR|{4C84EF17-7332-4FF9-BECB-46A8ACEC65FA}
+vti_backlinkinfo:VX|gettingstarted/zipfileinstallation.html
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 23:00:21 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/samples/webserverexample.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/samples/webserverexample.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,20 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 23:00:23 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 23:00:23 -0000
+vti_cacheddtm:TX|15 Jan 2004 23:00:23 -0000
+vti_filesize:IR|269
+vti_cachedtitle:SR|Sub Topic
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=iso-8859-1
+vti_charset:SR|windows-1252
+vti_title:SR|Sub Topic
+vti_lineageid:SR|{99026178-90CF-49FE-B065-07CCFD4CDE1E}
+vti_backlinkinfo:VX|
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 23:00:23 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/tasks/createproject.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/tasks/createproject.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
+ <title>Create a new Merlin Project</title>
+ <style>
+<!--
+h1 { font-family: Arial; font-size: 18pt; font-weight: bold }
+p { font-family: Arial; font-size: 10pt }
+ol { font-family: Arial; font-size: 10pt }
+-->
+ </style>
+</head>
+
+<body>
+
+<table border="0" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
+ <tr>
+ <td width="100%" style="border-left-width: 1; border-right-width: 1;
border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1">
+ <img border="0" src="../icons/apache_avalon.gif" vspace="7" width="372"
height="48"></td>
+ </tr>
+</table>
+
+&nbsp;<h1><span lang="en-us">Creating your first Merlin project </span></h1>
+<p><span lang="en-us">In this section, you will create a new Merlin
project.&nbsp;
+</span></p>
+<ol>
+ <li><span lang="en-us">Select the menu item <strong>File &gt; New &gt;
Project...</strong>.
+ to open the <strong>New Project</strong> wizard.</span></li>
+</ol>
+<p><span lang="en-us">
+<img border="0" src="../icons/NewProject.gif" width="500"
height="500"></span></p>
+<p><span lang="en-us">Now enter the projects name. This is done exactly the
same
+way, as you do it with normal Java projects.</span></p>
+<p><span lang="en-us">
+<img border="0" src="../icons/NewProjectPage.gif" width="500"
height="500"></span></p>
+<p><span lang="en-us">With the next page you can select the type of project
you
+would like to start with.</span></p>
+<p><span lang="en-us"><b>Note:</b> You always may change the project
contents in
+any direction you want. The &quot;New project&quot; wizard only helps you
getting started
+as fast as possible. You can also take those project types as examples and
+getting familiar to certain aspects of the Merlin Container.</span></p>
+<p><span lang="en-us">
+<img border="0" src="../icons/NewProjectSelection.gif" width="500"
height="500"></span></p>
+<p><span lang="en-us">With Version 0.0.1 of Merlin Developer, initially
three
+types of Merlin projects are delivered, which are explained in detail
later.</span></p>
+<p><span lang="en-us">Note: Those project types are fully customizable, so
that
+you may create your own in detail projects or adopt them to your enterprise
+standards. How to customize the project types is described here.</span></p>
+<p><span lang="en-us">Now to the three &quot;ready to go&quot; project
types:</span></p>
+<ol>
+ <li><span lang="en-us">Empty project</span></li>
+ <li><span lang="en-us">Simple Component</span></li>
+ <li><span lang="en-us">Dependent Components&nbsp; </span></li>
+</ol>
+<p><span lang="en-us">
+<img border="0" src="../icons/NewProjectDetails.gif" width="500"
height="500"></span></p>
+<p><span lang="en-us">If you press &quot;Finish&quot; the complete Project -
aligned with
+your selected type - will be created for you.</span></p>
+<p>&nbsp;</p>
+<p>You should see now a new project with the following structure:</p>
+<p><img border="0" src="../icons/PackageView.gif" width="347"
height="228"></p>
+<p>&nbsp;</p>
+<p><span lang="en-us">Internally allot of things are </span>generated <span
lang="en-us">by the wizard for you. If
+you want to know more of the internal, please go to the Reference
section.</span></p>
+<p>&nbsp;</p>
+<p>&nbsp;</p>
+</body>
+</html>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/tasks/createprojecttemplates.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/tasks/createprojecttemplates.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,20 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 22:58:51 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 22:58:51 -0000
+vti_cacheddtm:TX|15 Jan 2004 22:58:51 -0000
+vti_filesize:IR|273
+vti_cachedtitle:SR|Sub Topic 2
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=iso-8859-1
+vti_charset:SR|windows-1252
+vti_title:SR|Sub Topic 2
+vti_lineageid:SR|{21A0AE87-4A33-4766-ABE0-D52EB6026985}
+vti_backlinkinfo:VX|
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 22:58:51 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/tasks/maintopic.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/tasks/maintopic.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,20 @@
+vti_encoding:SR|utf8-nl
+vti_timelastmodified:TR|15 Jan 2004 22:58:49 -0000
+vti_extenderversion:SR|5.0.2.2623
+vti_author:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_modifiedby:SR|LAPPY-DEVELOP\\Andreas Develop
+vti_timecreated:TR|15 Jan 2004 22:58:49 -0000
+vti_cacheddtm:TX|15 Jan 2004 22:58:49 -0000
+vti_filesize:IR|271
+vti_cachedtitle:SR|Main Topic
+vti_cachedbodystyle:SR|<body>
+vti_cachedneedsrewrite:BR|false
+vti_cachedhasbots:BR|false
+vti_cachedhastheme:BR|false
+vti_cachedhasborder:BR|false
+vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=iso-8859-1
+vti_charset:SR|windows-1252
+vti_title:SR|Main Topic
+vti_lineageid:SR|{3CB3521E-CCED-4B15-B433-35F916188A71}
+vti_backlinkinfo:VX|
+vti_syncwith_www.merlin.softwarefabrik.biz\:80:TW|15 Jan 2004 22:58:49 -0000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/toc.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/toc.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
+ <title>Table of Contents</title>
+</head>
+
+<body>
+<h1>Table of Contents</h1>
+Please enter your text here.
+</body>
+</html>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/whatsnew/version004.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/html/whatsnew/version004.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,73 @@
+<html>
+
+
+<head>
+<meta http-equiv="Content-Language" content="de">
+<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252"><title>New Page 1</title>
+<LINK REL="stylesheet" HREF="../book.css" CHARSET="ISO-8859-1"
TYPE="text/css">
+</head>
+
+<body>
+
+<table border="0" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
+ <tr>
+ <td width="100%" style="border-left-width: 1; border-right-width: 1;
border-top-width: 1; border-bottom-style: solid; border-bottom-width: 1">
+ <img border="0" src="../icons/apache_avalon.gif" vspace="7" width="372"
height="48"></td>
+ </tr>
+</table>
+
+
+<h1>&nbsp;</h1>
+<h1>What's new in Version 0.0.4?</h1>
+
+<p>&nbsp;</p>
+
+<table border="1" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#111111" width="877" id="AutoNumber2">
+ <tr>
+ <td width="153" valign="top">
+ <p style="margin-left: 1">Context sensitiv help for @avalon tags</td>
+ <td width="721">
+
+<p style="margin-left: 1">If you enter a @ into an existing JavaDoc area,
you
+will get a context sensitive help with all possible avalon JavaDoc tags.</p>
+
+<p style="margin-left: 1">
+<img border="0" src="../icons/context_help.gif" width="693" height="245"></p>
+
+<p style="margin-left: 1">&nbsp;</p>
+
+<p style="margin-left: 1">&nbsp; Selecting a help will insert a template tag
+like shown below.</p>
+
+<p style="margin-left: 1">&nbsp;</p>
+
+<p style="margin-left: 1">
+<img border="0" src="../icons/context_help_done.gif" width="457"
height="49"></p>
+
+ </td>
+ </tr>
+ <tr>
+ <td width="153" valign="top">
+ <p style="margin-left: 1">Preference page for installation
directories</td>
+ <td width="721" valign="top">
+ <p style="margin-left: 1">
+ <img border="0" src="../icons/main_preference.gif" width="604"
height="353"></td>
+ </tr>
+</table>
+<h2 style="margin-left: 1">Enhancements and Bugfixes</h2>
+<p style="margin-left: 1">&nbsp;</p>
+<table border="1" cellpadding="0" cellspacing="0" style="border-collapse:
collapse" bordercolor="#111111" width="77%" id="AutoNumber3">
+ <tr>
+ <td width="18%">
+ <p style="margin-left: 1">realtiv path statements in .jardesc</td>
+ <td width="82%" valign="top">
+ <p style="margin-left: 1">All entries in the .jardesc files in the cvs
+ repository (avalon sandbox) are now relativ.</td>
+ </tr>
+</table>
+<p style="margin-left: 1">&nbsp;</p>
+<p style="margin-left: 1">&nbsp;</p>
+
+</body>
+
+</html>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/tocconcepts.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/tocconcepts.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Concepts" link_to="toc.xml#concepts">
+ <topic label="Main Topic" href="html/concepts/maintopic.html">
+ <topic label="Sub Topic" href="html/concepts/subtopic.html"
/>
+ </topic>
+ <topic label="Main Topic 2">
+ <topic label="Sub Topic 2"
href="html/concepts/subtopic2.html" />
+ </topic>
+</toc>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/tocgettingstarted.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/tocgettingstarted.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Getting Started" link_to="toc.xml#gettingstarted">
+ <topic label="Installation"
href="docs/eclipse/html/gettingstarted/Installation.html">
+ <topic label="System Requirements"
href="docs/eclipse/html/gettingstarted/systemrequirements.html" />
+ <topic label="Installation with a .zip Distribution"
href="docs/eclipse/html/gettingstarted/zipfileinstallation.html"/>
+ <topic label="Installation through the UpdateManager" />
+ </topic>
+ <topic label="Hello World Tutorial">
+ <topic label="Create the 'Hello World' Project" />
+ <topic label="Launche the Component" />
+ <topic label="See the Output" />
+ <topic label="Debug the Component" />
+ </topic>
+</toc>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/tocreference.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/tocreference.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Reference" link_to="toc.xml#reference">
+ <topic label="Main Topic" href="html/reference/maintopic.html">
+ <topic label="Sub Topic" href="html/reference/subtopic.html"
/>
+ </topic>
+ <topic label="Main Topic 2">
+ <topic label="Sub Topic 2"
href="html/reference/subtopic2.html" />
+ </topic>
+</toc>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/tocsamples.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/tocsamples.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Samples" link_to="toc.xml#samples">
+ <topic label="Main Topic" href="html/samples/maintopic.html">
+ <topic label="Sub Topic" href="html/samples/subtopic.html" />
+ </topic>
+ <topic label="Main Topic 2">
+ <topic label="Sub Topic 2" href="html/samples/subtopic2.html"
/>
+ </topic>
+</toc>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/toctasks.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/docs/eclipse/toctasks.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Tasks" link_to="toc.xml#tasks">
+ <topic label="Main Topic" href="html/tasks/maintopic.html">
+ <topic label="Sub Topic" href="html/tasks/subtopic.html" />
+ </topic>
+ <topic label="Main Topic 2">
+ <topic label="Sub Topic 2" href="html/tasks/subtopic2.html"
/>
+ </topic>
+</toc>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/eclipse.prefs
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/eclipse.prefs
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,145 @@
+#Tue Dec 30 18:42:10 MYT 2003
+org.eclipse.pde.ui/javacTarget=1.4
+org.eclipse.jdt.core/org.eclipse.jdt.core.formatter.newline.openingBrace=insert
+org.eclipse.ui.workbench/WELCOME_DIALOG=false
+org.eclipse.jdt.ui/spacesForTabs=true
+org.eclipse.pde.ui/javacSource=1.4
+org.eclipse.update.ui=3.0.0
+org.eclipse.jdt.junit=3.0.0
+org.eclipse.jdt.ui/outlinesortoption=T,SI,SF,I,SM,F,C,M,
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.member-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.publish-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.concurrent-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.codeComplete.visibilityCheck=enabled
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.domain-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.ui.workbench/REUSE_OPEN_EDITORS_BOOLEAN=true
+org.eclipse.help=3.0.0
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.session-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.base|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.domain-impl|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.pde.core/checkedPlugins=[savedAll]
+org.eclipse.jdt.ui/printMarginColumn=100
+org.eclipse.jdt.ui/printMargin=true
+org.eclipse.team.cvs.ui/pref_text_ksubst=-kkv
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.admin-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.io.bali.alarm|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"
rootpath\="" sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar" rootpath\=""
sourcepath\=""/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.apache.avalon.eclipse.apidevel|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"
rootpath\="" sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar" rootpath\=""
sourcepath\=""/></classpath>
+org.eclipse.jdt.ui/fontPropagated=true
+org.eclipse.jdt.ui/org.eclipse.jdt.ui.compresspackagenames=true
+org.eclipse.jdt.core/org.eclipse.jdt.core.codeComplete.argumentPrefixes=p
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.event-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.debug.ui/org.eclipse.debug.ui.lastLaunchConfigSelection=<?xml
version\="1.0" encoding\="UTF-8"?>\n<launchConfiguration local\="true"
path\="org.apache.avalon.ide.eclipse.repository build.xml.launch"/>\n
+org.eclipse.jdt.ui/org.eclipse.jdt.internal.ui.PackageExplorer.EmptyInnerPackageFilter=true
+org.eclipse.jdt.ui/CustomFiltersActionGroup.org.eclipse.jdt.ui.PackageExplorer.userDefinedPatternsEnabled=true
+org.eclipse.jdt.core/org.eclipse.jdt.core.codeComplete.fieldPrefixes=m_
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.apache.avalon.eclipse.merlin.assembler|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.ui=3.0.0
+org.eclipse.jdt.ui/org.eclipse.jdt.ui.PackageExplorer_patternFilterId_*$*.class=true
+org.eclipse.update.ui/org.eclipse.update.ui.appServer=true
+org.eclipse.ui.workbench=3.0.0
+org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=ignore
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.apache.avalon.eclipse.common|org.eclipse.pde.core.requiredPlugins=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath/>
+org.eclipse.pde.core/ext_locations=ORG_ECLIPSE_JDT_SOURCE_SRC@/home/niclas/apps/eclipse/plugins/org.eclipse.jdt.source_3.0.0/src,t\:ORG_ECLIPSE_PDE_SOURCE_SRC@/home/niclas/apps/eclipse/plugins/org.eclipse.pde.source_3.0.0/src,t\:ORG_ECLIPSE_PLATFORM_SOURCE_SRC@/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src,t\:ORG_ECLIPSE_PLATFORM_SOURCE_LINUX_GTK_X86_SRC@/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source.linux.gtk.x86_3.0.0/src,t
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.apache.avalon.eclipse.merlin|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"
rootpath\="" sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar" rootpath\=""
sourcepath\=""/></classpath>
+org.eclipse.jdt.ui/org.eclipse.jdt.ui.importorder=com;java;javax;org;
+org.eclipse.ui.workbench/ENABLED_DECORATORS=org.eclipse.pde.ui.binaryProjectDecorator\:true,org.eclipse.team.cvs.ui.decorator\:true,org.eclipse.ui.LinkedResourceDecorator\:true,
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.association-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.ui/hoverModifiers=org.eclipse.jdt.ui.BestMatchHover;0;org.eclipse.jdt.ui.JavadocHover;\!0;org.eclipse.jdt.ui.ProblemHover;\!0;org.eclipse.jdt.ui.JavaSourceHover;Ctrl;org.eclipse.jdt.internal.debug.ui.JavaDebugHover;\!0;
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.admininistration-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.extract|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.apache.avalon.ide.repository|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.MerlinDeveloper\
UI|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml version\="1.0"
encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.components|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core/org.eclipse.jdt.core.formatter.lineSplit=100
+org.eclipse.jdt.launching=3.0.0
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.MerlinDeveloper\
Launch|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml version\="1.0"
encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.test|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathVariable.JRE_SRC=/java/impls/j2sdk1.4.2_01/src.zip
+org.eclipse.jdt.ui/CustomFiltersActionGroup.org.eclipse.jdt.ui.PackageExplorer.userDefinedPatterns=*.jar
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.hedhman.avalon.browser|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"
rootpath\="" sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar" rootpath\=""
sourcepath\=""/></classpath>
+org.eclipse.pde.core=3.0.0
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.document-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.compare=3.0.0
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.navigator-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.pde.core/platform_path=/home/niclas/apps/eclipse
+org.eclipse.jdt.ui/org.eclipse.jdt.ui.wizards.srcBinFoldersInNewProjects=true
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.niclas-test|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.MerlinDeveloper\
Core|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml version\="1.0"
encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.ui/org.eclipse.jdt.ui.PackageExplorer.ImportDeclarationFilter=true
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.workspace-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.ui/PackagesView.pkgNamePatternForPackagesView=1.
+org.eclipse.ui.workbench/editors=<?xml version\="1.0"
encoding\="UTF-8"?>\n<editors><descriptor
class\="org.eclipse.jdt.internal.debug.ui.snippeteditor.JavaSnippetEditor"
id\="org.eclipse.jdt.debug.ui.SnippetEditor"
image\="icons/full/obj16/jsbook_obj.gif" internal\="true" label\="Scrapbook"
open_in_place\="false" plugin\="org.eclipse.jdt.debug.ui"/><descriptor
class\="org.eclipse.pde.internal.ui.editor.schema.SchemaEditor"
id\="org.eclipse.pde.ui.schemaEditor"
image\="icons/full/obj16/schema_obj.gif" internal\="true" label\="Extension
Point Schema Editor" open_in_place\="false"
plugin\="org.eclipse.pde.ui"/><descriptor
class\="org.eclipse.pde.internal.ui.editor.manifest.ManifestEditor"
id\="org.eclipse.pde.ui.manifestEditor"
image\="icons/full/obj16/plugin_mf_obj.gif" internal\="true" label\="Plug-in
Manifest Editor" open_in_place\="false"
plugin\="org.eclipse.pde.ui"/><descriptor
class\="org.eclipse.pde.internal.ui.editor.build.BuildPropertiesEditor"
id\="org.eclipse.pde.ui.buildEditor" image\="icons/full/obj16/build_exec.gif"
internal\="true" label\="Build Properties Editor" open_in_place\="false"
plugin\="org.eclipse.pde.ui"/><descriptor
class\="org.eclipse.ui.editors.text.TextEditor"
id\="org.eclipse.jdt.ui.JARDescEditor"
image\="icons/full/obj16/jar_desc_obj.gif" internal\="true" label\="JAR
Description Editor" open_in_place\="false"
plugin\="org.eclipse.jdt.ui"/><descriptor
class\="org.eclipse.ui.editors.text.TextEditor"
id\="org.eclipse.jdt.ui.DefaultTextEditor"
image\="icons/full/obj16/file_obj.gif" internal\="true" label\="Properties
File Editor" open_in_place\="false" plugin\="org.eclipse.jdt.ui"/><descriptor
class\="org.eclipse.ui.externaltools.internal.ant.editor.PlantyEditor"
id\="org.eclipse.ui.externaltools.internal.ant.editor.AntEditor"
image\="icons/full/obj16/ant_buildfile.gif" internal\="true" label\="Ant
Editor" open_in_place\="false"
plugin\="org.eclipse.ui.externaltools"/><descriptor
class\="org.eclipse.pde.internal.ui.editor.site.SiteEditor"
id\="org.eclipse.pde.ui.siteEditor"
image\="icons/full/obj16/site_xml_obj.gif" internal\="true" label\="Site
Manifest Editor" open_in_place\="false"
plugin\="org.eclipse.pde.ui"/><descriptor
class\="org.eclipse.ui.editors.text.TextEditor"
id\="org.eclipse.ui.DefaultTextEditor" image\="icons/full/obj16/file_obj.gif"
internal\="true" label\="Text Editor" open_in_place\="false"
plugin\="org.eclipse.ui"/><descriptor
class\="org.eclipse.pde.internal.ui.editor.manifest.FragmentManifestEditor"
id\="org.eclipse.pde.ui.fragmentEditor"
image\="icons/full/obj16/frgmt_mf_obj.gif" internal\="true" label\="Fragment
Manifest Editor" open_in_place\="false"
plugin\="org.eclipse.pde.ui"/><descriptor
class\="org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor"
id\="org.eclipse.jdt.ui.CompilationUnitEditor"
image\="icons/full/obj16/jcu_obj.gif" internal\="true" label\="Java Editor"
open_in_place\="false" plugin\="org.eclipse.jdt.ui"/><descriptor
class\="org.eclipse.pde.internal.ui.editor.feature.FeatureEditor"
id\="org.eclipse.pde.ui.featureEditor"
image\="icons/full/obj16/ftr_xml_obj.gif" internal\="true" label\="Feature
Manifest Editor" open_in_place\="false"
plugin\="org.eclipse.pde.ui"/><descriptor
class\="org.eclipse.jdt.internal.ui.javaeditor.ClassFileEditor"
id\="org.eclipse.jdt.ui.ClassFileEditor"
image\="icons/full/obj16/classf_obj.gif" internal\="true" label\="Class File
Viewer" open_in_place\="false" plugin\="org.eclipse.jdt.ui"/></editors>
+org.eclipse.jdt.ui/org.eclipse.jdt.ui.PackageExplorer.PackageDeclarationFilter=true
+org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.taskPriorities=LOW,HIGH,NORMAL
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.apache.avalon.ide.repository.testrepo|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core=3.0.0
+org.eclipse.jdt.ui/CustomFiltersActionGroup.org.eclipse.jdt.ui.PackageExplorer.TAG_DUMMY_TO_TEST_EXISTENCE=storedViewPreferences
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.subscribe-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.hedhman.avalon.apidevel|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"
rootpath\="" sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar" rootpath\=""
sourcepath\=""/></classpath>
+org.eclipse.pde.ui/Preferences.BuildpathPage.buildPropertiesUpdate=true
+org.eclipse.jdt.ui/org.eclipse.jdt.ui.wizards.srcBinFoldersBinName=dist
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.domain|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.apache.avalon.eclipse.development|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"
rootpath\="" sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar" rootpath\=""
sourcepath\=""/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.connect|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.pde.ui=3.0.0
+org.eclipse.help/custom_browser_path=konqueror %1
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.apache.avalon.ide.eclipse|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.cache|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathVariable.JRE_SRCROOT=
+org.eclipse.jdt.ui/org.eclipse.jface.textfont=1|Courier 10 Pitch|10|0|GTK|1|;
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathVariable.JUNIT_HOME=/home/niclas/apps/eclipse/plugins/org.junit_3.8.1/
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.cm4web|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.pde=3.0.0
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.apache.avalon.ide.eclipse.repository|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.junit|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"
rootpath\="" sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar" rootpath\=""
sourcepath\=""/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathVariable.JRE_LIB=/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar
+org.eclipse.team.ui/org.eclipse.team.ui.syncview_selected_mode=2
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathVariable.ORG_ECLIPSE_PDE_SOURCE_SRC=/home/niclas/apps/eclipse/plugins/org.eclipse.pde.source_3.0.0/src
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.search-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.help/default_browser=org.eclipse.help.custombrowser
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.webservice|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.compare/org.eclipse.compare.UseSingleLine=false
+org.eclipse.ui.workbench/org.eclipse.jdt.ui.editors.textfont=1|Courier 10
Pitch|10|0|GTK|1|;
+org.eclipse.debug.ui=3.0.0
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.pcdx|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.MerlinDeveloper\
UI|org.eclipse.pde.core.requiredPlugins=<?xml version\="1.0"
encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.core.resources_3.0.0/resources.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.core.resources_3.0.0/resourcessrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui_3.0.0/ui.jar"
sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui_3.0.0/uisrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source.linux.gtk.x86_3.0.0/src/org.eclipse.swt.gtk_3.0.0/ws/gtk/swtsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-pi.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source.linux.gtk.x86_3.0.0/src/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-pisrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-mozilla.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source.linux.gtk.x86_3.0.0/src/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-mozillasrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.text_3.0.0/text.jar"
sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.text_3.0.0/textsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.jface_3.0.0/jface.jar"
sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.jface_3.0.0/jfacesrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.jface.text_3.0.0/jfacetext.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.jface.text_3.0.0/jfacetextsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.views_3.0.0/views.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.views_3.0.0/viewssrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.workbench_3.0.0/workbench.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.workbench_3.0.0/workbenchsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.workbench.texteditor_3.0.0/texteditor.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.workbench.texteditor_3.0.0/texteditorsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.editors_3.0.0/editors.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.editors_3.0.0/editorssrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.pde.ui_3.0.0/pdeui.jar"
sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.pde.source_3.0.0/src/org.eclipse.pde.ui_3.0.0/pdeuisrc.zip"/><classpathentry
kind\="src" path\="/MerlinDeveloper Launch"/><classpathentry kind\="src"
path\="/MerlinDeveloper Core"/><classpathentry kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.jdt.core_3.0.0/jdtcore.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.jdt.source_3.0.0/src/org.eclipse.jdt.core_3.0.0/jdtcoresrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.core.boot_3.0.0/boot.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.core.boot_3.0.0/bootsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.core.runtime_3.0.0/runtime.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.core.runtime_3.0.0/runtimesrc.zip"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathVariable.ORG_ECLIPSE_PLATFORM_SOURCE_LINUX_GTK_X86_SRC=/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source.linux.gtk.x86_3.0.0/src
+org.eclipse.team.cvs.ui=3.0.0
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.cm4|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathVariable.ORG_ECLIPSE_PLATFORM_SOURCE_SRC=/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src
+org.eclipse.ui.workbench/SAVE_ALL_BEFORE_BUILD=true
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.apache.avalon.ide.eclipse.repository|org.eclipse.pde.core.requiredPlugins=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.core.resources_3.0.0/resources.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.core.resources_3.0.0/resourcessrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui_3.0.0/ui.jar"
sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui_3.0.0/uisrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source.linux.gtk.x86_3.0.0/src/org.eclipse.swt.gtk_3.0.0/ws/gtk/swtsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-pi.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source.linux.gtk.x86_3.0.0/src/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-pisrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-mozilla.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source.linux.gtk.x86_3.0.0/src/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-mozillasrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.text_3.0.0/text.jar"
sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.text_3.0.0/textsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.jface_3.0.0/jface.jar"
sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.jface_3.0.0/jfacesrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.jface.text_3.0.0/jfacetext.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.jface.text_3.0.0/jfacetextsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.views_3.0.0/views.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.views_3.0.0/viewssrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.workbench_3.0.0/workbench.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.workbench_3.0.0/workbenchsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.workbench.texteditor_3.0.0/texteditor.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.workbench.texteditor_3.0.0/texteditorsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.editors_3.0.0/editors.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.editors_3.0.0/editorssrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.core.boot_3.0.0/boot.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.core.boot_3.0.0/bootsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.core.runtime_3.0.0/runtime.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.core.runtime_3.0.0/runtimesrc.zip"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.authorization-service|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.acl-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.config|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.ui.workbench/org.eclipse.ui.commands=<?xml version\="1.0"
encoding\="UTF-8"?>\n<org.eclipse.ui.commands><activeKeyConfiguration
value\="org.eclipse.ui.defaultAcceleratorConfiguration"/></org.eclipse.ui.commands>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.query-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.cm|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.avalon-browser|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"
rootpath\="" sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar" rootpath\=""
sourcepath\=""/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.apache.avalon.eclipse.impldevel|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"
rootpath\="" sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar" rootpath\=""
sourcepath\=""/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.authentication-service|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.apache.avalon.eclipse.appdevel|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"
rootpath\="" sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar" rootpath\=""
sourcepath\=""/></classpath>
+org.eclipse.pde/compilers.s.create-docs=true
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.org.apache.avalon.eclipse.common|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar" rootpath\=""
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"
rootpath\="" sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar" rootpath\=""
sourcepath\=""/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar" rootpath\=""
sourcepath\=""/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.MerlinDeveloper\
Launch|org.eclipse.pde.core.requiredPlugins=<?xml version\="1.0"
encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.core.resources_3.0.0/resources.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.core.resources_3.0.0/resourcessrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui_3.0.0/ui.jar"
sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui_3.0.0/uisrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source.linux.gtk.x86_3.0.0/src/org.eclipse.swt.gtk_3.0.0/ws/gtk/swtsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-pi.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source.linux.gtk.x86_3.0.0/src/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-pisrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-mozilla.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source.linux.gtk.x86_3.0.0/src/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-mozillasrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.text_3.0.0/text.jar"
sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.text_3.0.0/textsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.jface_3.0.0/jface.jar"
sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.jface_3.0.0/jfacesrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.jface.text_3.0.0/jfacetext.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.jface.text_3.0.0/jfacetextsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.views_3.0.0/views.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.views_3.0.0/viewssrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.workbench_3.0.0/workbench.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.workbench_3.0.0/workbenchsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.workbench.texteditor_3.0.0/texteditor.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.workbench.texteditor_3.0.0/texteditorsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.editors_3.0.0/editors.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.editors_3.0.0/editorssrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.core.runtime_3.0.0/runtime.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.core.runtime_3.0.0/runtimesrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.core.boot_3.0.0/boot.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.core.boot_3.0.0/bootsrc.zip"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.discussion-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.core.resources/description.maxfilestates=200
+org.eclipse.ui.workbench/resourcetypes=<?xml version\="1.0"
encoding\="UTF-8"?>\n<editors><info extension\="jpage" name\="*"><editor
id\="org.eclipse.jdt.debug.ui.SnippetEditor"/></info><info extension\="exsd"
name\="*"><editor id\="org.eclipse.pde.ui.schemaEditor"/></info><info
extension\="xml" name\="plugin"><editor
id\="org.eclipse.pde.ui.manifestEditor"/></info><info extension\="properties"
name\="build"><editor id\="org.eclipse.pde.ui.buildEditor"/></info><info
extension\="jardesc" name\="*"><editor
id\="org.eclipse.jdt.ui.JARDescEditor"/></info><info extension\="properties"
name\="*"><editor id\="org.eclipse.jdt.ui.DefaultTextEditor"/></info><info
extension\="xml" name\="build"><editor
id\="org.eclipse.ui.externaltools.internal.ant.editor.AntEditor"/></info><info
extension\="xml" name\="site"><editor
id\="org.eclipse.pde.ui.siteEditor"/></info><info extension\="txt"
name\="*"><editor id\="org.eclipse.ui.DefaultTextEditor"/></info><info
extension\="xml" name\="fragment"><editor
id\="org.eclipse.pde.ui.fragmentEditor"/></info><info extension\="java"
name\="*"><editor
id\="org.eclipse.jdt.ui.CompilationUnitEditor"/></info><info extension\="xml"
name\="feature"><editor id\="org.eclipse.pde.ui.featureEditor"/></info><info
extension\="class" name\="*"><editor
id\="org.eclipse.jdt.ui.ClassFileEditor"/></info><info extension\="xsd"
name\="*"><editor id\="org.eclipse.pde.ui.schemaEditor"/></info><info
extension\="mxsd" name\="*"><editor
id\="org.eclipse.pde.ui.schemaEditor"/></info></editors>
+org.eclipse.jdt.ui/lastRecentlyUsedFilters=org.eclipse.jdt.ui.PackageExplorer.ClosedProjectsFilter,
+org.eclipse.jdt.junit/org.eclipse.jdt.junit.active_filters=org.eclipse.jdt.internal.junit.runner.*,org.eclipse.jdt.internal.junit.ui.*,junit.framework.TestCase,junit.framework.TestResult,junit.framework.TestSuite,junit.framework.Assert,java.lang.reflect.Method.invoke
+org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.taskTags=TODO,MUST-DO,SHOULD-DO
+org.eclipse.jdt.core/org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.core.resources=3.0.0
+org.eclipse.jdt.launching/org.eclipse.jdt.launching.PREF_VM_XML=<?xml
version\="1.0" encoding\="UTF-8"?>\n<vmSettings\n
defaultVM\="57,org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType1,0"
defaultVMConnector\="">\n <vmType
id\="org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType">\n <vm
id\="0" name\="j2sdk1.4.2_01" path\="/java/impls/j2sdk1.4.2_01"/>\n
</vmType>\n</vmSettings>\n
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.MerlinDeveloper\
Core|org.eclipse.pde.core.requiredPlugins=<?xml version\="1.0"
encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.core.resources_3.0.0/resources.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.core.resources_3.0.0/resourcessrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui_3.0.0/ui.jar"
sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui_3.0.0/uisrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source.linux.gtk.x86_3.0.0/src/org.eclipse.swt.gtk_3.0.0/ws/gtk/swtsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-pi.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source.linux.gtk.x86_3.0.0/src/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-pisrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-mozilla.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source.linux.gtk.x86_3.0.0/src/org.eclipse.swt.gtk_3.0.0/ws/gtk/swt-mozillasrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.text_3.0.0/text.jar"
sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.text_3.0.0/textsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.jface_3.0.0/jface.jar"
sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.jface_3.0.0/jfacesrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.jface.text_3.0.0/jfacetext.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.jface.text_3.0.0/jfacetextsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.views_3.0.0/views.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.views_3.0.0/viewssrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.workbench_3.0.0/workbench.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.workbench_3.0.0/workbenchsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.workbench.texteditor_3.0.0/texteditor.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.workbench.texteditor_3.0.0/texteditorsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.ui.editors_3.0.0/editors.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.ui.editors_3.0.0/editorssrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.jdt.core_3.0.0/jdtcore.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.jdt.source_3.0.0/src/org.eclipse.jdt.core_3.0.0/jdtcoresrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.jdt.launching_3.0.0/launching.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.jdt.source_3.0.0/src/org.eclipse.jdt.launching_3.0.0/launchingsrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.core.runtime_3.0.0/runtime.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.core.runtime_3.0.0/runtimesrc.zip"/><classpathentry
kind\="lib"
path\="/home/niclas/apps/eclipse/plugins/org.eclipse.core.boot_3.0.0/boot.jar"

sourcepath\="/home/niclas/apps/eclipse/plugins/org.eclipse.platform.source_3.0.0/src/org.eclipse.core.boot_3.0.0/bootsrc.zip"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathVariable.ECLIPSE_HOME=/home/niclas/apps/eclipse
+org.eclipse.team.ui=3.0.0
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathVariable.ORG_ECLIPSE_JDT_SOURCE_SRC=/home/niclas/apps/eclipse/plugins/org.eclipse.jdt.source_3.0.0/src
+org.eclipse.jdt.core/org.eclipse.jdt.core.formatter.newline.emptyBlock=do
not insert
+org.eclipse.jdt.ui/org.eclipse.jdt.ui.PackageExplorer_patternFilterId_.*=true
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.library-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.jdt.core/org.eclipse.jdt.core.classpathContainer.persistence-api|org.eclipse.jdt.launching.JRE_CONTAINER=<?xml
version\="1.0" encoding\="UTF-8"?>\n<classpath><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/rt.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/sunrsasign.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jsse.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/jce.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/charsets.jar"
sourcepath\="/java/impls/j2sdk1.4.2_01/src.zip"/><classpathentry kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/sunjce_provider.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/dnsns.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/ldapsec.jar"/><classpathentry
kind\="lib"
path\="/java/impls/j2sdk1.4.2_01/jre/lib/ext/localedata.jar"/></classpath>
+org.eclipse.pde.ui/Preferences.BuildpathPage.useClasspathContainers=true
+org.eclipse.debug.ui/Console.highWaterMark=88000

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/avalon-framework/.cvsignore
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/avalon-framework/.cvsignore
Fri Apr 8 13:52:15 2005
@@ -0,0 +1 @@
+*.jar

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/commons-collections-2.0.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/commons-lang.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/commons-logging.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/dom4j.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/xdoclet-1.2b4.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/xjavadoc-1.0.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/lib/xstream-0.2.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/maven.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/maven.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+Copyright 2004 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.
+-->
+<project default="jar:jar" />

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/plugin.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/plugin.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin
+ id="org.apache.avalon.MerlinDeveloperCore"
+ name="MerlinDeveloper Core"
+ version="0.0.4"
+ provider-name="Apache Software Foundation"
+ class="org.apache.avalon.ide.eclipse.merlin.core.MerlinDeveloperCore">
+
+ <runtime>
+ <library name="MerlinDeveloperCore.jar">
+ <export name="*"/>
+ </library>
+ <library name="lib/xstream-0.2.jar"/>
+ <library name="lib/xdoclet-1.2b4.jar"/>
+ <library name="lib/xjavadoc-1.0.jar"/>
+ <library name="lib/commons-collections-2.0.jar"/>
+ <library name="lib/commons-lang.jar"/>
+ <library name="lib/commons-logging.jar"/>
+ </runtime>
+ <requires>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.eclipse.jdt.core"/>
+ <import plugin="org.eclipse.jdt.launching"/>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.core.boot"/>
+ <import plugin="org.junit"/>
+ </requires>
+
+
+ <extension
+ point="org.eclipse.help.toc">
+ <toc
+ file="toc.xml"
+ primary="true">
+ </toc>
+ <toc
+ file="docs/eclipse/tocconcepts.xml">
+ </toc>
+ <toc
+ file="docs/eclipse/tocgettingstarted.xml">
+ </toc>
+ <toc
+ file="docs/eclipse/tocreference.xml">
+ </toc>
+ <toc
+ file="docs/eclipse/tocsamples.xml">
+ </toc>
+ <toc
+ file="docs/eclipse/toctasks.xml">
+ </toc>
+ </extension>
+
+</plugin>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/project.properties
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/project.properties
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,46 @@
+# Copyright 2004 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.
+
+
+maven.repo.central=www.apache.org
+maven.repo.central.directory=/www/www.apache.org/dist/java-repository
+
+maven.repo.list=apache-java-dist
+maven.repo.apache-java-dist=scp://www.apache.org
+maven.repo.apache-java-dist.directory=/www/www.apache.org/dist/java-repository/merlin-developer
+maven.repo.apache-java-dist.user=${maven.username}
+maven.repo.apache-java-dist.group=avalon
+maven.repo.apache-java-dist.privatekey=${user.privatekey}
+maven.repo.apache-java-dist.passphrase=${user.privatekey.passphrase}
+
+maven.remote.group=avalon
+
+
+# ------------------------------------------------------------------------
+# M A V E N J A R O V E R R I D E
+# ------------------------------------------------------------------------
+maven.jar.override = on
+
+# ------------------------------------------------------------------------
+# Jars set explicity by path.
+# ------------------------------------------------------------------------
+maven.jar.org.eclipse.core.resources=${eclipse.home}/plugins/org.eclipse.core.resources_2.1.0/resources.jar
+maven.jar.org.eclipse.core.runtime=${eclipse.home}/plugins/org.eclipse.core.runtime_2.1.0/runtime.jar
+maven.jar.org.eclipse.jdt.core=${eclipse.home}/plugins/org.eclipse.jdt.core_2.1.0/jdtcore.jar
+maven.jar.org.eclipse.jdt.launching=${eclipse.home}/plugins/org.eclipse.jdt.launching_2.1.0/launching.jar
+maven.jar.org.eclipse.jface=${eclipse.home}/plugins/org.eclipse.jface_2.1.0/jface.jar
+maven.jar.org.eclipse.ui.views=${eclipse.home}/plugins/org.eclipse.ui.views_2.1.0/views.jar
+maven.jar.org.eclipse.ui.workbench=${eclipse.home}/plugins/org.eclipse.ui.workbench_2.1.0/workbench.jar
+

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/project.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/project.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Copyright 2004 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.
+-->
+
+<project>
+ <extend>${basedir}/../project-common.xml</extend>
+ <artifactId>merlin-developer-core</artifactId>
+ <name>Merlin Developer Core</name>
+ <currentVersion>0.1</currentVersion>
+
<siteDirectory>/www/avalon.apache.org/merlin/developer/core/</siteDirectory>
+
<distributionDirectory>/www/www.apache.org/dist/java-repository/</distributionDirectory>
+ <dependencies>
+ <dependency>
+ <id>org.eclipse.core.resources</id>
+ </dependency>
+ <dependency>
+ <id>org.eclipse.core.runtime</id>
+ </dependency>
+ <dependency>
+ <id>org.eclipse.jdt.core</id>
+ </dependency>
+ <dependency>
+ <id>org.eclipse.jdt.launching</id>
+ </dependency>
+ <dependency>
+ <id>org.eclipse.jface</id>
+ </dependency>
+ <dependency>
+ <id>org.eclipse.ui.views</id>
+ </dependency>
+ <dependency>
+ <id>org.eclipse.ui.workbench</id>
+ </dependency>
+ <dependency>
+ <groupId>xstream</groupId>
+ <artifactId>xstream</artifactId>
+ <version>0.2</version>
+ </dependency>
+ <dependency>
+ <groupId>xdoclet</groupId>
+ <artifactId>xdoclet</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>xdoclet</groupId>
+ <artifactId>xjavadoc</artifactId>
+ <version>1.0.2</version>
+ </dependency>
+ </dependencies>
+</project>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/AbstractResourceManager.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/AbstractResourceManager.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,171 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.resource;
+
+import org.eclipse.core.resources.IProject;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ * The idea behind the resource package is, that a 'logical' concept like
+ * component, project or class mostely is constructed out of many physical
+ * resources. Some examples: A merlin service consists of an interfaces (java
+ * source as an resource), which contains some meta infos as javadoc tags (a
+ * javadoc as resource) and a block.xml a xml file as resource) etc. The
+ * 'Manager' classes represent the logical concepts. The 'Resource' classes
+ * represent resources, which are related to the logical concept.
+ *
+ */
+public class AbstractResourceManager
+{
+ /**
+ *
+ */
+ public AbstractResourceManager()
+ {
+ super();
+ }
+
+ public AbstractResourceManager(IProject iProject)
+ {
+ super();
+ eclipseResource = new EclipseResource(iProject);
+ templateResource = new TemplateResource(iProject);
+ }
+
+ private boolean changed = false;
+
+ /**
+ * @uml property=eclipseResource associationEnd={multiplicity={(0 1)}}
+ */
+ private EclipseResource eclipseResource;
+
+ /**
+ * @uml property=javaDocResource associationEnd={multiplicity={(0 1)}}
+ */
+ private JavaDocResource javaDocResource;
+
+ /**
+ * @uml property=templateResource associationEnd={multiplicity={(0 1)}}
+ */
+ private TemplateResource templateResource;
+
+ /**
+ * @uml property=xmlResource associationEnd={multiplicity={(0 1)}}
+ */
+ private XMLResource xmlResource;
+
+ /**
+ * @uml property=project associationEnd={multiplicity={(0 1)}}
+ */
+ private IProject project;
+
+ /**
+ * @return Returns the eclipse. @uml property=eclipseResource
+ */
+ public EclipseResource getEclipseResource()
+ {
+ return eclipseResource;
+ }
+
+ /**
+ * @return Returns the javaDoc. @uml property=javaDocResource
+ */
+ public JavaDocResource getJavaDocResource()
+ {
+ return javaDocResource;
+ }
+
+ /**
+ * @return Returns the changed.
+ */
+ public boolean isChanged()
+ {
+ return changed;
+ }
+
+ /**
+ * @param iChanged
+ * The changed to set. @uml property=changed
+ */
+ public void setChanged(boolean iChanged)
+ {
+ this.changed = iChanged;
+ }
+
+ /**
+ * @param resource
+ * @uml property=javaDocResource
+ */
+ public void setJavaDocResource(JavaDocResource resource)
+ {
+
+ javaDocResource = resource;
+ }
+
+ /**
+ * @return Returns the project. @uml property=project
+ */
+ public IProject getProject()
+ {
+ return project;
+ }
+
+ /**
+ * @return Returns the xmlResource. @uml property=xmlResource
+ */
+ public XMLResource getXmlResource()
+ {
+ return xmlResource;
+ }
+
+ /**
+ * @param iXmlResource
+ * The xmlResource to set. @uml property=xmlResource
+ */
+ public void setXmlResource(XMLResource iXmlResource)
+ {
+ this.xmlResource = iXmlResource;
+ }
+
+ /**
+ * @return Returns the templateResource. @uml property=templateResource
+ */
+ public TemplateResource getTemplateResource()
+ {
+ return templateResource;
+ }
+
+ /**
+ * @param pProject
+ */
+ public void setProject(IProject pProject)
+ {
+ project = pProject;
+
+ }
+ /**
+ * @param pTemplateResource
+ * The templateResource to set.
+ */
+ public void setTemplateResource(TemplateResource pTemplateResource)
+ {
+ templateResource = pTemplateResource;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/BlockResourceManager.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/BlockResourceManager.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,36 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.resource;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class BlockResourceManager extends AbstractResourceManager
+{
+
+ /**
+ *
+ */
+ public BlockResourceManager()
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/ClassResourceManager.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/ClassResourceManager.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,60 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.resource;
+
+import org.eclipse.core.resources.IProject;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class ClassResourceManager extends AbstractResourceManager
+{
+
+ /**
+ *
+ */
+ public ClassResourceManager(IProject project)
+ {
+ super(project);
+
+ }
+
+ /**
+ * @return
+ */
+ public String getFullyQualifiedName()
+ {
+
+ return getJavaDocResource().getQualifiedName();
+ }
+
+ /**
+ *
+ */
+ public void synchronize()
+ {
+ if (isChanged())
+ {
+ setChanged(false);
+
+ }
+
+ }
+
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/ComponentResourceManager.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/ComponentResourceManager.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,86 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.resource;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class ComponentResourceManager extends AbstractResourceManager
+{
+
+ /**
+ * @uml property=xinfoFile associationEnd={multiplicity={(1 1)}}
+ */
+ private IFile xinfoFile;
+
+ /**
+ * @uml property=containedClasses associationEnd={multiplicity={(0
-1)}
+ *
elementType=org.apache.avalon.ide.eclipse.core.resource.ClassResourceManager}
+ *
+ */
+ private ClassResourceManager[] containedClasses = null;
+
+ /**
+ * @param file
+ * must be either a Java source file or an '.xinfo' file,
which
+ * represents a Java resource
+ */
+ public ComponentResourceManager(IFile file)
+ {
+ super(file.getProject());
+ xinfoFile = file;
+ }
+
+ /**
+ * Get all class resources for the eclipse project, which covers the
+ * component. A class resource covers all important recources
belonging to
+ * a class like .xinfo file, javadocs etc.
+ *
+ * @return ClassResourceManager[]
+ */
+ public ClassResourceManager[] getClassResources()
+ {
+
+ if (containedClasses != null)
+ {
+ return containedClasses;
+ }
+
+ JavaDocResource javaResources[] =
+ JavaDocResource.getJavaDocResources(xinfoFile.getProject());
+
+ List list = new ArrayList();
+ ClassResourceManager manager;
+ for (int i = 0; javaResources.length > i; i++)
+ {
+ manager = new ClassResourceManager(xinfoFile.getProject());
+ manager.setJavaDocResource(javaResources[i]);
+ list.add(manager);
+ }
+ containedClasses =
+ (ClassResourceManager[]) list.toArray(new
ClassResourceManager[list.size()]);
+ return containedClasses;
+ }
+
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/EclipseResource.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/EclipseResource.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,319 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.resource;
+
+import java.lang.reflect.InvocationTargetException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
+
+import org.apache.avalon.ide.eclipse.core.tools.EclipseDirectoryHelper;
+import org.apache.avalon.ide.eclipse.merlin.core.MerlinDeveloperCore;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class EclipseResource
+{
+
+ /**
+ * @uml property=project associationEnd={multiplicity={(0 -1)}
+ * elementType=java.lang.String}
+ *
+ */
+ private IProject project;
+
+ /**
+ * @uml property=classpathEntries associationEnd={multiplicity={(0 -1)}
+ * elementType=org.eclipse.jdt.core.IClasspathEntry}
+ *
+ */
+ private Vector classpathEntries = new Vector();
+
+ /**
+ *
+ */
+ public EclipseResource(IProject iProject)
+ {
+ super();
+ this.project = iProject;
+ }
+
+ /**
+ * extracts the fully qualified class name from a given filePathName
+ *
+ * @param pProject
+ * @param pFilePathName
+ * @return the fully qualified className
+ */
+ public static String getQualifiedClassName(IResource pResource)
+ {
+
+ String qualifiedClassName = null;
+ IProject project = pResource.getProject();
+
+ try
+ {
+ IJavaProject proj = JavaCore.create(project);
+ String filePathName = pResource.getLocation().toString();
+
+ if (pResource.getFileExtension().toLowerCase().equals("class"))
+ {
+ String outputPath = proj.getOutputLocation().toString();
+ String projectPath = project.getLocation().toString();
+ outputPath = projectPath +
outputPath.substring(project.getName().length());
+ qualifiedClassName =
+ filePathName.substring(outputPath.length(),
filePathName.length() - 6);
+ return qualifiedClassName = qualifiedClassName.replace('/',
'.');
+ }
+
+ IPackageFragmentRoot roots[] = proj.getPackageFragmentRoots();
+ String projectPath = project.getLocation().toString();
+ String sourcePath = null;
+
+ for (int i = 0; roots.length > i; i++)
+ {
+ if (roots[i].isArchive())
+ continue;
+ sourcePath = projectPath + "/" + roots[i].getElementName();
+ if (sourcePath.equals(filePathName.substring(0,
sourcePath.length())))
+ {
+ break;
+ }
+ }
+ qualifiedClassName =
+ filePathName.substring(sourcePath.length() + 1,
filePathName.length() - 5);
+ qualifiedClassName = qualifiedClassName.replace('/', '.');
+
+ } catch (JavaModelException e)
+ {
+ e.printStackTrace();
+ }
+
+ return qualifiedClassName;
+ }
+
+ /**
+ * @param element
+ * @return
+ */
+ public String[] getSourcePaths() throws Exception
+ {
+
+ List sourcePath = new ArrayList();
+
+ String projectPath = project.getLocation().toString();
+ IJavaProject javaProject = JavaCore.create(project);
+ IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
+
+ for (int i = 0; roots.length > i; i++)
+ {
+ if (!roots[i].isArchive())
+ {
+ sourcePath.add(projectPath + "/" +
roots[i].getElementName());
+ }
+ }
+ return (String[]) sourcePath.toArray(new String[sourcePath.size()]);
+ }
+
+ public void addUuidProperty(String className, boolean b)
+ {
+
+ try
+ {
+ IJavaProject proj = JavaCore.create(project);
+ IType type = proj.findType(className);
+ addUuidField(type, b);
+ addUuidAccessor(type, b);
+ } catch (JavaModelException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (Exception e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ /**
+ * @param b
+ */
+ private void addUuidAccessor(IType type, boolean b) throws Exception
+ {
+
+ IMethod method = type.getMethod("getUuid", new String[0]);
+ if (b && !method.exists())
+ {
+ type.createMethod(getGetUuidMethodSource(), null, false, null);
+ }
+ if (!b && method.exists())
+ {
+ method.delete(true, null);
+ }
+
+ String str[] = new String[1];
+ str[0] = "QString;";
+ method = type.getMethod("setUuid", str);
+ if (b && !method.exists())
+ {
+ type.createMethod(getSetUuidMethodSource(), null, false, null);
+ }
+ if (!b && method.exists())
+ {
+ method.delete(true, null);
+ }
+ }
+
+ private String getGetUuidMethodSource()
+ {
+
+ StringBuffer buf = new StringBuffer();
+ buf.append(" /**\n");
+ buf.append(" * @uuid. Get the unique object identifier.\n");
+ buf.append(" */\n");
+ buf.append(" public String getUuid(){\n\n");
+ buf.append(" return uuid;\n");
+ buf.append(" }\n\n");
+
+ return buf.toString();
+ }
+
+ private String getSetUuidMethodSource()
+ {
+
+ StringBuffer buf = new StringBuffer();
+ buf.append(" /**\n");
+ buf.append(" * @uuid. Set the unique object identifier.\n");
+ buf.append(" */\n");
+ buf.append(" public void setUuid(String uuid){\n\n");
+ buf.append(" this.uuid = uuid;\n");
+ buf.append(" }\n\n");
+
+ return buf.toString();
+ }
+ /**
+ * @param b
+ */
+ private void addUuidField(IType type, boolean b) throws Exception
+ {
+
+ IField field = type.getField("uuid");
+ if (b && !field.exists())
+ {
+ type.createField(getUuidFieldSource(), null, false, null);
+ }
+ if (!b && field.exists())
+ {
+ field.delete(true, null);
+ }
+ }
+
+ private String getUuidFieldSource()
+ {
+
+ StringBuffer buf = new StringBuffer();
+ buf.append(" // The uuid is used to store a unique object
identifier. **\n");
+ buf.append(" private String uuid;\n\n");
+
+ return buf.toString();
+ }
+
+ /**
+ * @param file
+ * @return
+ */
+ public static URLClassLoader getProjectClassLoader(IResource file)
+ {
+
+ URL urls[] = null;
+
+ try
+ {
+ urls = new URL[1];
+ urls[0] = new URL("file:/" +
EclipseDirectoryHelper.getOutputPath(file) + "/");
+
+ } catch (MalformedURLException e)
+ {
+ e.printStackTrace();
+ }
+ URLClassLoader cl = new URLClassLoader(urls,
MerlinDeveloperCore.class.getClassLoader());
+
+ return cl;
+ }
+
+ /**
+ * Create a new Project with a given name and nature
+ *
+ * @param pFile
+ * @return
+ */
+ public static IProject createMerlinProject(String projectName, String
nature)
+ throws InvocationTargetException, InterruptedException
+ {
+
+ {
+ IProject project;
+
+ try
+ {
+ IWorkspaceRoot root =
MerlinDeveloperCore.getWorkspace().getRoot();
+ // create the project in workspace.
+ project = root.getProject(projectName);
+
+ if (!project.exists())
+ {
+ project.create(null);
+ }
+
+ if (!project.isOpen())
+ {
+ project.open(null);
+ }
+ // add the nature to the project
+ IProjectDescription description = project.getDescription();
+
+ String[] natureIds = new String[] { JavaCore.NATURE_ID,
nature };
+ description.setLocation(null);
+ description.setNatureIds(natureIds);
+ project.setDescription(description, null);
+
+ } catch (CoreException e)
+ {
+ throw new InvocationTargetException(e);
+ }
+ return project;
+ }
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/JavaDocResource.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/JavaDocResource.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,282 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.resource;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.StringBufferInputStream;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Properties;
+
+import org.eclipse.core.resources.IProject;
+
+import xjavadoc.SourceSet;
+import xjavadoc.XClass;
+import xjavadoc.XJavaDoc;
+import xjavadoc.XTag;
+import xjavadoc.filesystem.FileSourceSet;
+import xjavadoc.filesystem.XJavadocFile;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class JavaDocResource
+{
+
+ /**
+ * @uml property=xClass associationEnd={multiplicity={(1 1)}}
+ */
+ private XClass xClass;
+ private static JavaDocResource[] docCache;
+
+ public JavaDocResource(String qualifiedClassName, String filePathName)
+ {
+ XJavaDoc xDoc;
+ xDoc = new XJavaDoc();
+ xDoc.setUseNodeParser(true);
+ xDoc.addAbstractFile(qualifiedClassName, new XJavadocFile(new
File(filePathName)));
+
+ xClass = xDoc.getXClass(qualifiedClassName);
+ }
+ /**
+ *
+ */
+ public JavaDocResource(XClass clazz)
+ {
+
+ xClass = clazz;
+ }
+ public static void createJavaDocCache(IProject project)
+ {
+ docCache = getJavaDocResources(project);
+ }
+ /**
+ * Collects all java source files of a project. If it is not possible to
+ * retrieve the corresponding project of 'element' throw an exception.
+ * @TODO Change, so that no ref to EclipseResource
+ *
+ * @param IProject
+ * project
+ */
+ public static JavaDocResource[] getJavaDocResources(IProject project)
+ {
+ XJavaDoc xDoc;
+
+ EclipseResource eclipse = new EclipseResource(project);
+ xDoc = new XJavaDoc();
+ xDoc.setUseNodeParser(true);
+
+ List infoList = new ArrayList();
+ try
+ {
+ String[] sourcePaths = eclipse.getSourcePaths();
+ for (int i = 0; sourcePaths.length > i; i++)
+ {
+ SourceSet set = new FileSourceSet(new File(sourcePaths[i]));
+ xDoc.addSourceSet(set);
+ }
+
+ Iterator it = xDoc.getSourceClasses().iterator();
+ while (it.hasNext())
+ {
+ JavaDocResource java = new JavaDocResource((XClass)
it.next());
+ infoList.add(java);
+ }
+ } catch (Exception e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ return (JavaDocResource[]) infoList.toArray(new
JavaDocResource[infoList.size()]);
+ }
+
+ public static JavaDocResource getJavaDocResource(String
qualifiedClassName)
+ {
+ if (docCache==null) return null;
+
+ for(int i=0; docCache.length>i; i++){
+ if(docCache[i].getQualifiedName().equals(qualifiedClassName))
+ {
+ return docCache[i];
+ }
+ }
+ return null;
+ }
+
+
+ public void setPersistent(boolean b)
+ {
+ XTag tag = xClass.getDoc().getTag("persistent");
+ if (b && tag == null)
+ {
+ xClass.getDoc().addTag("persistent", "");
+ }
+ if (!b && tag != null)
+ {
+ xClass.getDoc().removeTag(tag);
+ }
+ }
+
+ /**
+ * @param string
+ * @return
+ */
+ public boolean isPersistent()
+ {
+
+ XClass sClass;
+ XClass clazz = xClass;
+
+ if(isClassPersistent(clazz)) return true;
+
+ while (!(sClass = clazz.getSuperclass()).getName().equals("Object"))
+ {
+ if (isClassPersistent(sClass))
+ {
+ return isClassPersistent(sClass);
+ }
+ clazz = sClass;
+ }
+ return isClassPersistent(clazz);
+ }
+
+ /**
+ * @return
+ */
+ public boolean isClassPersistent(XClass xClazz)
+ {
+ XTag tag;
+
+ if (xClazz.getDoc().getTag("persistent") != null)
+ return true;
+
+ try
+ {
+ if ((tag = xClazz.getDoc().getTag("uml")) != null)
+ {
+ String stereotype = tag.getValue();
+ Properties prop = new Properties();
+ prop.load(new StringBufferInputStream(stereotype));
+ if ((stereotype = (String) prop.get("stereotypes")) == null)
+ return false;
+ String array[] = stringToArray(stereotype);
+ for (int j = 0; array.length > j; j++)
+ {
+ if (array[j].equals("persistent"))
+ return true;
+ }
+ }
+
+ } catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ return false;
+ }
+
+ /**
+ * @param pStereotype
+ * @return
+ */
+ private String[] stringToArray(String pStereotype)
+ {
+ List result = new ArrayList();
+ StringBuffer buf = new StringBuffer(pStereotype);
+ char ch;
+ boolean open = false;
+ StringBuffer out = new StringBuffer();
+
+ for (int i = 0; buf.length() > i; i++)
+ {
+ ch = buf.charAt(i);
+ if (ch == '{')
+ continue;
+ if (ch == '}')
+ continue;
+ if (ch == '"' && !open)
+ {
+ open = true;
+ out = new StringBuffer();
+ continue;
+ }
+ if (ch == '"' && open)
+ {
+ open = false;
+ result.add(out.toString());
+ continue;
+ }
+
+ if (open)
+ out.append(ch);
+
+ }
+
+ return (String[]) result.toArray(new String[result.size()]);
+ }
+
+ /**
+ * @return
+ */
+ public String getQualifiedName()
+ {
+
+ return xClass.getQualifiedName();
+ }
+
+ /**
+ *
+ */
+ public void save()
+ {
+
+ try
+ {
+ xClass.save(null);
+ } catch (IOException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @param string
+ * @return
+ */
+ public Object getAttribute(String string)
+ {
+
+ XClass sClass;
+ XClass clazz = xClass;
+
+ while (!(sClass = clazz.getSuperclass()).getName().equals("Object"))
+ {
+ if (sClass.getField(string) != null)
+ {
+ return sClass.getField(string);
+ }
+ clazz = sClass;
+ }
+ return clazz.getField(string);
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/ProjectResourceManager.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/ProjectResourceManager.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,164 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.resource;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.apache.avalon.ide.eclipse.core.tools.ClassNameAnalyzer;
+import org.apache.avalon.ide.eclipse.core.tools.DynProjectParam;
+import org.apache.avalon.ide.eclipse.core.tools.EclipseDirectoryHelper;
+import org.apache.avalon.ide.eclipse.core.xmlmodel.Directory;
+import org.apache.avalon.ide.eclipse.core.xmlmodel.ProjectModel;
+import org.apache.avalon.ide.eclipse.core.xmlmodel.ProjectModelConfiguration;
+import org.apache.avalon.ide.eclipse.core.xmlmodel.Template;
+import org.apache.avalon.ide.eclipse.merlin.core.MerlinDeveloperCore;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class ProjectResourceManager extends AbstractResourceManager
+{
+
+ private String pluginId;
+
+ /**
+ * @param ProjectModel
+ * model
+ * @param DynProjectParam
+ * param
+ * @param String
+ * callingPluginId
+ * @param String
+ * nature
+ */
+ public ProjectResourceManager(
+ ProjectModel model,
+ DynProjectParam param,
+ String callingPluginId,
+ String nature)
+ {
+ pluginId = callingPluginId;
+
+ try
+ {
+ // create a eclipse project with a given nature
+
setProject(EclipseResource.createMerlinProject(param.getProjectName(),
nature));
+
+ // config templateResource
+ setTemplateResource(new TemplateResource(getProject()));
+
+ // create project structure and generate files.
+ createProjectResources(model, param);
+
+ // refresh the directory
+ getProject().refreshLocal(IProject.DEPTH_INFINITE, null);
+
+ } catch (InvocationTargetException e)
+ {
+ MerlinDeveloperCore.log(
+ e,
+ "InvocationTargetException while creating project
resources");
+
+ } catch (InterruptedException e)
+ {
+ MerlinDeveloperCore.log(e, "InterruptedException while creating
project resources");
+ } catch (CoreException e)
+ {
+ MerlinDeveloperCore.log(e, "CoreException while creating project
resources");
+ }
+ }
+
+ public ProjectResourceManager(IProject project)
+ {
+ super(project);
+ }
+
+ /**
+ * @return Returns the pluginId. @uml property=pluginId
+ */
+ public String getPluginId()
+ {
+ return pluginId;
+ }
+
+ /**
+ * @param wizardMeta.
+ * The selected WizardMetadata, which reprsents a project
+ */
+ private void createProjectResources(ProjectModel wizardMeta,
DynProjectParam param)
+ {
+
+ EclipseDirectoryHelper helper = new
EclipseDirectoryHelper(getProject());
+
+ getTemplateResource().setTemplateSourcePath(getPluginPathName() +
"templates/");
+ getTemplateResource().setParameter(param);
+
+ for (int i = 0; wizardMeta.getDirectories().size() > i; i++)
+ {
+ Directory dir = (Directory) wizardMeta.getDirectories().get(i);
+ helper.createDirectory(dir.getName(), dir.isSource());
+
+ for (int y = 0; dir.getTemplates().size() > y; y++)
+ {
+ Template templ = (Template) dir.getTemplates().get(y);
+ if (templ.getName() != null)
+ {
+ String className =
TemplateResource.replaceParam(templ.getFileName(), param);
+ ClassNameAnalyzer cna = new ClassNameAnalyzer();
+ cna.setFullClassName(className);
+ helper.createDirectory(dir.getName() + "/" +
cna.getPath(), false);
+
+ String dest = helper.getFullPathName(dir.getName());
+ dest = dest + "/" + cna.getPath() + cna.getFileName();
+ getTemplateResource().createTemplate(dest,
templ.getName());
+
+ }
+ }
+
+ }
+ // add required libs
+ helper.setClasspath();
+ }
+
+ /**
+ * @return
+ */
+ private String getPluginPathName()
+ {
+ return EclipseDirectoryHelper.getPluginLocation(pluginId).toString();
+ }
+
+ /**
+ * @param pString
+ * @param pString2
+ * @return
+ */
+ public static ProjectModelConfiguration getProjectModelConfiguration(
+ String fileName,
+ String pluginId)
+ {
+
+ XMLResource xml = new XMLResource();
+ xml.setPluginId(pluginId);
+ xml.setFileName(fileName);
+ return ProjectModelConfiguration.newInstance(xml);
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/SystemResource.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/SystemResource.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,187 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.resource;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+
+import org.apache.avalon.ide.eclipse.merlin.core.MerlinDeveloperCore;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class SystemResource
+{
+
+ /**
+ *
+ */
+ public SystemResource()
+ {
+ super();
+ }
+ /*
+ * java 1.4 version to retain 1.3.1 compatibility (WSAD!) dont use it
now
+ *
+ * public static void copyFile(File in, File out) throws Exception {
+ * FileChannel sourceChannel = new FileInputStream(in).getChannel();
+ * FileChannel destinationChannel = new
FileOutputStream(out).getChannel();
+ * sourceChannel.transferTo(0, sourceChannel.size(),
destinationChannel);
+ * sourceChannel.close(); destinationChannel.close(); }
+ */
+ /*
+ * This method makes a copy of a file.
+ *
+ * java CopyFile source.dat copy.dat
+ *
+ * This command will fail if a file named copy.dat already exists. To
force
+ * the command to succede, add the -f command line option:
+ *
+ * java CopyFile -f source.dat copy.dat
+ *
+ * Either command will fail if the source file does not exist.
+ */
+
+ public static void copyFile(File in, File out) throws Exception
+ {
+ InputStream source; // Stream for reading from the source file.
+ OutputStream copy; // Stream for writing the copy.
+ boolean force = true; // This is set to true if the "-f" option is
+ // specified.
+ int byteCount; // The number of bytes copied from the source file.
+
+ /* Create the input stream. If an error occurs, end the program. */
+
+ try
+ {
+ source = new FileInputStream(in);
+ } catch (FileNotFoundException e)
+ {
+ MerlinDeveloperCore.log(e, "Can't find file \"" + in.getName() +
"\".");
+ return;
+ }
+
+ /*
+ * If the output file alrady exists and the -f option was not
+ * specified,
+ */
+
+ File file = out;
+ if (file.exists() && force == false)
+ {
+ MerlinDeveloperCore.log(null, "Output file exists. Use the -f
option to replace it.");
+ return;
+ }
+
+ /* Create the output stream. If an error occurs, end the program. */
+
+ try
+ {
+ copy = new FileOutputStream(out);
+ } catch (IOException e)
+ {
+ System.out.println("Can't open output file \"" + out.getName() +
"\".");
+ return;
+ }
+
+ /*
+ * Copy one byte at a time from the input stream to the out
put stream,
+ * ending when the read() method returns -1 (which is the
signal that
+ * the end of the stream has been reached. If any error
occurs, print
+ * an error message. Also print a message if the file has bee
copied
+ */
+
+ byteCount = 0;
+
+ try
+ {
+ while (true)
+ {
+ int data = source.read();
+ if (data < 0)
+ break;
+ copy.write(data);
+ byteCount++;
+ }
+ source.close();
+ copy.close();
+
+ } catch (Exception e)
+ {
+ MerlinDeveloperCore.log(
+ e,
+ "Error occured while copying. " + byteCount + " bytes
copied.");
+ }
+
+ } // end copyFile()
+
+ public static String getFileContents(String fileName)
+ {
+
+ StringBuffer buf = new StringBuffer();
+ try
+ {
+ FileInputStream in = new FileInputStream(fileName);
+ InputStreamReader file = new InputStreamReader(in);
+ BufferedReader reader = new BufferedReader(file);
+
+ String line;
+ while ((line = reader.readLine()) != null)
+ {
+ buf.append(line);
+ }
+ file.close();
+ } catch (FileNotFoundException e)
+ {
+ MerlinDeveloperCore.log(e, "");
+ } catch (IOException e)
+ {
+ MerlinDeveloperCore.log(e, "");
+ }
+ return buf.toString();
+ }
+ /**
+ * @param pLine
+ * @param pKey
+ * @param pString
+ * @return
+ */
+ public static String replaceAll(String source, String pKey, String
pReplacement)
+ {
+ int start = 0;
+ int next;
+ StringBuffer in = new StringBuffer(source);
+ StringBuffer out = new StringBuffer();
+ while((next = in.indexOf(pKey, start)) != -1){
+ out.append(source.substring(start, next));
+ out.append(pReplacement);
+ start = next + pKey.length();
+ };
+ out.append(source.substring(start, source.length()));
+
+ return out.toString();
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/TemplateResource.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/TemplateResource.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,177 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.resource;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.util.Iterator;
+
+import org.apache.avalon.ide.eclipse.core.tools.DynProjectParam;
+import org.eclipse.core.resources.IProject;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ * To use a templateResource you have to follow the following steps:
+ *
+ * - setTemplateSourcePath() path where to find the template
+ * - setParameter() see tools.DynProjectParam
+ * - createTemplate(destinationPathFileName, templateSourceFileName)
+ *
+ */
+public class TemplateResource
+{
+
+ /**
+ * @uml property=project associationEnd={multiplicity={(1 1)}}
+ */
+ private IProject project;
+
+ /**
+ * @uml property=parameter associationEnd={multiplicity={(0 1)}}
+ */
+ private DynProjectParam parameter;
+
+ private String templatePath;
+ /**
+ *
+ */
+ public TemplateResource(IProject iProject)
+ {
+ super();
+ this.project = iProject;
+ }
+
+ /**
+ * opens the templatefile and replaces all occurencies of the
parameters
+ * contained in the map. Output is writen to <folder>
+ *
+ * @param templateName
+ * @param map
+ * @param folder
+ */
+ private void createFromTemplate(
+ String templateName,
+ DynProjectParam map,
+ String destinationPath)
+ {
+
+ try
+ {
+ InputStream input = new FileInputStream(new File(templateName));
+ InputStreamReader file = new InputStreamReader(input);
+ BufferedReader reader = new BufferedReader(file);
+
+ String outPath = destinationPath;
+ FileOutputStream ostream = new FileOutputStream(outPath);
+ OutputStreamWriter out = new OutputStreamWriter(ostream);
+
+ String line;
+ Iterator it = map.keySet().iterator();
+ String key;
+
+ while ((line = reader.readLine()) != null)
+ {
+ while (it.hasNext())
+ {
+ if ((key = (String) it.next()).startsWith("%"))
+ {
+ if ((line.indexOf(key)) != -1)
+ {
+ /*
+ * to retain 1.3.1 compatibiliy (WSAD) dont use
"replace"
+ * line = line.replaceAll(key, (String)
map.get(key));
+ */
+ line = SystemResource.replaceAll(line, key,
(String) map.get(key));
+
+ }
+ }
+ }
+ out.write(line);
+ out.write("\n");
+ it = map.keySet().iterator();
+ }
+ out.close();
+ file.close();
+ } catch (Exception e)
+ {
+ System.out.println(e);
+ }
+ }
+ public static String replaceParam(String line, DynProjectParam map)
+ {
+
+ Iterator it = map.keySet().iterator();
+ String key;
+
+ while (it.hasNext())
+ {
+ if ((key = (String) it.next()).startsWith("%"))
+ {
+ if ((line.indexOf(key)) != -1)
+ {
+ /*
+ * to retain 1.3.1 compatibiliy (WSAD) dont use "replace"
+ * line = line.replaceAll(key, (String) map.get(key));
+ */
+ line = SystemResource.replaceAll(line, key, (String)
map.get(key));
+
+ }
+ }
+ }
+ return line;
+
+ }
+ /**
+ * @param destinationPath
+ * (relative to projects location)
+ * @param templateName
+ */
+ public void createTemplate(String destinationPath, String templateName)
+ {
+
+ createFromTemplate(templatePath + templateName, parameter,
destinationPath);
+
+ }
+
+ /**
+ * @param string
+ */
+ public void setTemplateSourcePath(String string)
+ {
+
+ templatePath = string;
+
+ }
+
+ /**
+ * @param param
+ * @uml property=parameter
+ */
+ public void setParameter(DynProjectParam param)
+ {
+
+ parameter = param;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/Test.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/Test.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,33 @@
+/*
+
+ Copyright 2004. 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.
+
+ */package org.apache.avalon.ide.eclipse.core.resource;
+
+/**
+ * @author Andreas Develop
+ *
+ * To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+public class Test
+{
+
+ public static void main(String[] args)
+ {
+ SystemResource.replaceAll("hallo %test% gg %test% o", "%test%",
"neu");
+
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/XMLResource.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/XMLResource.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,107 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.resource;
+
+import org.apache.avalon.ide.eclipse.core.tools.EclipseDirectoryHelper;
+import org.apache.avalon.ide.eclipse.core.xmlmodel.XStream;
+import org.apache.avalon.ide.eclipse.merlin.core.MerlinDeveloperCore;
+import org.eclipse.core.runtime.IPath;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class XMLResource
+{
+
+ /**
+ * @uml property=xs associationEnd={multiplicity={(1 1)}}
+ */
+ private XStream xs;
+
+ private StringBuffer inputString;
+ private String fileName;
+ private String pluginId;
+ /**
+ *
+ */
+ public XMLResource()
+ {
+ super();
+ xs = new XStream();
+ }
+
+ public void alias(String name, Class clazz)
+ {
+ xs.alias(name, clazz);
+ }
+
+ public Object loadObject()
+ {
+ IPath pluginPath;
+
+ if (pluginId != null)
+ {
+ pluginPath = EclipseDirectoryHelper.getPluginLocation(pluginId);
+ } else
+ {
+ pluginPath =
EclipseDirectoryHelper.getPluginLocation(MerlinDeveloperCore.PLUGIN_ID);
+ }
+
+ pluginPath = pluginPath.append(fileName);
+
+ String str = SystemResource.getFileContents(pluginPath.toString());
+ Object obj = xs.fromXML(str);
+ return obj;
+ }
+
+ /**
+ * @return Returns the fileName. @uml property=fileName
+ */
+ public String getFileName()
+ {
+ return fileName;
+ }
+
+ /**
+ * @param iFileName
+ * The fileName to set. @uml property=fileName
+ */
+ public void setFileName(String iFileName)
+ {
+ this.fileName = iFileName;
+ }
+
+ /**
+ * @return Returns the pluginId. @uml property=pluginId
+ */
+ public String getPluginId()
+ {
+ return pluginId;
+ }
+
+ /**
+ * @param iPluginId
+ * The pluginId to set. @uml property=pluginId
+ */
+ public void setPluginId(String iPluginId)
+ {
+ this.pluginId = iPluginId;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/manager.hierarchy.ucd
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/manager.hierarchy.ucd
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<editmodel:ClassDiagramEditModel xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:editmodel="editmodel.xmi" xmlns:null="null" size="1050,658"
id="org.apache.avalon.ide.eclipse.core.resource" metadata="nsuml-1.4"
initialized="true" zoom="0.75">
+ <children xsi:type="editmodel:ClassEditModel" location="839,481"
size="191,103"
id="org.apache.avalon.ide.eclipse.core.resource/ClassResourceManager"
runTimeClassModel="">
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <children xsi:type="editmodel:CompartmentEditModel" size="147,54">
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ClassResourceManager#ClassResourceManager(Lorg.eclipse.core.resources.IProject;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ClassResourceManager#getFullyQualifiedName()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ClassResourceManager#synchronize()"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager&lt;-org.apache.avalon.ide.eclipse.core.resource/ClassResourceManager"
source="//@children.0" target="//@children.1"
targetEnd="//@children.0/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.0/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel" location="95,0"
anchorKind="FixedAtEdge" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="155,281" anchorKind="FixedAtEdge"/>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel"
targetConnections="//@children.3/ AT sourceConnections.0
//@children.4/ AT sourceConnections.0 //@children.2/ AT sourceConnections.0
//@children.0/ AT sourceConnections.0" location="430,41" size="209,283"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager"
runTimeClassModel="changed,javaDocResource,templateResource,project,eclipseResource,xmlResource">
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <children xsi:type="editmodel:CompartmentEditModel" size="162,234">
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#AbstractResourceManager(Lorg.eclipse.core.resources.IProject;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#AbstractResourceManager()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#getEclipseResource()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#getJavaDocResource()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#getProject()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#getTemplateResource()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#getXmlResource()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#isChanged()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#setChanged(Z)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#setJavaDocResource(Lorg.apache.avalon.ide.eclipse.core.resource.JavaDocResource;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#setXmlResource(Lorg.apache.avalon.ide.eclipse.core.resource.XMLResource;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#setProject(Lorg.eclipse.core.resources.IProject;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager#setTemplateResource(Lorg.apache.avalon.ide.eclipse.core.resource.TemplateResource;)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" location="559,481"
size="231,85"
id="org.apache.avalon.ide.eclipse.core.resource/ComponentResourceManager"
runTimeClassModel="xinfoFile,containedClasses">
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <children xsi:type="editmodel:CompartmentEditModel" size="174,36">
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ComponentResourceManager#ComponentResourceManager(Lorg.eclipse.core.resources.IFile;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ComponentResourceManager#getClassResources()"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager&lt;-org.apache.avalon.ide.eclipse.core.resource/ComponentResourceManager"
source="//@children.2" target="//@children.1"
targetEnd="//@children.2/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.2/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="115,0" anchorKind="FixedAtEdge" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="122,281" anchorKind="FixedAtEdge"/>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" location="62,481"
size="203,157"
id="org.apache.avalon.ide.eclipse.core.resource/ProjectResourceManager"
runTimeClassModel="pluginId,createProjectResources(Lorg.apache.avalon.ide.eclipse.core.xmlmodel.ProjectModel;Lorg.apache.avalon.ide.eclipse.core.tools.DynProjectParam;),getPluginPathName()">
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <children xsi:type="editmodel:CompartmentEditModel" size="171,108">
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ProjectResourceManager#ProjectResourceManager(Lorg.eclipse.core.resources.IProject;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ProjectResourceManager#getPluginId()"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ProjectResourceManager#ProjectResourceManager(Lorg.apache.avalon.ide.eclipse.core.xmlmodel.ProjectModel;Lorg.apache.avalon.ide.eclipse.core.tools.DynProjectParam;Ljava.lang.String;Ljava.lang.String;)"/>
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/ProjectResourceManager#getProjectModelConfiguration(Ljava.lang.String;Ljava.lang.String;)"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager&lt;-org.apache.avalon.ide.eclipse.core.resource/ProjectResourceManager"
source="//@children.3" target="//@children.1"
targetEnd="//@children.3/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.3/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="101,0" anchorKind="FixedAtEdge" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="71,281" anchorKind="FixedAtEdge"/>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel" location="314,481"
size="193,67"
id="org.apache.avalon.ide.eclipse.core.resource/BlockResourceManager"
runTimeClassModel="">
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <children xsi:type="editmodel:CompartmentEditModel" size="146,18">
+ <children xsi:type="editmodel:MethodEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/BlockResourceManager#BlockResourceManager()"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:GeneralizationEditModel"
id="org.apache.avalon.ide.eclipse.core.resource/AbstractResourceManager&lt;-org.apache.avalon.ide.eclipse.core.resource/BlockResourceManager"
source="//@children.4" target="//@children.1"
targetEnd="//@children.4/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.4/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="95,-1" anchorKind="FixedAtEdge" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="86,281" anchorKind="FixedAtEdge"/>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <diagramOptions xsi:type="null:ClassDiagramOptions"/>
+ <classDiagramPreferences xsi:type="editmodel:UMLClassDiagramPreference"
attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural"
showPublicAttributes="true" showPackageAttributes="true"
showPublicMethods="true" showPackageMethods="true"
showPublicInnerClasses="true" showPackageInnerClasses="true"
showInterfaceStereotype="true" showClassStereotype="true"
showPackageStereotype="true"/>
+</editmodel:ClassDiagramEditModel>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/package.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource/package.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,17 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="de">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>Resource package</title>
+</head>
+
+<body>
+
+<p>Resource package</p>
+
+</body>
+
+</html>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools/ClassNameAnalyzer.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools/ClassNameAnalyzer.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,98 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.tools;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development
Team</a>*
+ */
+public class ClassNameAnalyzer
+{
+
+ /**
+ * @uml property=segments associationEnd={multiplicity={(0 -1)}
+ * elementType=java.lang.String}
+ *
+ */
+ private List segments = new ArrayList();
+
+ public void setFullClassName(String name)
+ {
+
+ while (name.indexOf(".") != -1)
+ {
+ segments.add(name.substring(0, name.indexOf(".")));
+ name = name.substring(name.indexOf(".") + 1, name.length());
+ }
+ segments.add(name);
+ }
+
+ public String getPath()
+ {
+
+ StringBuffer buff = new StringBuffer();
+ for (int i = 0; segments.size() > i + 2; i++)
+ {
+ buff.append((String) segments.get(i));
+ buff.append("/");
+ }
+ return buff.toString();
+ }
+
+ /**
+ * @return
+ */
+ public Object getFileName()
+ {
+
+ StringBuffer buff = new StringBuffer();
+ int size = segments.size();
+ for (int i = size - 2; size > i; i++)
+ {
+ buff.append((String) segments.get(i));
+ if (i < size - 1)
+ buff.append(".");
+ }
+ return buff.toString();
+ }
+
+ /**
+ * @param directory
+ */
+ public void setPath(String directory)
+ {
+
+ while (directory.indexOf("/") != -1)
+ {
+ segments.add(directory.substring(0, directory.indexOf("/")));
+ directory = directory.substring(directory.indexOf("/") + 1,
directory.length());
+ }
+ segments.add(directory);
+ }
+
+ /**
+ * @return Returns the segments. @uml property=segments
+ */
+ public List getSegments()
+ {
+ return segments;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools/DynProjectParam.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools/DynProjectParam.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,164 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.tools;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class DynProjectParam
+{
+
+ /**
+ * @uml property=param associationEnd={multiplicity={(0 1)}
+ * qualifier=(constant:java.lang.String string:java.lang.String)}
+ */
+ Map param = new HashMap();
+
+ public void setFullImplementationClassName(String fullClassName)
+ {
+
+ param.put("%implementationpackage%", extractPackage(fullClassName));
+ param.put("%implementationclass%", extractClassName(fullClassName));
+ param.put("%full_implementationclass%", fullClassName);
+
+ }
+ public void setFullServiceClassName(String fullClassName)
+ {
+
+ param.put("%servicepackage%", extractPackage(fullClassName));
+ param.put("%serviceclass%", extractClassName(fullClassName));
+ param.put("%full_serviceclass%", fullClassName);
+
+ }
+ public void setContainerName(String containerName)
+ {
+
+ param.put("%containername%", containerName);
+
+ }
+
+ /**
+ * @param fullClassName
+ * @return the package part of the fully qualified className
+ */
+ private String extractPackage(String fullClassName)
+ {
+ if (fullClassName.trim().length() > 0)
+ {
+ return fullClassName.substring(0,
fullClassName.lastIndexOf('.'));
+ } else
+ {
+ return "";
+ }
+ }
+
+ /**
+ * @param fullClassName
+ * @return className part of the fully qualified className
+ */
+ private String extractClassName(String fullClassName)
+ {
+ if (fullClassName.trim().length() > 0)
+ {
+ return fullClassName.substring(fullClassName.lastIndexOf('.') +
1);
+ } else
+ {
+ return "";
+ }
+ }
+ /**
+ * @param string
+ */
+ public void setProjectName(String string)
+ {
+
+ param.put("%projectname%", string);
+ }
+ /**
+ *
+ */
+ public String getProjectName()
+ {
+
+ return (String) param.get("%projectname%");
+ }
+ /**
+ * @param string
+ */
+ public void setVirtualServiceName(String string)
+ {
+
+ param.put("%virtualservicename%", string);
+
+ }
+ /**
+ * @param string
+ */
+ public void setVersion(String string)
+ {
+
+ param.put("%version%", string);
+
+ }
+ /**
+ * @param string
+ */
+ public void setDatabaseName(String string)
+ {
+
+ param.put("%databasename%", string);
+
+ }
+
+ /**
+ * @param string
+ * @return Object
+ */
+ public Object get(String string)
+ {
+
+ return param.get(string);
+ }
+ /**
+ * @return Set
+ */
+ public Set keySet()
+ {
+ return param.keySet();
+ }
+ /**
+ * @return (String) package of the service
+ */
+ public String getServicePackage()
+ {
+ return (String) param.get("%servicepackage%");
+ }
+ /**
+ * @return (String) package of the implementation class
+ */
+ public String getImplementationPackage()
+ {
+ return (String) param.get("%implementationpackage%");
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools/EclipseDirectoryHelper.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools/EclipseDirectoryHelper.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,249 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.tools;
+
+import java.net.URL;
+import java.util.Iterator;
+import java.util.Vector;
+
+import org.apache.avalon.ide.eclipse.merlin.core.MerlinDeveloperCore;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.launching.JavaRuntime;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class EclipseDirectoryHelper
+{
+
+ /**
+ * @uml property=project associationEnd={multiplicity={(0 -1)}
+ * elementType=java.lang.String}
+ *
+ */
+ private IProject project;
+
+ /**
+ * @uml property=classpathEntries associationEnd={multiplicity={(0
-1)}
+ * elementType=org.eclipse.jdt.core.IClasspathEntry}
+ *
+ */
+ private Vector classpathEntries = new Vector();
+
+ /**
+ * @param project
+ */
+ public EclipseDirectoryHelper(IProject pProject)
+ {
+ super();
+ project = pProject;
+ }
+
+ public static IPath getPluginLocation(String pluginId)
+ {
+ try
+ {
+ URL installURL =
+
Platform.getPluginRegistry().getPluginDescriptor(pluginId).getInstallURL();
+ return new Path(Platform.resolve(installURL).getFile());
+ } catch (Exception e)
+ {
+ MerlinDeveloperCore.log(e, "getPluginLocation() handling
Exception"); //$NON-NLS-1$
+ return null;
+ }
+ }
+
+ /**
+ * @param project
+ * @param qualifiedClassName
+ * @return
+ */
+ public static IFile findFile(IProject project, String qualifiedClassName)
+ {
+
+ IJavaProject proj = JavaCore.create(project);
+ IFile file = null;
+
+ try
+ {
+ IType type = proj.findType(qualifiedClassName);
+ file = (IFile) type.getUnderlyingResource();
+
+ } catch (JavaModelException e)
+ {
+ e.printStackTrace();
+ }
+ return file;
+ }
+
+ /**
+ * Method getOutputPath.
+ *
+ * @param file
+ * @return String
+ */
+ public static String getOutputPath(IResource file)
+ {
+
+ String result = null;
+
+ IJavaProject proj = JavaCore.create(file.getProject());
+ try
+ {
+ String fullPath = file.getProject().getLocation().toString();
+ int i = 0;
+ if ((i = fullPath.lastIndexOf('/')) != -1)
+ {
+ fullPath = fullPath.substring(0, i);
+ }
+ IPath path = proj.getOutputLocation();
+ result = fullPath + path.toString();
+ } catch (Exception e)
+ {}
+
+ return result;
+ }
+
+ /**
+ * @param eFile
+ */
+ public static void refresh(IFile eFile)
+ {
+
+ try
+ {
+ eFile.refreshLocal(1, null);
+ } catch (CoreException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @param directories
+ */
+ public void createDirectory(String directory, boolean isSource)
+ {
+
+ IFolder folder = null;
+
+ try
+ {
+ ClassNameAnalyzer cna = new ClassNameAnalyzer();
+ cna.setPath(directory);
+ Iterator it = cna.getSegments().iterator();
+
+ while (it.hasNext())
+ {
+ if (folder == null)
+ {
+ // first segment
+ folder = project.getFolder((String) it.next());
+ } else
+ {
+ folder = folder.getFolder((String) it.next());
+ }
+ if (!folder.exists())
+ {
+ folder.create(false, true, null);
+ }
+ if (isSource)
+ {
+
classpathEntries.add(JavaCore.newSourceEntry(folder.getFullPath()));
+ }
+ }
+
+ } catch (CoreException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * @param folderName
+ * (relative to project)
+ * @return
+ */
+ public String getFullPathName(String folderName)
+ {
+
+ String projectFolder = project.getLocation().toString();
+ return projectFolder + "/" + folderName;
+ }
+
+ /**
+ *
+ */
+ public void setClasspath()
+ {
+
+ try
+ {
+ String[] libraries;
+ IJavaProject javaProject = JavaCore.create(project);
+ classpathEntries.add(JavaRuntime.getJREVariableEntry());
+
+ IPath pluginPath =
EclipseDirectoryHelper.getPluginLocation(MerlinDeveloperCore.PLUGIN_ID);
//$NON-NLS-1$
+ pluginPath = pluginPath.append("lib/avalon-framework");
+ libraries = pluginPath.toFile().list();
+ for (int i = 0; i < libraries.length; i++)
+ {
+ if
(libraries[i].toLowerCase().startsWith("avalon-framework-api"))
+ { //$NON-NLS-1$
+ classpathEntries.add(
+ JavaCore.newLibraryEntry(
+ pluginPath.append(libraries[i]),
+ null,
+ null));
+ }
+ if
(libraries[i].toLowerCase().startsWith("avalon-framework-impl"))
+ { //$NON-NLS-1$
+ classpathEntries.add(
+ JavaCore.newLibraryEntry(
+ pluginPath.append(libraries[i]),
+ null,
+ null));
+ }
+ }
+
+ javaProject.setRawClasspath(
+ (IClasspathEntry[]) classpathEntries.toArray(
+ new IClasspathEntry[classpathEntries.size()]),
+ javaProject.getOutputLocation(),
+ null);
+ } catch (JavaModelException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools/package.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools/package.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,17 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="de">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>Resource package</title>
+</head>
+
+<body>
+
+<p>tools package</p>
+
+</body>
+
+</html>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/AttributeContainer.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/AttributeContainer.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,54 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.xmlmodel;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class AttributeContainer
+{
+
+ private String name;
+ /**
+ *
+ */
+ public AttributeContainer()
+ {
+ super();
+
+ }
+
+ /**
+ * @return @uml property=name
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * @param string
+ * @uml property=name
+ */
+ public void setName(String string)
+ {
+ name = string;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/AttributeContainerConverter.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/AttributeContainerConverter.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,150 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.xmlmodel;
+
+import com.thoughtworks.xstream.alias.ClassMapper;
+import com.thoughtworks.xstream.alias.ElementMapper;
+import com.thoughtworks.xstream.converters.Converter;
+import com.thoughtworks.xstream.converters.ConverterLookup;
+import com.thoughtworks.xstream.objecttree.ObjectTree;
+import com.thoughtworks.xstream.xml.XMLReader;
+import com.thoughtworks.xstream.xml.XMLWriter;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class AttributeContainerConverter implements Converter
+{
+
+ /**
+ * @uml property=classMapper associationEnd={multiplicity={(1 1)}}
+ */
+ private ClassMapper classMapper;
+ private ElementMapper elementMapper;
+
+ public AttributeContainerConverter(ClassMapper iClassMapper,
ElementMapper iElementMapper)
+ {
+ this.classMapper = iClassMapper;
+ this.elementMapper = iElementMapper;
+ }
+ public boolean canConvert(Class type)
+ {
+ return AttributeContainer.class.isAssignableFrom(type);
+ }
+
+ public void toXML(ObjectTree objectGraph, XMLWriter xmlWriter,
ConverterLookup converterLookup)
+ {
+ String[] fieldNames = objectGraph.fieldNames();
+ // circularityTracker.track(objectGraph.get());
+ for (int i = 0; i < fieldNames.length; i++)
+ {
+ String fieldName = fieldNames[i];
+
+ objectGraph.push(fieldName);
+
+ if (objectGraph.get() != null)
+ {
+ writeFieldAsXML(
+ xmlWriter,
+ elementMapper.toXml(fieldName),
+ objectGraph,
+ converterLookup);
+ }
+
+ objectGraph.pop();
+ }
+ }
+
+ private void writeFieldAsXML(
+ XMLWriter xmlWriter,
+ String fieldName,
+ ObjectTree objectGraph,
+ ConverterLookup converterLookup)
+ {
+ xmlWriter.startElement(fieldName);
+
+ writeClassAttributeInXMLIfNotDefaultImplementation(objectGraph,
xmlWriter);
+ Converter converter =
converterLookup.lookupConverterForType(objectGraph.type());
+ converter.toXML(objectGraph, xmlWriter, converterLookup);
+
+ xmlWriter.endElement();
+ }
+
+ protected void writeClassAttributeInXMLIfNotDefaultImplementation(
+ ObjectTree objectGraph,
+ XMLWriter xmlWriter)
+ {
+ Class actualType = objectGraph.get().getClass();
+ Class defaultType =
classMapper.lookupDefaultType(objectGraph.type());
+ if (!actualType.equals(defaultType))
+ {
+ xmlWriter.addAttribute("class",
classMapper.lookupName(actualType));
+ }
+ }
+
+ public void fromXML(
+ ObjectTree objectGraph,
+ XMLReader xmlReader,
+ ConverterLookup converterLookup,
+ Class requiredType)
+ {
+ objectGraph.create(requiredType);
+ String[] fieldNames = objectGraph.fieldNames();
+ for (int i = 0; i < fieldNames.length; i++)
+ {
+ String fieldName = fieldNames[i];
+ if (xmlReader.attribute(fieldName) != null)
+ {
+ objectGraph.push(fieldName);
+ objectGraph.set(xmlReader.attribute(fieldName));
+ objectGraph.pop();
+ //xmlReader.pop();
+ } else
+ {
+ while (xmlReader.nextChild())
+ {
+
objectGraph.push(elementMapper.fromXml(xmlReader.name()));
+
+ Class type =
determineWhichImplementationToUse(xmlReader, objectGraph);
+ Converter converter =
converterLookup.lookupConverterForType(type);
+ converter.fromXML(objectGraph, xmlReader,
converterLookup, type);
+ objectGraph.pop();
+
+ xmlReader.pop();
+ }
+ }
+ }
+ }
+
+ private Class determineWhichImplementationToUse(
+ XMLReader xmlReader,
+ final ObjectTree objectGraph)
+ {
+ String classAttribute = xmlReader.attribute("class");
+ Class type;
+ if (classAttribute == null)
+ {
+ type = objectGraph.type();
+ } else
+ {
+ type = classMapper.lookupType(classAttribute);
+ }
+ return type;
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/Directory.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/Directory.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,103 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.xmlmodel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development
Team</a>*
+ */
+public class Directory extends AttributeContainer
+{
+
+ private Boolean source = new Boolean(false);
+
+ /**
+ * @uml property=templates associationEnd={multiplicity={(0 -1)}
+ * elementType=org.apache.avalon.ide.eclipse.core.xmlmodel.Template}
+ *
+ */
+ private List templates = new ArrayList();
+
+ /**
+ * @uml property=libraries associationEnd={multiplicity={(0 -1)}
+ * elementType=org.apache.avalon.ide.eclipse.core.xmlmodel.Library}
+ *
+ */
+ private List libraries = new ArrayList();
+
+ /**
+ *
+ */
+ public Directory()
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @return Returns the source.
+ */
+ public boolean isSource()
+ {
+ if (source == null)
+ return false;
+ return source.booleanValue();
+ }
+
+ /**
+ * @param iSource
+ * The source to set. @uml property=source
+ */
+ public void setSource(Boolean iSource)
+ {
+ this.source = iSource;
+ }
+
+ public void addTemplate(Template template)
+ {
+ templates.add(template);
+ }
+
+ public void addLibrary(Library library)
+ {
+ templates.add(library);
+ }
+
+ /**
+ * @uml property=templates
+ */
+ public List getTemplates()
+ {
+ if (templates == null)
+ return new ArrayList();
+ return templates;
+ }
+
+ /**
+ * @uml property=libraries
+ */
+ public List getLibraries()
+ {
+ if (libraries == null)
+ return new ArrayList();
+ return libraries;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/Library.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/Library.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,54 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.xmlmodel;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class Library
+{
+
+ String name;
+ /**
+ *
+ */
+ public Library()
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @return Returns the name. @uml property=name
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * @param iName
+ * The name to set. @uml property=name
+ */
+ public void setName(String iName)
+ {
+ this.name = iName;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/ProjectMeta.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/ProjectMeta.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,128 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.xmlmodel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.avalon.ide.eclipse.core.tools.DynProjectParam;
+import org.eclipse.jface.resource.ImageDescriptor;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development
Team</a>*
+ */
+public class ProjectMeta extends AttributeContainer
+{
+
+ private String label;
+ private String description;
+
+ /**
+ * @uml property=directories associationEnd={multiplicity={(0 -1)}
+ * elementType=org.apache.avalon.ide.eclipse.core.xmlmodel.Directory}
+ *
+ */
+ private List directories = new ArrayList();
+
+ /**
+ * @uml property=parameter associationEnd={multiplicity={(0 1)}}
+ */
+ private DynProjectParam parameter;
+
+ /**
+ *
+ */
+ public ProjectMeta()
+ {
+ super();
+ }
+
+ /**
+ * @return Returns the description. @uml property=description
+ */
+ public String getDescription()
+ {
+ return description;
+ }
+
+ /**
+ * @param iDescription
+ * The description to set. @uml property=description
+ */
+ public void setDescription(String iDescription)
+ {
+ this.description = iDescription;
+ }
+
+ /**
+ * @return Returns the label. @uml property=label
+ */
+ public String getLabel()
+ {
+ return label;
+ }
+
+ /**
+ * @param iLabel
+ * The label to set. @uml property=label
+ */
+ public void setLabel(String iLabel)
+ {
+ this.label = iLabel;
+ }
+
+ /**
+ * @uml property=directories
+ */
+ public List getDirectories()
+ {
+ return directories;
+ }
+
+ public void addDirectory(Directory directory)
+ {
+ directories.add(directory);
+ }
+
+ /**
+ * @return
+ */
+ public ImageDescriptor getImage()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * @return Returns the parameter. @uml property=parameter
+ */
+ public DynProjectParam getParameter()
+ {
+ return parameter;
+ }
+
+ /**
+ * @param iParameter
+ * The parameter to set. @uml property=parameter
+ */
+ public void setParameter(DynProjectParam iParameter)
+ {
+ this.parameter = iParameter;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/ProjectModel.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/ProjectModel.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,119 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.xmlmodel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development
Team</a>*
+ */
+public class ProjectModel extends AttributeContainer
+{
+
+ private String label;
+ private String description;
+ private boolean selected = false;
+
+ /**
+ * @uml property=directories associationEnd={multiplicity={(0 -1)}
+ * elementType=org.apache.avalon.ide.eclipse.core.xmlmodel.Directory}
+ *
+ */
+ private List directories = new ArrayList();
+
+ /**
+ *
+ */
+ public ProjectModel()
+ {
+ super();
+ }
+
+ /**
+ * @return Returns the description. @uml property=description
+ */
+ public String getDescription()
+ {
+ return description;
+ }
+
+ /**
+ * @param iDescription
+ * The description to set. @uml property=description
+ */
+ public void setDescription(String iDescription)
+ {
+ this.description = iDescription;
+ }
+
+ /**
+ * @return Returns the label. @uml property=label
+ */
+ public String getLabel()
+ {
+ return label;
+ }
+
+ /**
+ * @param iLabel
+ * The label to set. @uml property=label
+ */
+ public void setLabel(String iLabel)
+ {
+ this.label = iLabel;
+ }
+
+ /**
+ * @uml property=directories
+ */
+ public List getDirectories()
+ {
+ if (directories == null)
+ {
+ return new ArrayList();
+ } else
+ {
+ return directories;
+ }
+
+ }
+
+ public void addDirectory(Directory directory)
+ {
+ directories.add(directory);
+ }
+
+ /**
+ * @return Returns the selected.
+ */
+ public boolean isSelected()
+ {
+ return selected;
+
+ }
+
+ /**
+ * @param pSelected The selected to set.
+ */
+ public void setSelected(boolean pSelected)
+ {
+ selected = pSelected;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/ProjectModelConfiguration.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/ProjectModelConfiguration.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,75 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.xmlmodel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.avalon.ide.eclipse.core.resource.XMLResource;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development
Team</a>*
+ */
+public class ProjectModelConfiguration
+{
+
+ /**
+ * @uml property=wizards associationEnd={multiplicity={(0 -1)}
+ *
elementType=org.apache.avalon.ide.eclipse.core.xmlmodel.ProjectMeta}
+ *
+ */
+ private List projectModels = new ArrayList();
+
+ /**
+ * @uml property=xmlResource associationEnd={multiplicity={(0 1)}}
+ */
+ private XMLResource xmlResource;
+
+ /**
+ *
+ */
+ public ProjectModelConfiguration()
+ {
+ super();
+ }
+
+ public static ProjectModelConfiguration newInstance(XMLResource xml)
+ {
+
+ xml.alias("projectModelConfiguration",
ProjectModelConfiguration.class);
+ xml.alias("projectModel", ProjectModel.class);
+ xml.alias("directory", Directory.class);
+ xml.alias("library", Library.class);
+ xml.alias("template", Template.class);
+ return (ProjectModelConfiguration) xml.loadObject();
+ }
+
+ public void addProjectModel(ProjectModel model)
+ {
+ projectModels.add(model);
+ }
+
+ /**
+ * @uml property=wizards
+ */
+ public List getProjectModels()
+ {
+ return projectModels;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/Template.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/Template.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,52 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.xmlmodel;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development
Team</a>*
+ */
+public class Template extends AttributeContainer
+{
+
+ private String fileName;
+ /**
+ *
+ */
+ public Template()
+ {
+ super();
+ }
+
+ /**
+ * @return Returns the fileName. @uml property=fileName
+ */
+ public String getFileName()
+ {
+ return fileName;
+ }
+
+ /**
+ * @param iFileName
+ * The fileName to set. @uml property=fileName
+ */
+ public void setFileName(String iFileName)
+ {
+ this.fileName = iFileName;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/XStream.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/XStream.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,149 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.core.xmlmodel;
+
+import com.thoughtworks.xstream.alias.DefaultClassMapper;
+import com.thoughtworks.xstream.alias.ClassMapper;
+import com.thoughtworks.xstream.alias.DefaultElementMapper;
+import com.thoughtworks.xstream.alias.ElementMapper;
+import com.thoughtworks.xstream.converters.Converter;
+import com.thoughtworks.xstream.converters.ConverterLookup;
+import com.thoughtworks.xstream.converters.basic.*;
+import com.thoughtworks.xstream.converters.collections.ArrayConverter;
+import com.thoughtworks.xstream.converters.collections.CollectionConverter;
+import com.thoughtworks.xstream.converters.collections.MapConverter;
+import
com.thoughtworks.xstream.converters.composite.ObjectWithFieldsConverter;
+import com.thoughtworks.xstream.converters.lookup.DefaultConverterLookup;
+import com.thoughtworks.xstream.objecttree.ObjectTree;
+import com.thoughtworks.xstream.objecttree.reflection.ObjectFactory;
+import com.thoughtworks.xstream.objecttree.reflection.ReflectionObjectGraph;
+import
com.thoughtworks.xstream.objecttree.reflection.SunReflectionObjectFactory;
+import com.thoughtworks.xstream.xml.XMLReader;
+import com.thoughtworks.xstream.xml.XMLReaderDriver;
+import com.thoughtworks.xstream.xml.XMLWriter;
+import com.thoughtworks.xstream.xml.dom.DomXMLReaderDriver;
+import com.thoughtworks.xstream.xml.text.PrettyPrintXMLWriter;
+
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.*;
+
+public class XStream {
+
+ private ConverterLookup converterLookup = new DefaultConverterLookup();
+ private XMLReaderDriver xmlReaderDriver = new DomXMLReaderDriver();
+ private ClassMapper classMapper;
+ private ObjectFactory objectFactory;
+
+ public XStream() {
+ this(new SunReflectionObjectFactory(), new DefaultClassMapper(), new
DefaultElementMapper());
+ }
+
+ public XStream(ObjectFactory iObjectFactory, ClassMapper iClassMapper,
ElementMapper elementMapper) {
+ this.classMapper = iClassMapper;
+ this.objectFactory = iObjectFactory;
+
+ alias("int", Integer.class);
+ alias("float", Float.class);
+ alias("double", Double.class);
+ alias("long", Long.class);
+ alias("short", Short.class);
+ alias("char", Character.class);
+ alias("byte", Byte.class);
+ alias("boolean", Boolean.class);
+ alias("number", Number.class);
+ alias("object", Object.class);
+
+ alias("string-buffer", StringBuffer.class);
+ alias("string", String.class);
+ alias("java-class", Class.class);
+ alias("date", Date.class);
+
+ alias("map", Map.class, HashMap.class);
+ alias("list", List.class, ArrayList.class);
+ alias("set", Set.class, HashSet.class);
+
+ alias("linked-list", LinkedList.class);
+ alias("tree-map", TreeMap.class);
+ alias("tree-set", TreeSet.class);
+
+ registerConverter(new
ObjectWithFieldsConverter(iClassMapper,elementMapper));
+ // added to work with attributes. MerlinDeveloper
+ registerConverter(new
AttributeContainerConverter(iClassMapper,elementMapper));
+
+ registerConverter(new IntConverter());
+ registerConverter(new FloatConverter());
+ registerConverter(new DoubleConverter());
+ registerConverter(new LongConverter());
+ registerConverter(new ShortConverter());
+ registerConverter(new CharConverter());
+ registerConverter(new BooleanConverter());
+ registerConverter(new ByteConverter());
+
+ registerConverter(new StringConverter());
+ registerConverter(new StringBufferConverter());
+ registerConverter(new DateConverter());
+ registerConverter(new JavaClassConverter());
+
+ registerConverter(new ArrayConverter(iClassMapper));
+ registerConverter(new CollectionConverter(iClassMapper));
+ registerConverter(new MapConverter(iClassMapper));
+
+ }
+
+ public void alias(String elementName, Class type, Class
defaultImplementation) {
+ classMapper.alias(elementName, type, defaultImplementation);
+ }
+
+ public void alias(String elementName, Class type) {
+ alias(elementName, type, type);
+ }
+
+ public String toXML(Object obj) {
+ Writer stringWriter = new StringWriter();
+ XMLWriter xmlWriter = new PrettyPrintXMLWriter(stringWriter);
+ toXML(obj, xmlWriter);
+ return stringWriter.toString();
+ }
+
+ public void toXML(Object obj, XMLWriter xmlWriter) {
+ ObjectTree objectGraph = new ReflectionObjectGraph(obj,
objectFactory);
+ Converter rootConverter =
converterLookup.lookupConverterForType(obj.getClass());
+ xmlWriter.startElement(classMapper.lookupName(obj.getClass()));
+ rootConverter.toXML(objectGraph, xmlWriter, converterLookup);
+ xmlWriter.endElement();
+ }
+
+ public Object fromXML(String xml) {
+ return fromXML(xmlReaderDriver.createReader(xml));
+ }
+
+ public Object fromXML(XMLReader xmlReader) {
+ Class type = classMapper.lookupType(xmlReader.name());
+ ObjectFactory tObjectFactory = new SunReflectionObjectFactory();
+ ObjectTree objectGraph = new ReflectionObjectGraph(type,
tObjectFactory);
+ Converter rootConverter =
converterLookup.lookupConverterForType(type);
+ rootConverter.fromXML(objectGraph, xmlReader, converterLookup, type);
+ return objectGraph.get();
+ }
+
+ public void registerConverter(Converter converter) {
+ converterLookup.registerConverter(converter);
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/overview.jpg
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/overview.ucd
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/overview.ucd
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<editmodel:ClassDiagramEditModel xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:editmodel="editmodel.xmi" xmlns:null="null" size="945,809"
id="org.apache.avalon.ide.eclipse.core.xmlmodel" metadata="nsuml-1.4"
initialized="true" scrolledY="-4">
+ <children xsi:type="editmodel:ClassEditModel"
targetConnections="//@children.5/ AT sourceConnections.0" location="62,145"
size="204,75"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModelConfiguration"
runTimeClassModel="newInstance(Lorg.apache.avalon.ide.eclipse.core.resource.XMLResource;)">
+ <children xsi:type="editmodel:CompartmentEditModel" size="181,36">
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModelConfiguration#wizards"/>
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModelConfiguration#xmlResource"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="144,54"/>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel@wizards+org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModelConfiguration@"
source="//@children.0" target="//@children.1"
targetEnd="//@children.0/ AT sourceConnections.0/ AT children.2"
label="//@children.0/ AT sourceConnections.0/ AT children.0"
sourceEnd="//@children.0/ AT sourceConnections.0/ AT children.1"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:WireLabelEditModel" size="1,14"
fontInfo="Arial-8-0" anchorKind="MiddlePart"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="203,23"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel@wizards+org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModelConfiguration@|org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModelConfiguration#"
anchorKind="FixedAtEdge" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" location="0,35"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel@wizards+org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModelConfiguration@|org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel#wizards"
anchorKind="FixedAtEdge"
multiplicityLabel="//@children.0/ AT sourceConnections.0/ AT children.2/ AT children.1"
roleLabel="//@children.0/ AT sourceConnections.0/ AT children.2/ AT children.0"
orderingLabel="//@children.0/ AT sourceConnections.0/ AT children.2/ AT children.2"
navigable="true" flags="2">
+ <children xsi:type="editmodel:LabelEditModel" size="51,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ <children xsi:type="editmodel:LabelEditModel" size="17,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ <children xsi:type="editmodel:LabelEditModel" size="35,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ </children>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel"
targetConnections="//@children.6/ AT sourceConnections.0
//@children.0/ AT sourceConnections.0" location="430,133" size="205,111"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel"
runTimeClassModel="setParameter(Lorg.apache.avalon.ide.eclipse.core.tools.DynWizardParam;),getParameter(),getDirectories(),addDirectory(Lorg.apache.avalon.ide.eclipse.core.xmlmodel.Directory;),ProjectMeta(),getImage(),setDescription(Ljava.lang.String;),setLabel(Ljava.lang.String;),getDescription(),getLabel()">
+ <children xsi:type="editmodel:CompartmentEditModel" size="182,72">
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel#label"/>
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel#description"/>
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel#directories"/>
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel#parameter"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="100,180"/>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@directories+org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel@"
source="//@children.1" target="//@children.2"
targetEnd="//@children.1/ AT sourceConnections.0/ AT children.2"
label="//@children.1/ AT sourceConnections.0/ AT children.0"
sourceEnd="//@children.1/ AT sourceConnections.0/ AT children.1"
connectionRouterKind="Manhattan">
+ <children xsi:type="editmodel:WireLabelEditModel" size="1,14"
fontInfo="Arial-8-0" anchorKind="MiddlePart"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="36,110"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@directories+org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel@|org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel#"
attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@directories+org.apache.avalon.ide.eclipse.core.xmlmodel/ProjectModel@|org.apache.avalon.ide.eclipse.core.xmlmodel/Directory#directories"

multiplicityLabel="//@children.1/ AT sourceConnections.0/ AT children.2/ AT children.1"
roleLabel="//@children.1/ AT sourceConnections.0/ AT children.2/ AT children.0"
navigable="true">
+ <children xsi:type="editmodel:LabelEditModel" size="64,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ <children xsi:type="editmodel:LabelEditModel" size="17,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ </children>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel"
targetConnections="//@children.1/ AT sourceConnections.0
//@children.7/ AT sourceConnections.0" location="466,319" size="134,93"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Directory"
runTimeClassModel="setSource(Ljava.lang.Boolean;),addTemplate(Lorg.apache.avalon.ide.eclipse.core.xmlmodel.Template;),addLibrary(Lorg.apache.avalon.ide.eclipse.core.xmlmodel.Library;),getTemplates(),isSource(),Directory(),getLibraries()">
+ <children xsi:type="editmodel:CompartmentEditModel" size="111,54">
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Directory#source"/>
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Directory#templates"/>
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Directory#libraries"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="95,126"/>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Template@templates+org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@"
source="//@children.2" target="//@children.3"
targetEnd="//@children.2/ AT sourceConnections.0/ AT children.2"
label="//@children.2/ AT sourceConnections.0/ AT children.0"
sourceEnd="//@children.2/ AT sourceConnections.0/ AT children.1"
connectionRouterKind="Manhattan">
+ <children xsi:type="editmodel:WireLabelEditModel" size="1,14"
fontInfo="Arial-8-0" anchorKind="MiddlePart"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="86,93"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Template@templates+org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@|org.apache.avalon.ide.eclipse.core.xmlmodel/Directory#"
attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Template@templates+org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@|org.apache.avalon.ide.eclipse.core.xmlmodel/Template#templates"

multiplicityLabel="//@children.2/ AT sourceConnections.0/ AT children.2/ AT children.1"
roleLabel="//@children.2/ AT sourceConnections.0/ AT children.2/ AT children.0"
navigable="true">
+ <children xsi:type="editmodel:LabelEditModel" size="54,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ <children xsi:type="editmodel:LabelEditModel" size="17,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ </children>
+ </sourceConnections>
+ <sourceConnections xsi:type="editmodel:AssociationEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Library@libraries+org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@"
source="//@children.2" target="//@children.4"
targetEnd="//@children.2/ AT sourceConnections.1/ AT children.2"
label="//@children.2/ AT sourceConnections.1/ AT children.0"
sourceEnd="//@children.2/ AT sourceConnections.1/ AT children.1"
connectionRouterKind="Manhattan">
+ <children xsi:type="editmodel:WireLabelEditModel" size="1,14"
fontInfo="Arial-8-0" anchorKind="MiddlePart"/>
+ <children xsi:type="editmodel:AssociationEndEditModel" location="7,93"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Library@libraries+org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@|org.apache.avalon.ide.eclipse.core.xmlmodel/Directory#"
attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Library@libraries+org.apache.avalon.ide.eclipse.core.xmlmodel/Directory@|org.apache.avalon.ide.eclipse.core.xmlmodel/Library#libraries"

multiplicityLabel="//@children.2/ AT sourceConnections.1/ AT children.2/ AT children.1"
roleLabel="//@children.2/ AT sourceConnections.1/ AT children.2/ AT children.0"
navigable="true">
+ <children xsi:type="editmodel:LabelEditModel" size="51,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ <children xsi:type="editmodel:LabelEditModel" size="17,14"
fontInfo="Arial-8-0" anchorKind="LastPart"/>
+ </children>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel"
targetConnections="//@children.2/ AT sourceConnections.0
//@children.9/ AT sourceConnections.0" location="613,506" size="118,57"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Template"
runTimeClassModel="getFileName(),setFileName(Ljava.lang.String;),Template()">
+ <children xsi:type="editmodel:CompartmentEditModel" size="95,18">
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Template#fileName"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="89,54"/>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:ClassEditModel"
targetConnections="//@children.2/ AT sourceConnections.1" location="328,506"
size="103,57" id="org.apache.avalon.ide.eclipse.core.xmlmodel/Library"
runTimeClassModel="getName(),setName(Ljava.lang.String;),Library()">
+ <children xsi:type="editmodel:CompartmentEditModel" size="80,18">
+ <children xsi:type="editmodel:AttributeEditModel"
id="org.apache.avalon.ide.eclipse.core.xmlmodel/Library#name"/>
+ </children>
+ <children xsi:type="editmodel:CompartmentEditModel" size="73,54"/>
+ <children xsi:type="editmodel:CompartmentEditModel"/>
+ <sourceConnections xsi:type="editmodel:IndicationEditModel"
source="//@children.4" target="//@children.8"
targetEnd="//@children.4/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.4/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="47,57" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="129,-1"/>
+ </sourceConnections>
+ <classifierPreferences
xsi:type="editmodel:UMLClassDiagramClassifierPreference"
showStereotype="true" attributeSorter="Natural" methodSorter="Natural"
innerClassSorter="Natural" showPublicAttributes="true"
showPackageAttributes="true" showPublicMethods="true"
showPackageMethods="true" showPublicInnerClasses="true"
showPackageInnerClasses="true"/>
+ </children>
+ <children xsi:type="editmodel:NotepadEditModel" location="67,57"
size="193,52" note="Configuration object for all &#xD;&#xA;entries in the
'New Project&quot; Wizard">
+ <sourceConnections xsi:type="editmodel:IndicationEditModel"
source="//@children.5" target="//@children.0"
targetEnd="//@children.5/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.5/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="97,-1" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="100,75"/>
+ </sourceConnections>
+ </children>
+ <children xsi:type="editmodel:NotepadEditModel" location="396,51"
size="273,38" note="Represents a single entity (= a single project) in
the&#xD;&#xA;selection page of the 'New Project' Wizard.">
+ <sourceConnections xsi:type="editmodel:IndicationEditModel"
source="//@children.6" target="//@children.1"
targetEnd="//@children.6/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.6/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="134,38" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="106,-2"/>
+ </sourceConnections>
+ </children>
+ <children xsi:type="editmodel:NotepadEditModel" location="181,345"
size="208,38" note="There can be many directories within &#xD;&#xA;a new
project">
+ <sourceConnections xsi:type="editmodel:IndicationEditModel"
source="//@children.7" target="//@children.2"
targetEnd="//@children.7/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.7/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="208,18" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="-1,47"/>
+ </sourceConnections>
+ </children>
+ <children xsi:type="editmodel:NotepadEditModel"
targetConnections="//@children.4/ AT sourceConnections.0" location="255,599"
size="252,38" note="In a directory there can be many libs&#xD;&#xA;(also this
maybe quite meaningless sometimes)"/>
+ <children xsi:type="editmodel:NotepadEditModel" location="561,598"
size="221,66" note="There can be many Templates in &#xD;&#xA;one
Directory.&#xD;&#xA;Template can be of any type like Java &#xD;&#xA;source
files, xml files or simple text files.">
+ <sourceConnections xsi:type="editmodel:IndicationEditModel"
source="//@children.9" target="//@children.3"
targetEnd="//@children.9/ AT sourceConnections.0/ AT children.1"
sourceEnd="//@children.9/ AT sourceConnections.0/ AT children.0"
connectionRouterKind="Manual">
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="104,-4" attachSource="true"/>
+ <children xsi:type="editmodel:AssociationEndEditModel"
location="55,56"/>
+ </sourceConnections>
+ </children>
+ <diagramOptions xsi:type="null:ClassDiagramOptions"/>
+ <classDiagramPreferences xsi:type="editmodel:UMLClassDiagramPreference"
attributeSorter="Natural" methodSorter="Natural" innerClassSorter="Natural"
showPublicAttributes="true" showPackageAttributes="true"
showPublicMethods="true" showPackageMethods="true"
showPublicInnerClasses="true" showPackageInnerClasses="true"
showInterfaceStereotype="true" showClassStereotype="true"
showPackageStereotype="true"/>
+</editmodel:ClassDiagramEditModel>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/package.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel/package.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,17 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="de">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>Resource package</title>
+</head>
+
+<body>
+
+<p>xmlmodel package</p>
+
+</body>
+
+</html>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/merlin/core/MerlinDeveloperCore.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/merlin/core/MerlinDeveloperCore.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,124 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.core;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPluginDescriptor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ * The main plugin class to be used in the desktop.
+ */
+public class MerlinDeveloperCore extends AbstractUIPlugin
+{
+ //The shared instance.
+ private static MerlinDeveloperCore plugin;
+ //Resource bundle.
+ private ResourceBundle resourceBundle;
+
+ public static final String PLUGIN_ID =
"org.apache.avalon.MerlinDeveloperCore";
+
+ /**
+ * The constructor.
+ */
+ public MerlinDeveloperCore(IPluginDescriptor descriptor)
+ {
+ super(descriptor);
+ plugin = this;
+ try
+ {
+ resourceBundle =
+ ResourceBundle.getBundle(
+
"org.apache.avalon.ide.eclipse.merlin.core.MerlinDeveloperCoreResources");
+ } catch (MissingResourceException x)
+ {
+ resourceBundle = null;
+ }
+ }
+
+ /**
+ * Returns the shared instance.
+ */
+ public static MerlinDeveloperCore getDefault()
+ {
+ return plugin;
+ }
+
+ /**
+ * Returns the workspace instance.
+ */
+ public static IWorkspace getWorkspace()
+ {
+ return ResourcesPlugin.getWorkspace();
+ }
+
+ /**
+ * Returns the string from the plugin's resource bundle, or 'key' if
not
+ * found.
+ */
+ public static String getResourceString(String key)
+ {
+ ResourceBundle bundle =
MerlinDeveloperCore.getDefault().getResourceBundle();
+ try
+ {
+ return (bundle != null ? bundle.getString(key) : key);
+ } catch (MissingResourceException e)
+ {
+ return key;
+ }
+ }
+
+ /**
+ * Returns the plugin's resource bundle, @uml property=resourceBundle
+ */
+ public ResourceBundle getResourceBundle()
+ {
+ return resourceBundle;
+ }
+
+ public static void log(IStatus status)
+ {
+ getDefault().getLog().log(status);
+ }
+
+ public static void log(Throwable e, String message)
+ {
+ boolean isDebugging = true; // change to false for production
+ IStatus status =
+ new Status(
+ IStatus.ERROR,
+ getDefault().getDescriptor().getUniqueIdentifier(),
+ IStatus.ERROR,
+ message,
+ e);
+
+ log(status);
+ if (isDebugging)
+ {
+ System.out.println(message + ": " + e.getMessage());
//$NON-NLS-1$
+ }
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/merlin/core/package.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/merlin/core/package.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,17 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Language" content="de">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
+<meta name="ProgId" content="FrontPage.Editor.Document">
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<title>Resource package</title>
+</head>
+
+<body>
+
+<p>core package</p>
+
+</body>
+
+</html>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/toc.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.core/toc.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="MerlinDeveloper Guide" topic="docs/eclipse/html/toc.html">
+ <topic label="Getting Started">
+ <anchor id="gettingstarted"/>
+ </topic>
+ <topic label="Concepts">
+ <anchor id="concepts"/>
+ </topic>
+ <topic label="Tasks">
+ <anchor id="tasks"/>
+ </topic>
+ <topic label="Reference">
+ <anchor id="reference"/>
+ </topic>
+ <topic label="Samples">
+ <anchor id="samples"/>
+ </topic>
+</toc>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.features/.cvsignore
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.features/.cvsignore
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,3 @@
+bin
+*.zip
+*.jar

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.features/build.properties
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.features/build.properties
Fri Apr 8 13:52:15 2005
@@ -0,0 +1 @@
+bin.includes = feature.xml

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.features/feature.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.features/feature.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.apache.avalon.developer"
+ label="MerlinDeveloper Feature"
+ version="0.0.4"
+ provider-name="Apache Software Foundation"
+ nl="en_US">
+
+ <copyright>
+ this is a copyright
+ </copyright>
+
+ <license>
+ and this a license
+ </license>
+
+ <url>
+ <update label="MerlinDeveloper Updates"
url="http://www.apache.org/~oberhack/eclipse/updates/"/>
+ </url>
+
+ <requires>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.eclipse.jdt.core"/>
+ <import plugin="org.eclipse.jdt.launching"/>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.core.boot"/>
+ <import plugin="org.junit"/>
+ <import plugin="org.eclipse.debug.ui"/>
+ <import plugin="org.eclipse.debug.core"/>
+ <import plugin="org.eclipse.jdt.debug.ui"/>
+ <import plugin="org.eclipse.pde.ui"/>
+ <import plugin="org.eclipse.swt"/>
+ </requires>
+
+ <plugin
+ id="org.apache.avalon.MerlinDeveloperCore"
+ download-size="0"
+ install-size="0"
+ version="0.0.4"/>
+
+ <plugin
+ id="org.apache.avalon.MerlinDeveloperLaunch"
+ download-size="0"
+ install-size="0"
+ version="0.0.4"/>
+
+ <plugin
+ id="org.apache.avalon.MerlinDeveloperUI"
+ download-size="0"
+ install-size="0"
+ version="0.0.4"/>
+
+</feature>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/.classpath
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/.classpath
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/"/>
+ <classpathentry kind="lib" path="lib/merlin-cli-3.2.4.jar"/>
+ <classpathentry kind="con"
path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/.cvsignore
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/.cvsignore
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,2 @@
+*.jar
+bin

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/.project
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/.project
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>metro-studio-launch</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.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/MerlinDeveloperLaunchsrc.zip
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/util/defaults/package.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/util/defaults/package.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,6 @@
+
+<body>
+<p>
+Provides support for the aggregation of a set of property values into a
single property set.
+</p>
+</body>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/build.properties
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/build.properties
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,9 @@
+bin.includes = plugin.xml,\
+ *.jar,\
+ MerlinDeveloperLaunch.jar,\
+ icons/,\
+ lib/
+source.MerlinDeveloperLaunch.jar = src/
+src.includes = src/,\
+ plugin.xml,\
+ build.xml

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/build.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/build.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.apache.avalon.MerlinDeveloperLaunch" default="build.jars"
basedir=".">
+
+ <property name="bootclasspath" value=""/>
+ <property name="basews" value="${ws}"/>
+ <property name="baseos" value="${os}"/>
+ <property name="basearch" value="${arch}"/>
+ <property name="basenl" value="${nl}"/>
+ <property name="javacFailOnError" value="false"/>
+ <property name="javacDebugInfo" value="on"/>
+ <property name="javacVerbose" value="true"/>
+ <property name="javacSource" value="1.3"/>
+ <property name="javacTarget" value="1.1"/>
+
+ <target name="init" depends="properties">
+ <property name="temp.folder" value="${basedir}/temp.folder"/>
+ <property name="plugin.destination" value="${basedir}"/>
+ <property name="build.result.folder" value="${basedir}"/>
+ </target>
+
+ <target name="properties" if="eclipse.running">
+ <property name="build.compiler"
value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+ </target>
+
+ <target name="build.update.jar" depends="init" description="Build the
plug-in: org.apache.avalon.MerlinDeveloperLaunch for an update site.">
+ <delete dir="${temp.folder}"/>
+ <mkdir dir="${temp.folder}"/>
+ <antcall target="build.jars"/>
+ <antcall target="gather.bin.parts">
+ <param name="destination.temp.folder"
value="${temp.folder}/"/>
+ </antcall>
+ <zip
zipfile="${plugin.destination}/org.apache.avalon.MerlinDeveloperLaunch_0.0.4.jar"
basedir="${temp.folder}/org.apache.avalon.MerlinDeveloperLaunch_0.0.4"
filesonly="false" whenempty="skip"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+
+ <target name="gather.bin.parts" depends="init"
if="destination.temp.folder">
+ <mkdir
dir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperLaunch_0.0.4"/>
+ <copy
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperLaunch_0.0.4">
+ <fileset dir="${build.result.folder}"
includes="plugin.xml,*.jar,MerlinDeveloperLaunch.jar,icons/,lib/"
/>
+ </copy>
+ <copy
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperLaunch_0.0.4">
+ <fileset dir="${basedir}"
includes="plugin.xml,*.jar,MerlinDeveloperLaunch.jar,icons/,lib/"
/>
+ </copy>
+ </target>
+
+ <target name="MerlinDeveloperLaunch.jar" depends="init"
unless="MerlinDeveloperLaunch.jar" description="Create jar:
MerlinDeveloperLaunch.jar.">
+ <delete dir="${temp.folder}/MerlinDeveloperLaunch.jar.bin"/>
+ <mkdir dir="${temp.folder}/MerlinDeveloperLaunch.jar.bin"/>
+ <!-- compile the source code -->
+ <javac destdir="${temp.folder}/MerlinDeveloperLaunch.jar.bin"
failonerror="${javacFailOnError}" verbose="${javacVerbose}"
debug="${javacDebugInfo}" includeAntRuntime="no"
bootclasspath="${bootclasspath}"
classpath="../../plugins/org.eclipse.core.boot_3.0.0/boot.jar;lib/merlin-cli-3.2.4.jar;../../plugins/org.eclipse.core.runtime_3.0.0/runtime.jar;../../plugins/org.eclipse.core.resources_3.0.0/resources.jar;../../plugins/org.eclipse.core.resources.win32_3.0.0/resources.jar;../../plugins/org.eclipse.ui_3.0.0/ui.jar;../../plugins/org.eclipse.help_3.0.0/help.jar;../../plugins/org.eclipse.swt_3.0.0/ws/${basews}/swt.jar;../../plugins/org.eclipse.swt.win32_3.0.0/ws/${basews}/swt.jar;../../plugins/org.eclipse.jface_3.0.0/jface.jar;../../plugins/org.eclipse.ui.workbench_3.0.0/workbench.jar;../../plugins/org.eclipse.debug.ui_3.0.0/dtui.jar;../../plugins/org.eclipse.core.variables_3.0.0/variables.jar;../../plugins/org.eclipse.ui.console_3.0.0/console.jar;../../plugins/org.eclipse.jface.text_3.0.0/jfacetext.jar;../../plugins/org.eclipse.text_3.0.0/text.jar;../../plugins/org.eclipse.ui.workbench.texteditor_3.0.0/texteditor.jar;../../plugins/org.eclipse.debug.core_3.0.0/dtcore.jar;../../plugins/org.eclipse.ui.ide_3.0.0/ide.jar;../../plugins/org.eclipse.ui.win32_3.0.0/ide.jar;../../plugins/org.eclipse.ui.win32_3.0.0/workbenchwin32.jar;../../plugins/org.eclipse.ui.views_3.0.0/views.jar;../../plugins/org.eclipse.update.core_3.0.0/updatecore.jar;../../plugins/org.eclipse.update.core.win32_3.0.0/updatecore.jar;../../plugins/org.eclipse.ui.editors_3.0.0/editors.jar;../../plugins/org.eclipse.core.filebuffers_3.0.0/filebuffers.jar;../../plugins/org.eclipse.jdt.core_3.0.0/jdtcore.jar;../../plugins/com.swtdesigner.fragment.jdt.core_1.2.2/jdtcore.jar;../../plugins/com.swtdesigner.fragment.jdt.core_1.2.2/designerJdtCore.jar;../../plugins/org.eclipse.ant.core_3.0.0/antsupport.jar;../../plugins/org.eclipse.team.core_3.0.0/team.jar;../../plugins/org.eclipse.jdt.launching_3.0.0/launching.jar;../../plugins/org.eclipse.jdt.debug_3.0.0/jdi.jar;../../plugins/org.eclipse.jdt.debug_3.0.0/jdimodel.jar;../../plugins/org.eclipse.jdt.debug_3.0.0/tools.jar;../../plugins/org.eclipse.jdt.debug.ui_3.0.0/jdiui.jar;../../plugins/org.eclipse.search_3.0.0/search.jar;../../plugins/org.eclipse.compare_3.0.0/compare.jar;../../plugins/org.eclipse.jdt.ui_3.0.0/jdt.jar;../org.apache.avalon.ide.eclipse.core/MerlinDeveloperCore.jar;../org.apache.avalon.ide.eclipse.core/lib/xstream-0.2.jar;../org.apache.avalon.ide.eclipse.core/lib/xdoclet-1.2b4.jar;../org.apache.avalon.ide.eclipse.core/lib/xjavadoc-1.0.jar;../org.apache.avalon.ide.eclipse.core/lib/commons-collections-2.0.jar;../org.apache.avalon.ide.eclipse.core/lib/commons-lang.jar;../org.apache.avalon.ide.eclipse.core/lib/commons-logging.jar;../../plugins/org.junit_3.8.1/junit.jar"
source="${javacSource}" target="${javacTarget}" >
+ <src path="src/" />
+ </javac>
+ <!-- copy necessary resources -->
+ <copy todir="${temp.folder}/MerlinDeveloperLaunch.jar.bin">
+ <fileset dir="src/" excludes="**/*.java"
/>
+ </copy>
+ <mkdir dir="${build.result.folder}"/>
+ <jar
jarfile="${build.result.folder}/MerlinDeveloperLaunch.jar"
basedir="${temp.folder}/MerlinDeveloperLaunch.jar.bin"/>
+ <delete dir="${temp.folder}/MerlinDeveloperLaunch.jar.bin"/>
+ </target>
+
+ <target name="MerlinDeveloperLaunchsrc.zip" depends="init"
unless="MerlinDeveloperLaunchsrc.zip">
+ <mkdir dir="${build.result.folder}"/>
+ <zip
zipfile="${build.result.folder}/MerlinDeveloperLaunchsrc.zip"
filesonly="false" whenempty="skip">
+ <fileset dir="src/" includes="**/*.java"
/>
+ </zip>
+ </target>
+
+ <target name="build.jars" depends="init" description="Build all the
jars for the plug-in: org.apache.avalon.MerlinDeveloperLaunch.">
+ <available property="MerlinDeveloperLaunch.jar"
file="${build.result.folder}/MerlinDeveloperLaunch.jar"/>
+ <antcall target="MerlinDeveloperLaunch.jar"/>
+ </target>
+
+ <target name="build.sources" depends="init">
+ <available property="MerlinDeveloperLaunchsrc.zip"
file="${build.result.folder}/MerlinDeveloperLaunchsrc.zip"/>
+ <antcall target="MerlinDeveloperLaunchsrc.zip"/>
+ </target>
+
+ <target name="build.zips" depends="init">
+ </target>
+
+ <target name="gather.sources" depends="init"
if="destination.temp.folder">
+ <mkdir
dir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperLaunch_0.0.4"/>
+ <copy
file="${build.result.folder}/MerlinDeveloperLaunchsrc.zip"
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperLaunch_0.0.4"/>
+ <copy
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperLaunch_0.0.4">
+ <fileset dir="${basedir}"
includes="src/,plugin.xml,build.xml" />
+ </copy>
+ </target>
+
+ <target name="gather.logs" depends="init"
if="destination.temp.folder">
+ <mkdir
dir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperLaunch_0.0.4"/>
+ <copy file="${temp.folder}/MerlinDeveloperLaunch.jar.bin.log"
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperLaunch_0.0.4"/>
+ </target>
+
+ <target name="clean" depends="init" description="Clean the plug-in:
org.apache.avalon.MerlinDeveloperLaunch of all the zips, jars and logs
created.">
+ <delete
file="${build.result.folder}/MerlinDeveloperLaunch.jar"/>
+ <delete
file="${build.result.folder}/MerlinDeveloperLaunchsrc.zip"/>
+ <delete
file="${plugin.destination}/org.apache.avalon.MerlinDeveloperLaunch_0.0.4.jar"/>
+ <delete
file="${plugin.destination}/org.apache.avalon.MerlinDeveloperLaunch_0.0.4.zip"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+
+ <target name="refresh" depends="init" if="eclipse.running"
description="Refresh this folder.">
+ <eclipse.convertPath
fileSystemPath="C:/develop/eclipse/workspace/org.apache.avalon.ide.eclipse.launch/"
property="resourcePath"/>
+ <eclipse.refreshLocal
resource="org.apache.avalon.MerlinDeveloperLaunch" depth="infinite"/>
+ </target>
+
+ <target name="zip.plugin" depends="init" description="Create a zip
containing all the elements for the plug-in:
org.apache.avalon.MerlinDeveloperLaunch.">
+ <delete dir="${temp.folder}"/>
+ <mkdir dir="${temp.folder}"/>
+ <antcall target="build.jars"/>
+ <antcall target="build.sources"/>
+ <antcall target="gather.bin.parts">
+ <param name="destination.temp.folder"
value="${temp.folder}/"/>
+ </antcall>
+ <antcall target="gather.sources">
+ <param name="destination.temp.folder"
value="${temp.folder}/"/>
+ </antcall>
+ <delete>
+ <fileset dir="${temp.folder}" includes="**/*.bin.log"
/>
+ </delete>
+ <zip
zipfile="${plugin.destination}/org.apache.avalon.MerlinDeveloperLaunch_0.0.4.zip"
basedir="${temp.folder}" filesonly="true" whenempty="skip"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+
+</project>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/doc/book.css
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/doc/book.css
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,106 @@
+P.Code {
+ display: block;
+ text-align: left;
+ text-indent: 0.00pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 15pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #4444CC;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+H6.CaptionFigColumn {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 3.000000pt;
+ margin-bottom: 11.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Note {
+ display: block;
+ text-align: left;
+ text-indent: 0pt;
+ margin-top: 19.500000pt;
+ margin-bottom: 19.500000pt;
+ margin-right: 0.000000pt;
+ margin-left: 30pt;
+ font-size: 11.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.UILabel {
+ font-weight: Bold;
+ font-style: Regular;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+}
+EM.CodeName {
+ font-weight: Bold;
+ font-style: Regular;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family:"Courier New";
+}
+
+
+
+
+/* following font face declarations need to be removed for DBCS */
+
+body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd,
dt {font-family: Arial, Helvetica, sans-serif; color: #000000}
+pre { font-family: Courier, monospace}
+
+/* end font face declarations */
+
+/* following font size declarations should be OK for DBCS */
+body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd,
dt {font-size: 10pt; }
+pre { font-size: 10pt}
+
+/* end font size declarations */
+
+body { background: #FFFFFF}
+h1 { font-size: 18pt; margin-top: 5; margin-bottom: 1 }
+h2 { font-size: 14pt; margin-top: 25; margin-bottom: 3 }
+h3 { font-size: 11pt; margin-top: 20; margin-bottom: 3 }
+h4 { font-size: 10pt; margin-top: 20; margin-bottom: 3;
font-style: italic }
+p { margin-top: 10px; margin-bottom: 10px }
+pre { margin-left: 6; font-size: 9pt }
+a:link { color: #0000FF }
+a:hover { color: #000080 }
+a:visited { text-decoration: underline }
+ul { margin-top: 0; margin-bottom: 10 }
+li { margin-top: 0; margin-bottom: 0 }
+li p { margin-top: 0; margin-bottom: 0 }
+ol { margin-top: 0; margin-bottom: 10 }
+dl { margin-top: 0; margin-bottom: 10 }
+dt { margin-top: 0; margin-bottom: 0; font-weight: bold }
+dd { margin-top: 0; margin-bottom: 0 }
+strong { font-weight: bold}
+em { font-style: italic}
+var { font-style: italic}
+div.revision { border-left-style: solid; border-left-width: thin;
+ border-left-color: #7B68EE; padding-left:5
}
+th { font-weight: bold }

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/doc/schema.css
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/doc/schema.css
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,66 @@
+H6.CaptionFigColumn#header {
+ font-size:16px;
+ display:inline
+}
+
+P.Note#copyright {
+ font-size: smaller;
+ font-style: normal;
+ color: #336699;
+ display:inline;
+ margin-top: 3.000000pt;
+ margin-bottom: 11.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+}
+
+P.Code#dtd {
+ color: #800000;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 10.000000pt;
+}
+
+P.Code#dtdAttlist {
+ color: #800000;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 20.000000pt;
+}
+
+P.Code#tag {
+ color: #000080;
+ display:inline;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+}
+
+P.Code#cstring {
+ color: #008000;
+ display:inline;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+}
+
+.ConfigMarkup#elementDesc {
+ color: black;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 10.000000pt;
+}
+
+.ConfigMarkup#attlistDesc {
+ color: black;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 32.000000pt;
+}
+

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/icons/merlin.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/icons/merlin_light.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/icons/plugin.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/icons/plugin.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin
+ id="biz.softwarefabrik.MerlinDeveloper"
+ name="%pluginName"
+ version="0.0.3"
+ provider-name="%providerName"
+ class="biz.softwarefabrik.eclipse.merlin.MerlinContainerPlugin">
+
+ <runtime>
+ <library name="MerlinDeveloper.jar"/>
+ <library name="lib/avalon-activation/merlin-bootstrap-1.0.jar"/>
+ <library name="properties/"/>
+ </runtime>
+ <requires>
+ <import plugin="org.apache.xerces"/>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.debug.core"/>
+ <import plugin="org.eclipse.debug.ui"/>
+ <import plugin="org.eclipse.help"/>
+ <import plugin="org.eclipse.help.ui"/>
+ <import plugin="org.eclipse.jdt.core"/>
+ <import plugin="org.eclipse.jdt.launching"/>
+ <import plugin="org.eclipse.jdt.ui"/>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.eclipse.jdt.debug.ui"/>
+ <import plugin="org.eclipse.pde.ui"/>
+ </requires>
+
+
+ <extension-point id="server" name="%serverExtensionPointName"/>
+
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <category
+ name="%new.category.name"
+ id="org.eclipse.ui.Merlin">
+ </category>
+ <wizard
+ name="%new.blockDevelopment.name"
+ icon="icons/full/ctool16/newjprj_wiz.gif"
+ category="org.eclipse.ui.Merlin"
+
class="biz.softwarefabrik.eclipse.merlin.wizards.NewBlockDevelopmentWizard"
+ project="true"
+ id="biz.softwarefabrik.eclipse.wizards.newMerlinBlockWizard1">
+ </wizard>
+ <wizard
+ name="%new.frameworkDevelopment.name"
+ icon="icons/full/ctool16/newjprj_wiz.gif"
+ category="org.eclipse.ui.Merlin"
+
class="biz.softwarefabrik.eclipse.merlin.wizards.NewFrameworkDevelopmentWizard"
+ project="true"
+ id="biz.softwarefabrik.eclipse.wizards.newMerlinBlockWizard">
+ </wizard>
+ <wizard
+ name="%new.architectureDriven.name"
+ icon="icons/full/ctool16/newjprj_wiz.gif"
+ category="org.eclipse.ui.Merlin"
+
class="biz.softwarefabrik.eclipse.merlin.wizards.NewArchitectureDrivenWizard"
+ project="true"
+ id="biz.softwarefabrik.eclipse.wizards.newMerlinBlockWizard2">
+ </wizard>
+ <wizard
+ name="%new.convertProject.name"
+ icon="icons/full/ctool16/newjprj_wiz.gif"
+ category="org.eclipse.ui.Merlin"
+
class="biz.softwarefabrik.eclipse.merlin.wizards.NewConvertNatureWizard"
+ id="biz.softwarefabrik.eclipse.wizards.newMerlinBlockWizard2">
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ name="%webAppPreferencePageName"
+
class="biz.softwarefabrik.eclipse.merlin.preferences.WebAppPreferencePage"
+
id="biz.softwarefabrik.eclipse.webapp.preferences.webAppPreferencePage">
+ </page>
+ </extension>
+ <extension
+ id="merlinProjectNature"
+ name="%webAppProjectNatureName"
+ point="org.eclipse.core.resources.natures">
+ <runtime>
+ <run
+
class="biz.softwarefabrik.eclipse.merlin.tools.MerlinProjectNature">
+ </run>
+ </runtime>
+ </extension>
+ <extension
+ id="merlinConfigNature"
+ name="%webAppServerConfigNatureName"
+ point="org.eclipse.core.resources.natures">
+ <runtime>
+ <run
+
class="biz.softwarefabrik.eclipse.merlin.MerlinContainerConfigNature">
+ </run>
+ </runtime>
+ </extension>
+ <extension
+ point="com.blueskytime.eclipse.webapp.server">
+ <server
+
factoryclass="biz.softwarefabrik.eclipse.merlin.container.MerlinServerFactory"
+ name="%serverAdapterName"
+
id="biz.softwarefabrik.eclipse.merlin.container.MerlinServerAdapter">
+ </server>
+ </extension>
+ <extension
+ point="org.eclipse.debug.core.launchConfigurationTypes">
+ <launchConfigurationType
+ name="%launchConfigurationTypeName"
+
delegate="biz.softwarefabrik.eclipse.merlin.launching.WebAppLaunchConfigurationDelegate"
+ modes="run, debug"
+
id="biz.softwarefabrik.MerlinDeveloper.launching.webAppLaunchConfigurationDelegate">
+ </launchConfigurationType>
+ </extension>
+ <extension
+ point="org.eclipse.debug.ui.launchConfigurationTypeImages">
+ <launchConfigurationTypeImage
+ icon="icons/full/ctool16/java_app.gif"
+
configTypeID="biz.softwarefabrik.merlin.MerlinDeveloper.launching.webAppLaunchConfigurationDelegate"
+
id="biz.softwarefabrik.MerlinDeveloper.launching.webAppLaunchConfigurationTypeImage">
+ </launchConfigurationTypeImage>
+ </extension>
+ <extension
+ point="org.eclipse.debug.ui.launchConfigurationTabGroups">
+ <launchConfigurationTabGroup
+
type="biz.softwarefabrik.MerlinDeveloper.launching.webAppLaunchConfigurationDelegate"
+
class="biz.softwarefabrik.eclipse.merlin.launching.WebAppServerTabGroup"
+ id="biz.softwarefabrik.MerlinDeveloper.webAppServerTabGroup">
+ </launchConfigurationTabGroup>
+ </extension>
+ <extension
+ point="org.eclipse.debug.ui.launchShortcuts">
+ <shortcut
+ label="%webAppLaunchShortcutLabel"
+ icon="icons/full/ctool16/java_app.gif"
+ modes="run, debug"
+
class="biz.softwarefabrik.eclipse.merlin.launching.WebAppLaunchShortcut"
+
id="biz.softwarefabrik.eclipse.merlin.container.launching.webAppLaunchShortcut">
+ <perspective
+ id="org.eclipse.jdt.ui.JavaPerspective">
+ </perspective>
+ <perspective
+ id="org.eclipse.jdt.ui.JavaHierarchyPerspective">
+ </perspective>
+ <perspective
+ id="org.eclipse.jdt.ui.JavaBrowsingPerspective">
+ </perspective>
+ <perspective
+ id="org.eclipse.debug.ui.DebugPerspective">
+ </perspective>
+ </shortcut>
+ </extension>
+
+</plugin>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/avalon-framework-api-4.1.5.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/avalon-framework-impl-4.1.5.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/avalon-util-criteria-1.0.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/avalon-util-defaults-1.1.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/avalon-util-env-1.0.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/avalon-util-exception-1.0.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/merlin-api-3.2.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/merlin-bootstrap-1.0.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/merlin-cli-3.2.4.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/lib/merlin-impl-3.2.4.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/maven.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/maven.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+Copyright 2004 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.
+-->
+<project default="jar:jar" />

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/plugin.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/plugin.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin
+ id="org.apache.avalon.MerlinDeveloperLaunch"
+ name="MerlinDeveloper Launch"
+ version="0.0.4"
+ provider-name="Apache Software Foundation"
+ class="org.apache.avalon.ide.eclipse.merlin.launch.MerlinDeveloperLaunch">
+
+ <runtime>
+ <library name="MerlinDeveloperLaunch.jar">
+ <export name="*"/>
+ </library>
+ <library name="lib/merlin-cli-3.2.4.jar"/>
+ </runtime>
+ <requires>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.debug.ui"/>
+ <import plugin="org.eclipse.debug.core"/>
+ <import plugin="org.eclipse.jdt.core"/>
+ <import plugin="org.eclipse.jdt.launching"/>
+ <import plugin="org.eclipse.jdt.debug.ui"/>
+ <import plugin="org.apache.avalon.MerlinDeveloperCore"/>
+ </requires>
+
+
+ <extension
+ id="merlinBuilder"
+ name="Merlin Builder"
+ point="org.eclipse.core.resources.builders">
+ <builder>
+ <run
+
class="org.apache.avalon.ide.eclipse.merlin.builder.MerlinBuilderFactory">
+ </run>
+ </builder>
+ </extension>
+ <extension
+ id="merlinProjectNature"
+ name="MerlinDeveloperProjectNature"
+ point="org.eclipse.core.resources.natures">
+ <runtime>
+ <run
+
class="org.apache.avalon.ide.eclipse.merlin.nature.MerlinProjectNature">
+ </run>
+ </runtime>
+ <builder
+ id="org.apache.avalon.MerlinDeveloperLaunch.merlinBuilder">
+ </builder>
+ </extension>
+ <extension
+ point="org.eclipse.debug.core.launchConfigurationTypes">
+ <launchConfigurationType
+ name="MerlinContainerConfiguration"
+
delegate="org.apache.avalon.ide.eclipse.merlin.launch.MerlinLaunchConfigurationDelegate"
+ modes="run, debug"
+
id="org.apache.avalon.MerlinDeveloperLaunch.merlinLaunchConfigurationDelegate">
+ </launchConfigurationType>
+ </extension>
+ <extension
+ point="org.eclipse.debug.ui.launchConfigurationTabGroups">
+ <launchConfigurationTabGroup
+
type="org.apache.avalon.MerlinDeveloperLaunch.merlinLaunchConfigurationDelegate"
+
class="org.apache.avalon.ide.eclipse.merlin.launch.ui.MerlinServerTabGroup"
+ id="org.apache.avalon.MerlinDeveloper.merlinServerTabGroup">
+ </launchConfigurationTabGroup>
+ </extension>
+ <extension
+ point="org.eclipse.debug.ui.launchConfigurationTypeImages">
+ <launchConfigurationTypeImage
+ icon="icons/merlin_light.gif"
+
configTypeID="org.apache.avalon.MerlinDeveloperLaunch.merlinLaunchConfigurationDelegate"
+ id="org.apache.avalon.launch.merlinLaunchConfigurationTypeImage">
+ </launchConfigurationTypeImage>
+ </extension>
+ <extension
+ point="org.eclipse.debug.ui.launchShortcuts">
+ <shortcut
+ label="Merlin Container"
+ icon="icons/merlin_light.gif"
+
class="org.apache.avalon.ide.eclipse.merlin.launch.MerlinLaunchShortcut"
+ modes="run, debug"
+
id="org.apache.avalon.ide.eclipse.merlin.launch.merlinLaunchShortcut">
+ <perspective
+ id="org.eclipse.jdt.ui.JavaPerspective">
+ </perspective>
+ <perspective
+ id="org.eclipse.jdt.ui.JavaHierarchyPerspective">
+ </perspective>
+ <perspective
+ id="org.eclipse.jdt.ui.JavaBrowsingPerspective">
+ </perspective>
+ <perspective
+ id="org.eclipse.debug.ui.DebugPerspective">
+ </perspective>
+ </shortcut>
+ </extension>
+
+</plugin>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/project.properties
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/project.properties
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,33 @@
+# Copyright 2004 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.
+
+
+
+# ------------------------------------------------------------------------
+# M A V E N J A R O V E R R I D E
+# ------------------------------------------------------------------------
+maven.jar.override = on
+
+# ------------------------------------------------------------------------
+# Jars set explicity by path.
+# ------------------------------------------------------------------------
+maven.jar.org.eclipse.core.resources=${eclipse.home}/plugins/org.eclipse.core.resources_2.1.0/resources.jar
+maven.jar.org.eclipse.core.runtime=${eclipse.home}/plugins/org.eclipse.core.runtime_2.1.0/runtime.jar
+maven.jar.org.eclipse.jdt.core=${eclipse.home}/plugins/org.eclipse.jdt.core_2.1.0/jdtcore.jar
+maven.jar.org.eclipse.jdt.launching=${eclipse.home}/plugins/org.eclipse.jdt.launching_2.1.0/launching.jar
+maven.jar.org.eclipse.jface=${eclipse.home}/plugins/org.eclipse.jface_2.1.0/jface.jar
+maven.jar.org.eclipse.ui.views=${eclipse.home}/plugins/org.eclipse.ui.views_2.1.0/views.jar
+maven.jar.org.eclipse.ui.workbench=${eclipse.home}/plugins/org.eclipse.ui.workbench_2.1.0/workbench.jar
+

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/project.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/project.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!--
+Copyright 2004 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.
+-->
+<project>
+ <extend>${basedir}/../project-common.xml</extend>
+ <artifactId>merlin-developer-launch</artifactId>
+ <name>Merlin Developer Launch</name>
+
+ <siteAddress>www.apache.org</siteAddress>
+
<siteDirectory>/www/avalon.apache.org/merlin/developer/launch/</siteDirectory>
+
<distributionDirectory>/www/www.apache.org/dist/java-repository/</distributionDirectory>
+
+ <dependencies>
+ <dependency>
+ <groupId>merlin-developer</groupId>
+ <artifactId>merlin-developer-core</artifactId>
+ <version>SNAPSHOT</version>
+ </dependency>
+
+<!--
+ <dependency>
+ <id>org.eclipse.core.resources</id>
+ </dependency>
+ <dependency>
+ <id>org.eclipse.core.runtime</id>
+ </dependency>
+ <dependency>
+ <id>org.eclipse.jdt.core</id>
+ </dependency>
+ <dependency>
+ <id>org.eclipse.jdt.launching</id>
+ </dependency>
+ <dependency>
+ <id>org.eclipse.jface</id>
+ </dependency>
+ <dependency>
+ <id>org.eclipse.ui.views</id>
+ </dependency>
+ <dependency>
+ <id>org.eclipse.ui.workbench</id>
+ </dependency>
+ <dependency>
+ <groupId>xstream</groupId>
+ <artifactId>xstream</artifactId>
+ <version>0.2</version>
+ </dependency>
+ <dependency>
+ <groupId>xdoclet</groupId>
+ <artifactId>xdoclet</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>xdoclet</groupId>
+ <artifactId>xjavadoc</artifactId>
+ <version>1.0.2</version>
+ </dependency>
+-->
+ </dependencies>
+</project>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/builder/IMerlinBuilder.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/builder/IMerlinBuilder.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,29 @@
+/*
+ * Created on 15.03.2004
+ *
+ * To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+package org.apache.avalon.ide.eclipse.merlin.builder;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+/**
+ * @author Andreas Develop
+ *
+ * To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+public interface IMerlinBuilder
+{
+
+ /**
+ * @param pKind
+ * @param pArgs
+ * @param pMonitor
+ */
+ public void build(int pKind, IProject project, List pFiles,
IProgressMonitor pMonitor);
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/builder/MerlinBuilderFactory.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/builder/MerlinBuilderFactory.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,99 @@
+/*
+ * One has to add the builder to a project first.
+ * This is done, when the project is build in
+ * MerlinDeveloperCore ProjectResource.addBuilder()
+ */
+package org.apache.avalon.ide.eclipse.merlin.builder;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+
+/**
+ * @author Andreas Develop
+ *
+ * To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+public class MerlinBuilderFactory extends IncrementalProjectBuilder
+{
+ private static List builderList = new ArrayList();
+
+ /**
+ *
+ */
+ public MerlinBuilderFactory()
+ {
+ super();
+ }
+
+ /*
+ * Add builders to the build process. This method is also called
+ * by other plug-in (e.g. EnterpriseDeveloper).
+ * Registration of builders is done in the main plug-in class (eg.
EnterpriseDeveloperCore.java)
+ *
+ */
+ public static void addBuilder(IMerlinBuilder builder)
+ {
+
+ // builderList.add(new YourOwnBuilder());
+ builderList.add(builder);
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.resources.IncrementalProjectBuilder#build(int,
java.util.Map, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ protected IProject[] build(int pKind, Map pArgs, IProgressMonitor
pMonitor)
+ throws CoreException
+ {
+ if(getDelta(getProject())==null) return null;
+
+ IResourceDelta delta[] =
getDelta(getProject()).getAffectedChildren();
+ List files = getChangedResource(delta);
+
+
+ Iterator it = builderList.iterator();
+ while (it.hasNext())
+ {
+ IMerlinBuilder builder = (IMerlinBuilder) it.next();
+ builder.build(pKind, getProject(), files, pMonitor);
+ }
+ IJavaProject proj = JavaCore.create(getProject());
+ proj.getProject().refreshLocal(IProject.DEPTH_INFINITE, null);
+ return null;
+ }
+
+ /*
+ * retrieves the changed resource.
+ * only returns changed java resources (java source files)
+ */
+ private List getChangedResource(IResourceDelta delta[])
+ {
+
+ List res = new ArrayList();
+
+ for (int i = 0; delta.length > i; i++)
+ {
+ if (delta[i].getAffectedChildren().length > 0)
+ {
+
res.addAll(getChangedResource(delta[i].getAffectedChildren()));
+ } else
+ {
+ res.add(delta[i].getResource());
+ }
+ }
+
+ return res;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/MerlinContainerConfigNature.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/MerlinContainerConfigNature.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,45 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.launch;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectNature;
+import org.eclipse.core.runtime.CoreException;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class MerlinContainerConfigNature implements IProjectNature {
+
+ private IProject project;
+
+ public void configure() throws CoreException {
+ // add build spec here
+ }
+ public void deconfigure() throws CoreException {
+ // Remove the nature-specific information here.
+ }
+ public IProject getProject() {
+ return project;
+ }
+ public void setProject(IProject iProject) {
+ this.project = iProject;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/MerlinDeveloperLaunch.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/MerlinDeveloperLaunch.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,158 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+
+package org.apache.avalon.ide.eclipse.merlin.launch;
+
+import java.net.URL;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IPluginDescriptor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development
Team</a>*
+ * The main plugin class to be used in the desktop.
+ */
+public class MerlinDeveloperLaunch extends AbstractUIPlugin
+{
+ //The shared instance.
+ private static MerlinDeveloperLaunch plugin;
+ //Resource bundle.
+ private ResourceBundle resourceBundle;
+
+ public static final String PLUGIN_ID =
"org.apache.avalon.MerlinDeveloperLaunch";
+ public static final String MERLIN_PROJECT_NATURE_ID =
+ PLUGIN_ID + ".merlinProjectNature";
+ public static final String MERLIN_PROJECT_CONFIG_NATURE_ID =
+ PLUGIN_ID + ".merlinConfigNature";
+ public static final String MERLIN_BUILDER_ID =
+ PLUGIN_ID + ".merlinBuilder";
+ public static final String ID_MERLIN_CONTAINER =
+ MerlinDeveloperLaunch.PLUGIN_ID +
".merlinLaunchConfigurationDelegate"; //$NON-NLS-1$
+ public static final String ATTR_MERLIN_CONTAINER_ID =
"merlinContainerID"; //$NON-NLS-1$
+ /**
+ * The constructor.
+ */
+ public MerlinDeveloperLaunch(IPluginDescriptor descriptor)
+ {
+ super(descriptor);
+ plugin = this;
+ try
+ {
+ // activate EnterpriseDeveloper if present
+ Platform.getPlugin("biz.softwarefabrik.j4ee.core");
+
+ resourceBundle =
+ ResourceBundle.getBundle(
+
"org.apache.avalon.ide.eclipse.merlin.launch.MerlinDeveloperLaunchResources");
+ } catch (MissingResourceException x)
+ {
+ resourceBundle = null;
+ }
+ }
+
+ /**
+ * Returns the shared instance.
+ */
+ public static MerlinDeveloperLaunch getDefault()
+ {
+ return plugin;
+ }
+
+ /**
+ * Returns the workspace instance.
+ */
+ public static IWorkspace getWorkspace()
+ {
+ return ResourcesPlugin.getWorkspace();
+ }
+
+ /**
+ * Returns the string from the plugin's resource bundle, or 'key' if
not
+ * found.
+ */
+ public static String getResourceString(String key)
+ {
+ ResourceBundle bundle =
MerlinDeveloperLaunch.getDefault().getResourceBundle();
+ try
+ {
+ return (bundle != null ? bundle.getString(key) : key);
+ } catch (MissingResourceException e)
+ {
+ return key;
+ }
+ }
+
+ /**
+ * Returns the plugin's resource bundle,
+ */
+ public ResourceBundle getResourceBundle()
+ {
+ return resourceBundle;
+ }
+
+ public static void log(IStatus status)
+ {
+ getDefault().getLog().log(status);
+ }
+
+ public static void log(Throwable e, String message)
+ {
+ boolean isDebugging = true; // change to false for production
+ IStatus status =
+ new Status(
+ IStatus.ERROR,
+ getDefault().getDescriptor().getUniqueIdentifier(),
+ IStatus.ERROR,
+ message,
+ e);
+
+ log(status);
+ if (isDebugging)
+ {
+ System.out.println(message + ": " + e.getMessage());
//$NON-NLS-1$
+ }
+ }
+
+ public IPath getPluginLocation()
+ {
+ return getPluginLocation(MerlinDeveloperLaunch.PLUGIN_ID);
+ }
+
+ public IPath getPluginLocation(String pluginId)
+ {
+ try
+ {
+ URL installURL =
+
Platform.getPluginRegistry().getPluginDescriptor(pluginId).getInstallURL();
+ return new Path(Platform.resolve(installURL).getFile());
+ } catch (Exception e)
+ {
+ log(e, "getPluginLocation() handling Exception"); //$NON-NLS-1$
+ return null;
+ }
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/MerlinLaunchConfigurationDelegate.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/MerlinLaunchConfigurationDelegate.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,70 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.launch;
+
+import
org.apache.avalon.ide.eclipse.merlin.launch.container.MerlinExternalContainer;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
+
+
+/**
+ * This class is always called, if an Merlin Container is launched.
+ * If the Merlin Container is launched through 'run as / Merlin Container'
+ * the class MerlinLaunchShortcut is launched prior to
MerlinLaunchConfigurationDelegate
+ *
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class MerlinLaunchConfigurationDelegate implements
ILaunchConfigurationDelegate {
+
+ public void launch(ILaunchConfiguration launchConfig, String mode,
ILaunch launch, IProgressMonitor monitor) throws CoreException {
+
+ if (monitor == null) {
+ monitor = new NullProgressMonitor();
+ }
+
+ MerlinExternalContainer container = new MerlinExternalContainer();

+ //container.init();
+
+ if (mode.equals(ILaunchManager.RUN_MODE)) {
+ container.start(launch);
+ } else if (mode.equals(ILaunchManager.DEBUG_MODE)) {
+ container.debug(launch);
+ }
+ // check for cancellation
+ if (monitor.isCanceled()) {
+ return;
+ }
+
+ monitor.done();
+ }
+
+ protected void abort(String message, Throwable exception, int code)
throws CoreException {
+ throw new CoreException(new Status(IStatus.ERROR,
MerlinDeveloperLaunch.getDefault().getDescriptor().getUniqueIdentifier(),
code, message, exception));
+ }
+
+}
+
+

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/MerlinLaunchShortcut.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/MerlinLaunchShortcut.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,232 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.launch;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Vector;
+
+import
org.apache.avalon.ide.eclipse.merlin.launch.container.IAvalonContainer;
+import
org.apache.avalon.ide.eclipse.merlin.launch.container.MerlinExternalContainer;
+import org.apache.avalon.ide.eclipse.merlin.nature.MerlinProjectNature;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationType;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.debug.ui.DebugUITools;
+import org.eclipse.debug.ui.ILaunchShortcut;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class MerlinLaunchShortcut implements ILaunchShortcut
+{
+
+ private IAvalonContainer container;
+
+ protected void searchAndLaunch(Object[] search, String mode)
+ {
+ MerlinProjectNature[] merlinProjectCreators = null;
+ if (search != null)
+ {
+ merlinProjectCreators = findTargets(search);
+ launch(merlinProjectCreators, mode);
+ }
+ }
+
+ private MerlinProjectNature[] findTargets(Object[] elements)
+ {
+ Vector result = new Vector();
+ try
+ {
+ for (int i = 0; i < elements.length; i++)
+ {
+ if (elements[i] instanceof IProject)
+ {
+ IProject project = (IProject) elements[i];
+ if
(project.getNature(MerlinDeveloperLaunch.MERLIN_PROJECT_NATURE_ID) != null)
+ {
+ result.add(MerlinProjectNature.create(project));
+ }
+ }
+ if (elements[i] instanceof IJavaProject)
+ {
+ IJavaProject javaProject = (IJavaProject) elements[i];
+ if (javaProject
+ .getProject()
+
.getNature(MerlinDeveloperLaunch.MERLIN_PROJECT_NATURE_ID)
+ != null)
+ {
+ result.add(MerlinProjectNature.create(javaProject));
+ }
+ }
+ }
+ } catch (CoreException e)
+ {
+ MerlinDeveloperLaunch.log(e, "findTargets(Object[] elements)
handling CoreException"); //$NON-NLS-1$
+ }
+ return (MerlinProjectNature[]) result.toArray(new
MerlinProjectNature[result.size()]);
+ }
+
+ protected void launch(MerlinProjectNature[] merlinProjectCreators,
String mode)
+ {
+ //this.container = containerManager.getInstance().createServer();
+ try
+ {
+ ILaunchConfiguration config = findLaunchConfiguration(mode,
merlinProjectCreators[0]);
+ if (config != null)
+ {
+ if (merlinProjectCreators.length != 0)
+ {
+ this.container = new MerlinExternalContainer();
+ for (int i = 0; i < merlinProjectCreators.length; i++)
+ {
+ // move to launch delegate tab
+ ILaunchConfigurationWorkingCopy workingCopy =
config.getWorkingCopy();
+ workingCopy.setAttribute("project",
merlinProjectCreators[i].getProject().getName());
+ config = workingCopy.doSave();
+ }
+ }
+ DebugUITools.saveAndBuildBeforeLaunch();
+ config.launch(mode, null);
+ }
+ } catch (CoreException e)
+ {
+ MerlinDeveloperLaunch.log(e, "erorr(1) while launching");
//$NON-NLS-1$
+ }
+ }
+
+ protected ILaunchConfiguration findLaunchConfiguration(
+ String mode,
+ MerlinProjectNature project)
+ {
+
+ ILaunchConfigurationType configType =
getMerlinContainerLaunchConfigType();
+ List candidateConfigs = Collections.EMPTY_LIST;
+ try
+ {
+ ILaunchConfiguration[] configs =
+
DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurations(configType);
+ candidateConfigs = new ArrayList(configs.length);
+ for (int i = 0; i < configs.length; i++)
+ {
+ ILaunchConfiguration config = configs[i];
+ if (config
+
.getAttribute(MerlinDeveloperLaunch.ATTR_MERLIN_CONTAINER_ID, "")
+ .equals(MerlinExternalContainer.getServerLabel())
+ &&
(config.getName().equals(project.getProject().getName())))
+ { //$NON-NLS-1$
+ candidateConfigs.add(config);
+ }
+ }
+ } catch (CoreException e)
+ {
+ MerlinDeveloperLaunch.log(e, "findLaunchConfiguration(String
mode) handling CoreException"); //$NON-NLS-1$
+ }
+
+ int candidateCount = candidateConfigs.size();
+ if (candidateCount < 1)
+ {
+ return createConfiguration(project);
+ } else if (candidateCount == 1)
+ {
+ return (ILaunchConfiguration) candidateConfigs.get(0);
+ }
+
+ return null;
+ }
+
+ protected ILaunchConfiguration createConfiguration(MerlinProjectNature
project)
+ {
+ ILaunchConfiguration config = null;
+ try
+ {
+ ILaunchConfigurationType type =
getMerlinContainerLaunchConfigType();
+ String instanceName;
+ if (project.getProject() != null)
+ {
+ instanceName = project.getProject().getName();
+ } else
+ {
+ instanceName = MerlinExternalContainer.getServerLabel();
+ }
+ ILaunchConfigurationWorkingCopy workingCopy =
type.newInstance(null, instanceName);
+ workingCopy.setAttribute(
+ MerlinDeveloperLaunch.ATTR_MERLIN_CONTAINER_ID,
+ MerlinExternalContainer.getServerLabel());
+ workingCopy.setAttribute("project", instanceName);
+ config = workingCopy.doSave();
+ } catch (CoreException e)
+ {
+ MerlinDeveloperLaunch.log(e, "createConfiguration() handling
CoreException"); //$NON-NLS-1$
+ }
+ return config;
+ }
+
+ protected ILaunchConfigurationType getMerlinContainerLaunchConfigType()
+ {
+
+ return getLaunchManager().getLaunchConfigurationType(
+ MerlinDeveloperLaunch.ID_MERLIN_CONTAINER);
+ }
+
+ protected ILaunchManager getLaunchManager()
+ {
+ return DebugPlugin.getDefault().getLaunchManager();
+ }
+
+ protected void launch(MerlinProjectNature merlinProjectCreator, String
mode)
+ {
+ launch(new MerlinProjectNature[] { merlinProjectCreator }, mode);
+ }
+
+ public void launch(IEditorPart editor, String mode)
+ {
+ IEditorInput input = editor.getEditorInput();
+ IProject project = (IProject) input.getAdapter(IProject.class);
+ if (project != null)
+ {
+ searchAndLaunch(new Object[] { project }, mode);
+ } else
+ {
+ // error
+ }
+ }
+
+ public void launch(ISelection selection, String mode)
+ {
+ if (selection instanceof IStructuredSelection)
+ {
+ searchAndLaunch(((IStructuredSelection) selection).toArray(),
mode);
+ } else
+ {
+ // error
+ }
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/AvalonContainer.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/AvalonContainer.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,338 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.launch.container;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+
+import org.apache.avalon.ide.eclipse.merlin.launch.MerlinDeveloperLaunch;
+import org.apache.avalon.ide.eclipse.merlin.nature.MerlinProjectNature;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.debug.core.model.ISourceLocator;
+import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.launching.ExecutionArguments;
+import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
+import org.eclipse.jdt.launching.IVMInstall;
+import org.eclipse.jdt.launching.IVMInstallType;
+import org.eclipse.jdt.launching.IVMRunner;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jdt.launching.LibraryLocation;
+import org.eclipse.jdt.launching.VMRunnerConfiguration;
+import org.eclipse.jdt.launching.sourcelookup.JavaSourceLocator;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public abstract class AvalonContainer implements IAvalonContainer
+{
+
+ protected static ILaunch merlinLaunch = null;
+ protected static MerlinProjectNature merlinProjectNature;
+ private static final String XML_PLUGIN_ID = "org.apache.xerces";
//$NON-NLS-1$
+
+ protected AvalonContainer()
+ {}
+
+ protected abstract LibraryLocation[] getLibraryLocations();
+ protected abstract String getMainClass();
+ protected abstract String getProgramArguments();
+ protected abstract String getVMArguments();
+
+ public void debug(ILaunch launch) throws CoreException
+ {
+
+ merlinLaunch = run(ILaunchManager.DEBUG_MODE, launch);
+ DebugPlugin.getDefault().getLaunchManager().addLaunch(merlinLaunch);
+ }
+
+ public void start(ILaunch launch) throws CoreException
+ {
+
+ merlinLaunch = run(ILaunchManager.RUN_MODE, launch);
+ ILaunchManager lm = DebugPlugin.getDefault().getLaunchManager();
+ lm.addLaunch(merlinLaunch);
+ }
+
+ protected ILaunch run(String mode, ILaunch launch) throws CoreException
+ {
+
+ ILaunchConfigurationWorkingCopy working =
launch.getLaunchConfiguration().getWorkingCopy();
+ setProjectName(working.getAttribute("project", ""));
+ launch.setAttribute(
+ IDebugUIConstants.ATTR_TARGET_RUN_PERSPECTIVE,
+ IDebugUIConstants.PERSPECTIVE_DEFAULT);
+ launch.setAttribute(
+ IDebugUIConstants.ATTR_TARGET_DEBUG_PERSPECTIVE,
+ IDebugUIConstants.PERSPECTIVE_DEFAULT);
+ launch.setAttribute("project", getProjectName());
+ working.doSave();
+
+ // Check Tools classpath
+ if (getToolsLibraryLocation() == null)
+ {
+ abort("ToolsLibrary location not found", null, 1); //$NON-NLS-1$
+ }
+
+ // Class to launch
+ String classToLaunch = this.getMainClass();
+ if (classToLaunch == null || "".equals(classToLaunch))
+ { //$NON-NLS-1$
+ abort("Main class not defined", null, 2); //$NON-NLS-1$
+ }
+
+ // Virtual machine
+ IVMInstall vmInstall = getVMInstall(null);
+ IVMRunner vmRunner = vmInstall.getVMRunner(mode);
+ if (vmRunner == null)
+ {
+ if (mode == ILaunchManager.DEBUG_MODE)
+ {
+ abort(MessageFormat.format("JRE {0} does not support debug
mode.", new String[] { vmInstall.getName()}), null, 3); //$NON-NLS-1$
+ } else
+ {
+ abort(MessageFormat.format("JRE {0} does not support run
mode.", new String[] { vmInstall.getName()}), null, 4); //$NON-NLS-1$
+ }
+ }
+
+ // Program & VM args
+ String programArguments = this.getProgramArguments();
+ String vmArguments = this.getVMArguments();
+ ExecutionArguments executionArguments =
+ new ExecutionArguments(vmArguments, programArguments);
+
+ // Classpath
+ String[] classpath = getClasspath();
+
+ // Bootpath
+ String[] bootClasspath = getBootClasspath(vmInstall);
+ String[] vmArgs = new String[1];
+ vmArgs[0] = executionArguments.getVMArguments();
+ if (bootClasspath == null)
+ {
+ abort("Boot classpath not resolved", null, 5); //$NON-NLS-1$
+ }
+
+ VMRunnerConfiguration runnerConfig = new
VMRunnerConfiguration(classToLaunch, classpath);
+ runnerConfig.setVMArguments(vmArgs);
+
runnerConfig.setProgramArguments(executionArguments.getProgramArgumentsArray());
+ runnerConfig.setBootClassPath(bootClasspath);
+
+ IProgressMonitor monitor = new NullProgressMonitor();
+ vmRunner.run(runnerConfig, launch, monitor);
+
+ if (mode.equals(ILaunchManager.DEBUG_MODE))
+ {
+ launch.setSourceLocator(getSourceLocator());
+ }
+
+ return launch;
+
+ }
+
+ public void stop() throws CoreException
+ {
+ terminate();
+ }
+
+ public boolean isStarted()
+ {
+ return true;
+ }
+
+ public boolean isStopped()
+ {
+ return false;
+ }
+
+ public void terminate()
+ {
+ if (!(merlinLaunch == null))
+ {
+ try
+ {
+ merlinLaunch.terminate();
+ } catch (DebugException e)
+ {
+ MerlinDeveloperLaunch.log(e, "terminate() handling
DebugException" + " " + e.getStatus().getMessage() +
+e.getStatus().getCode()); //$NON-NLS-1$
+ }
+ }
+ }
+
+ protected LibraryLocation getToolsLibraryLocation()
+ {
+ IPath toolsJarPath = new
Path(JavaRuntime.getDefaultVMInstall().getInstallLocation().getPath()).append("lib").append("tools.jar");
//$NON-NLS-1$ //$NON-NLS-2$
+ if (toolsJarPath.toFile().exists())
+ {
+ return new LibraryLocation(toolsJarPath, Path.EMPTY, Path.EMPTY);
+ } else
+ {
+ return null;
+ }
+ }
+
+ private IVMInstall getVMInstall(String vmInstallName)
+ {
+ if (vmInstallName != null)
+ {
+ IVMInstall[] vmInstalls = getVMInstalls();
+ for (int i = 0; i < vmInstalls.length; i++)
+ {
+ if (vmInstallName.equals(vmInstalls[i].getName()))
+ {
+ return vmInstalls[i];
+ }
+ }
+ }
+ // if vmInstallName not found just return default
+ return JavaRuntime.getDefaultVMInstall();
+ }
+
+ private static IVMInstall[] getVMInstalls()
+ {
+ ArrayList vmInstalls = new ArrayList();
+ IVMInstallType[] vmInstallTypes = JavaRuntime.getVMInstallTypes();
+ for (int i = 0; i < vmInstallTypes.length; i++)
+ {
+ IVMInstall[] installs = vmInstallTypes[i].getVMInstalls();
+ for (int k = 0; k < installs.length; k++)
+ {
+ vmInstalls.add(installs[k]);
+ }
+ }
+ return (IVMInstall[]) vmInstalls.toArray(new
IVMInstall[vmInstalls.size()]);
+ }
+
+ private String[] getClasspath()
+ {
+ ArrayList runtimeClasspaths = new ArrayList();
+ LibraryLocation[] serverLibs = this.getLibraryLocations();
+ for (int i = 0; i < serverLibs.length; i++)
+ {
+ IRuntimeClasspathEntry runtimeEntry =
+ JavaRuntime.newArchiveRuntimeClasspathEntry(
+ ((LibraryLocation)
(serverLibs[i])).getSystemLibraryPath());
+ runtimeEntry.setSourceAttachmentPath(
+ ((LibraryLocation)
(serverLibs[i])).getSystemLibrarySourcePath());
+ runtimeEntry.setSourceAttachmentRootPath(
+ ((LibraryLocation) (serverLibs[i])).getPackageRootPath());
+
runtimeEntry.setClasspathProperty(IRuntimeClasspathEntry.USER_CLASSES);
+ runtimeClasspaths.add(runtimeEntry.getLocation());
+ }
+
+ if (runtimeClasspaths.size() == 0)
+ {
+ return null;
+ } else
+ {
+ return (String[]) runtimeClasspaths.toArray(new
String[runtimeClasspaths.size()]);
+ }
+ }
+
+ private String[] getBootClasspath(IVMInstall vm)
+ {
+ ArrayList runtimeClasspaths = new ArrayList();
+ LibraryLocation[] vmLibs = JavaRuntime.getLibraryLocations(vm);
+ for (int i = 0; i < vmLibs.length; i++)
+ {
+ IRuntimeClasspathEntry runtimeEntry =
+ JavaRuntime.newArchiveRuntimeClasspathEntry(
+ ((LibraryLocation) (vmLibs[i])).getSystemLibraryPath());
+ runtimeEntry.setSourceAttachmentPath(
+ ((LibraryLocation)
(vmLibs[i])).getSystemLibrarySourcePath());
+ runtimeEntry.setSourceAttachmentRootPath(
+ ((LibraryLocation) (vmLibs[i])).getPackageRootPath());
+
runtimeEntry.setClasspathProperty(IRuntimeClasspathEntry.STANDARD_CLASSES);
+ runtimeClasspaths.add(runtimeEntry.getLocation());
+ }
+
+ if (runtimeClasspaths.size() == 0)
+ {
+ return null;
+ } else
+ {
+ return (String[]) runtimeClasspaths.toArray(new
String[runtimeClasspaths.size()]);
+ }
+ }
+
+ protected void abort(String message, Throwable exception, int code)
throws CoreException
+ {
+ throw new CoreException(
+ new Status(
+ IStatus.ERROR,
+
MerlinDeveloperLaunch.getDefault().getDescriptor().getUniqueIdentifier(),
+ code,
+ message,
+ exception));
+ }
+
+ private ISourceLocator getSourceLocator() throws CoreException
+ {
+
+ MerlinProjectNature[] addedMerlinProjectCreators =
getMerlinProjectCreators();
+ IJavaProject[] javaProjects = new
IJavaProject[addedMerlinProjectCreators.length];
+
+ for (int i = 0; i < addedMerlinProjectCreators.length; i++)
+ {
+ if (addedMerlinProjectCreators[i].getJavaProject().isOpen())
+ {
+ javaProjects[i] =
addedMerlinProjectCreators[i].getJavaProject();
+ }
+ }
+
+ return new JavaSourceLocator(javaProjects, true);
+
+ }
+
+ protected MerlinProjectNature[] getMerlinProjectCreators() throws
CoreException
+ {
+
+ IProject[] projects =
MerlinDeveloperLaunch.getWorkspace().getRoot().getProjects();
+ ArrayList merlinProjectCreators = new ArrayList();
+
+ for (int i = 0; i < projects.length; i++)
+ {
+ if (projects[i].isOpen())
+ {
+ if
(projects[i].hasNature(MerlinDeveloperLaunch.MERLIN_PROJECT_NATURE_ID))
+ {
+ MerlinProjectNature merlinProjectCreator =
+ MerlinProjectNature.create(projects[i]);
+ merlinProjectCreators.add(merlinProjectCreator);
+ }
+ }
+ }
+
+ return (MerlinProjectNature[]) merlinProjectCreators.toArray(
+ new MerlinProjectNature[merlinProjectCreators.size()]);
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/IAvalonContainer.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/IAvalonContainer.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,38 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.launch.container;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunch;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public interface IAvalonContainer {
+
+ public void setProjectName(String projectName);
+ public String getProjectName();
+ public void debug(ILaunch launch) throws CoreException;
+ public boolean isStarted();
+ public boolean isStopped();
+ public void start(ILaunch launch) throws CoreException;
+ public void stop() throws CoreException;
+ public void terminate();
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/MerlinContainerEnvironment.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/MerlinContainerEnvironment.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,99 @@
+/*
+ * Created on 14.02.2004
+ *
+ * To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+package org.apache.avalon.ide.eclipse.merlin.launch.container;
+
+import java.io.IOException;
+
+import org.apache.avalon.ide.eclipse.merlin.launch.MerlinDeveloperLaunch;
+import org.apache.avalon.util.defaults.DefaultsBuilder;
+
+
+/**
+ * @author Andreas Develop
+ *
+ * To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+public class MerlinContainerEnvironment
+{
+
+ private DefaultsBuilder merlinBuilder;
+ private DefaultsBuilder avalonBuilder;
+
+ public static void main(String[] args)
+ {
+
+ try
+ {
+ new DefaultsBuilder("merlin", null);
+
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+
+ }
+ public MerlinContainerEnvironment(){
+
+ try
+ {
+ merlinBuilder = new DefaultsBuilder("merlin", null);
+ avalonBuilder = new DefaultsBuilder("avalon", null);
+ } catch (Exception e)
+ {
+ MerlinDeveloperLaunch.log(e, "Error while reading the Avalon
environment");
+ }
+
+ }
+ /**
+ * @return
+ */
+ public String getAvalonHome()
+ {
+ String path;
+ try
+ {
+ path = avalonBuilder.getHomeDirectory().getCanonicalPath();
+ } catch (IOException e)
+ {
+ MerlinDeveloperLaunch.log(e, "Error while reading the Avalon
Home Directory");
+ return null;
+ }
+ return path;
+ }
+ /**
+ * @return
+ */
+ public String getMerlinHome()
+ {
+ String path;
+ try
+ {
+ path = merlinBuilder.getHomeDirectory().getCanonicalPath();
+ } catch (IOException e)
+ {
+ MerlinDeveloperLaunch.log(e, "Error while reading the Merlin
Home Directory");
+ return null;
+ }
+ return path;
+ }
+ /**
+ *
+ */
+ public void setAvalonDefaultsHome()
+ {
+ }
+ /**
+ *
+ */
+ public void setMerlinDefaultsHome()
+ {
+ // System.setProperty("merlin.home", "");
+
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/MerlinEmbeddedContainer.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/MerlinEmbeddedContainer.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,25 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.launch.container;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class MerlinEmbeddedContainer
+{}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/MerlinExternalContainer.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container/MerlinExternalContainer.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,180 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.launch.container;
+
+import java.util.Vector;
+
+import org.apache.avalon.ide.eclipse.merlin.launch.MerlinDeveloperLaunch;
+import org.apache.avalon.ide.eclipse.merlin.nature.MerlinProjectNature;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.ILibrary;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.debug.core.model.ISourceLocator;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.launching.LibraryLocation;
+import org.eclipse.jdt.launching.sourcelookup.JavaSourceLocator;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class MerlinExternalContainer extends AvalonContainer
+{
+
+ private static final String MAIN_CLASS = "Merlin"; //$NON-NLS-1$
+ private static final String MERLIN_HOME_KEY = "merlin.home";
+ private String projectName;
+ /**
+ *
+ */
+ public MerlinExternalContainer()
+ {
+ super();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ */
+ protected LibraryLocation[] getLibraryLocations()
+ {
+ IPath pluginPath =
MerlinDeveloperLaunch.getDefault().getPluginLocation();
+ ILibrary[] libraries =
+
MerlinDeveloperLaunch.getDefault().getDescriptor().getRuntimeLibraries();
+ Vector libraryLocations = new Vector();
+
+ for (int i = 0; i < libraries.length; i++)
+ {
+ libraryLocations.add(
+ new LibraryLocation(
+ pluginPath.append(libraries[i].getPath()),
+ Path.EMPTY,
+ Path.EMPTY));
+ }
+
+ pluginPath = pluginPath.append("/lib/hibernate");
+ String[] path = pluginPath.toFile().list();
+ if (path != null)
+ {
+ for (int i = 0; i < path.length; i++)
+ {
+ if (path[i].endsWith(".jar"))
+ { //$NON-NLS-1$
+ libraryLocations.add(
+ new LibraryLocation(pluginPath.append(path[i]),
Path.EMPTY, Path.EMPTY));
+ }
+ }
+ }
+ return (LibraryLocation[]) libraryLocations.toArray(
+ new LibraryLocation[libraryLocations.size()]);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ */
+ protected String getMainClass()
+ {
+ return "org.apache.avalon.merlin.cli.Main";
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ */
+ protected String getProgramArguments()
+ {
+
+ StringBuffer param = new StringBuffer();
+ try
+ {
+ IProject project =
+
MerlinDeveloperLaunch.getWorkspace().getRoot().getProject(projectName);
+ IJavaProject proj = JavaCore.create(project);
+ param.append('"');
+
param.append(project.getLocation().append(proj.getOutputLocation().lastSegment()).toString());
+ param.append('"');
+ } catch (JavaModelException e)
+ {
+ e.printStackTrace();
+ }
+ return param.toString() + " -execute -debug";
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ */
+ protected String getVMArguments()
+ {
+ String fallback = System.getProperty("user.home") + "/.merlin";
+ String home = System.getProperty(MERLIN_HOME_KEY, fallback);
+
+ return "-Djava.security.policy=" + home + "/bin/security.policy
-Dmerlin.home=" + home;
+ }
+
+ private ISourceLocator getSourceLocator() throws CoreException
+ {
+
+ MerlinProjectNature[] addedMerlinProjectCreators =
getMerlinProjectCreators();
+ IJavaProject[] javaProjects = new
IJavaProject[addedMerlinProjectCreators.length];
+
+ for (int i = 0; i < addedMerlinProjectCreators.length; i++)
+ {
+ if (addedMerlinProjectCreators[i].getJavaProject().isOpen())
+ {
+ javaProjects[i] =
addedMerlinProjectCreators[i].getJavaProject();
+ }
+ }
+
+ return new JavaSourceLocator(javaProjects, true);
+
+ }
+
+ /**
+ * Set the projects name for which the container is started
+ *
+ */
+ public void setProjectName(String iProjectName)
+ {
+
+ this.projectName = iProjectName;
+
+ }
+
+ /**
+ * Get the projects name for which the container is started
+ */
+ public String getProjectName()
+ {
+
+ return projectName;
+ }
+
+ /**
+ * @return String server label
+ */
+ public static String getServerLabel()
+ {
+ return "merlinContainerID";
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/ui/MerlinServerTabGroup.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/ui/MerlinServerTabGroup.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,52 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.launch.ui;
+
+import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
+import org.eclipse.debug.ui.CommonTab;
+import org.eclipse.debug.ui.EnvironmentTab;
+import org.eclipse.debug.ui.ILaunchConfigurationDialog;
+import org.eclipse.debug.ui.ILaunchConfigurationTab;
+import org.eclipse.jdt.debug.ui.launchConfigurations.JavaArgumentsTab;
+import org.eclipse.jdt.debug.ui.launchConfigurations.JavaClasspathTab;
+import org.eclipse.jdt.debug.ui.launchConfigurations.JavaJRETab;
+import org.eclipse.jdt.debug.ui.launchConfigurations.JavaSourceLookupTab;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+
+public class MerlinServerTabGroup extends AbstractLaunchConfigurationTabGroup
+{
+
+ public void createTabs(ILaunchConfigurationDialog dialog, String mode)
+ {
+ ILaunchConfigurationTab[] tabs =
+ new ILaunchConfigurationTab[] {
+ //new JavaMainTab(),
+ new JavaArgumentsTab(),
+ new JavaJRETab(),
+ new JavaClasspathTab(),
+ new JavaSourceLookupTab(),
+ new EnvironmentTab(),
+ new CommonTab()};
+ setTabs(tabs);
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/nature/MerlinProjectNature.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/nature/MerlinProjectNature.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,127 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.nature;
+
+import org.apache.avalon.ide.eclipse.merlin.launch.MerlinDeveloperLaunch;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectNature;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class MerlinProjectNature implements IProjectNature
+{
+
+ private IProject project;
+ private IJavaProject javaProject;
+
+ static public MerlinProjectNature create(IJavaProject javaProject) {
+ MerlinProjectNature result = null;
+ try {
+ result =
+ (MerlinProjectNature) javaProject.getProject().getNature(
+ MerlinDeveloperLaunch.MERLIN_PROJECT_NATURE_ID);
+ if (result != null)
+ result.setJavaProject(javaProject);
+ } catch (CoreException e) {
+ MerlinDeveloperLaunch.log(e, "create(IJavaProject javaProject)
handling CoreException"); //$NON-NLS-1$
+ }
+ return result;
+ }
+
+ /**
+ * This is the entry method, called by NewMerlinBlockOperation
+ *
+ * @param project
+ * @return
+ */
+ static public MerlinProjectNature create(IProject project) {
+
+ IJavaProject javaProject = JavaCore.create(project);
+ if (javaProject != null) {
+ return MerlinProjectNature.create(javaProject);
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Normaly, the whole initialization stuff (creating directory
structure,
+ * initial files etc. ) is done here. But because we need greater
+ * flexibility, this is done in the wizards operastions classes.
+ *
+ * @see org.eclipse.core.resources.IProjectNature#configure()
+ */
+ public void configure() throws CoreException
+ {
+
+ }
+
+ public void deconfigure() throws CoreException
+ {
+ // Remove the nature-specific information here.
+ }
+
+ public String getDocumentBase()
+ {
+ return this.getProject().getLocation().toString();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.resources.IProjectNature#getProject()
+ */
+ public IProject getProject()
+ {
+ return project;
+ }
+
+ /**
+ * This method is automatically called by eclipse during project
creation
+ * before the configure() method is called
+ *
+ * @see
org.eclipse.core.resources.IProjectNature#setProject(org.eclipse.core.resources.IProject)
+ */
+ public void setProject(IProject iProject)
+ {
+ this.project = iProject;
+ }
+
+ /**
+ * @param pJavaProject
+ */
+ private void setJavaProject(IJavaProject pJavaProject)
+ {
+ javaProject = pJavaProject;
+
+ }
+
+ /**
+ * @return Returns the javaProject.
+ */
+ public IJavaProject getJavaProject()
+ {
+ return javaProject;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/Defaults.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/Defaults.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,376 @@
+/*
+ * Copyright 2004 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.
+ */
+
+package org.apache.avalon.util.defaults;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.Properties;
+
+
+/**
+ * Gets a set of default property values based on a sequence of default value
+ * search components or finders.
+ *
+ * @author <a href="mailto:aok123 AT bellsouth.net";>Alex Karasulu</a>
+ * @author $Author: oberhack $
+ * @version $Revision: 1.1 $
+ */
+public class Defaults extends Properties
+{
+ /** single-valued property key names */
+ private final String [] m_singles ;
+ /** multi-valued or enumerated property key names */
+ private final String [] m_enumerated ;
+ /** array of finders that define the property default discovery process
*/
+ private final DefaultsFinder [] m_finders ;
+
+
+ //
------------------------------------------------------------------------
+ // C O N S T R U C T O R S
+ //
------------------------------------------------------------------------
+
+
+ /**
+ * Creates and populates a set of properties
+ *
+ * @param a_singles single valued key names
+ * @param a_enumerated multi-valued key names
+ * @param a_finders search components used for staged discovery of
defaults
+ */
+ public Defaults( String [] a_singles, String [] a_enumerated,
+ DefaultsFinder [] a_finders )
+ {
+ m_finders = a_finders ;
+ m_singles = a_singles ;
+ m_enumerated = a_enumerated ;
+
+ for ( int ii = 0; ii < m_finders.length; ii++ )
+ {
+ m_finders[ii].find( this ) ;
+ }
+ }
+
+
+ //
------------------------------------------------------------------------
+ // A C C E S S O R S
+ //
------------------------------------------------------------------------
+
+
+ /**
+ * Gets the base names of enumerated multi-valued keys. Such keys are
+ * enumerated to have multiple values by appending an index onto a key
base
+ * like so: [base.key].1,[base.key].2,[base.key].3 ... [base.key].N. The
+ * returned keys are just the base key names of multi-valued properties
and
+ * do not include the appended index.
+ *
+ * @return the base key names for multi-valued properties
+ */
+ public String[] getEnumerated()
+ {
+ return m_enumerated ;
+ }
+
+
+ /**
+ * Gets the linear set of finders composing the search policy.
+ *
+ * @return the finders used to discover property defaults
+ */
+ public DefaultsFinder[] getFinders()
+ {
+ return m_finders ;
+ }
+
+
+ /**
+ * Gets the names of all the single valued properties.
+ *
+ * @return single valued property key names
+ */
+ public String[] getSingles()
+ {
+ return m_singles ;
+ }
+
+
+ /**
+ * Gets the default values for an enumerated key.
+ *
+ * @param a_base the base of the enumerated key
+ * @return the values of the multi-valued property
+ */
+ public String[] getEnumerated( String a_base )
+ {
+ ArrayList l_values = new ArrayList() ;
+ Enumeration l_list = keys() ;
+
+ while ( l_list.hasMoreElements() )
+ {
+ String l_key = ( String ) l_list.nextElement() ;
+ if ( l_key.startsWith( a_base ) )
+ {
+ l_values.add( getProperty( l_key ) ) ;
+ }
+ }
+ return ( String [] ) l_values.toArray( new String [0] ) ;
+ }
+
+
+ /**
+ * Utility method that gets a key's value and returns a boolean value to
+ * represent it.
+ *
+ * @param a_key the boolean property key
+ * @return true if the property is 1, true, yes or on, and false
otherwise
+ */
+ public boolean getBoolean( String a_key )
+ {
+ String l_value = getProperty( a_key ) ;
+ l_value = l_value.trim().toLowerCase() ;
+
+ if ( l_value.equals( "1" ) ||
+ l_value.equals( "on" ) ||
+ l_value.equals( "yes" ) ||
+ l_value.equals( "true" ) )
+ {
+ return true ;
+ }
+
+ return false ;
+ }
+
+
+ //
------------------------------------------------------------------------
+ // S T A T I C M E T H O D S
+ //
------------------------------------------------------------------------
+
+
+ /**
+ * Merges a set of properties from source Properties into a Defaults
+ * instance. Does not allow null overrides.
+ *
+ * @param a_defaults the defaults to populate on discovery
+ * @param a_sources the sources to search
+ * @param a_haltOnDiscovery true to halt on first find or false to
continue
+ * to last find
+ */
+ public static void discover( Defaults a_defaults, Properties []
a_sources,
+ boolean a_haltOnDiscovery )
+ {
+ if ( null == a_sources || null == a_defaults )
+ {
+ return ;
+ }
+
+ /*
+ * H A N D L E S I N G L E V A L U E D K E Y S
+ */
+ String [] l_keys = a_defaults.getSingles() ;
+ for ( int ii = 0; ii < l_keys.length; ii++ )
+ {
+ String l_key = l_keys[ii] ;
+ String l_value = discover( l_key, a_sources, a_haltOnDiscovery )
;
+
+ if ( l_value != null )
+ {
+ a_defaults.setProperty( l_key, l_value ) ;
+ }
+ }
+
+ /*
+ * H A N D L E M U L T I - V A L U E D K E Y S
+ */
+ l_keys = a_defaults.getEnumerated() ;
+ for ( int ii = 0; ii < l_keys.length; ii++ )
+ {
+ String l_base = l_keys[ii] ;
+
+ for ( int jj = 0; jj < a_sources.length; jj++ )
+ {
+ Enumeration l_list = a_sources[jj].propertyNames() ;
+
+ while ( l_list.hasMoreElements() )
+ {
+ String l_key = ( String ) l_list.nextElement() ;
+ if ( ! l_key.startsWith( l_base ) )
+ {
+ continue ;
+ }
+
+ String l_value =
+ discover( l_key, a_sources, a_haltOnDiscovery ) ;
+
+ if ( l_value != null )
+ {
+ a_defaults.setProperty( l_key, l_value ) ;
+ }
+ }
+ }
+ }
+ }
+
+
+ /**
+ * Discovers a value within a set of Properties either halting on the
first
+ * time the property is discovered or continuing on to take the last
value
+ * found for the property key.
+ *
+ * @param l_key a property key
+ * @param a_sources a set of source Properties
+ * @param a_haltOnDiscovery true if we stop on finding a value, false
+ * otherwise
+ * @return the value found or null
+ */
+ public static String discover( String l_key, Properties [] a_sources,
+ boolean a_haltOnDiscovery )
+ {
+ String l_retval = null ;
+
+ for( int ii = 0; ii < a_sources.length; ii++ )
+ {
+ if ( a_sources[ii].containsKey( l_key ) )
+ {
+ l_retval = a_sources[ii].getProperty( l_key ) ;
+
+ if ( a_haltOnDiscovery )
+ {
+ break ;
+ }
+ }
+ }
+
+ return l_retval ;
+ }
+
+
+ /**
+ * Expands out a set of property key macros in the following format
+ * ${foo.bar} where foo.bar is a property key, by dereferencing the
value
+ * of the key using the original source Properties and other optional
+ * Properties.
+ *
+ * If the original expanded Properties contain the value for the macro
key
+ * foo.bar then dereferencing stops by using the value in the expanded
+ * Properties: the other optional Properties are NOT used at all.
+ *
+ * If the original expanded Properties do NOT contain the value for the
+ * macro key, then the optional Properties are used in order. The first
of
+ * the optionals to contain the value for the macro key (foo.bar) shorts
the
+ * search. Hence the first optional Properties in the array to contain
a
+ * value for the macro key (foo.bar) is used to set the expanded value.
+ *
+ * If a macro cannot be expanded because it's key was not defined within
the
+ * expanded Properties or one of the optional Properties then it is left
as
+ * is.
+ *
+ * @param a_expanded the Properties to perform the macro expansion upon
+ * @param a_optionals null or an optional set of Properties to use for
+ * dereferencing macro keys (foo.bar)
+ */
+ public static void macroExpand( Properties a_expanded,
+ Properties [] a_optionals )
+ {
+ // Handle null optionals
+ if ( null == a_optionals )
+ {
+ a_optionals = new Properties [ 0 ] ;
+ }
+
+ Enumeration l_list = a_expanded.propertyNames() ;
+ while ( l_list.hasMoreElements() )
+ {
+ String l_key = ( String ) l_list.nextElement() ;
+ String l_macro = a_expanded.getProperty( l_key ) ;
+
+ int n = l_macro.indexOf( "${" );
+ if( n < 0 )
+ {
+ continue;
+ }
+
+ int m = l_macro.indexOf( "}", n+2 );
+ if( m < 0 )
+ {
+ continue;
+ }
+
+ final String symbol = l_macro.substring( n+2, m );
+
+ if ( a_expanded.containsKey( symbol ) )
+ {
+ final String value = a_expanded.getProperty( symbol );
+ final String head = l_macro.substring( 0, n );
+ final String tail = l_macro.substring( m+1 );
+ final String resolved = head + value + tail;
+
+ a_expanded.put( l_key, resolved ) ;
+ continue ;
+ }
+
+ /*
+ * Check if the macro key exists within the array of optional
+ * Properties. Set expanded value to first Properties with the
+ * key and break out of the loop.
+ */
+ for ( int ii = 0; ii < a_optionals.length; ii++ )
+ {
+ if ( a_optionals[ii].containsKey( symbol ) )
+ {
+ String value = a_optionals[ii].getProperty( symbol ) ;
+ final String head = l_macro.substring( 0, n );
+ final String tail = l_macro.substring( m+1 );
+ final String resolved = head + value + tail;
+
+ a_expanded.put( l_key, resolved ) ;
+ break ;
+ }
+ }
+ }
+ }
+
+ /**
+ * Read in a static properties resource relative to a supplied class
+ * and path.
+ *
+ * @param ref a class used to establish a classloader and anchors
+ * relative path references
+ * @param path the resoruce address
+ * @return the static properties
+ * @exception IllegalStateException if the path is unresolvable
+ */
+ public static Properties getStaticProperties( Class ref, String path )
throws IOException
+ {
+ Properties bootstrap = new Properties();
+ InputStream input = ref.getResourceAsStream( path );
+ if( input == null )
+ {
+ final String error =
+ "Internal error, unable to locate enbedded resource: "
+ + path
+ + " from the resource: "
+ + ref.getProtectionDomain().getCodeSource().getLocation();
+ throw new IllegalStateException( error );
+ }
+ bootstrap.load( input );
+ return bootstrap;
+ }
+}
+
+

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/DefaultsBuilder.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/DefaultsBuilder.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,244 @@
+/*
+ * Copyright 2004 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.
+ */
+
+package org.apache.avalon.util.defaults;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import org.apache.avalon.util.env.Env;
+
+
+/**
+ * A utility class that provides support for the establishment
+ * of a set of installation properties.
+ *
+ * @author <a href="mailto:mcconnell AT apache.org";>Stephen McConnell</a>
+ * @version $Revision: 1.1 $
+ */
+public class DefaultsBuilder
+{
+ //--------------------------------------------------------------
+ // static
+ //--------------------------------------------------------------
+
+ /**
+ * Return a home directory taking into account a supplied env symbol,
+ * a property key and a fallback directory.
+ *
+ * If the supplied key references a known system property
+ * value of '[key].home' then that value will be used to establish the
home
+ * directory. Otherwise, if the supplied env symbol cannot be resolved
+ * to a value, a directory corresponding to ${user.home}/.[key]
+ * will be returned.
+ *
+ * @param key an application key such as 'merlin'
+ * @return the derived directory
+ */
+ public static File getHomeDirectory( String key ) throws Exception
+ {
+ final String homeKey = key + ".home";
+ final String symbol = key.toUpperCase() + "_HOME";
+ final String home =
+ System.getProperty(
+ homeKey,
+ Env.getEnvVariable( symbol ) );
+
+ if( null != home )
+ {
+ return new File( home ).getCanonicalFile();
+ }
+ else
+ {
+ final File user =
+ new File( System.getProperty( "user.home" ) );
+ final String path = "." + key;
+ return new File( user, path ).getCanonicalFile();
+ }
+ }
+
+ /**
+ * Create a installation properties object. The implementation
+ * will create a new properties object and read in a properties
+ * file if it exists relative to the filename [home]/[key].properties.
+ * Before returning the properties object the home directory will be
+ * assigned as the value of a property name [key].home if the supplied
+ * flag argument is TRUE.
+ *
+ * @param home the home directory
+ * @param key the application key
+ * @param flag if TRUE set the property '[key].home' to the home
directory
+ * @return the application properties object
+ */
+ public static Properties getHomeProperties(
+ File home, String key, boolean flag ) throws IOException
+ {
+ Properties properties = getProperties( home, key );
+ if( flag )
+ {
+ final String name = key + ".home";
+ final String path = home.getCanonicalPath();
+ properties.setProperty( name, path );
+ }
+ return properties;
+ }
+
+ /**
+ * Create a user properties object. The implementation
+ * will create a new properties object and read in a properties
+ * file if it exists relative to the filename
${user.home}/[key].properties.
+ *
+ * @param key the application key
+ * @return the user properties object
+ */
+ public static Properties getUserProperties(
+ String key ) throws IOException
+ {
+ final File user = new File( System.getProperty( "user.home" ) );
+ return getProperties( user, key );
+ }
+
+ /**
+ * Create a dir properties object. The implementation
+ * will create a new properties object and read in a properties
+ * file if it exists relative to [dir]/[key].properties.
+ *
+ * @param dir the base directory
+ * @param key the application key
+ * @return the user properties object
+ */
+ public static Properties getProperties(
+ File dir, String key ) throws IOException
+ {
+ final String filename = key + ".properties";
+ final File file = new File( dir, filename );
+ return getProperties( file );
+ }
+
+ /**
+ * Create a properties object from the supplied file. If
+ * the file does not exists an empty property object will be
+ * returned.
+ *
+ * @param file the properties file
+ * @return the properties object
+ */
+ public static Properties getProperties( File file ) throws IOException
+ {
+ if( null == file )
+ {
+ throw new NullPointerException( "file" );
+ }
+
+ Properties properties = new Properties();
+ if( file.exists() )
+ {
+ properties.load(
+ new FileInputStream( file ) );
+ }
+ return properties;
+ }
+
+ public static Properties getProperties(
+ ClassLoader classloader, String path ) throws IOException
+ {
+ Properties properties = new Properties();
+ InputStream input =
+ classloader.getResourceAsStream( path );
+ if( input != null )
+ {
+ properties.load( input );
+ }
+ return properties;
+ }
+
+ //--------------------------------------------------------------
+ // state
+ //--------------------------------------------------------------
+
+ private final String m_key;
+
+ private final File m_work;
+
+ private final File m_root;
+
+ private final Properties m_home;
+
+ private final Properties m_user;
+
+ private final Properties m_dir;
+
+ //--------------------------------------------------------------
+ // constructor
+ //--------------------------------------------------------------
+
+ public DefaultsBuilder( final String key, File work ) throws Exception
+ {
+ m_key = key;
+ m_work = work;
+ m_root = getHomeDirectory( m_key );
+ m_home = getHomeProperties( m_root, m_key, true );
+ m_user = getUserProperties( m_key );
+ m_dir = getProperties( m_work, m_key );
+ }
+
+ //--------------------------------------------------------------
+ // implementation
+ //--------------------------------------------------------------
+
+ public File getHomeDirectory()
+ {
+ return m_root;
+ }
+
+ public Properties getHomeProperties()
+ {
+ return m_home;
+ }
+
+ public Properties getUserProperties()
+ {
+ return m_user;
+ }
+
+ public Properties getDirProperties()
+ {
+ return m_dir;
+ }
+
+ public Properties getConsolidatedProperties(
+ final Properties defaults, final String[] keys ) throws IOException
+ {
+ final Properties[] parameters =
+ new Properties[] {
+ defaults,
+ m_home,
+ m_user,
+ m_dir };
+ final DefaultsFinder[] finders =
+ new DefaultsFinder[]{
+ new SimpleDefaultsFinder(
+ parameters,
+ false ),
+ new SystemDefaultsFinder()
+ };
+ return new Defaults( keys, new String[0], finders );
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/DefaultsFinder.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/DefaultsFinder.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2004 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.
+ */
+
+package org.apache.avalon.util.defaults;
+
+
+/**
+ * Finds a set of default property values.
+ *
+ * @author <a href="mailto:aok123 AT bellsouth.net";>Alex Karasulu</a>
+ * @author $Author: oberhack $
+ * @version $Revision: 1.1 $
+ */
+public interface DefaultsFinder
+{
+ void find( Defaults a_defaults ) ;
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/SimpleDefaultsFinder.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/SimpleDefaultsFinder.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2004 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.
+ */
+
+package org.apache.avalon.util.defaults;
+
+
+import java.util.Properties;
+
+
+/**
+ * Attempts to discover defaults using an array of Properties as value
sources.
+ *
+ * @author <a href="mailto:aok123 AT bellsouth.net";>Alex Karasulu</a>
+ * @author $Author: oberhack $
+ * @version $Revision: 1.1 $
+ */
+public class SimpleDefaultsFinder implements DefaultsFinder
+{
+ /** Properties array to use for discovery */
+ private Properties [] m_sources ;
+ /** halt on first finding flag */
+ private boolean m_haltOnDiscovery = true ;
+
+
+ /**
+ * Creates a simple defaults finder that searches a single source
Properties
+ * instance for default values.
+ *
+ * @param source single source Properties to discover values in
+ */
+ public SimpleDefaultsFinder( Properties source )
+ {
+ m_sources = new Properties [] { source } ;
+ m_haltOnDiscovery = false ;
+ }
+
+
+ /**
+ * Creates a simple defaults filder that searches a set of source
Properties
+ * for default values.
+ *
+ * @param sources the source Properties to discover values in
+ * @param haltOnDiscovery true to halt search when first value is
+ * discovered, false to continue search overriding values until the last
+ * value is discovered.
+ */
+ public SimpleDefaultsFinder( Properties [] sources,
+ boolean haltOnDiscovery )
+ {
+ m_sources = sources ;
+ m_haltOnDiscovery = haltOnDiscovery ;
+ }
+
+
+ /**
+ * Applies default discovery using properties in array of properties.
+ *
+ * @see org.apache.avalon.util.defaults.DefaultsFinder#find(
+ * org.apache.avalon.util.defaults.Defaults)
+ */
+ public void find( Defaults a_defaults )
+ {
+ Defaults.discover( a_defaults, m_sources, m_haltOnDiscovery ) ;
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/SystemDefaultsFinder.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/SystemDefaultsFinder.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2004 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.
+ */
+
+package org.apache.avalon.util.defaults;
+
+
+import java.util.Properties;
+
+
+/**
+ * Finds default property values within the system properties.
+ *
+ * @author <a href="mailto:aok123 AT bellsouth.net";>Alex Karasulu</a>
+ * @author $Author: oberhack $
+ * @version $Revision: 1.1 $
+ */
+public class SystemDefaultsFinder extends SimpleDefaultsFinder
+{
+ /**
+ * Finds default property values within the system properties.
+ */
+ public SystemDefaultsFinder()
+ {
+ super( new Properties [] { System.getProperties() }, true ) ;
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/package.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults/package.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,6 @@
+
+<body>
+<p>
+Provides support for the aggregation of a set of property values into a
single property set.
+</p>
+</body>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/build.properties
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/build.properties
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,5 @@
+bin.includes = plugin.xml,\
+ *.jar,\
+ repository-plugin.jar
+source.repository-plugin.jar = build/
+custom = false

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/doc/book.css
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/doc/book.css
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,106 @@
+P.Code {
+ display: block;
+ text-align: left;
+ text-indent: 0.00pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 15pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #4444CC;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+H6.CaptionFigColumn {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 3.000000pt;
+ margin-bottom: 11.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+P.Note {
+ display: block;
+ text-align: left;
+ text-indent: 0pt;
+ margin-top: 19.500000pt;
+ margin-bottom: 19.500000pt;
+ margin-right: 0.000000pt;
+ margin-left: 30pt;
+ font-size: 11.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+EM.UILabel {
+ font-weight: Bold;
+ font-style: Regular;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+}
+EM.CodeName {
+ font-weight: Bold;
+ font-style: Regular;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family:"Courier New";
+}
+
+
+
+
+/* following font face declarations need to be removed for DBCS */
+
+body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd,
dt {font-family: Arial, Helvetica, sans-serif; color: #000000}
+pre { font-family: Courier, monospace}
+
+/* end font face declarations */
+
+/* following font size declarations should be OK for DBCS */
+body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd,
dt {font-size: 10pt; }
+pre { font-size: 10pt}
+
+/* end font size declarations */
+
+body { background: #FFFFFF}
+h1 { font-size: 18pt; margin-top: 5; margin-bottom: 1 }
+h2 { font-size: 14pt; margin-top: 25; margin-bottom: 3 }
+h3 { font-size: 11pt; margin-top: 20; margin-bottom: 3 }
+h4 { font-size: 10pt; margin-top: 20; margin-bottom: 3;
font-style: italic }
+p { margin-top: 10px; margin-bottom: 10px }
+pre { margin-left: 6; font-size: 9pt }
+a:link { color: #0000FF }
+a:hover { color: #000080 }
+a:visited { text-decoration: underline }
+ul { margin-top: 0; margin-bottom: 10 }
+li { margin-top: 0; margin-bottom: 0 }
+li p { margin-top: 0; margin-bottom: 0 }
+ol { margin-top: 0; margin-bottom: 10 }
+dl { margin-top: 0; margin-bottom: 10 }
+dt { margin-top: 0; margin-bottom: 0; font-weight: bold }
+dd { margin-top: 0; margin-bottom: 0 }
+strong { font-weight: bold}
+em { font-style: italic}
+var { font-style: italic}
+div.revision { border-left-style: solid; border-left-width: thin;
+ border-left-color: #7B68EE; padding-left:5
}
+th { font-weight: bold }

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/doc/org_apache_avalon_ide_eclipse_org.apache.avalon.ide.eclipse.repository.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/doc/org_apache_avalon_ide_eclipse_org.apache.avalon.ide.eclipse.repository.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HEAD><meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
+<!-- default platform documentation stylesheets -->
+<style>@import url("book.css");</style>
+<!-- default schema documentation stylesheets -->
+<style>@import url("schema.css");</style>
+</HEAD>
+<HTML>
+<BODY>
+<H1><CENTER>Avalon Repository</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier:
</h6>org.apache.avalon.ide.eclipse.org.apache.avalon.ide.eclipse.repository<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>[Enter the first release in
which this extension point appears.]
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>For registration of
new Avalon Repository types.</p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a>
EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED<p class=code
id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class=code
id=dtdAttlist>name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a name="e.type">type</a> EMPTY&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST type</p>
+<p class=code id=dtdAttlist>classname&nbsp;CDATA #REQUIRED<p class=code
id=dtdAttlist>urn-id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>classname</b> - The classname of the implementation of the
RepositoryAgentFactory.</li>
+<li><b>urn-id</b> - The 'urn-id' must be in the form of
+[urnliterals]:[urn-identifier]
+where [urnliterls] is "urn" and the [urn-identifier] is a established
globally unique name, only containing alpha-numeric characters, dash (-) and
underscore (_).</li>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a
name="e.description">description</a> EMPTY&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+A description of the Repository type.</p>
+<br><br>
+<h6 class=CaptionFigColumn id=header>Examples: </h6>[Enter extension point
usage example here.]
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>[Enter API
information here.]
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>Supplied Implementation: </h6>[Enter
information about supplied implementation of this extension point.]
+<p></p>
+
+<br>
+<p class=note id=copyright>
+</p>
+</BODY>
+</HTML>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/doc/org_apache_avalon_ide_eclipse_repository_agent.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/doc/org_apache_avalon_ide_eclipse_repository_agent.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HEAD><meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
+<!-- default platform documentation stylesheets -->
+<style>@import url("book.css");</style>
+<!-- default schema documentation stylesheets -->
+<style>@import url("schema.css");</style>
+</HEAD>
+<HTML>
+<BODY>
+<H1><CENTER>Avalon Repository Agent</CENTER></H1>
+<p></p>
+<h6 class=CaptionFigColumn id=header>Identifier:
</h6>org.apache.avalon.ide.eclipse.repository.agent<p></p>
+<h6 class=CaptionFigColumn id=header>Since: </h6>The first release.
+<p></p>
+
+<p>
+<h6 class=CaptionFigColumn id=header>Description: </h6>The Repository Agent
extension is all about registration of RepositoryAgentFactory
implementations, that knows how to contact repositories, on-line and
off-line.</p>
+<p><h6 class=CaptionFigColumn id=header>Configuration Markup:</h6></p>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.extension">extension</a> (<a
href="#e.description">description</a> , <a
href="#e.scheme">scheme</a>)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST extension</p>
+<p class=code id=dtdAttlist>name&nbsp;&nbsp;CDATA "Sample Repository
Agent"<p class=code id=dtdAttlist>id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p
class=code id=dtdAttlist>point&nbsp;CDATA #REQUIRED&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+Definition of the Repository Agent extension point.</p>
+<br>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>name</b> - The name of the Repository Agent plug-in. This name will
be used on-screen.</li>
+</ul>
+<br><p class=code id=dtd>&lt;!ELEMENT <a
name="e.description">description</a> (#CDATA)&gt;</p>
+<p></p>
+<p class=ConfigMarkup id=elementDesc>
+A longer description of the capabilities of the RepositoryAgent and its
factory.</p>
+<br><br>
+<p class=code id=dtd>&lt;!ELEMENT <a name="e.scheme">scheme</a> (<a
href="#e.description">description</a>)&gt;</p>
+<p class=code id=dtd>&lt;!ATTLIST scheme</p>
+<p class=code id=dtdAttlist>class&nbsp;&nbsp;CDATA #REQUIRED<p class=code
id=dtdAttlist>name&nbsp;&nbsp;&nbsp;CDATA "Sample Repository Agent"<p
class=code id=dtdAttlist>prefix&nbsp;CDATA #IMPLIED&gt;</p>
+<p></p>
+<ul class=ConfigMarkup id=attlistDesc>
+<li><b>class</b> - The classname of the RepositoryAgentFactory interface, of
course inclusive of the package name.</li>
+<li><b>name</b> - The official name of the scheme. Example; "Maven
Repository"</li>
+<li><b>prefix</b> - The registered (at Avalon) unique prefix for the
Scheme.</li>
+</ul>
+<br><h6 class=CaptionFigColumn id=header>Examples: </h6>[Enter extension
point usage example here.]
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>API Information: </h6>[Enter API
information here.]
+<p></p>
+
+<h6 class=CaptionFigColumn id=header>Supplied Implementation: </h6>[Enter
information about supplied implementation of this extension point.]
+<p></p>
+
+<br>
+<p class=note id=copyright>
+Copyright 2003, Apache Software Foundation, All Rights Reserved.
+<p></p>
+
+</p>
+</BODY>
+</HTML>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/doc/schema.css
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/doc/schema.css
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,66 @@
+H6.CaptionFigColumn#header {
+ font-size:16px;
+ display:inline
+}
+
+P.Note#copyright {
+ font-size: smaller;
+ font-style: normal;
+ color: #336699;
+ display:inline;
+ margin-top: 3.000000pt;
+ margin-bottom: 11.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+}
+
+P.Code#dtd {
+ color: #800000;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 10.000000pt;
+}
+
+P.Code#dtdAttlist {
+ color: #800000;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 20.000000pt;
+}
+
+P.Code#tag {
+ color: #000080;
+ display:inline;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+}
+
+P.Code#cstring {
+ color: #008000;
+ display:inline;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+}
+
+.ConfigMarkup#elementDesc {
+ color: black;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 10.000000pt;
+}
+
+.ConfigMarkup#attlistDesc {
+ color: black;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 32.000000pt;
+}
+

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/html/maintopic.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/html/maintopic.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
+ <title>Main Topic</title>
+</head>
+
+<body>
+<h1>Main Topic</h1>
+Please enter your text here.
+</body>
+</html>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/html/subtopic.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/html/subtopic.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
+ <title>Sub Topic</title>
+</head>
+
+<body>
+<h1>Sub Topic</h1>
+Please enter your text here.
+</body>
+</html>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/html/toc.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/html/toc.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
+ <title>Table of Contents</title>
+</head>
+
+<body>
+<h1>Table of Contents</h1>
+Please enter your text here.
+</body>
+</html>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/icons/sample.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/lib/repository-tools.jar
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/plugin.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/plugin.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin
+ id="org.apache.avalon.ide.eclipse.repository"
+ name="Repository Plug-in"
+ version="1.0.0"
+ provider-name="Apache Software Foundation"
+ class="org.apache.avalon.ide.eclipse.repository.RepositoryPlugin">
+
+ <runtime>
+ <library name="lib/repository-tools.jar"/>
+ </runtime>
+ <requires>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.core.runtime.compatibility"/>
+ <import plugin="org.eclipse.help"/>
+ <import plugin="org.eclipse.help.base"/>
+ <import plugin="org.eclipse.jface"/>
+ <import plugin="org.eclipse.swt"/>
+ <import plugin="org.eclipse.ui.ide"/>
+ <import plugin="org.eclipse.ui.workbench"/>
+ </requires>
+
+
+ <extension-point id="agent" name="Avalon Repository Agent"
schema="schema/agent.exsd"/>
+
+ <extension
+ point="org.eclipse.ui.actionSets">
+ <actionSet
+ label="Repository Action Set"
+ visible="true"
+ id="org.apache.avalon.ide.eclipse.repository.actionSet">
+ <menu
+ label="Repository &amp;Menu"
+ id="repositoryMenu">
+ <separator
+ name="repositoryGroup">
+ </separator>
+ </menu>
+ <action
+ label="&amp;Repository Action"
+ icon="icons/sample.gif"
+
class="org.apache.avalon.ide.eclipse.repository.actions.RepositoryAction"
+ tooltip="To be defined... plugin.xml"
+ menubarPath="repositoryMenu/repositoryGroup"
+ toolbarPath="repositoryGroup"
+
id="org.apache.avalon.ide.eclipse.repository.actions.RepositoryAction">
+ </action>
+ </actionSet>
+ </extension>
+ <extension
+ point="org.eclipse.ui.perspectiveExtensions">
+ <perspectiveExtension
+ targetID="org.eclipse.ui.resourcePerspective">
+ <actionSet
+ id="org.apache.avalon.ide.eclipse.repository.actionSet">
+ </actionSet>
+ </perspectiveExtension>
+ <perspectiveExtension
+ targetID="org.eclipse.ui.resourcePerspective">
+ <newWizardShortcut
+ id="org.eclipse.jdt.ui.wizards.NewProjectCreationWizard">
+ </newWizardShortcut>
+ <viewShortcut
+ id="org.eclipse.jdt.ui.TypeHierarchy">
+ </viewShortcut>
+ <perspectiveShortcut
+ id="org.eclipse.debug.ui.DebugPerspective">
+ </perspectiveShortcut>
+ <actionSet
+ id="org.eclipse.jdt.ui.JavaActionSet">
+ </actionSet>
+ <view
+ relative="org.eclipse.ui.views.ResourceNavigator"
+ id="org.eclipse.jdt.ui.PackageExplorer"
+ relationship="stack">
+ </view>
+ </perspectiveExtension>
+ <perspectiveExtension
+ targetID="org.eclipse.ui.resourcePerspective">
+ <view
+ relative="org.eclipse.ui.views.ResourceNavigator"
+
id="org.apache.avalon.ide.eclipse.repository.views.RepositoryView"
+ relationship="stack">
+ </view>
+ </perspectiveExtension>
+ </extension>
+ <extension
+ point="org.eclipse.help.toc">
+ <toc
+ file="toc.xml">
+ </toc>
+ <toc
+ file="testToc.xml"
+ primary="true">
+ </toc>
+ </extension>
+ <extension
+ point="org.eclipse.ui.popupMenus">
+ <objectContribution
+ objectClass="org.eclipse.core.resources.IFile"
+ nameFilter="*.xconf"
+ id="org.apache.avalon.ide.eclipse.repository.contribution1">
+ <menu
+ label="Assembly"
+ path="additions"
+ id="org.apache.avalon.ide.eclipse.repository.menu1">
+ <separator
+ name="group1">
+ </separator>
+ </menu>
+ <action
+ label="Validate"
+
class="org.apache.avalon.ide.eclipse.repository.actions.ValidateAction"
+
menubarPath="org.apache.avalon.ide.eclipse.repository.menu1/group1"
+ enablesFor="multiple"
+ id="org.apache.avalon.ide.eclipse.repository.newAction">
+ </action>
+ </objectContribution>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ name="Repositories"
+
category="org.apache.avalon.ide.eclipse.repository.preferences.AvalonPreferencePage"
+
class="org.apache.avalon.ide.eclipse.repository.preferences.RepositoryPreferencePage"
+
id="org.apache.avalon.ide.eclipse.repository.preferences.RepositoryPreferencePage">
+ </page>
+ <page
+ name="Avalon"
+
class="org.apache.avalon.ide.eclipse.repository.preferences.AvalonPreferencePage"
+
id="org.apache.avalon.ide.eclipse.repository.preferences.AvalonPreferencePage">
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.propertyPages">
+ <page
+ objectClass="org.eclipse.core.resources.IFile"
+ name="Repository Page"
+
class="org.apache.avalon.ide.eclipse.repository.properties.RepositoryPropertyPage"
+ nameFilter="*.repository"
+
id="org.apache.avalon.ide.eclipse.repository.properties.RepositoryPropertyPage">
+ </page>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views">
+ <category
+ name="Avalon"
+ id="org.apache.avalon.ide.eclipse">
+ </category>
+ <view
+ name="Repository View"
+ icon="icons/sample.gif"
+ category="org.apache.avalon.ide.eclipse"
+
class="org.apache.avalon.ide.eclipse.repository.views.RepositoryView"
+
id="org.apache.avalon.ide.eclipse.repository.views.RepositoryView">
+ </view>
+ </extension>
+
+</plugin>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/schema/agent.exsd
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/schema/agent.exsd
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,130 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.apache.avalon.ide.eclipse.repository">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.apache.avalon.ide.eclipse.repository"
id="agent" name="Avalon Repository Agent"/>
+ </appInfo>
+ <documentation>
+ The Repository Agent extension is all about registration of
RepositoryAgentFactory implementations, that knows how to contact
repositories, on-line and off-line.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <documentation>
+ Definition of the Repository Agent extension point.
+ </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element ref="description"/>
+ <element ref="scheme"/>
+ </sequence>
+ <attribute name="name" type="string" use="default" value="Sample
Repository Agent">
+ <annotation>
+ <documentation>
+ The name of the Repository Agent plug-in. This name will
be used on-screen.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="description" type="string">
+ <annotation>
+ <documentation>
+ A longer description of the capabilities of the RepositoryAgent
and its factory.
+ </documentation>
+ </annotation>
+ </element>
+
+ <element name="scheme">
+ <complexType>
+ <sequence>
+ <element ref="description"/>
+ </sequence>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ The classname of the RepositoryAgentFactory interface, of
course inclusive of the package name.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="default" value="Sample
Repository Agent">
+ <annotation>
+ <documentation>
+ The official name of the scheme. Example; &quot;Maven
Repository&quot;
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="prefix" type="string">
+ <annotation>
+ <documentation>
+ The registered (at Avalon) unique prefix for the Scheme.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ The first release.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension
point.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright 2003, Apache Software Foundation, All Rights Reserved.
+ </documentation>
+ </annotation>
+
+</schema>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/PluginResources.properties
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/PluginResources.properties
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,2 @@
+
+USE_PREFERENCES_INSTEAD=Please go to the Preferences... in the Window menu
to edit the repositories.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/RepositoryPlugin.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/RepositoryPlugin.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,133 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The end-user documentation included with the redistribution, if any,
+ * must include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if and
+ * wherever such third-party acknowledgments normally appear.
+ * 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and "Apache
+ * Software Foundation" must not be used to endorse or promote products
derived
+ * from this software without prior written permission. For written
permission,
+ * please contact apache AT apache.org.
+ * 5. Products derived from this software may not be called "Apache", nor
may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository;
+
+import java.util.HashMap;
+
+import org.apache.avalon.ide.repository.RepositoryAgentFactory;
+import org.apache.avalon.ide.repository.RepositoryTypeRegistry;
+import
org.apache.avalon.ide.repository.tools.common.SimpleRepositoryRegistry;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IPluginDescriptor;
+
+import org.eclipse.core.runtime.IPluginRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * The main plugin class to be used in the desktop.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class RepositoryPlugin extends AbstractUIPlugin
+{
+ //The shared instance.
+ private static RepositoryPlugin m_Plugin;
+
+ private ResourceManager m_ResourceManager;
+ private SimpleRepositoryRegistry m_RepositoryTypeRegistry;
+
+ private HashMap m_PluginHandlers;
+
+ /**
+ * The constructor.
+ */
+ public RepositoryPlugin(IPluginDescriptor descriptor)
+ {
+ super(descriptor);
+ m_Plugin = this;
+ m_ResourceManager = new ResourceManager();
+ m_RepositoryTypeRegistry = new SimpleRepositoryRegistry();
+ }
+
+ public RepositoryTypeRegistry getRepositoryTypeRegistry()
+ {
+ return m_RepositoryTypeRegistry;
+ }
+
+ /**
+ * Returns the shared instance.
+ */
+ public static RepositoryPlugin getDefault()
+ {
+ return m_Plugin;
+ }
+
+ /**
+ * Returns the workspace instance.
+ */
+ public static IWorkspace getWorkspace()
+ {
+ return ResourcesPlugin.getWorkspace();
+ }
+
+ public static ResourceManager getResourceManager()
+ {
+ return m_Plugin.m_ResourceManager;
+ }
+
+ private void instantiateRepositoryAgentFactories()
+ throws CoreException
+ {
+ IPluginRegistry registry = Platform.getPluginRegistry();
+ IExtensionPoint point =
registry.getExtensionPoint("org.apache.avalon.ide.eclipse.repository.agent");
+ IExtension[] extensions = point.getExtensions();
+ for (int i = 0; i < extensions.length; i++)
+ {
+ IConfigurationElement[] elements =
extensions[i].getConfigurationElements();
+ for (int j = 0; j < elements.length; j++)
+ {
+ RepositoryAgentFactory object = (RepositoryAgentFactory)
elements[j].createExecutableExtension("extension");
+ System.out.println("Found an executable extension: " +
object);
+ }
+ }
+ }
+}
+

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/ResourceManager.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/ResourceManager.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,101 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.eclipse.repository;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class ResourceManager
+{
+ private ResourceBundle m_Bundle;
+
+ public ResourceManager()
+ {
+ try
+ {
+ m_Bundle = ResourceBundle.getBundle(
"org.apache.avalon.ide.eclipse.PluginResources"); //$NON-NLS-1$
+ } catch (MissingResourceException x)
+ {
+ m_Bundle = null;
+ }
+
+ }
+
+ /**
+ * Returns the string from the plugin's resource bundle,
+ * or 'key' if not found.
+ */
+ public String getStringResource( String key )
+ {
+ if( m_Bundle == null )
+ return "No Resources found!";
+
+ String value = null;
+ try
+ {
+ value = m_Bundle.getString( key );
+ } catch( MissingResourceException e )
+ {
+ value = key;
+ }
+ return value;
+ }
+
+ /**
+ * Returns the plugin's resource bundle,
+ */
+ public ResourceBundle getResourceBundle()
+ {
+ return m_Bundle;
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/actions/RepositoryAction.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/actions/RepositoryAction.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,121 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.eclipse.repository.actions;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.eclipse.jface.dialogs.MessageDialog;
+
+/**
+ * Our sample action implements workbench action delegate.
+ * The action proxy will be created by the workbench and
+ * shown in the UI. When the user tries to use the action,
+ * this delegate will be created and execution will be
+ * delegated to it.
+ * @see IWorkbenchWindowActionDelegate
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class RepositoryAction implements IWorkbenchWindowActionDelegate
+{
+ private IWorkbenchWindow m_Window;
+ /**
+ * The constructor.
+ */
+ public RepositoryAction()
+ {
+ }
+
+ /**
+ * The action has been activated. The argument of the
+ * method represents the 'real' action sitting
+ * in the workbench UI.
+ * @see IWorkbenchWindowActionDelegate#run
+ */
+ public void run(IAction action)
+ {
+ MessageDialog.openInformation(
+ m_Window.getShell(),
+ "Assembler Plug-in",
+ "Hello, Eclipse world");
+ }
+
+ /**
+ * Selection in the workbench has been changed. We
+ * can change the state of the 'real' action here
+ * if we want, but this can only happen after
+ * the delegate has been created.
+ * @see IWorkbenchWindowActionDelegate#selectionChanged
+ */
+ public void selectionChanged(IAction action, ISelection selection)
+ {
+ }
+
+ /**
+ * We can use this method to dispose of any system
+ * resources we previously allocated.
+ * @see IWorkbenchWindowActionDelegate#dispose
+ */
+ public void dispose()
+ {
+ }
+
+ /**
+ * We will cache window object in order to
+ * be able to provide parent shell for the message dialog.
+ * @see IWorkbenchWindowActionDelegate#init
+ */
+ public void init(IWorkbenchWindow window)
+ {
+ this.m_Window = window;
+ }
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/actions/ValidateAction.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/actions/ValidateAction.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,96 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.eclipse.repository.actions;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IObjectActionDelegate;
+import org.eclipse.ui.IWorkbenchPart;
+
+/**
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class ValidateAction implements IObjectActionDelegate
+{
+
+ /**
+ * Constructor for Action1.
+ */
+ public ValidateAction()
+ {
+ super();
+ }
+
+ /**
+ * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
+ */
+ public void setActivePart(IAction action, IWorkbenchPart targetPart)
+ {
+ }
+
+ /**
+ * @see IActionDelegate#run(IAction)
+ */
+ public void run(IAction action)
+ {
+ Shell shell = new Shell();
+ MessageDialog.openInformation(shell, "Assembler Plug-in", "Validate
was executed.");
+ }
+
+ /**
+ * @see IActionDelegate#selectionChanged(IAction, ISelection)
+ */
+ public void selectionChanged(IAction action, ISelection selection)
+ {
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandler.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandler.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,55 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The end-user documentation included with the redistribution, if any,
+ * must include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if and
+ * wherever such third-party acknowledgments normally appear.
+ * 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and "Apache
+ * Software Foundation" must not be used to endorse or promote products
derived
+ * from this software without prior written permission. For written
permission,
+ * please contact apache AT apache.org.
+ * 5. Products derived from this software may not be called "Apache", nor
may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository.plugins;
+
+import org.eclipse.core.runtime.IPluginDescriptor;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public interface PluginHandler
+{
+ void handle( IPluginDescriptor descriptor ) throws
PluginHandlerException;
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerException.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerException.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,70 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The end-user documentation included with the redistribution, if any,
+ * must include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if and
+ * wherever such third-party acknowledgments normally appear.
+ * 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and "Apache
+ * Software Foundation" must not be used to endorse or promote products
derived
+ * from this software without prior written permission. For written
permission,
+ * please contact apache AT apache.org.
+ * 5. Products derived from this software may not be called "Apache", nor
may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository.plugins;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class PluginHandlerException extends Exception
+{
+
+ /**
+ * @param pMessage
+ */
+ public PluginHandlerException(String pMessage)
+ {
+ super(pMessage);
+ }
+
+ /**
+ * @param pMessage
+ * @param pCause
+ */
+ public PluginHandlerException(String pMessage, Throwable pCause)
+ {
+ super(pMessage, pCause);
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerInstalled.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerInstalled.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,115 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met: 1.
+ * Redistributions of source code must retain the above copyright notice,
this
+ * list of conditions and the following disclaimer. 2. Redistributions in
+ * binary form must reproduce the above copyright notice, this list of
+ * conditions and the following disclaimer in the documentation and/or other
+ * materials provided with the distribution. 3. The end-user documentation
+ * included with the redistribution, if any, must include the following
+ * acknowledgment: "This product includes software developed by the Apache
+ * Software Foundation (http://www.apache.org/)." Alternately, this
+ * acknowledgment may appear in the software itself, if and wherever such
+ * third-party acknowledgments normally appear. 4. The names "Jakarta",
"Apache
+ * Avalon", "Avalon Framework" and "Apache Software Foundation" must not be
+ * used to endorse or promote products derived from this software without
prior
+ * written permission. For written permission, please contact
+ * apache AT apache.org. 5. Products derived from this software may not be
called
+ * "Apache", nor may "Apache" appear in their name, without prior written
+ * permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository.plugins;
+
+import org.apache.avalon.ide.repository.InvalidSchemeException;
+import org.apache.avalon.ide.repository.RepositoryAgentFactory;
+import org.apache.avalon.ide.repository.RepositorySchemeDescriptor;
+import org.apache.avalon.ide.repository.RepositoryTypeRegistry;
+import org.apache.avalon.ide.repository.tools.common.GenericSchemeDescriptor;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IPluginDescriptor;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class PluginHandlerInstalled implements PluginHandler
+{
+ private RepositoryTypeRegistry m_Registry;
+
+ public PluginHandlerInstalled(RepositoryTypeRegistry registry)
+ {
+ super();
+ m_Registry = registry;
+ }
+
+ /**
+ * Handle the IPluginEvent.INSTALLED.
+ *
+ * @see
org.apache.avalon.ide.eclipse.repository.PluginHandler#handle(org.eclipse.core.runtime.IPluginDescriptor)
+ */
+ public void handle(IPluginDescriptor descriptor) throws
PluginHandlerException
+ {
+ String prefix = null;
+ try
+ {
+ IExtension[] extensions = descriptor.getExtensions();
+ for (int i = 0; i < extensions.length; i++)
+ {
+ IConfigurationElement[] elements =
extensions[i].getConfigurationElements();
+ for (int j = 0; j < elements.length; j++)
+ {
+ if ("scheme".equals(elements[j].getName()))
+ {
+ RepositoryAgentFactory factory =
+ (RepositoryAgentFactory)
elements[j].createExecutableExtension("class");
+ prefix = elements[j].getAttribute("prefix");
+ String name = elements[j].getAttribute("name");
+ String description = null;
+ IConfigurationElement[] desc =
elements[j].getChildren("description");
+ if (desc.length > 0)
+ description = desc[0].getValue();
+ RepositorySchemeDescriptor rsd =
+ new GenericSchemeDescriptor(prefix, name,
description);
+
+ m_Registry.registerRepositoryAgentFactory(rsd,
factory);
+ }
+ }
+ }
+ } catch (InvalidSchemeException e)
+ {
+ throw new PluginHandlerException(
+ "Scheme '" + prefix + "' contains invalid characters.",
+ e);
+ } catch (CoreException e)
+ {
+ throw new PluginHandlerException(
+ "Unable to instantiate '" + descriptor.getUniqueIdentifier()
+ "'",
+ e);
+ }
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerResolved.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerResolved.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,74 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The end-user documentation included with the redistribution, if any,
+ * must include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if and
+ * wherever such third-party acknowledgments normally appear.
+ * 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and "Apache
+ * Software Foundation" must not be used to endorse or promote products
derived
+ * from this software without prior written permission. For written
permission,
+ * please contact apache AT apache.org.
+ * 5. Products derived from this software may not be called "Apache", nor
may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository.plugins;
+
+import org.apache.avalon.ide.repository.RepositoryTypeRegistry;
+import org.eclipse.core.runtime.IPluginDescriptor;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class PluginHandlerResolved implements PluginHandler
+{
+
+ /**
+ *
+ */
+ public PluginHandlerResolved(RepositoryTypeRegistry registry)
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.ide.eclipse.repository.PluginHandler#handle(org.eclipse.core.runtime.IPluginDescriptor)
+ */
+ public void handle(IPluginDescriptor pDescriptor) throws
PluginHandlerException
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerStarted.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerStarted.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,74 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The end-user documentation included with the redistribution, if any,
+ * must include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if and
+ * wherever such third-party acknowledgments normally appear.
+ * 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and "Apache
+ * Software Foundation" must not be used to endorse or promote products
derived
+ * from this software without prior written permission. For written
permission,
+ * please contact apache AT apache.org.
+ * 5. Products derived from this software may not be called "Apache", nor
may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository.plugins;
+
+import org.apache.avalon.ide.repository.RepositoryTypeRegistry;
+import org.eclipse.core.runtime.IPluginDescriptor;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class PluginHandlerStarted implements PluginHandler
+{
+
+ /**
+ *
+ */
+ public PluginHandlerStarted(RepositoryTypeRegistry registry)
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.ide.eclipse.repository.PluginHandler#handle(org.eclipse.core.runtime.IPluginDescriptor)
+ */
+ public void handle(IPluginDescriptor pDescriptor) throws
PluginHandlerException
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerStopped.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerStopped.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,74 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The end-user documentation included with the redistribution, if any,
+ * must include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if and
+ * wherever such third-party acknowledgments normally appear.
+ * 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and "Apache
+ * Software Foundation" must not be used to endorse or promote products
derived
+ * from this software without prior written permission. For written
permission,
+ * please contact apache AT apache.org.
+ * 5. Products derived from this software may not be called "Apache", nor
may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository.plugins;
+
+import org.apache.avalon.ide.repository.RepositoryTypeRegistry;
+import org.eclipse.core.runtime.IPluginDescriptor;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class PluginHandlerStopped implements PluginHandler
+{
+
+ /**
+ *
+ */
+ public PluginHandlerStopped(RepositoryTypeRegistry registry)
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.ide.eclipse.repository.PluginHandler#handle(org.eclipse.core.runtime.IPluginDescriptor)
+ */
+ public void handle(IPluginDescriptor pDescriptor) throws
PluginHandlerException
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerUninstalled.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerUninstalled.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,74 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The end-user documentation included with the redistribution, if any,
+ * must include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if and
+ * wherever such third-party acknowledgments normally appear.
+ * 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and "Apache
+ * Software Foundation" must not be used to endorse or promote products
derived
+ * from this software without prior written permission. For written
permission,
+ * please contact apache AT apache.org.
+ * 5. Products derived from this software may not be called "Apache", nor
may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository.plugins;
+
+import org.apache.avalon.ide.repository.RepositoryTypeRegistry;
+import org.eclipse.core.runtime.IPluginDescriptor;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class PluginHandlerUninstalled implements PluginHandler
+{
+
+ /**
+ *
+ */
+ public PluginHandlerUninstalled(RepositoryTypeRegistry registry)
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.ide.eclipse.repository.PluginHandler#handle(org.eclipse.core.runtime.IPluginDescriptor)
+ */
+ public void handle(IPluginDescriptor pDescriptor) throws
PluginHandlerException
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerUnresolved.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerUnresolved.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,74 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The end-user documentation included with the redistribution, if any,
+ * must include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if and
+ * wherever such third-party acknowledgments normally appear.
+ * 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and "Apache
+ * Software Foundation" must not be used to endorse or promote products
derived
+ * from this software without prior written permission. For written
permission,
+ * please contact apache AT apache.org.
+ * 5. Products derived from this software may not be called "Apache", nor
may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository.plugins;
+
+import org.apache.avalon.ide.repository.RepositoryTypeRegistry;
+import org.eclipse.core.runtime.IPluginDescriptor;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class PluginHandlerUnresolved implements PluginHandler
+{
+
+ /**
+ *
+ */
+ public PluginHandlerUnresolved(RepositoryTypeRegistry registry)
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.ide.eclipse.repository.PluginHandler#handle(org.eclipse.core.runtime.IPluginDescriptor)
+ */
+ public void handle(IPluginDescriptor pDescriptor) throws
PluginHandlerException
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerUpdated.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins/PluginHandlerUpdated.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,74 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The end-user documentation included with the redistribution, if any,
+ * must include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if and
+ * wherever such third-party acknowledgments normally appear.
+ * 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and "Apache
+ * Software Foundation" must not be used to endorse or promote products
derived
+ * from this software without prior written permission. For written
permission,
+ * please contact apache AT apache.org.
+ * 5. Products derived from this software may not be called "Apache", nor
may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository.plugins;
+
+import org.apache.avalon.ide.repository.RepositoryTypeRegistry;
+import org.eclipse.core.runtime.IPluginDescriptor;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class PluginHandlerUpdated implements PluginHandler
+{
+
+ /**
+ *
+ */
+ public PluginHandlerUpdated(RepositoryTypeRegistry registry)
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.ide.eclipse.repository.PluginHandler#handle(org.eclipse.core.runtime.IPluginDescriptor)
+ */
+ public void handle(IPluginDescriptor pDescriptor) throws
PluginHandlerException
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/AddRepositoryDialog.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/AddRepositoryDialog.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,161 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met: 1.
+ * Redistributions of source code must retain the above copyright notice,
this
+ * list of conditions and the following disclaimer. 2. Redistributions in
+ * binary form must reproduce the above copyright notice, this list of
+ * conditions and the following disclaimer in the documentation and/or other
+ * materials provided with the distribution. 3. The end-user documentation
+ * included with the redistribution, if any, must include the following
+ * acknowledgment: "This product includes software developed by the Apache
+ * Software Foundation (http://www.apache.org/)." Alternately, this
+ * acknowledgment may appear in the software itself, if and wherever such
+ * third-party acknowledgments normally appear. 4. The names "Jakarta",
"Apache
+ * Avalon", "Avalon Framework" and "Apache Software Foundation" must not be
+ * used to endorse or promote products derived from this software without
prior
+ * written permission. For written permission, please contact
+ * apache AT apache.org. 5. Products derived from this software may not be
called
+ * "Apache", nor may "Apache" appear in their name, without prior written
+ * permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository.preferences;
+
+import org.apache.avalon.ide.eclipse.repository.RepositoryPlugin;
+import org.apache.avalon.ide.repository.RepositoryTypeRegistry;
+import org.apache.avalon.ide.repository.RepositorySchemeDescriptor;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class AddRepositoryDialog extends Dialog
+ implements SelectionListener
+{
+ private String m_TextValue;
+ private RepositorySchemeDescriptor m_Selected;
+
+ private IInputValidator m_Validator;
+
+ public AddRepositoryDialog(Shell parent, IInputValidator validator)
+ {
+ super(parent);
+ m_Validator = validator;
+ }
+
+ protected Control createDialogArea(Composite parent)
+ {
+ Composite panel = (Composite) super.createDialogArea(parent);
+ GridLayout layout = new GridLayout();
+ panel.setLayout(layout);
+
+ Label label = new Label(panel, SWT.WRAP);
+ label.setText("Location:");
+ GridData data =
+ new GridData(
+ GridData.GRAB_HORIZONTAL
+ | GridData.HORIZONTAL_ALIGN_FILL
+ | GridData.VERTICAL_ALIGN_END);
+ data.widthHint =
convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
+ label.setLayoutData(data);
+
+ Text textField = new Text(panel, SWT.SINGLE | SWT.BORDER);
+ textField.setText("");
+ textField.setLayoutData(
+ new GridData(GridData.GRAB_HORIZONTAL |
GridData.HORIZONTAL_ALIGN_FILL));
+ textField.addModifyListener( new ModifyListener()
+ {
+ public void modifyText( ModifyEvent event )
+ {
+ m_TextValue = ((Text) event.getSource()).getText();
+ }
+ } );
+
+ Group group = new Group(panel, SWT.SHADOW_ETCHED_IN);
+ layout = new GridLayout();
+ group.setLayout(layout);
+
+ group.setText("Registered Types");
+ data =
+ new GridData(
+ GridData.HORIZONTAL_ALIGN_FILL
+ | GridData.GRAB_VERTICAL
+ | GridData.VERTICAL_ALIGN_BEGINNING);
+ group.setLayoutData(data);
+
+ RepositoryTypeRegistry reg =
RepositoryPlugin.getDefault().getRepositoryTypeRegistry();
+ RepositorySchemeDescriptor[] urns = reg.getRegisteredURNs();
+ if( urns.length > 0 )
+ {
+ m_Selected = urns[0];
+ for (int i = 0; i < urns.length; i++)
+ {
+ Button b1 = new Button(group, SWT.RADIO);
+ GridData gd = new GridData();
+ gd.grabExcessHorizontalSpace = true;
+ gd.grabExcessVerticalSpace = true;
+ b1.setLayoutData(gd);
+ b1.setText(urns[i].getName());
+ b1.setData(urns[i]);
+ b1.setToolTipText(urns[i].getDescription());
+ b1.addSelectionListener( this );
+ if (i == 0)
+ b1.setSelection(true);
+ }
+ }
+ return panel;
+ }
+
+ public void widgetDefaultSelected( SelectionEvent event )
+ {
+ System.out.println( "widgetDefaultSelected" );
+ }
+
+ public void widgetSelected( SelectionEvent event )
+ {
+ m_Selected = (RepositorySchemeDescriptor) ((Button)
event.getSource()).getData();
+ }
+
+ public String getValue()
+ {
+ return "urn:" + m_Selected.getScheme() + ":" + m_TextValue;
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/AvalonPreferencePage.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/AvalonPreferencePage.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,104 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met: 1.
+ * Redistributions of source code must retain the above copyright notice,
this
+ * list of conditions and the following disclaimer. 2. Redistributions in
+ * binary form must reproduce the above copyright notice, this list of
+ * conditions and the following disclaimer in the documentation and/or other
+ * materials provided with the distribution. 3. The end-user documentation
+ * included with the redistribution, if any, must include the following
+ * acknowledgment: "This product includes software developed by the Apache
+ * Software Foundation (http://www.apache.org/)." Alternately, this
+ * acknowledgment may appear in the software itself, if and wherever such
+ * third-party acknowledgments normally appear. 4. The names "Jakarta",
"Apache
+ * Avalon", "Avalon Framework" and "Apache Software Foundation" must not be
+ * used to endorse or promote products derived from this software without
prior
+ * written permission. For written permission, please contact
+ * apache AT apache.org. 5. Products derived from this software may not be
called
+ * "Apache", nor may "Apache" appear in their name, without prior written
+ * permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository.preferences;
+
+import org.apache.avalon.ide.eclipse.repository.RepositoryPlugin;
+import org.eclipse.jface.preference.DirectoryFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.RadioGroupFieldEditor;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * This class represents a preference page that is contributed to the
+ * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>,
+ * we can use the field support built into JFace that allows us to create a
+ * page that is small and knows how to save, restore and apply itself.
+ * <p>
+ * This page is used to modify preferences only. They are stored in the
+ * preference store that belongs to the main plug-in class. That way,
+ * preferences can be accessed directly via the preference store.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+
+public class AvalonPreferencePage
+ extends FieldEditorPreferencePage
+ implements IWorkbenchPreferencePage
+{
+ public static final String P_PREFERRED_CONTAINER = "preferredContainer";
+ public static final String P_CONTAINER_HOME = "containerHome";
+
+ public AvalonPreferencePage()
+ {
+ super(GRID);
+
setPreferenceStore(RepositoryPlugin.getDefault().getPreferenceStore());
+ setDescription("General Avalon preferences.\n");
+ }
+
+ /**
+ * Creates the field editors. Field editors are abstractions of the
common
+ * GUI blocks needed to manipulate various types of preferences. Each
field
+ * editor knows how to save and restore itself.
+ */
+
+ public void createFieldEditors()
+ {
+ RadioGroupFieldEditor editor =
+ new RadioGroupFieldEditor(
+ P_PREFERRED_CONTAINER,
+ "Preferred Container",
+ 1,
+ new String[][] { { "Phoenix", "phoenix" }, {
+ "Fortress", "fortress" }, {
+ "Merlin", "merlin" }
+ }, getFieldEditorParent());
+ addField(editor);
+ addField(
+ new DirectoryFieldEditor(P_CONTAINER_HOME, "Container Home",
getFieldEditorParent()));
+ }
+
+ public void init(IWorkbench workbench)
+ {}
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/RepositoryListEditor.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/RepositoryListEditor.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,190 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The end-user documentation included with the redistribution, if any,
+ * must include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if and
+ * wherever such third-party acknowledgments normally appear.
+ * 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and "Apache
+ * Software Foundation" must not be used to endorse or promote products
derived
+ * from this software without prior written permission. For written
permission,
+ * please contact apache AT apache.org.
+ * 5. Products derived from this software may not be called "Apache", nor
may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository.preferences;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.StringTokenizer;
+
+import org.eclipse.jface.dialogs.IInputValidator;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.preference.ListEditor;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class RepositoryListEditor extends ListEditor
+{
+ /**
+ * @param name
+ * @param labelText
+ * @param parent
+ */
+ public RepositoryListEditor(String name, String labelText, Composite
parent)
+ {
+ super(name, labelText, parent);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
org.eclipse.jface.preference.ListEditor#createList(java.lang.String[])
+ */
+ protected String createList(String[] items)
+ {
+ StringBuffer b = new StringBuffer();
+ for (int i = 0; i < items.length; i++)
+ {
+ replaceAndAppend(b, items[i]);
+ b.append(",");
+ }
+ return b.toString();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.preference.ListEditor#getNewInputObject()
+ */
+ protected String getNewInputObject()
+ {
+ IInputValidator validator = new URLValidator();
+
+ AddRepositoryDialog dialog = new AddRepositoryDialog(getShell(),
validator);
+ dialog.setBlockOnOpen(true);
+ int code = dialog.open();
+ if (code == InputDialog.OK)
+ {
+ String input = dialog.getValue();
+ if (!input.startsWith("urn:"))
+ input = "urn:simple:" + input;
+ return input;
+ } else
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
org.eclipse.jface.preference.ListEditor#parseString(java.lang.String)
+ */
+ protected String[] parseString(String stringList)
+ {
+ ArrayList result = new ArrayList();
+ StringTokenizer st = new StringTokenizer(stringList, ",", false);
+ while (st.hasMoreTokens())
+ {
+ String element = st.nextToken();
+ result.add(parse(element));
+ }
+ String[] ret = new String[result.size()];
+ Iterator list = result.iterator();
+ for (int i = 0; list.hasNext(); i++)
+ ret[i] = (String) list.next();
+ return ret;
+ }
+
+ private void replaceAndAppend(StringBuffer out, String text)
+ {
+ for (int i = 0; i < text.length(); i++)
+ {
+ char ch = text.charAt(i);
+ if (ch == ',')
+ {
+ out.append("&comma;");
+ } else if (ch == '&')
+ {
+ out.append("&amp;");
+ } else if (ch < 32)
+ {
+ out.append("&#");
+ out.append((int) ch);
+ out.append(';');
+ } else
+ out.append(ch);
+ }
+ }
+
+ private String parse(String raw)
+ {
+ StringBuffer buf = new StringBuffer();
+ int pos = 0;
+ while (pos < raw.length())
+ {
+ char ch = raw.charAt(pos++);
+ if (ch == '&')
+ {
+ int colonPos = raw.indexOf(';', pos);
+ if (colonPos > 0)
+ {
+ String word = raw.substring(pos + 1, colonPos);
+ pos = colonPos + 1;
+ decode(buf, word);
+ } else
+ buf.append(ch);
+ } else
+ buf.append(ch);
+ }
+ return buf.toString();
+ }
+
+ private void decode(StringBuffer out, String encoded)
+ {
+ if (encoded.charAt(0) == '#')
+ {
+ String n = encoded.substring(1);
+ int value = Integer.parseInt(n);
+ char ch = (char) value;
+ out.append(ch);
+ } else if (encoded.equals("comma"))
+ out.append(",");
+ else if (encoded.equals("amp"))
+ out.append("&");
+ else
+ out.append(encoded);
+
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/RepositoryPreferencePage.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/RepositoryPreferencePage.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,103 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.eclipse.repository.preferences;
+
+import org.apache.avalon.ide.eclipse.repository.RepositoryPlugin;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * This class represents a preference page that
+ * is contributed to the Preferences dialog. By
+ * subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows
+ * us to create a page that is small and knows how to
+ * save, restore and apply itself.
+ * <p>
+ * This page is used to modify preferences only. They
+ * are stored in the preference store that belongs to
+ * the main plug-in class. That way, preferences can
+ * be accessed directly via the preference store.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+
+public class RepositoryPreferencePage
+ extends FieldEditorPreferencePage
+ implements IWorkbenchPreferencePage
+{
+ public static final String P_REPOSITORIES = "repository";
+
+
+ public RepositoryPreferencePage()
+ {
+ super(GRID);
+
setPreferenceStore(RepositoryPlugin.getDefault().getPreferenceStore());
+ setDescription("Repository Preferences");
+ }
+
+ /**
+ * Creates the field editors. Field editors are abstractions of
+ * the common GUI blocks needed to manipulate various types
+ * of preferences. Each field editor knows how to save and
+ * restore itself.
+ */
+
+ public void createFieldEditors()
+ {
+ addField( new RepositoryListEditor( P_REPOSITORIES,
"&Repositories:", getFieldEditorParent() ));
+
+ }
+
+ public void init(IWorkbench workbench)
+ {
+ }
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/URLValidator.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences/URLValidator.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,87 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.eclipse.repository.preferences;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.jface.dialogs.IInputValidator;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class URLValidator implements IInputValidator
+{
+ // TODO What are the legal characters in a URL???
+ // The method below is perhaps to cruel and could be optimized.
+
+ public URLValidator()
+ {
+ super();
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.jface.dialogs.IInputValidator#isValid(java.lang.String)
+ */
+ public String isValid(String newText)
+ {
+ if( newText.length() < 2 )
+ return null;
+ try
+ {
+ new URL( newText ); // Throws exception is not valid...
+ return null;
+ } catch( MalformedURLException e )
+ {
+ return "Invalid URL.";
+ }
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/properties/RepositoryPropertyPage.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/properties/RepositoryPropertyPage.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,191 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.eclipse.repository.properties;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.QualifiedName;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.PropertyPage;
+
+/**
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class RepositoryPropertyPage extends PropertyPage
+{
+
+ private static final String PATH_TITLE = "Niclas Path:";
+ private static final String OWNER_TITLE = "&Owner:";
+ private static final String OWNER_PROPERTY = "OWNER";
+ private static final String DEFAULT_OWNER = "John Doe";
+
+ private static final int TEXT_FIELD_WIDTH = 50;
+
+ private Text m_OwnerText;
+
+ /**
+ * Constructor for SamplePropertyPage.
+ */
+ public RepositoryPropertyPage()
+ {
+ super();
+ }
+
+ private void addFirstSection(Composite parent)
+ {
+ Composite composite = createDefaultComposite(parent);
+
+ //Label for path field
+ Label pathLabel = new Label(composite, SWT.NONE);
+ pathLabel.setText(PATH_TITLE);
+
+ // Path text field
+ Text pathValueText = new Text(composite, SWT.WRAP | SWT.READ_ONLY);
+ pathValueText.setText(((IResource)
getElement()).getFullPath().toString());
+ }
+
+ private void addSeparator(Composite parent)
+ {
+ Label separator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
+ GridData gridData = new GridData();
+ gridData.horizontalAlignment = GridData.FILL;
+ gridData.grabExcessHorizontalSpace = true;
+ separator.setLayoutData(gridData);
+ }
+
+ private void addSecondSection(Composite parent)
+ {
+ Composite composite = createDefaultComposite(parent);
+
+ // Label for owner field
+ Label ownerLabel = new Label(composite, SWT.NONE);
+ ownerLabel.setText(OWNER_TITLE);
+
+ // Owner text field
+ m_OwnerText = new Text(composite, SWT.SINGLE | SWT.BORDER);
+ GridData gd = new GridData();
+ gd.widthHint = convertWidthInCharsToPixels(TEXT_FIELD_WIDTH);
+ m_OwnerText.setLayoutData(gd);
+
+ // Populate owner text field
+ try
+ {
+ String owner =
+ ((IResource) getElement()).getPersistentProperty(
+ new QualifiedName("", OWNER_PROPERTY));
+ m_OwnerText.setText((owner != null) ? owner : DEFAULT_OWNER);
+ } catch (CoreException e)
+ {
+ m_OwnerText.setText(DEFAULT_OWNER);
+ }
+ }
+
+ /**
+ * @see PreferencePage#createContents(Composite)
+ */
+ protected Control createContents(Composite parent)
+ {
+ Composite composite = new Composite(parent, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ composite.setLayout(layout);
+ GridData data = new GridData(GridData.FILL);
+ data.grabExcessHorizontalSpace = true;
+ composite.setLayoutData(data);
+
+ addFirstSection(composite);
+ addSeparator(composite);
+ addSecondSection(composite);
+ return composite;
+ }
+
+ private Composite createDefaultComposite(Composite parent)
+ {
+ Composite composite = new Composite(parent, SWT.NULL);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 2;
+ composite.setLayout(layout);
+
+ GridData data = new GridData();
+ data.verticalAlignment = GridData.FILL;
+ data.horizontalAlignment = GridData.FILL;
+ composite.setLayoutData(data);
+
+ return composite;
+ }
+
+ protected void performDefaults()
+ {
+ // Populate the owner text field with the default value
+ m_OwnerText.setText(DEFAULT_OWNER);
+ }
+
+ public boolean performOk()
+ {
+ // store the value in the owner text field
+ try
+ {
+ ((IResource) getElement()).setPersistentProperty(
+ new QualifiedName("", OWNER_PROPERTY),
+ m_OwnerText.getText());
+ } catch (CoreException e)
+ {
+ return false;
+ }
+ return true;
+ }
+
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/NameSorter.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/NameSorter.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,71 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.eclipse.repository.views;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+
+/** A sorter for the Repository View.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+class NameSorter extends ViewerSorter
+{
+ /* (non-Javadoc)
+ * @see
org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer,
java.lang.Object, java.lang.Object)
+ */
+ public int compare(Viewer viewer, Object e1, Object e2)
+ {
+ // TODO Sort local repos first, and then by protocol.
+
+ return super.compare(viewer, e1, e2);
+ }
+
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/ParentNode.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/ParentNode.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,126 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.eclipse.repository.views;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.apache.avalon.ide.repository.RepositoryAgent;
+import org.apache.avalon.ide.repository.ResourceInfo;
+
+
+/** A container node in the RepositoryView.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+class ParentNode extends ViewNode
+{
+ private final RepositoryView m_View;
+ private ArrayList m_Children;
+
+ public ParentNode(RepositoryView pView, RepositoryAgent agent,
ResourceInfo info)
+ {
+ super( pView, agent, info);
+ this.m_View = pView;
+ m_Children = new ArrayList();
+ }
+
+ public void addChild(ViewNode child)
+ {
+ m_Children.add(child);
+ child.setParent(this);
+ }
+ public void removeChild(ViewNode child)
+ {
+ m_Children.remove(child);
+ child.setParent(null);
+ }
+ public ViewNode[] getChildren()
+ {
+ return (ViewNode[]) m_Children.toArray(new
ViewNode[m_Children.size()]);
+ }
+ public boolean hasChildren()
+ {
+ return m_Children.size() > 0;
+ }
+
+ public ViewNode findObjectByName(String name)
+ {
+ Iterator list = m_Children.iterator();
+ while (list.hasNext())
+ {
+ ViewNode obj = (ViewNode) list.next();
+ if (obj.getResourceInfo().getName().equals(name))
+ return obj;
+ }
+ return null;
+ }
+
+ public ViewNode findObjectById(String id)
+ {
+ if( id.endsWith( "/") && id.length() > 1 )
+ id = id.substring(0, id.length()-1);
+ if( id.equals( getResourceInfo().getIdentification() ))
+ return this;
+ Iterator list = m_Children.iterator();
+ while (list.hasNext())
+ {
+ ViewNode obj = (ViewNode) list.next();
+ String childId = obj.getResourceInfo().getIdentification();
+ if ( childId.equals(id) )
+ return obj;
+ if( id.startsWith( childId ) && ( obj instanceof ParentNode ) )
+ {
+ return ((ParentNode) obj).findObjectById( id );
+ }
+ }
+ return null;
+ }
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/RepositoryNameValidator.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/RepositoryNameValidator.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,75 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.eclipse.repository.views;
+
+import org.eclipse.jface.dialogs.IInputValidator;
+
+
+/** A validator to ensure repository names does not contain illegal
characters.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+class RepositoryNameValidator implements IInputValidator
+{
+ private final RepositoryView m_view;
+ /**
+ * @param RepositoryView
+ */
+ RepositoryNameValidator(RepositoryView pView)
+ {
+ this.m_view = pView;
+ // TODO Auto-generated constructor stub
+ }
+ public String isValid(String repoName)
+ {
+ // TODO valid repository names.
+ return null;
+ }
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/RepositoryView.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/RepositoryView.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,241 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The end-user documentation included with the redistribution, if any,
+ * must include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if and
+ * wherever such third-party acknowledgments normally appear.
+ * 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and "Apache
+ * Software Foundation" must not be used to endorse or promote products
derived
+ * from this software without prior written permission. For written
permission,
+ * please contact apache AT apache.org.
+ * 5. Products derived from this software may not be called "Apache", nor
may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository.views;
+
+import org.apache.avalon.ide.eclipse.repository.RepositoryPlugin;
+import org.apache.avalon.ide.eclipse.repository.ResourceManager;
+import org.apache.avalon.ide.repository.RepositoryTypeRegistry;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.DrillDownAdapter;
+import org.eclipse.ui.part.ViewPart;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+
+public class RepositoryView extends ViewPart
+{
+ private TreeViewer m_Viewer;
+ private ViewContentProvider m_ContentProvider;
+ private DrillDownAdapter m_DrillDownAdapter;
+ private Action m_AddRepositoryAction;
+ private Action m_RemoveRepositoryAction;
+ private Action m_DoubleClickAction;
+
+ /**
+ * The constructor.
+ */
+ public RepositoryView()
+ {}
+
+ /**
+ * This is a callback that will allow us to create the viewer and
+ * initialize it.
+ */
+ public void createPartControl(Composite parent)
+ {
+ m_Viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL |
SWT.V_SCROLL);
+ m_DrillDownAdapter = new DrillDownAdapter(m_Viewer);
+ m_ContentProvider = new ViewContentProvider(this);
+ m_Viewer.addTreeListener(m_ContentProvider);
+ m_Viewer.setContentProvider(m_ContentProvider);
+ m_Viewer.setLabelProvider(new ViewLabelProvider(this));
+ m_Viewer.setSorter(new NameSorter());
+ m_Viewer.setInput(ResourcesPlugin.getWorkspace());
+ makeActions();
+ hookContextMenu();
+ hookDoubleClickAction();
+ contributeToActionBars();
+ }
+
+ private void hookContextMenu()
+ {
+ MenuManager menuMgr = new MenuManager("#PopupMenu");
+ menuMgr.setRemoveAllWhenShown(true);
+ menuMgr.addMenuListener(new IMenuListener()
+ {
+ public void menuAboutToShow(IMenuManager manager)
+ {
+ RepositoryView.this.fillContextMenu(manager);
+ }
+ });
+ Menu menu = menuMgr.createContextMenu(m_Viewer.getControl());
+ m_Viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(menuMgr, m_Viewer);
+ }
+
+ private void contributeToActionBars()
+ {
+ IActionBars bars = getViewSite().getActionBars();
+ fillLocalPullDown(bars.getMenuManager());
+ fillLocalToolBar(bars.getToolBarManager());
+ }
+
+ private void fillLocalPullDown(IMenuManager manager)
+ {
+ manager.add(m_AddRepositoryAction);
+ manager.add(new Separator());
+ manager.add(m_RemoveRepositoryAction);
+ }
+
+ private void fillContextMenu(IMenuManager manager)
+ {
+ manager.add(m_AddRepositoryAction);
+ manager.add(m_RemoveRepositoryAction);
+ manager.add(new Separator());
+ m_DrillDownAdapter.addNavigationActions(manager);
+ // Other plug-ins can contribute there actions here
+ manager.add(new Separator("Additions"));
+ }
+
+ private void fillLocalToolBar(IToolBarManager manager)
+ {
+ manager.add(m_AddRepositoryAction);
+ manager.add(m_RemoveRepositoryAction);
+ manager.add(new Separator());
+ m_DrillDownAdapter.addNavigationActions(manager);
+ }
+
+ private void makeActions()
+ {
+ m_AddRepositoryAction = new Action()
+ {
+ public void run()
+ {
+ ResourceManager resources =
RepositoryPlugin.getResourceManager();
+ String message =
resources.getStringResource("USE_PREFERENCES_INSTEAD");
+ showMessage(message);
+ }
+ };
+ m_AddRepositoryAction.setText("Add Repository...");
+ m_AddRepositoryAction.setToolTipText("Adds a repository to the
view");
+ m_AddRepositoryAction.setImageDescriptor(
+ PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(
+ ISharedImages.IMG_OBJS_INFO_TSK));
+
+ m_RemoveRepositoryAction = new Action()
+ {
+ public void run()
+ {
+ ResourceManager resources =
RepositoryPlugin.getResourceManager();
+ String message =
resources.getStringResource("USE_PREFERENCES_INSTEAD");
+ showMessage(message);
+ }
+ };
+ m_RemoveRepositoryAction.setText("Remove Repository...");
+ m_RemoveRepositoryAction.setToolTipText("Removes a repository from
the view");
+ m_RemoveRepositoryAction.setImageDescriptor(
+ PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(
+ ISharedImages.IMG_OBJS_TASK_TSK));
+ m_DoubleClickAction = new Action()
+ {
+ public void run()
+ {
+ // TODO Double click.
+ // Not sure what this should do!
+ showMessage("Not implemented yet!");
+ }
+ };
+ }
+
+ void refreshViewer()
+ {
+ Display.getDefault().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ m_Viewer.refresh();
+ }
+ });
+ }
+
+ private void hookDoubleClickAction()
+ {
+ m_Viewer.addDoubleClickListener(new IDoubleClickListener()
+ {
+ public void doubleClick(DoubleClickEvent event)
+ {
+ m_DoubleClickAction.run();
+ }
+ });
+ }
+ private void showMessage(String message)
+ {
+ ResourceManager resources = RepositoryPlugin.getResourceManager();
+ MessageDialog.openInformation(
+ m_Viewer.getControl().getShell(),
+ "Repository View Message",
+ resources.getStringResource(message));
+ }
+
+ RepositoryTypeRegistry getRepositoryRegistry()
+ {
+ return RepositoryPlugin.getDefault().getRepositoryTypeRegistry();
+ }
+ /**
+ * Passing the focus request to the viewer's control.
+ */
+ public void setFocus()
+ {
+ m_Viewer.getControl().setFocus();
+ }
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/ViewContentProvider.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/ViewContentProvider.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,339 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met: 1.
+ * Redistributions of source code must retain the above copyright notice,
this
+ * list of conditions and the following disclaimer. 2. Redistributions in
+ * binary form must reproduce the above copyright notice, this list of
+ * conditions and the following disclaimer in the documentation and/or other
+ * materials provided with the distribution. 3. The end-user documentation
+ * included with the redistribution, if any, must include the following
+ * acknowledgment: "This product includes software developed by the Apache
+ * Software Foundation (http://www.apache.org/)." Alternately, this
+ * acknowledgment may appear in the software itself, if and wherever such
+ * third-party acknowledgments normally appear. 4. The names "Jakarta",
"Apache
+ * Avalon", "Avalon Framework" and "Apache Software Foundation" must not be
+ * used to endorse or promote products derived from this software without
prior
+ * written permission. For written permission, please contact
+ * apache AT apache.org. 5. Products derived from this software may not be
called
+ * "Apache", nor may "Apache" appear in their name, without prior written
+ * permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.eclipse.repository.views;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.StringTokenizer;
+
+import org.apache.avalon.ide.eclipse.repository.RepositoryPlugin;
+import
org.apache.avalon.ide.eclipse.repository.preferences.RepositoryPreferencePage;
+import org.apache.avalon.ide.repository.Compliance;
+import org.apache.avalon.ide.repository.RepositoryAgent;
+import org.apache.avalon.ide.repository.RepositoryAgentCreationException;
+import org.apache.avalon.ide.repository.RepositoryAgentEvent;
+import org.apache.avalon.ide.repository.RepositoryAgentFactory;
+import org.apache.avalon.ide.repository.RepositoryAgentFactoryEvent;
+import org.apache.avalon.ide.repository.RepositoryAgentFactoryListener;
+import org.apache.avalon.ide.repository.RepositoryAgentListener;
+import org.apache.avalon.ide.repository.RepositoryTypeRegistry;
+import org.apache.avalon.ide.repository.ResourceInfo;
+import org.apache.avalon.ide.repository.RepositorySchemeDescriptor;
+import org.apache.avalon.ide.repository.Version;
+import org.apache.avalon.ide.repository.tools.common.NonVersion;
+import org.apache.avalon.ide.repository.tools.common.ResourceInfoImpl;
+import org.apache.avalon.ide.repository.tools.compliance.EmptyCompliance;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.ITreeViewerListener;
+import org.eclipse.jface.viewers.TreeExpansionEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+/**
+ * The content provider for the RepositoryView.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+class ViewContentProvider
+ implements
+ IStructuredContentProvider,
+ ITreeContentProvider,
+ RepositoryAgentListener,
+ RepositoryAgentFactoryListener,
+ ITreeViewerListener,
+ IPropertyChangeListener
+{
+ private final RepositoryView m_View;
+
+ private ParentNode m_InvisibleRoot;
+
+ private HashMap m_Repositories;
+
+ /**
+ * @param RepositoryView
+ */
+ ViewContentProvider(RepositoryView pView)
+ {
+ m_View = pView;
+ RepositoryPlugin plugin = RepositoryPlugin.getDefault();
+ RepositoryTypeRegistry reg = plugin.getRepositoryTypeRegistry();
+ RepositorySchemeDescriptor[] urns = reg.getRegisteredURNs();
+ for( int i=0 ; i < urns.length ; i++ )
+ {
+ RepositoryAgentFactory factory = reg.getRepositoryAgentFactory(
urns[i] );
+ factory.addRepositoryAgentFactoryListener( this );
+ }
+ }
+
+ public void inputChanged(Viewer v, Object oldInput, Object newInput)
+ {}
+
+ public void dispose()
+ {
+ IPreferenceStore prefs =
RepositoryPlugin.getDefault().getPreferenceStore();
+ prefs.removePropertyChangeListener(this);
+
+ RepositoryPlugin plugin = RepositoryPlugin.getDefault();
+ RepositoryTypeRegistry reg = plugin.getRepositoryTypeRegistry();
+ RepositorySchemeDescriptor[] urns = reg.getRegisteredURNs();
+ for( int i=0 ; i < urns.length ; i++ )
+ {
+ RepositoryAgentFactory factory = reg.getRepositoryAgentFactory(
urns[i] );
+ factory.addRepositoryAgentFactoryListener( this );
+ }
+
+ ViewNode[] repos = m_InvisibleRoot.getChildren();
+ for (int i = 0; i < repos.length; i++)
+ removeRepository(repos[i]);
+ }
+
+ void removeRepository(ViewNode node)
+ {
+ m_InvisibleRoot.removeChild(node);
+ RepositoryAgent agent = node.getRepositoryAgent();
+ agent.removeRepositoryAgentListener(this);
+ }
+
+ public Object[] getElements(Object parent)
+ {
+ if (parent.equals(ResourcesPlugin.getWorkspace()))
+ {
+ if (m_InvisibleRoot == null)
+ initialize();
+ return getChildren(m_InvisibleRoot);
+ }
+ return getChildren(parent);
+ }
+
+ public Object getParent(Object child)
+ {
+ if (child instanceof ViewNode)
+ {
+ return ((ViewNode) child).getParent();
+ }
+ return null;
+ }
+
+ public Object[] getChildren(Object parent)
+ {
+ if (parent instanceof ParentNode)
+ {
+ return ((ParentNode) parent).getChildren();
+ }
+ return new Object[0];
+ }
+
+ public boolean hasChildren(Object parent)
+ {
+ if (parent instanceof ParentNode)
+ return ((ParentNode) parent).hasChildren();
+ return false;
+ }
+
+ private void initialize()
+ {
+ Version version = new NonVersion();
+ Compliance compliance = new EmptyCompliance();
+ String type = ResourceInfo.MIMETYPE_FOLDER;
+ ResourceInfo info =
+ new ResourceInfoImpl("", "", "Invisible Root Node", type,
version, compliance);
+ m_InvisibleRoot = new ParentNode(m_View, null, info);
+ m_Repositories = new HashMap();
+ IPreferenceStore prefs =
RepositoryPlugin.getDefault().getPreferenceStore();
+ prefs.addPropertyChangeListener(this);
+ String repos =
prefs.getString(RepositoryPreferencePage.P_REPOSITORIES);
+ PropertyChangeEvent event =
+ new PropertyChangeEvent(this,
RepositoryPreferencePage.P_REPOSITORIES, "", repos);
+ propertyChange(event);
+ }
+
+ public void available(RepositoryAgentEvent event)
+ {
+ System.out.println("Available:" + event.getResourceInfo().getName());
+ }
+
+ public void unavailable(RepositoryAgentEvent event)
+ {
+ System.out.println("Unavailable:" + event);
+ }
+
+ // IPropertyChangeListener method
+ public void propertyChange(PropertyChangeEvent event)
+ {
+ String prop = event.getProperty();
+ if (prop.equals(RepositoryPreferencePage.P_REPOSITORIES))
+ {
+ String oldValue = (String) event.getOldValue();
+ String newValue = (String) event.getNewValue();
+ ArrayList olds = parse(oldValue);
+ ArrayList news = parse(newValue);
+
+ ArrayList removes = new ArrayList(olds);
+ removes.removeAll(news);
+
+ ArrayList adds = new ArrayList(news);
+ adds.removeAll(olds);
+
+ RepositoryPlugin plugin = RepositoryPlugin.getDefault();
+ RepositoryTypeRegistry reg = plugin.getRepositoryTypeRegistry();
+
+ Iterator removeList = removes.iterator();
+ while (removeList.hasNext())
+ {
+ String s = (String) removeList.next();
+ RepositorySchemeDescriptor urn = reg.findByType(s);
+ RepositoryAgentFactory factory =
reg.getRepositoryAgentFactory(urn);
+ RepositoryAgent agent =
factory.findRepositoryAgentByLocation(s);
+ factory.dispose(agent);
+ }
+
+ Iterator addList = adds.iterator();
+ while (addList.hasNext())
+ {
+ String s = (String) addList.next();
+ try
+ {
+ RepositorySchemeDescriptor urn = reg.findByType(s);
+ RepositoryAgentFactory factory =
reg.getRepositoryAgentFactory(urn);
+ factory.create(s, null);
+ } catch (RepositoryAgentCreationException e)
+ {
+ // SHOULD-DO Error Handling.
+ System.err.println("Could not create RepositoryAgent " +
s);
+ }
+ }
+ }
+ }
+
+ private ArrayList parse(String s)
+ {
+ ArrayList result = new ArrayList();
+ StringTokenizer st = new StringTokenizer(s, ", ", false);
+ while (st.hasMoreTokens())
+ {
+ String tok = st.nextToken();
+ result.add(tok);
+ }
+ return result;
+ }
+ // RepositoryAgentFactoryListener method
+ public void createdRepositoryAgent(RepositoryAgentFactoryEvent event)
+ {
+ RepositoryAgent agent = event.getRepositoryAgent();
+ agent.addRepositoryAgentListener(this);
+ agent.loadResourceInfo("/");
+ }
+
+ public void deletedRepositoryAgent(RepositoryAgentFactoryEvent event)
+ {
+ RepositoryAgent agent = event.getRepositoryAgent();
+ agent.removeRepositoryAgentListener(this);
+ }
+
+ // RepositoryAgentListener methods
+ public void resourceLoaded(RepositoryAgentEvent event)
+ {
+ RepositoryAgent agent = (RepositoryAgent) event.getSource();
+ ParentNode rootNode = (ParentNode) m_Repositories.get(agent);
+ ResourceInfo info = event.getResourceInfo();
+ if (rootNode == null)
+ {
+ // First time for this Repository.
+ ParentNode node = new ParentNode(m_View, agent, info);
+ m_Repositories.put(agent, node);
+ m_InvisibleRoot.addChild(node);
+ } else
+ {
+ String id = info.getIdentification();
+ ParentNode n = (ParentNode) rootNode.findObjectById(id);
+ if (n != null)
+ {
+ System.err.println("Warning!! Node " + id + " has already
been loaded.");
+ return;
+ }
+ String parent = getParentIdentification(id);
+ ParentNode parentNode = (ParentNode)
rootNode.findObjectById(parent);
+ ParentNode node = new ParentNode(m_View, agent, info);
+ parentNode.addChild(node);
+ }
+ m_View.refreshViewer();
+ String resourceName = event.getResourceInfo().getIdentification();
+ System.out.println("Resource Loaded:" + resourceName);
+ }
+
+ public void resourceNotFound(RepositoryAgentEvent event)
+ {
+ System.out.println(event.getMessage());
+ }
+
+ // ITreeViewerListener methods
+
+ public void treeExpanded(TreeExpansionEvent event)
+ {
+ ParentNode node = (ParentNode) event.getElement();
+ RepositoryAgent agent = node.getRepositoryAgent();
+ ViewNode[] children = node.getChildren();
+ for (int i = 0; i < children.length; i++)
+
agent.loadResourceInfo(children[i].getResourceInfo().getIdentification());
+ }
+
+ public void treeCollapsed(TreeExpansionEvent event)
+ {
+ // Do nothing for now.
+ }
+
+ // private methods
+ private String getParentIdentification(String ident)
+ {
+
+ int pos = ident.lastIndexOf('/');
+ return ident.substring(0, pos + 1);
+ }
+
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/ViewLabelProvider.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/ViewLabelProvider.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,90 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.eclipse.repository.views;
+
+import org.apache.avalon.ide.repository.ResourceInfo;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+
+
+/** The LabelProvider for the RepositoryView.
+ *
+ * @see org.eclipse.jface.viewers.LabelProvider
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+class ViewLabelProvider extends LabelProvider
+{
+ private final RepositoryView m_View;
+ /**
+ * @param RepositoryView
+ */
+ ViewLabelProvider(RepositoryView view)
+ {
+ m_View = view;
+ }
+
+ public String getText(Object obj)
+ {
+ return obj.toString();
+ }
+ public Image getImage(Object obj)
+ {
+ String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
+ ResourceInfo data = ((ViewNode) obj).getResourceInfo();
+
+ if( data.getType().equals( ResourceInfo.MIMETYPE_FOLDER))
+ imageKey = ISharedImages.IMG_OBJ_FOLDER;
+
+ return
PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);
+ }
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/ViewNode.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views/ViewNode.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,107 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.eclipse.repository.views;
+
+import org.apache.avalon.ide.repository.RepositoryAgent;
+import org.apache.avalon.ide.repository.ResourceInfo;
+import org.eclipse.core.runtime.IAdaptable;
+
+
+/** A leaf node in the RepositoryView.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+class ViewNode implements IAdaptable
+{
+ private final RepositoryView m_View;
+ private ParentNode m_Parent;
+ private RepositoryAgent m_Agent;
+ private ResourceInfo m_InfoObject;
+
+
+ public ViewNode(RepositoryView pView, RepositoryAgent agent,
ResourceInfo info )
+ {
+ m_View = pView;
+ m_InfoObject = info;
+ m_Agent = agent;
+ }
+
+ public ResourceInfo getResourceInfo()
+ {
+ return m_InfoObject;
+ }
+
+ public void setParent(ParentNode parent)
+ {
+ m_Parent = parent;
+ }
+
+ public ParentNode getParent()
+ {
+ return m_Parent;
+ }
+
+ public RepositoryAgent getRepositoryAgent()
+ {
+ return m_Agent;
+ }
+
+ public String toString()
+ {
+ return m_InfoObject.getName();
+ }
+
+ public Object getAdapter(Class key)
+ {
+ System.out.println( key.getName() + " requested.");
+ return null;
+ }
+
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/.classpath
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/.classpath
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con"
path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/.cvsignore
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/.cvsignore
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,4 @@
+bin
+dist
+*.jar
+*.zip

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/.project
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/.project
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>metro-studio-ui</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.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/icons/plugin.properties
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/icons/plugin.properties
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,63 @@
+#
============================================================================
+# The Apache Software License, Version 1.1
+#
============================================================================
+#
+# Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+#
+# Redistribution and use in source and binary forms, with or without
modifica-
+# tion, are permitted provided that the following conditions are met: 1.
+# Redistributions of source code must retain the above copyright notice,
this
+# list of conditions and the following disclaimer. 2. Redistributions in
+# binary form must reproduce the above copyright notice, this list of
+# conditions and the following disclaimer in the documentation and/or other
+# materials provided with the distribution. 3. The end-user documentation
+# included with the redistribution, if any, must include the following
+# acknowledgment: "This product includes software developed by the Apache
+# Software Foundation (http://www.apache.org/)." Alternately, this
+# acknowledgment may appear in the software itself, if and wherever such
+# third-party acknowledgments normally appear. 4. The names "Jakarta",
"Apache
+# Avalon", "Avalon Framework" and "Apache Software Foundation" must not be
+# used to endorse or promote products derived from this software without
prior
+# written permission. For written permission, please contact
+# apache AT apache.org. 5. Products derived from this software may not be
called
+# "Apache", nor may "Apache" appear in their name, without prior written
+# permission of the Apache Software Foundation.
+#
+# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+# DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# This software consists of voluntary contributions made by many individuals
+# on behalf of the Apache Software Foundation. For more information on the
+# Apache Software Foundation, please see <http://www.apache.org/> .
+#
+# WebApp Plugin Properties file
+
+pluginName=WebApp Plug-in
+providerName=BlueSkyTime.com
+serverExtensionPointName=Web Application Server
+newWebAppProjectWizardName=WebApp Project
+newWebAppProjectFromWarWizardName=WebApp Project from WAR
+menu1Label=Web Application
+launchConfigurationTypeName=Web Application Server
+launchWebAppProjectActionLabel=Launch Web Application
+debugWebAppProjectActionLabel=Debug Web Application
+relaunchWebAppProjectActionLabel=Relaunch Web Application
+restartWebAppServerActionLabel=Restart Server
+stopWebAppServerActionLabel=Stop Server
+startWebAppServerActionLabel=Start Server
+warFileExportActionLabel=Export to WAR File...
+webAppLaunchShortcutLabel=Web Application
+webAppPreferencePageName=Web Application Servers
+webAppProjectPropertyPageName=Web Application
+webAppProjectNatureName=WebApp Project Nature
+webAppServerConfigNatureName=WebApp Server Configuration Nature
+webAppBuilder=Web Application Builder
+serverAdapterName=Internal Tomcat 4.0.3

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/ui/MerlinDeveloperUIResources.properties
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/ui/MerlinDeveloperUIResources.properties
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,45 @@
+#########################################
+#
+#
+#
+# Copyright 2004. 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.
+#
+#
+#
+#########################################
+
+new.MerlinDevelopment.window.title=New Merlin Project
+new.MerlinDevelopment.errorDialog.title=Error
+new.MerlinDevelopment.mainPage.title=Merlin Block Development
+new.MerlinDevelopment.mainPage.description=Create a project to develop
blocks for the Merlin container
+new.MerlinDevelopment.selectionPage.title=Project Selection Page
+new.MerlinDevelopment.selectionPage.description=Select a type of project you
want to create.
+new.MerlinDevelopment.containerPage.title=Project Details
+new.MerlinDevelopment.containerPage.description=Enter required data to
create your Merlin project
+javadoc.avalon.component=mark a class as merlin component
+javadoc.avalon.component.tag=avalon.component name="xx" version="1.0.0"
livestyle="singleton"
+javadoc.avalon.dependency=defines a dependency
+javadoc.avalon.dependency.tag=avalon.dependency type="xx" key="yy"
+javadoc.avalon.service.tag=avalon.service type="xx" version="1.0.0"
+javadoc.avalon.service=defines the service interface
+javadoc.avalon.entry.tag=avalon.entry entry="urn:avalon:xx"
+javadoc.avalon.entry=defines an entry for special context values
+javadoc.avalon.stage=define lifecycle extensions
+javadoc.avalon.stage.tag=avalon.stage id="urn:name:type"
+javadoc.avalon.extension=definition of an extension
+javadoc.avalon.extension.tag=avalon.extension id="urn:name:type"
+javadoc.avalon.logger.tag=avalon.logger name="xx.yy"
+javadoc.avalon.logger=defines a logger
+

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/build.properties
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/build.properties
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,12 @@
+bin.includes = plugin.xml,\
+ *.jar,\
+ MerlinDeveloperUI.jar,\
+ plugin.properties,\
+ properties/,\
+ icons/
+source.MerlinDeveloperUI.jar = src/
+src.includes = src/,\
+ properties/,\
+ icons/,\
+ plugin.properties,\
+ build.xml

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/build.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/build.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.apache.avalon.MerlinDeveloperUI" default="build.jars"
basedir=".">
+
+ <property name="bootclasspath" value=""/>
+ <property name="basews" value="${ws}"/>
+ <property name="baseos" value="${os}"/>
+ <property name="basearch" value="${arch}"/>
+ <property name="basenl" value="${nl}"/>
+ <property name="javacFailOnError" value="false"/>
+ <property name="javacDebugInfo" value="on"/>
+ <property name="javacVerbose" value="true"/>
+ <property name="javacSource" value="1.3"/>
+ <property name="javacTarget" value="1.1"/>
+
+ <target name="init" depends="properties">
+ <property name="temp.folder" value="${basedir}/temp.folder"/>
+ <property name="plugin.destination" value="${basedir}"/>
+ <property name="build.result.folder" value="${basedir}"/>
+ </target>
+
+ <target name="properties" if="eclipse.running">
+ <property name="build.compiler"
value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+ </target>
+
+ <target name="build.update.jar" depends="init" description="Build the
plug-in: org.apache.avalon.MerlinDeveloperUI for an update site.">
+ <delete dir="${temp.folder}"/>
+ <mkdir dir="${temp.folder}"/>
+ <antcall target="build.jars"/>
+ <antcall target="gather.bin.parts">
+ <param name="destination.temp.folder"
value="${temp.folder}/"/>
+ </antcall>
+ <zip
zipfile="${plugin.destination}/org.apache.avalon.MerlinDeveloperUI_0.0.4.jar"
basedir="${temp.folder}/org.apache.avalon.MerlinDeveloperUI_0.0.4"
filesonly="false" whenempty="skip"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+
+ <target name="gather.bin.parts" depends="init"
if="destination.temp.folder">
+ <mkdir
dir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperUI_0.0.4"/>
+ <copy
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperUI_0.0.4">
+ <fileset dir="${build.result.folder}"
includes="plugin.xml,*.jar,MerlinDeveloperUI.jar,plugin.properties,properties/,icons/"
/>
+ </copy>
+ <copy
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperUI_0.0.4">
+ <fileset dir="${basedir}"
includes="plugin.xml,*.jar,MerlinDeveloperUI.jar,plugin.properties,properties/,icons/"
/>
+ </copy>
+ </target>
+
+ <target name="MerlinDeveloperUI.jar" depends="init"
unless="MerlinDeveloperUI.jar" description="Create jar:
MerlinDeveloperUI.jar.">
+ <delete dir="${temp.folder}/MerlinDeveloperUI.jar.bin"/>
+ <mkdir dir="${temp.folder}/MerlinDeveloperUI.jar.bin"/>
+ <!-- compile the source code -->
+ <javac destdir="${temp.folder}/MerlinDeveloperUI.jar.bin"
failonerror="${javacFailOnError}" verbose="${javacVerbose}"
debug="${javacDebugInfo}" includeAntRuntime="no"
bootclasspath="${bootclasspath}"
classpath="../../plugins/org.eclipse.core.boot_3.0.0/boot.jar;../../plugins/org.eclipse.core.runtime_3.0.0/runtime.jar;../../plugins/org.eclipse.core.resources_3.0.0/resources.jar;../../plugins/org.eclipse.core.resources.win32_3.0.0/resources.jar;../../plugins/org.eclipse.ui_3.0.0/ui.jar;../../plugins/org.eclipse.help_3.0.0/help.jar;../../plugins/org.eclipse.swt_3.0.0/ws/${basews}/swt.jar;../../plugins/org.eclipse.swt.win32_3.0.0/ws/${basews}/swt.jar;../../plugins/org.eclipse.jface_3.0.0/jface.jar;../../plugins/org.eclipse.ui.workbench_3.0.0/workbench.jar;../../plugins/org.eclipse.pde.ui_3.0.0/pdeui.jar;../../plugins/org.eclipse.ui.ide_3.0.0/ide.jar;../../plugins/org.eclipse.ui.win32_3.0.0/ide.jar;../../plugins/org.eclipse.ui.win32_3.0.0/workbenchwin32.jar;../../plugins/org.eclipse.ui.views_3.0.0/views.jar;../../plugins/org.eclipse.update.core_3.0.0/updatecore.jar;../../plugins/org.eclipse.update.core.win32_3.0.0/updatecore.jar;../../plugins/org.eclipse.jface.text_3.0.0/jfacetext.jar;../../plugins/org.eclipse.text_3.0.0/text.jar;../../plugins/org.eclipse.ui.workbench.texteditor_3.0.0/texteditor.jar;../../plugins/org.eclipse.ui.editors_3.0.0/editors.jar;../../plugins/org.eclipse.core.filebuffers_3.0.0/filebuffers.jar;../../plugins/org.eclipse.ant.core_3.0.0/antsupport.jar;../../plugins/org.eclipse.core.variables_3.0.0/variables.jar;../../plugins/org.eclipse.debug.core_3.0.0/dtcore.jar;../../plugins/org.eclipse.debug.ui_3.0.0/dtui.jar;../../plugins/org.eclipse.ui.console_3.0.0/console.jar;../../plugins/org.eclipse.help.base_3.0.0/helpbase.jar;../../plugins/org.apache.lucene_1.3.0.RC2/parser.jar;../../plugins/org.apache.lucene_1.3.0.RC2/lucene-1.3-rc2.jar;../../plugins/org.eclipse.help.appserver_3.0.0/appserver.jar;../../plugins/org.eclipse.jdt.core_3.0.0/jdtcore.jar;../../plugins/com.swtdesigner.fragment.jdt.core_1.2.2/jdtcore.jar;../../plugins/com.swtdesigner.fragment.jdt.core_1.2.2/designerJdtCore.jar;../../plugins/org.eclipse.team.core_3.0.0/team.jar;../../plugins/org.eclipse.jdt.debug.ui_3.0.0/jdiui.jar;../../plugins/org.eclipse.search_3.0.0/search.jar;../../plugins/org.eclipse.jdt.debug_3.0.0/jdi.jar;../../plugins/org.eclipse.jdt.debug_3.0.0/jdimodel.jar;../../plugins/org.eclipse.jdt.debug_3.0.0/tools.jar;../../plugins/org.eclipse.jdt.launching_3.0.0/launching.jar;../../plugins/org.eclipse.compare_3.0.0/compare.jar;../../plugins/org.eclipse.jdt.ui_3.0.0/jdt.jar;../../plugins/org.eclipse.pde_3.0.0/pde.jar;../../plugins/org.eclipse.pde.core_3.0.0/pdecore.jar;../../plugins/org.apache.ant_1.5.4/lib/ant.jar;../../plugins/org.apache.ant_1.5.4/lib/optional.jar;../../plugins/org.eclipse.pde.build_3.0.0/pdebuild.jar;../../plugins/org.eclipse.update.ui.forms_3.0.0/forms.jar;../../plugins/org.eclipse.ant.ui_3.0.0/antui.jar;../../plugins/org.eclipse.ui.externaltools_3.0.0/externaltools.jar;../../plugins/org.eclipse.jdt.junit_3.0.0/junitsupport.jar;../../plugins/org.eclipse.jdt.junit.runtime_3.0.0/junitruntime.jar;../../plugins/org.junit_3.8.1/junit.jar;../org.apache.avalon.ide.eclipse.core/MerlinDeveloperCore.jar;../org.apache.avalon.ide.eclipse.core/lib/xstream-0.2.jar;../org.apache.avalon.ide.eclipse.core/lib/xdoclet-1.2b4.jar;../org.apache.avalon.ide.eclipse.core/lib/xjavadoc-1.0.jar;../org.apache.avalon.ide.eclipse.core/lib/commons-collections-2.0.jar;../org.apache.avalon.ide.eclipse.core/lib/commons-lang.jar;../org.apache.avalon.ide.eclipse.core/lib/commons-logging.jar;../org.apache.avalon.ide.eclipse.launch/MerlinDeveloperLaunch.jar;../org.apache.avalon.ide.eclipse.launch/lib/merlin-cli-3.2.4.jar"
source="${javacSource}" target="${javacTarget}" >
+ <src path="src/" />
+ </javac>
+ <!-- copy necessary resources -->
+ <copy todir="${temp.folder}/MerlinDeveloperUI.jar.bin">
+ <fileset dir="src/" excludes="**/*.java"
/>
+ </copy>
+ <mkdir dir="${build.result.folder}"/>
+ <jar jarfile="${build.result.folder}/MerlinDeveloperUI.jar"
basedir="${temp.folder}/MerlinDeveloperUI.jar.bin"/>
+ <delete dir="${temp.folder}/MerlinDeveloperUI.jar.bin"/>
+ </target>
+
+ <target name="MerlinDeveloperUIsrc.zip" depends="init"
unless="MerlinDeveloperUIsrc.zip">
+ <mkdir dir="${build.result.folder}"/>
+ <zip
zipfile="${build.result.folder}/MerlinDeveloperUIsrc.zip" filesonly="false"
whenempty="skip">
+ <fileset dir="src/" includes="**/*.java"
/>
+ </zip>
+ </target>
+
+ <target name="build.jars" depends="init" description="Build all the
jars for the plug-in: org.apache.avalon.MerlinDeveloperUI.">
+ <available property="MerlinDeveloperUI.jar"
file="${build.result.folder}/MerlinDeveloperUI.jar"/>
+ <antcall target="MerlinDeveloperUI.jar"/>
+ </target>
+
+ <target name="build.sources" depends="init">
+ <available property="MerlinDeveloperUIsrc.zip"
file="${build.result.folder}/MerlinDeveloperUIsrc.zip"/>
+ <antcall target="MerlinDeveloperUIsrc.zip"/>
+ </target>
+
+ <target name="build.zips" depends="init">
+ </target>
+
+ <target name="gather.sources" depends="init"
if="destination.temp.folder">
+ <mkdir
dir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperUI_0.0.4"/>
+ <copy file="${build.result.folder}/MerlinDeveloperUIsrc.zip"
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperUI_0.0.4"/>
+ <copy
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperUI_0.0.4">
+ <fileset dir="${basedir}"
includes="src/,properties/,icons/,plugin.properties,build.xml"
/>
+ </copy>
+ </target>
+
+ <target name="gather.logs" depends="init"
if="destination.temp.folder">
+ <mkdir
dir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperUI_0.0.4"/>
+ <copy file="${temp.folder}/MerlinDeveloperUI.jar.bin.log"
todir="${destination.temp.folder}/org.apache.avalon.MerlinDeveloperUI_0.0.4"/>
+ </target>
+
+ <target name="clean" depends="init" description="Clean the plug-in:
org.apache.avalon.MerlinDeveloperUI of all the zips, jars and logs created.">
+ <delete file="${build.result.folder}/MerlinDeveloperUI.jar"/>
+ <delete
file="${build.result.folder}/MerlinDeveloperUIsrc.zip"/>
+ <delete
file="${plugin.destination}/org.apache.avalon.MerlinDeveloperUI_0.0.4.jar"/>
+ <delete
file="${plugin.destination}/org.apache.avalon.MerlinDeveloperUI_0.0.4.zip"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+
+ <target name="refresh" depends="init" if="eclipse.running"
description="Refresh this folder.">
+ <eclipse.convertPath
fileSystemPath="C:/develop/eclipse/workspace/org.apache.avalon.ide.eclipse.ui/"
property="resourcePath"/>
+ <eclipse.refreshLocal
resource="org.apache.avalon.MerlinDeveloperUI" depth="infinite"/>
+ </target>
+
+ <target name="zip.plugin" depends="init" description="Create a zip
containing all the elements for the plug-in:
org.apache.avalon.MerlinDeveloperUI.">
+ <delete dir="${temp.folder}"/>
+ <mkdir dir="${temp.folder}"/>
+ <antcall target="build.jars"/>
+ <antcall target="build.sources"/>
+ <antcall target="gather.bin.parts">
+ <param name="destination.temp.folder"
value="${temp.folder}/"/>
+ </antcall>
+ <antcall target="gather.sources">
+ <param name="destination.temp.folder"
value="${temp.folder}/"/>
+ </antcall>
+ <delete>
+ <fileset dir="${temp.folder}" includes="**/*.bin.log"
/>
+ </delete>
+ <zip
zipfile="${plugin.destination}/org.apache.avalon.MerlinDeveloperUI_0.0.4.zip"
basedir="${temp.folder}" filesonly="true" whenempty="skip"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+
+</project>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/Thumbs.db
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/checked.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/ctool16/Thumbs.db
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/ctool16/exportjar_wiz.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/ctool16/java_app.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/ctool16/newjprj_wiz.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/dtool16/Thumbs.db
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/dtool16/exportjar_wiz.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/dtool16/newjprj_wiz.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/etool16/Thumbs.db
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/etool16/exportjar_wiz.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/etool16/newjprj_wiz.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/obj16/Thumbs.db
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/obj16/file_obj.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/wizban/Thumbs.db
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/wizban/jar_pack_wiz.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/full/wizban/newjprj_wiz.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/merlin.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/merlin_light.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/sample.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/icons/unchecked.gif
==============================================================================
Binary file. No diff available.

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/plugin.properties
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/plugin.properties
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,7 @@
+# WebApp Plugin Properties file
+
+new.category.name=Merlin Container Development
+new.blockDevelopment.name=Native Block Development Project
+new.frameworkDevelopment.name=Framework Development Project
+new.architectureDriven.name=Business Block Development Project
+new.convertProject.name=Convert Java to Merlin Container Project

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/plugin.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/plugin.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin
+ id="org.apache.avalon.MerlinDeveloperUI"
+ name="MerlinDeveloper UI"
+ version="0.0.4"
+ provider-name="Apache Software Foundation"
+ class="org.apache.avalon.ide.eclipse.merlin.ui.MerlinDeveloperUI">
+
+ <runtime>
+ <library name="MerlinDeveloperUI.jar">
+ <export name="*"/>
+ </library>
+ </runtime>
+ <requires>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.eclipse.pde.ui"/>
+ <import plugin="org.eclipse.swt"/>
+ <import plugin="org.eclipse.jdt.core"/>
+ <import plugin="org.eclipse.ui.ide" optional="true"/>
+ <import plugin="org.junit"/>
+ <import plugin="org.apache.avalon.MerlinDeveloperCore"/>
+ <import plugin="org.apache.avalon.MerlinDeveloperLaunch"/>
+ <import plugin="org.eclipse.jface.text"/>
+ <import plugin="org.eclipse.jdt.ui"/>
+ </requires>
+
+
+ <extension
+ point="org.eclipse.jdt.ui.javadocCompletionProcessor">
+ <javadocCompletionProcessor
+ name="Avalon Javadoc Processor"
+
class="org.apache.avalon.ide.eclipse.merlin.ui.tools.JavadocProcessor"
+ id="avalonJavadocProcessor">
+ </javadocCompletionProcessor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <category
+ name="%new.category.name"
+ id="org.eclipse.ui.Merlin">
+ </category>
+ <wizard
+ name="%new.blockDevelopment.name"
+ icon="icons/full/ctool16/newjprj_wiz.gif"
+ category="org.eclipse.ui.Merlin"
+
class="org.apache.avalon.ide.eclipse.merlin.wizards.NewMerlinProjectWizard"
+ project="true"
+
id="org.apache.avalon.ide.eclipse.merlin.wizards.newMerlinProjectWizard1">
+ </wizard>
+ <wizard
+ name="%new.convertProject.name"
+ icon="icons/full/ctool16/newjprj_wiz.gif"
+ category="org.eclipse.ui.Merlin"
+
class="org.apache.avalon.ide.eclipse.merlin.wizards.NewMerlinNatureWizard"
+
id="org.apache.avalon.ide.eclipse.merlin.wizards.newMerlinNatureWizard2">
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ name="Image Viewer"
+ icon="icons/sample.gif"
+ extensions="jpg, gif"
+
class="org.apache.avalon.ide.eclipse.merlin.ui.tools.ImageViewerEditor"
+ id="Viewer.editors.XMLEditor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ name="MerlinDeveloper"
+
class="org.apache.avalon.ide.eclipse.merlin.preferences.MerlinMainPreferencePage"
+ id="org.apache.avalon.MerlinMainPreferencePage">
+ </page>
+ </extension>
+
+</plugin>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/properties/NewProjectConfigTest.xcfg
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/properties/NewProjectConfigTest.xcfg
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,57 @@
+<projectModelConfiguration>
+ <projectModels >
+ <projectModel label="Empty project">
+ <description>Creates an empty Merlin
project&lt;wbr&gt;&lt;/wbr&gt;</description>
+ <directories>
+ <directory name="api">
+ <source>true</source>
+ </directory>
+ <directory name="impl">
+ <source>true</source>
+ </directory>
+ <directory name="impl/BLOCK-INF">
+ <templates>
+ <template
name="TutorialHello.Block.Template" >
+
<fileName>block.xml</fileName>
+ </template>
+ </templates>
+ </directory>
+ <directory name="test">
+ <source>true</source>
+ </directory>
+ </directories>
+ </projectModel>
+ <projectModel label="Simple Component">
+ <description>Creates a simple component with all
possible lifecycle stages.</description>
+ <directories>
+ <directory name="api">
+ <source>true</source>
+ </directory>
+ <directory name="impl">
+ <source>true</source>
+ <templates>
+ <template
name="TutorialHello.Component.template">
+
<fileName>%full_implementationclass%.java</fileName>
+ </template>
+ <template
name="TutorialHello.XInfo.template">
+
<fileName>%full_implementationclass%.xinfo</fileName>
+ </template>
+ </templates>
+ </directory>
+ <directory name="impl/BLOCK-INF">
+ <templates>
+ <template
name="TutorialHello.Block.Template" >
+
<fileName>block.xml</fileName>
+ </template>
+ </templates>
+ </directory>
+ <directory name="test">
+ <source>true</source>
+ </directory>
+ </directories>
+ </projectModel>
+ <projectModel label="Empty 2">
+ <description>This example shows a simple component
with all lifecycle stages</description>
+ </projectModel>
+ </projectModels>
+</projectModelConfiguration>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/properties/NewProjectWizard.xcfg
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/properties/NewProjectWizard.xcfg
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,83 @@
+<projectModelConfiguration>
+ <projectModels >
+ <projectModel label="Empty project">
+ <description>Creates an empty Merlin
project&lt;wbr&gt;&lt;/wbr&gt;</description>
+ <directories>
+ <directory name="api">
+ <source>true</source>
+ </directory>
+ <directory name="impl">
+ <source>true</source>
+ </directory>
+ <directory name="impl/BLOCK-INF">
+ <templates>
+ <template
name="TutorialHello.Block.Template" >
+
<fileName>block.xml</fileName>
+ </template>
+ </templates>
+ </directory>
+ <directory name="test">
+ <source>true</source>
+ </directory>
+ </directories>
+ </projectModel>
+ <projectModel label="Simple Component">
+ <description>Creates a simple component with all
possible lifecycle stages.</description>
+ <directories>
+ <directory name="api">
+ <source>true</source>
+ </directory>
+ <directory name="impl">
+ <source>true</source>
+ <templates>
+ <template
name="TutorialHello.Component.template">
+
<fileName>%full_implementationclass%.java</fileName>
+ </template>
+ <template
name="TutorialHello.XInfo.template">
+
<fileName>%full_implementationclass%.xinfo</fileName>
+ </template>
+ </templates>
+ </directory>
+ <directory name="impl/BLOCK-INF">
+ <templates>
+ <template
name="TutorialHello.Block.Template" >
+
<fileName>block.xml</fileName>
+ </template>
+ </templates>
+ </directory>
+ <directory name="test">
+ <source>true</source>
+ </directory>
+ </directories>
+ </projectModel>
+ <projectModel label="Dependent Components">
+ <description>Creates two components, where one is
dependent from the other</description>
+ <directories>
+ <directory name="api">
+ <source>true</source>
+ </directory>
+ <directory name="impl">
+ <source>true</source>
+ <templates>
+ <template
name="TutorialHello.Component.template">
+
<fileName>%full_implementationclass%.java</fileName>
+ </template>
+ <template
name="TutorialHello.XInfo.template">
+
<fileName>%full_implementationclass%.xinfo</fileName>
+ </template>
+ </templates>
+ </directory>
+ <directory name="impl/BLOCK-INF">
+ <templates>
+ <template
name="TutorialHello.Block.Template" >
+
<fileName>block.xml</fileName>
+ </template>
+ </templates>
+ </directory>
+ <directory name="test">
+ <source>true</source>
+ </directory>
+ </directories>
+ </projectModel>
+ </projectModels>
+</projectModelConfiguration>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/icons/plugin.properties
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/icons/plugin.properties
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,63 @@
+#
============================================================================
+# The Apache Software License, Version 1.1
+#
============================================================================
+#
+# Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+#
+# Redistribution and use in source and binary forms, with or without
modifica-
+# tion, are permitted provided that the following conditions are met: 1.
+# Redistributions of source code must retain the above copyright notice,
this
+# list of conditions and the following disclaimer. 2. Redistributions in
+# binary form must reproduce the above copyright notice, this list of
+# conditions and the following disclaimer in the documentation and/or other
+# materials provided with the distribution. 3. The end-user documentation
+# included with the redistribution, if any, must include the following
+# acknowledgment: "This product includes software developed by the Apache
+# Software Foundation (http://www.apache.org/)." Alternately, this
+# acknowledgment may appear in the software itself, if and wherever such
+# third-party acknowledgments normally appear. 4. The names "Jakarta",
"Apache
+# Avalon", "Avalon Framework" and "Apache Software Foundation" must not be
+# used to endorse or promote products derived from this software without
prior
+# written permission. For written permission, please contact
+# apache AT apache.org. 5. Products derived from this software may not be
called
+# "Apache", nor may "Apache" appear in their name, without prior written
+# permission of the Apache Software Foundation.
+#
+# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+# DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# This software consists of voluntary contributions made by many individuals
+# on behalf of the Apache Software Foundation. For more information on the
+# Apache Software Foundation, please see <http://www.apache.org/> .
+#
+# WebApp Plugin Properties file
+
+pluginName=WebApp Plug-in
+providerName=BlueSkyTime.com
+serverExtensionPointName=Web Application Server
+newWebAppProjectWizardName=WebApp Project
+newWebAppProjectFromWarWizardName=WebApp Project from WAR
+menu1Label=Web Application
+launchConfigurationTypeName=Web Application Server
+launchWebAppProjectActionLabel=Launch Web Application
+debugWebAppProjectActionLabel=Debug Web Application
+relaunchWebAppProjectActionLabel=Relaunch Web Application
+restartWebAppServerActionLabel=Restart Server
+stopWebAppServerActionLabel=Stop Server
+startWebAppServerActionLabel=Start Server
+warFileExportActionLabel=Export to WAR File...
+webAppLaunchShortcutLabel=Web Application
+webAppPreferencePageName=Web Application Servers
+webAppProjectPropertyPageName=Web Application
+webAppProjectNatureName=WebApp Project Nature
+webAppServerConfigNatureName=WebApp Server Configuration Nature
+webAppBuilder=Web Application Builder
+serverAdapterName=Internal Tomcat 4.0.3

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/operation/AbstractGeneratorOperation.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/operation/AbstractGeneratorOperation.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,81 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.operation;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.apache.avalon.ide.eclipse.core.resource.ProjectResourceManager;
+import org.apache.avalon.ide.eclipse.core.tools.DynProjectParam;
+import org.apache.avalon.ide.eclipse.core.xmlmodel.ProjectModel;
+import org.apache.avalon.ide.eclipse.merlin.launch.MerlinDeveloperLaunch;
+import org.apache.avalon.ide.eclipse.merlin.nature.MerlinProjectNature;
+import org.apache.avalon.ide.eclipse.merlin.ui.MerlinDeveloperUI;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ *
+ */
+public class AbstractGeneratorOperation implements IRunnableWithProgress
+{
+
+ private MerlinProjectNature merlinProject;
+ private ProjectModel projectModel;
+ private DynProjectParam pParam;
+
+ public AbstractGeneratorOperation()
+ {}
+
+ /**
+ * @param pParam
+ * @param pModel
+ */
+ public AbstractGeneratorOperation(DynProjectParam param, ProjectModel
iProjectModel)
+ {
+ pParam = param;
+ this.projectModel = iProjectModel;
+ }
+
+ public void run(IProgressMonitor monitor)
+ throws InvocationTargetException, InterruptedException
+ {
+ if (monitor == null)
+ {
+ monitor = new NullProgressMonitor();
+ }
+ try
+ {
+
monitor.beginTask(MerlinDeveloperUI.getResourceString("NewWebAppProjectOperation.createWebAppTask.description"),
1); //$NON-NLS-1$
+
+ new ProjectResourceManager(
+ projectModel,
+ pParam,
+ MerlinDeveloperUI.PLUGIN_ID,
+ MerlinDeveloperLaunch.MERLIN_PROJECT_NATURE_ID);
+
+ //prm.addBuilder(MerlinDeveloperLaunch.MERLIN_BUILDER_ID);
+
+ } finally
+ {
+ monitor.done();
+ }
+ }
+
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/preferences/MerlinMainPreferencePage.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/preferences/MerlinMainPreferencePage.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,128 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+
+package org.apache.avalon.ide.eclipse.merlin.preferences;
+
+
+import
org.apache.avalon.ide.eclipse.merlin.launch.container.MerlinContainerEnvironment;
+import org.apache.avalon.ide.eclipse.merlin.ui.MerlinDeveloperUI;
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+
+public class MerlinMainPreferencePage
+ extends PreferencePage
+ implements IWorkbenchPreferencePage {
+
+ private MerlinContainerEnvironment env;
+
+ public MerlinMainPreferencePage() {
+ super();
+
setPreferenceStore(MerlinDeveloperUI.getDefault().getPreferenceStore());
+ setDescription("General settings for Merlin Container");
+ initializeDefaults();
+ }
+/**
+ * Sets the default values of the preferences.
+ */
+ private void initializeDefaults() {
+
+ }
+
+ public Control createContents(Composite pParent){
+
+ Composite area = new Composite(pParent, SWT.NONE);
+ area.setLayoutData(new GridData(GridData.FILL_BOTH));
+ final GridLayout gridLayout_1 = new GridLayout();
+ gridLayout_1.verticalSpacing = 15;
+ area.setLayout(gridLayout_1);
+ {
+ final Group group = new Group(area, SWT.NONE);
+ group.setText("Installation Directories");
+ group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ final GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 3;
+ group.setLayout(gridLayout);
+
+ {
+ final Label label = new Label(group, SWT.NONE);
+ label.setText("Avalon:");
+ }
+ {
+ final Text text = new Text(group, SWT.BORDER);
+ text.setEnabled(false);
+ final GridData gridData = new
GridData(GridData.FILL_HORIZONTAL);
+ gridData.horizontalSpan = 2;
+ text.setLayoutData(gridData);
+ text.setText(env.getAvalonHome());
+ }
+ {
+ final Label label = new Label(group, SWT.NONE);
+ label.setText("Merlin:");
+ }
+ {
+ final Text text = new Text(group, SWT.BORDER);
+ text.setEnabled(false);
+ final GridData gridData = new
GridData(GridData.HORIZONTAL_ALIGN_FILL);
+ gridData.horizontalSpan = 2;
+ text.setLayoutData(gridData);
+ text.setText(env.getMerlinHome());
+ }
+ }
+ {
+ final Group group = new Group(area, SWT.NONE);
+ group.setLayoutData(new
GridData(GridData.HORIZONTAL_ALIGN_FILL));
+ group.setText("Standard Properties");
+ final GridLayout gridLayout = new GridLayout();
+ group.setLayout(gridLayout);
+ {
+ final Button button = new Button(group, SWT.CHECK);
+ button.setText("Show Infoheader at Startup");
+ }
+ {
+ final Button button = new Button(group, SWT.CHECK);
+ button.setText("Show Debug Informations");
+ }
+ }
+
+ return null;
+ }
+ public void init(IWorkbench workbench) {
+
+ env = new MerlinContainerEnvironment();
+ }
+
+ protected void performApply() {
+
+ }
+ protected void performDefaults() {
+ env.setAvalonDefaultsHome();
+ env.setMerlinDefaultsHome();
+ }
+
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/MerlinDeveloperUI.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/MerlinDeveloperUI.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,137 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.ui;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPluginDescriptor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development
Team</a>
+ * The main plugin class to be used in the desktop.
+ */
+public class MerlinDeveloperUI extends AbstractUIPlugin
+{
+ //The shared instance.
+ private static MerlinDeveloperUI plugin;
+ //Resource bundle.
+ private ResourceBundle resourceBundle;
+ public static final String PLUGIN_ID =
"org.apache.avalon.MerlinDeveloperUI";
+ /**
+ * The constructor.
+ */
+ public MerlinDeveloperUI(IPluginDescriptor descriptor)
+ {
+ super(descriptor);
+ plugin = this;
+ try
+ {
+ resourceBundle =
+ ResourceBundle.getBundle(
+
"org.apache.avalon.ide.eclipse.merlin.ui.MerlinDeveloperUIResources");
+ } catch (MissingResourceException x)
+ {
+ resourceBundle = null;
+ }
+ }
+
+ /**
+ * Returns the shared instance.
+ */
+ public static MerlinDeveloperUI getDefault()
+ {
+ return plugin;
+ }
+
+ /**
+ * Returns the workspace instance.
+ */
+ public static IWorkspace getWorkspace()
+ {
+ return ResourcesPlugin.getWorkspace();
+ }
+
+ /**
+ * Returns the string from the plugin's resource bundle, or 'key' if
not
+ * found.
+ */
+ public static String getResourceString(String key)
+ {
+ ResourceBundle bundle =
MerlinDeveloperUI.getDefault().getResourceBundle();
+ try
+ {
+ return (bundle != null ? bundle.getString(key) : key);
+ } catch (MissingResourceException e)
+ {
+ return key;
+ }
+ }
+
+ /**
+ * Returns the plugin's resource bundle,
+ */
+ public ResourceBundle getResourceBundle()
+ {
+ return resourceBundle;
+ }
+
+ public static void log(IStatus status)
+ {
+ getDefault().getLog().log(status);
+ }
+
+ public static void log(Throwable e, String message)
+ {
+ boolean isDebugging = true; // change to false for production
+ IStatus status =
+ new Status(
+ IStatus.ERROR,
+ getDefault().getDescriptor().getUniqueIdentifier(),
+ IStatus.ERROR,
+ message,
+ e);
+
+ log(status);
+ if (isDebugging)
+ {
+ System.out.println(message + ": " + e.getMessage());
//$NON-NLS-1$
+ }
+ }
+
+ public static ImageDescriptor getImageDescriptor(String path)
+ {
+ try
+ {
+ URL prefix =
MerlinDeveloperUI.getDefault().getDescriptor().getInstallURL();
+ return ImageDescriptor.createFromURL(new URL(prefix, path));
+ } catch (MalformedURLException e)
+ {
+ log(e, "getResourceBundle() handling MalformedURLException");
//$NON-NLS-1$
+ return null;
+ }
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/MerlinDeveloperUIResources.properties
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/MerlinDeveloperUIResources.properties
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,45 @@
+#########################################
+#
+#
+#
+# Copyright 2004. 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.
+#
+#
+#
+#########################################
+
+new.MerlinDevelopment.window.title=New Merlin Project
+new.MerlinDevelopment.errorDialog.title=Error
+new.MerlinDevelopment.mainPage.title=Merlin Block Development
+new.MerlinDevelopment.mainPage.description=Create a project to develop
blocks for the Merlin container
+new.MerlinDevelopment.selectionPage.title=Project Selection Page
+new.MerlinDevelopment.selectionPage.description=Select a type of project you
want to create.
+new.MerlinDevelopment.containerPage.title=Project Details
+new.MerlinDevelopment.containerPage.description=Enter required data to
create your Merlin project
+javadoc.avalon.component=mark a class as merlin component
+javadoc.avalon.component.tag=avalon.component name="xx" version="1.0.0"
livestyle="singleton"
+javadoc.avalon.dependency=defines a dependency
+javadoc.avalon.dependency.tag=avalon.dependency type="xx" key="yy"
+javadoc.avalon.service.tag=avalon.service type="xx" version="1.0.0"
+javadoc.avalon.service=defines the service interface
+javadoc.avalon.entry.tag=avalon.entry entry="urn:avalon:xx"
+javadoc.avalon.entry=defines an entry for special context values
+javadoc.avalon.stage=define lifecycle extensions
+javadoc.avalon.stage.tag=avalon.stage id="urn:name:type"
+javadoc.avalon.extension=definition of an extension
+javadoc.avalon.extension.tag=avalon.extension id="urn:name:type"
+javadoc.avalon.logger.tag=avalon.logger name="xx.yy"
+javadoc.avalon.logger=defines a logger
+

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools/AvalonProposals.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools/AvalonProposals.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,141 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.ui.tools;
+
+import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.contentassist.IContextInformation;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+
+/**
+ * @author Andreas Develop
+ *
+ */
+public class AvalonProposals implements IJavaCompletionProposal
+{
+ private int p_offset;
+ private int p_length;
+ private String key;
+ private String proposal;
+ private String tag;
+
+ /**
+ *
+ */
+ public AvalonProposals()
+ {
+ super();
+ }
+ public AvalonProposals(int off, int len)
+ {
+ p_offset = off;
+ p_length = len;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.jdt.ui.text.java.IJavaCompletionProposal#getRelevance()
+ */
+ public int getRelevance()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.jface.text.contentassist.ICompletionProposal#apply(org.eclipse.jface.text.IDocument)
+ */
+ public void apply(IDocument pDocument)
+ {
+ try
+ {
+ pDocument.replace(p_offset, 0, tag);
+ } catch (BadLocationException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.jface.text.contentassist.ICompletionProposal#getSelection(org.eclipse.jface.text.IDocument)
+ */
+ public Point getSelection(IDocument pDocument)
+ {
+
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.jface.text.contentassist.ICompletionProposal#getAdditionalProposalInfo()
+ */
+ public String getAdditionalProposalInfo()
+ {
+ return proposal;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.jface.text.contentassist.ICompletionProposal#getDisplayString()
+ */
+ public String getDisplayString()
+ {
+
+ return key;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.jface.text.contentassist.ICompletionProposal#getImage()
+ */
+ public Image getImage()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.jface.text.contentassist.ICompletionProposal#getContextInformation()
+ */
+ public IContextInformation getContextInformation()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ /**
+ * @param pString
+ */
+ public void setKey(String pString)
+ {
+ key = pString;
+ }
+ /**
+ * @param pString
+ */
+ public void setDescription(String pString)
+ {
+ proposal = pString;
+ }
+ /**
+ * @param pString
+ */
+ public void setTag(String pString)
+ {
+ tag = pString;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools/ExampleBuilder.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools/ExampleBuilder.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,66 @@
+/*
+ * One has to add the builder to a project first.
+ *
+ IProjectDescription desc = project.getDescription();
+ ICommand[] commands = desc.getBuildSpec();
+ boolean found = false;
+
+ for (int i = 0; i < commands.length; ++i) {
+ if (commands[i].getBuilderName().equals(BUILDER_ID)) {
+ found = true;
+ break;
+ }
+ }
+ if (!found) {
+ //add builder to project
+ ICommand command = desc.newCommand();
+ command.setBuilderName(BUILDER_ID);
+ ICommand[] newCommands = new ICommand[commands.length + 1];
+
+ // Add it before other builders.
+ System.arraycopy(commands, 0, newCommands, 1, commands.length);
+ newCommands[0] = command;
+ desc.setBuildSpec(newCommands);
+ project.setDescription(desc, null);
+ }
+
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.ui.tools;
+
+import java.util.Map;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+/**
+ * @author Andreas Develop
+ *
+ * To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+public class ExampleBuilder extends IncrementalProjectBuilder
+{
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.resources.IncrementalProjectBuilder#build(int,
java.util.Map, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ protected IProject[] build(int pKind, Map pArgs, IProgressMonitor
pMonitor) throws CoreException
+ {
+ System.out.println("here");
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ *
+ */
+ public ExampleBuilder()
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools/ImageViewerEditor.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools/ImageViewerEditor.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,253 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+
+package org.apache.avalon.ide.eclipse.merlin.ui.tools;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.eclipse.ui.part.FileEditorInput;
+public class ImageViewerEditor extends EditorPart
+{
+
+ private Label imageLabel;
+ private FileEditorInput input;
+ private Image originalImage;
+ private double factor;
+ private Composite cImage;
+
+ public ImageViewerEditor()
+ {
+ super();
+ }
+ public void dispose()
+ {
+
+ if (originalImage != null)
+ {
+ originalImage.dispose();
+ }
+ }
+ /*
+ * (non-Javadoc)
+ *
+ * @see
org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public void doSave(IProgressMonitor pMonitor)
+ {}
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.EditorPart#doSaveAs()
+ */
+ public void doSaveAs()
+ {
+ // TODO Auto-generated method stub
+
+ }
+ /*
+ * (non-Javadoc)
+ *
+ * @see
org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
+ * org.eclipse.ui.IEditorInput)
+ */
+ public void init(IEditorSite pSite, IEditorInput pInput) throws
PartInitException
+ {
+ input = (FileEditorInput) pInput;
+ this.setSite(pSite);
+ this.setInput(pInput);
+
+ }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.EditorPart#isDirty()
+ */
+ public boolean isDirty()
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+ */
+ public boolean isSaveAsAllowed()
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+ /*
+ * (non-Javadoc)
+ *
+ * @see
org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+ */
+ public void createPartControl(Composite pParent)
+ {
+
+ pParent.setLayoutData(new FillLayout());
+
+ Composite cMain = new Composite(pParent, SWT.NONE);
+ cMain.setLayoutData(new GridData(GridData.FILL_BOTH));
+ cMain.setLayout(new GridLayout());
+
+ // Bar composite
+ {
+ final Composite composite = new Composite(cMain, SWT.BORDER);
+ composite.setBackground(new Color(null, 192, 192, 192));
+ final GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+ gridData.heightHint = 30;
+ composite.setLayoutData(gridData);
+ final GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 8;
+ composite.setLayout(gridLayout);
+ {
+ final Label label = new Label(composite, SWT.NONE);
+ label.setBackground(new Color(null, 192, 192, 192));
+ label.setText("Zoom");
+ }
+ {
+ final Combo combo = new Combo(composite, SWT.NONE);
+ combo.addSelectionListener(new SelectionAdapter()
+ {
+ public void widgetSelected(SelectionEvent e)
+ {
+ int f = Integer.parseInt(((Combo)
e.getSource()).getText());
+ factor = f / 100.0;
+ showImage(factor);
+ cImage.setSize(cImage.computeSize(SWT.DEFAULT,
SWT.DEFAULT));
+ }
+ });
+
+ final GridData gridData_1 = new GridData();
+ gridData_1.widthHint = 40;
+ combo.setLayoutData(gridData_1);
+ combo.setItems(
+ new String[] { "50", "60", "70", "80", "90", "100",
"110", "120", "150" });
+ combo.setText("100");
+ factor = 1;
+ }
+ {
+ final Button button = new Button(composite, SWT.NONE);
+ button.setText("in");
+ }
+ {
+ final Button button = new Button(composite, SWT.NONE);
+ button.setText("out");
+ }
+ {
+ final Label label = new Label(composite, SWT.RIGHT);
+ final GridData gridData_1 = new
GridData(GridData.HORIZONTAL_ALIGN_END);
+ gridData_1.widthHint = 80;
+ label.setLayoutData(gridData_1);
+ label.setBackground(new Color(null, 192, 192, 192));
+ label.setText("image size:");
+ }
+ {
+ final Label label = new Label(composite, SWT.NONE);
+ final GridData gridData_1 = new GridData();
+ gridData_1.widthHint = 30;
+ label.setLayoutData(gridData_1);
+ label.setBackground(new Color(null, 192, 192, 192));
+ label.setText("0");
+ }
+ {
+ final Label label = new Label(composite, SWT.NONE);
+ final GridData gridData_1 = new GridData();
+ gridData_1.widthHint = 30;
+ label.setLayoutData(gridData_1);
+ label.setBackground(new Color(null, 192, 192, 192));
+ label.setText("0");
+ }
+ }
+
+ // Scroll area
+ {
+ Composite cScroll = new Composite(cMain, SWT.NONE);
+ final GridData gridData = new GridData(GridData.FILL_BOTH);
+ cScroll.setLayoutData(gridData);
+ cScroll.setLayout(new FillLayout());
+ ScrolledComposite sc =
+ new ScrolledComposite(cScroll, SWT.H_SCROLL | SWT.V_SCROLL |
SWT.BORDER);
+ sc.setAlwaysShowScrollBars(true);
+ // image composite
+ cImage = new Composite(sc, SWT.NONE);
+ sc.setContent(cImage);
+ cImage.setLayout(new FillLayout());
+
+ // create image
+ imageLabel = new Label(cImage, SWT.NONE);
+ String location = input.getFile().getLocation().toString();
+ originalImage = new Image(Display.getDefault(), location);
+ showImage(factor);
+ cImage.setSize(cImage.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+ }
+ }
+
+ /**
+ * @param pFactor
+ */
+ protected void showImage(double pFactor)
+ {
+ Image tmp = imageLabel.getImage();
+ if (tmp != null)
+ {
+ tmp.dispose();
+ }
+ int width = originalImage.getBounds().width;
+ int height = originalImage.getBounds().height;
+
+ Image scaled =
+ new Image(
+ Display.getDefault(),
+ originalImage.getImageData().scaledTo(
+ (int) (width * pFactor),
+ (int) (height * pFactor)));
+
+ imageLabel.setImage(scaled);
+
+ }
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+ */
+ public void setFocus()
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools/JavadocProcessor.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools/JavadocProcessor.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,93 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.ui.tools;
+
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.ResourceBundle;
+
+import org.apache.avalon.ide.eclipse.merlin.ui.MerlinDeveloperUI;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
+import org.eclipse.jdt.ui.text.java.IJavadocCompletionProcessor;
+import org.eclipse.jface.text.contentassist.IContextInformation;
+
+/**
+ * @author Andreas Develop
+ *
+ */
+public class JavadocProcessor implements IJavadocCompletionProcessor
+{
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.jdt.ui.text.java.IJavadocCompletionProcessor#computeContextInformation(org.eclipse.jdt.core.ICompilationUnit,
int)
+ */
+ public IContextInformation[] computeContextInformation(ICompilationUnit
cUnit, int offset)
+ {
+ //
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.jdt.ui.text.java.IJavadocCompletionProcessor#computeCompletionProposals(org.eclipse.jdt.core.ICompilationUnit,
int, int, int)
+ */
+ public IJavaCompletionProposal[] computeCompletionProposals(
+ ICompilationUnit cUnit,
+ int offset,
+ int length,
+ int flags)
+ {
+ // TODO Auto-generated method stub
+ List props = new ArrayList();
+
+ ResourceBundle bundle =
MerlinDeveloperUI.getDefault().getResourceBundle();
+ Enumeration enum = bundle.getKeys();
+ while (enum.hasMoreElements())
+ {
+ String key = (String) enum.nextElement();
+ if (key.startsWith("javadoc.avalon") && (! key.endsWith(".tag")))
+ {
+ AvalonProposals prop = new AvalonProposals(offset, length);
+ prop.setKey("@" + key.substring(8,key.length()));
+
prop.setDescription(MerlinDeveloperUI.getResourceString(key));
+ prop.setTag(MerlinDeveloperUI.getResourceString(key +
".tag"));
+ props.add(prop);
+ }
+ }
+ return (IJavaCompletionProposal[]) props.toArray(new
AvalonProposals[props.size()]);
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.jdt.ui.text.java.IJavadocCompletionProcessor#getErrorMessage()
+ */
+ public String getErrorMessage()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+ /**
+ *
+ */
+ public JavadocProcessor()
+ {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewMerlinNatureWizard.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewMerlinNatureWizard.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,76 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.wizards;
+
+import java.lang.reflect.InvocationTargetException;
+
+import
org.apache.avalon.ide.eclipse.merlin.operation.AbstractGeneratorOperation;
+import org.apache.avalon.ide.eclipse.merlin.ui.MerlinDeveloperUI;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development
Team</a> *
+ */
+public class NewMerlinNatureWizard extends NewProjectWizard
+{
+
+ public boolean canFinish()
+ {
+ IWizardPage page = getContainer().getCurrentPage();
+ if (page == getProjectPage())
+ return false;
+ if (page == getSelectionPage())
+ return false;
+ if (page == getContainerPage() &&
getContainerPage().isPageComplete())
+ return true;
+ return false;
+ }
+
+ public boolean performFinish()
+ {
+ AbstractGeneratorOperation runnable = new
AbstractGeneratorOperation();
+ IRunnableWithProgress op = new
WorkspaceModifyDelegatingOperation(runnable);
+ try
+ {
+ getContainer().run(false, true, op);
+ } catch (InterruptedException e)
+ {
+ MerlinDeveloperUI.log(e, "performFinish() handling
InterruptedException"); //$NON-NLS-1$
+ return false;
+ } catch (InvocationTargetException e)
+ {
+ Throwable realException = e.getTargetException();
+ MerlinDeveloperUI.log(realException, "performFinish() handling
InvocationTargetException"); //$NON-NLS-1$
+ MessageDialog.openError(getShell(),
MerlinDeveloperUI.getResourceString("NewWebAppProjectWizard.errorDialog.title"),
realException.getMessage()); //$NON-NLS-1$
+ return false;
+ }
+ return true;
+ }
+
+ public void init(IWorkbench workbench, IStructuredSelection selection)
+ {
+
setWindowTitle(MerlinDeveloperUI.getResourceString("new.blockDevelopment.window.title"));
//$NON-NLS-1$
+
setDefaultPageImageDescriptor(MerlinDeveloperUI.getImageDescriptor("icons/full/wizban/newjprj_wiz.gif"));
//$NON-NLS-1$
+ }
+
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewMerlinProjectSelectionPage.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewMerlinProjectSelectionPage.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,291 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.wizards;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.avalon.ide.eclipse.core.resource.ProjectResourceManager;
+import org.apache.avalon.ide.eclipse.core.xmlmodel.ProjectModel;
+import org.apache.avalon.ide.eclipse.core.xmlmodel.ProjectModelConfiguration;
+import org.apache.avalon.ide.eclipse.merlin.ui.MerlinDeveloperUI;
+import
org.apache.avalon.ide.eclipse.merlin.wizards.WizardUtil.SelectionPageCellModifier;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.CheckboxCellEditor;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.pde.internal.ui.elements.ListContentProvider;
+import org.eclipse.pde.internal.ui.parts.FormBrowser;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.BusyIndicator;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development
Team</a>
+ */
+public class NewMerlinProjectSelectionPage extends WizardPage implements
ISelectionChangedListener
+{
+
+ private WizardSelectedAction doubleClickAction = new
WizardSelectedAction();
+ private FormBrowser text;
+ private TableViewer projectTabel;
+ private ProjectModel finalSelection;
+ private List projectModels;
+
+
+ private class WizardSelectedAction extends Action
+ {
+ public WizardSelectedAction()
+ {
+ super("wizardSelection");
+ }
+ }
+
+ public NewMerlinProjectSelectionPage(String pageName)
+ {
+ super(pageName);
+ setPageComplete(false);
+ }
+
+ /**
+ * Main method to create all controls of this page. This method is
called
+ * by the wizard framework.
+ *
+ * @see
org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ public void createControl(Composite parent)
+ {
+ Composite composite = new Composite(parent, SWT.NULL);
+ composite.setLayout(new GridLayout());
+ composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ createContainerGroup(composite);
+ setPageComplete(false);
+ setErrorMessage(null);
+ setMessage(null);
+ setControl(composite);
+ }
+
+ /**
+ * create all controls.
+ *
+ * @param pParent
+ * (Composite)
+ */
+ protected void createContainerGroup(Composite parent)
+ {
+ Composite area = new Composite(parent, SWT.NULL);
+ final GridLayout gridLayout = new GridLayout();
+ gridLayout.makeColumnsEqualWidth = true;
+ gridLayout.numColumns = 2;
+ area.setLayout(gridLayout);
+ area.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ {
+ /**
+ * Titel for all controls
+ */
+ final Label label = new Label(area, SWT.NONE);
+ final GridData gridData = new GridData();
+ gridData.horizontalSpan = 2;
+ label.setLayoutData(gridData);
+ label.setText("available generator wizards");
+ }
+ {
+ /**
+ * Tabel for Project Types
+ */
+ Table table = createTable(area);
+ projectTabel = new TableViewer(table);
+ projectTabel.setColumnProperties(new String []{"", "", ""});
+ projectTabel.setContentProvider(new ListContentProvider());
+ projectTabel.setLabelProvider(WizardUtil.TABLE_LABEL_PROVIDER);
+ // Set the cell modifier for the viewer
+ projectTabel.setCellModifier(new
SelectionPageCellModifier(this));
+ // Create the cell editors
+ CellEditor[] editors = new CellEditor[1];
+ // Column 1 : Completed (Checkbox)
+ editors[0] = new CheckboxCellEditor(table);
+ // Assign the cell editors to the viewer
+ projectTabel.setCellEditors(editors);
+
+ projectTabel.addDoubleClickListener(new IDoubleClickListener()
+ {
+ public void doubleClick(DoubleClickEvent event)
+ {
+ doubleClickAction.run();
+ }
+ });
+ projectTabel.addSelectionChangedListener(this);
+
+ // list view pane. Add a border to the pane.
+ projectTabel.getControl().setLayoutData(new
GridData(GridData.FILL_BOTH));
+
+ // Add the editors and images to the table
+
+ }
+
+ {
+ /**
+ * HTML Text Editor foe showing the project description
+ */
+ text = new FormBrowser(SWT.BORDER | SWT.V_SCROLL);
+ text.createControl(area);
+ final GridData gridData = new GridData(GridData.FILL_BOTH);
+ Control c = text.getControl();
+ c.setLayoutData(gridData);
+ }
+
+ /**
+ * Fill values to the Table
+ */
+
+ // Get the Metainfo for the NewProjectWizards
+ ProjectModelConfiguration projectConfig =
+ ProjectResourceManager.getProjectModelConfiguration(
+ "/properties/newProjectWizard.xcfg",
+ MerlinDeveloperUI.PLUGIN_ID);
+
+ // show all avalilable ProjectTypes
+ projectModels = projectConfig.getProjectModels();
+ Iterator it = projectModels.iterator();
+
+ while (it.hasNext())
+ {
+ ProjectModel meta = (ProjectModel) it.next();
+ projectTabel.add(meta);
+ }
+ if (projectConfig.getProjectModels().size() > 0)
+ {
+ text.setText(((ProjectModel)
projectConfig.getProjectModels().get(0)).getDescription());
+ ((Table) projectTabel.getControl()).select(0);
+ finalSelection = (ProjectModel)
projectConfig.getProjectModels().get(0);
+ }
+ /**
+ * End filling the values
+ */
+
+ }
+
+ public TableViewer getProjectTable(){
+ return projectTabel;
+ }
+
+ /**
+ * Create the Table Control, which is part of the TableViewer
+ * @param pParent
+ * @param pStyle
+ * @return
+ */
+ private Table createTable(Composite parent)
+ {
+ int style = SWT.SINGLE | SWT.BORDER |
+ SWT.FULL_SELECTION | SWT.HIDE_SELECTION;
+
+ Table table = new Table(parent, style);
+
+ TableColumn column = new TableColumn(table, SWT.NONE, 0);
+ column.setWidth(22);
+ column = new TableColumn(table, SWT.NONE, 1);
+ column.setWidth(20);
+ column = new TableColumn(table, SWT.NONE, 2);
+ column.setWidth(150);
+ TableLayout layout = new TableLayout();
+ //layout.addColumnData(new ColumnWeightData(100));
+ table.setLayout(layout);
+ return table;
+ }
+
+ public void selectionChanged(SelectionChangedEvent event)
+ {
+ setErrorMessage(null);
+ IStructuredSelection selection = (IStructuredSelection)
event.getSelection();
+ ProjectModel currentSelectedWizard = null;
+ Iterator iter = selection.iterator();
+
+ if (iter.hasNext())
+ currentSelectedWizard = (ProjectModel) iter.next();
+ if (currentSelectedWizard == null)
+ {
+ text.setText("");
+ return;
+ }
+ finalSelection = currentSelectedWizard;
+
+ BusyIndicator.showWhile(projectTabel.getControl().getDisplay(), new
Runnable()
+ {
+ public void run()
+ {
+
+ text.setText(finalSelection.getDescription());
+
+ }
+ });
+
+ }
+
+ /**
+ * @return the selected projectModel
+ */
+ public ProjectModel getSelectedProjectModel()
+ {
+ return finalSelection;
+ }
+
+ /**
+ * Called by the main Wizard to check, whether one can call the next
wizard
+ * page.
+ *
+ * @see org.eclipse.jface.wizard.IWizardPage#isPageComplete()
+ */
+ public boolean isPageComplete()
+ {
+
+ return (finalSelection != null);
+ }
+
+ /**
+ * @param pTask
+ */
+ public void updateTable(ProjectModel pTask)
+ {
+ Iterator it = projectModels.iterator();
+ while(it.hasNext()){
+ ProjectModel model = (ProjectModel)it.next();
+ if(model.isSelected() && !(model.equals(pTask))){
+ model.setSelected(false);
+ projectTabel.update(model, new String[]{"",""});
+ }
+ }
+
+ projectTabel.update(pTask, new String[]{"",""});
+ }
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewMerlinProjectWizard.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewMerlinProjectWizard.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,87 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.wizards;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.apache.avalon.ide.eclipse.core.tools.DynProjectParam;
+import
org.apache.avalon.ide.eclipse.merlin.operation.AbstractGeneratorOperation;
+import org.apache.avalon.ide.eclipse.merlin.ui.MerlinDeveloperUI;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development
Team</a>*
+ */
+public class NewMerlinProjectWizard extends NewProjectWizard
+{
+
+ public boolean canFinish()
+ {
+ IWizardPage page = getContainer().getCurrentPage();
+ if (page == getProjectPage())
+ return false;
+ if (page == getSelectionPage())
+ return false;
+ if (page == getContainerPage() && page.isPageComplete())
+ return true;
+ return false;
+ }
+
+ public boolean performFinish()
+ {
+ // collect all entered data from wizard pages.
+ DynProjectParam param = new DynProjectParam();
+ param.setProjectName(getProjectPage().getProjectName());
+ param.setContainerName(getContainerPage().getContainerName());
+ param.setVirtualServiceName(getContainerPage().getServiceName());
+
param.setFullServiceClassName(getContainerPage().getServiceClassName());
+
param.setFullImplementationClassName(getContainerPage().getComponentClassName());
+ param.setVersion(getContainerPage().getVersion());
+
+ AbstractGeneratorOperation operation =
+ new AbstractGeneratorOperation(param,
getSelectionPage().getSelectedProjectModel());
+ IRunnableWithProgress op = new
WorkspaceModifyDelegatingOperation(operation);
+ try
+ {
+ getContainer().run(false, true, op);
+ } catch (InterruptedException e)
+ {
+ MerlinDeveloperUI.log(e, "performFinish() handling
InterruptedException"); //$NON-NLS-1$
+ return false;
+ } catch (InvocationTargetException e)
+ {
+ Throwable realException = e.getTargetException();
+ MerlinDeveloperUI.log(realException, "performFinish() handling
InvocationTargetException"); //$NON-NLS-1$
+ MessageDialog.openError(getShell(),
MerlinDeveloperUI.getResourceString("new.MerlinDevelopment.errorDialog.title"),
realException.getMessage()); //$NON-NLS-1$
+ return false;
+ }
+ return true;
+ }
+
+ public void init(IWorkbench workbench, IStructuredSelection selection)
+ {
+
setWindowTitle(MerlinDeveloperUI.getResourceString("new.blockDevelopment.window.title"));
//$NON-NLS-1$
+
setDefaultPageImageDescriptor(MerlinDeveloperUI.getImageDescriptor("icons/full/wizban/newjprj_wiz.gif"));
//$NON-NLS-1$
+ }
+
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewMerlinProjectWizardPage.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewMerlinProjectWizardPage.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,259 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.wizards;
+
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.FocusAdapter;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development
Team</a> *
+ */
+public class NewMerlinProjectWizardPage extends WizardPage implements
Listener
+{
+
+ private Text containerName;
+ private Text version;
+ private Text serviceName;
+ private Text serviceClassName;
+ private Text componentClassName;
+ private Label help;
+
+ public NewMerlinProjectWizardPage(String pageName)
+ {
+ super(pageName);
+ this.setPageComplete(false);
+ }
+
+ public void createControl(Composite parent)
+ {
+ Composite composite = new Composite(parent, SWT.NULL);
+ composite.setLayout(new GridLayout());
+ composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+ setPageComplete(false);
+
+ createControls(composite);
+
+ setControl(composite);
+ }
+
+ protected void createControls(Composite area)
+ {
+
+ {
+ final Group group = new Group(area, SWT.NONE);
+ group.setText("Container");
+ final GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+ group.setLayoutData(gridData);
+ final GridLayout gridLayout_1 = new GridLayout();
+ gridLayout_1.numColumns = 2;
+ group.setLayout(gridLayout_1);
+ {
+ final Label label = new Label(group, SWT.NONE);
+ label.setText("Name:");
+ }
+ {
+ containerName = new Text(group, SWT.BORDER);
+ final GridData gridData_1 = new
GridData(GridData.FILL_HORIZONTAL);
+ gridData_1.horizontalSpan = 1;
+ containerName.setLayoutData(gridData_1);
+ }
+ {
+ final Label label = new Label(group, SWT.NONE);
+ final GridData gridData_1 = new GridData();
+ gridData_1.widthHint = 86;
+ label.setLayoutData(gridData_1);
+ label.setText("Version:");
+ }
+ {
+ version = new Text(group, SWT.BORDER);
+ final GridData gridData_1 = new GridData();
+ gridData_1.widthHint = 130;
+ version.setLayoutData(gridData_1);
+ }
+ }
+ {
+ final Group group = new Group(area, SWT.NONE);
+ group.setText("Service");
+ group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ final GridLayout gridLayout_1 = new GridLayout();
+ gridLayout_1.numColumns = 2;
+ group.setLayout(gridLayout_1);
+ {
+ final Label label = new Label(group, SWT.NONE);
+ label.setText("Name:");
+ }
+ {
+ serviceName = new Text(group, SWT.BORDER);
+ final GridData gridData = new GridData();
+ gridData.widthHint = 130;
+ serviceName.setLayoutData(gridData);
+ }
+ {
+ final Label label = new Label(group, SWT.NONE);
+ label.setText("Service Class:");
+ }
+ {
+ serviceClassName = new Text(group, SWT.BORDER);
+ serviceClassName.addFocusListener(new FocusAdapter()
+ {
+ public void focusGained(FocusEvent e)
+ {
+ setMessage("Please enter the fully qualified
classname of the service without the '.java' extension");
+ }
+ public void focusLost(FocusEvent e)
+ {
+ setMessage(null);
+ if (componentClassName.getText().length() > 0)
+ checkClassName(serviceClassName);
+ }
+ });
+ final GridData gridData = new
GridData(GridData.FILL_HORIZONTAL);
+ gridData.horizontalSpan = 1;
+ serviceClassName.setLayoutData(gridData);
+ }
+ {
+ final Label label = new Label(group, SWT.NONE);
+ label.setText("Component Class:");
+ }
+ {
+ componentClassName = new Text(group, SWT.BORDER);
+ componentClassName.addFocusListener(new FocusAdapter()
+ {
+ public void focusGained(FocusEvent e)
+ {
+ setMessage("Please enter the fully qualified
classname of the component without the '.java' extension");
+ }
+ public void focusLost(FocusEvent e)
+ {
+ setMessage(null);
+ if (componentClassName.getText().length() > 0)
+ checkClassName(componentClassName);
+ }
+ });
+ componentClassName.addModifyListener(new ModifyListener()
+ {
+ public void modifyText(ModifyEvent e)
+ {
+ setMessage(null);
+ if (componentClassName.getText().indexOf('.') > 0)
+ {
+ setPageComplete(true);
+ } else
+ {
+ setPageComplete(false);
+ }
+ }
+ });
+
+ componentClassName.setLayoutData(new
GridData(GridData.HORIZONTAL_ALIGN_FILL));
+ }
+ }
+ }
+
+ protected void checkClassName(Text textField)
+ {
+
+ if (textField.getText().endsWith(".java"))
+ {
+ setErrorMessage("Please enter the class name without '.java'
extension");
+ setPageComplete(false);
+ return;
+ }
+ if (textField.getText().indexOf('.') < 0)
+ {
+ setErrorMessage("Please give a package name. A default package
is not allowed");
+ textField.selectAll();
+ textField.setFocus();
+ setPageComplete(false);
+ } else
+ {
+ setPageComplete(true);
+ setMessage(null);
+ setErrorMessage(null);
+ }
+ }
+
+ /**
+ * @return the ContainerName text value
+ */
+ public String getContainerName()
+ {
+ return containerName.getText();
+ }
+
+ /**
+ * @return the version number
+ */
+ public String getVersion()
+ {
+ return version.getText();
+ }
+
+ /**
+ * @return the serviceName text value
+ */
+ public String getServiceName()
+ {
+ return serviceName.getText();
+ }
+
+ /**
+ * @return the serviceClassName text value
+ */
+ public String getServiceClassName()
+ {
+ return serviceClassName.getText();
+ }
+
+ /**
+ * @return the componentClassName text value
+ */
+ public String getComponentClassName()
+ {
+ return componentClassName.getText();
+ }
+
+ public void setVisible(boolean visible)
+ {
+ super.setVisible(visible);
+ if (visible)
+ containerName.setFocus();
+ }
+
+ /* (non-Javadoc)
+ * @see
org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
+ */
+ public void handleEvent(Event pEvent)
+ {
+ // Nothing to right now
+
+ }
+
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewProjectWizard.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/NewProjectWizard.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,88 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.wizards;
+
+import org.apache.avalon.ide.eclipse.merlin.ui.MerlinDeveloperUI;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
+//import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development Team</a>
+ */
+public class NewProjectWizard extends Wizard implements INewWizard
+{
+
+ private WizardNewProjectCreationPage projectPage;
+ private NewMerlinProjectWizardPage containerPage;
+ private NewMerlinProjectSelectionPage selectionPage;
+
+ public void addPages()
+ {
+ projectPage = new WizardNewProjectCreationPage("mainPage");
//$NON-NLS-1$
+
projectPage.setTitle(MerlinDeveloperUI.getResourceString("new.MerlinDevelopment.mainPage.title"));
//$NON-NLS-1$
+
projectPage.setDescription(MerlinDeveloperUI.getResourceString("new.MerlinDevelopment.mainPage.description"));
//$NON-NLS-1$
+ addPage(projectPage);
+
+ selectionPage = new NewMerlinProjectSelectionPage("selectionPage");
+
selectionPage.setTitle(MerlinDeveloperUI.getResourceString("new.MerlinDevelopment.selectionPage.title"));
//$NON-NLS-1$
+
selectionPage.setDescription(MerlinDeveloperUI.getResourceString("new.MerlinDevelopment.mainPage.description"));
//$NON-NLS-1$
+ addPage(selectionPage);
+
+ containerPage = new NewMerlinProjectWizardPage("webAppPage");
//$NON-NLS-1$
+
containerPage.setTitle(MerlinDeveloperUI.getResourceString("new.MerlinDevelopment.containerPage.title"));
//$NON-NLS-1$
+
containerPage.setDescription(MerlinDeveloperUI.getResourceString("new.MerlinDevelopment.containerPage.description"));
//$NON-NLS-1$
+ addPage(containerPage);
+
+ }
+
+ public boolean performFinish()
+ {
+ return true;
+ }
+
+ public void init(IWorkbench workbench, IStructuredSelection selection)
+ {}
+
+ /**
+ * @return
+ */
+ public NewMerlinProjectWizardPage getContainerPage()
+ {
+ return containerPage;
+ }
+
+ /**
+ * @return
+ */
+ public WizardNewProjectCreationPage getProjectPage()
+ {
+ return projectPage;
+ }
+
+ /**
+ * @return
+ */
+ public NewMerlinProjectSelectionPage getSelectionPage()
+ {
+ return selectionPage;
+ }
+}
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/WizardUtil.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards/WizardUtil.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,208 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package org.apache.avalon.ide.eclipse.merlin.wizards;
+
+import org.apache.avalon.ide.eclipse.core.xmlmodel.ProjectModel;
+import org.apache.avalon.ide.eclipse.merlin.ui.MerlinDeveloperUI;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.jface.viewers.ICellModifier;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.pde.internal.ui.elements.ElementLabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.TableItem;
+
+/**
+ * @author <a href="mailto:dev AT avalon.apache.org";>Avalon Development
Team</a>*
+ */
+public class WizardUtil
+{
+
+ /**
+ * This class is used as Labelprovider in SelectionPage
+ *
+ */
+ static class TableLabelProvider extends ElementLabelProvider implements
ITableLabelProvider
+ {
+
+ // Names of images used to represent checkboxes
+ public static final String CHECKED_IMAGE = "checked";
+ public static final String UNCHECKED_IMAGE = "unchecked";
+ public static final String MERLIN_IMAGE = "merlin";
+
+ // For the checkbox images
+ private static ImageRegistry imageRegistry = new ImageRegistry();
+
+ /**
+ * Note: An image registry owns all of the image objects
registered
+ * with it, and automatically disposes of them the SWT
Display is
+ * disposed.
+ */
+ static {
+ imageRegistry.put(
+ CHECKED_IMAGE,
+ MerlinDeveloperUI.getImageDescriptor("icons/" +
CHECKED_IMAGE + ".gif"));
+ imageRegistry.put(
+ UNCHECKED_IMAGE,
+ MerlinDeveloperUI.getImageDescriptor("icons/" +
UNCHECKED_IMAGE + ".gif"));
+ imageRegistry.put(
+ MERLIN_IMAGE,
+ MerlinDeveloperUI.getImageDescriptor("icons/" + MERLIN_IMAGE
+ ".gif"));
+
+ }
+
+ /**
+ * Returns the image with the given key, or <code>null</code>
if not
+ * found.
+ */
+ private Image getImage(boolean isSelected)
+ {
+ String key = isSelected ? CHECKED_IMAGE : UNCHECKED_IMAGE;
+ return imageRegistry.get(key);
+ }
+
+ /**
+ * show the text label
+ *
+ * @see
org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object,
+ * int)
+ */
+ public String getColumnText(Object o, int index)
+ {
+ String result = "";
+ switch (index)
+ {
+ case 0 : // COMPLETED_COLUMN
+ result = "";
+ break;
+ case 1 : // merlin icon
+ result = "";
+ break;
+ case 2 : // merlin icon
+ result = ((ProjectModel) o).getLabel();
+ break;
+ default :
+ }
+ return result;
+ }
+ /**
+ * show the icon
+ *
+ * @see
org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object,
+ * int)
+ */
+ public Image getColumnImage(Object element, int columnIndex)
+ {
+ Image result = null;
+ switch (columnIndex)
+ {
+ case 0 : // COMPLETED_COLUMN
+ result = getImage(((ProjectModel) element).isSelected());
+ break;
+ case 1 : // merlin icon
+ result = imageRegistry.get(MERLIN_IMAGE);
+ break;
+ case 2:
+ result = null;
+ break;
+ default :
+ }
+ return result;
+ }
+
+ }
+ public static class SelectionPageCellModifier implements ICellModifier
+ {
+ private NewMerlinProjectSelectionPage selectionPage;
+ private String[] columnNames;
+
+ /**
+ * Constructor
+ *
+ * @param selectionPage
+ * an instance of a selectionPage
+ */
+ public SelectionPageCellModifier(NewMerlinProjectSelectionPage
tableViewer)
+ {
+ super();
+ this.selectionPage = tableViewer;
+ }
+
+ /**
+ * @see
org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object,
+ * java.lang.String)
+ */
+ public boolean canModify(Object element, String property)
+ {
+ return true;
+ }
+
+ /**
+ * @see
org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object,
+ * java.lang.String)
+ */
+ public Object getValue(Object element, String property)
+ {
+
+ // Find the index of the column
+ int columnIndex = 0;
+
+ Object result = null;
+ ProjectModel task = (ProjectModel) element;
+
+ switch (columnIndex)
+ {
+ case 0 : // COMPLETED_COLUMN
+ result = new Boolean(task.isSelected());
+ break;
+ default :
+ result = "";
+ }
+ return result;
+ }
+
+ /**
+ * @see
org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object,
+ * java.lang.String, java.lang.Object)
+ */
+ public void modify(Object element, String property, Object value)
+ {
+
+ // Find the index of the column
+ int columnIndex = 0;
+
+ TableItem item = (TableItem) element;
+ ProjectModel task = (ProjectModel) item.getData();
+
+ switch (columnIndex)
+ {
+ case 0 : // COMPLETED_COLUMN
+ task.setSelected(((Boolean) value).booleanValue());
+ break;
+ default :
+ }
+ selectionPage.updateTable(task);
+ }
+ }
+ public static final ILabelProvider TABLE_LABEL_PROVIDER = new
TableLabelProvider();
+
+ public WizardUtil()
+ {
+ super();
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/templates/TutorialHello.Block.Template
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/templates/TutorialHello.Block.Template
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,13 @@
+<container name='%containername%'>
+
+ <classloader>
+ <classpath>
+ <repository>
+ <resource id="avalon-framework:avalon-framework-impl"
version="4.1.5"/>
+ </repository>
+ </classpath>
+ </classloader>
+
+ <component name='%virtualservicename%'
class='%implementationpackage%.%implementationclass%'/>
+
+</container>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/templates/TutorialHello.Component.template
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/templates/TutorialHello.Component.template
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,80 @@
+package %implementationpackage%;
+
+import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.framework.logger.LogEnabled;
+import org.apache.avalon.framework.activity.Disposable;
+import org.apache.avalon.framework.activity.Executable;
+import org.apache.avalon.framework.activity.Initializable;
+
+/**
+ * A sample component. This component implements a number
+ * of lifecycle interface. Each lifecycle interface is a stage
+ * that is processed by a container during the deployment of
+ * the component. The lifecycle stages demonstrated here include
+ * LogEnabled (association of a logging channel), Initializable
+ * (initialization of the component), Executable (component
+ * execution), and Disposable (componet disposal). PLease note
+ * that all lifecycle stages are optional.
+ *
+ * @avalon.component version="%version%" name="%virtualservicename%"
+ */
+public class %implementationclass%
+ implements LogEnabled, Initializable, Executable, Disposable
+{
+
+ /**
+ * Internal reference to the logging channel supplied to us
+ * by the container.
+ */
+ private Logger m_logger;
+
+ /**
+ * Supply of a logging channel by the container.
+ *
+ * @param logger the logging channel for this component
+ */
+ public void enableLogging( final Logger logger )
+ {
+ m_logger = logger;
+ getLogger().info( "logging" );
+ }
+
+ /**
+ * Initialization of the component by the container.
+ * @exception Exception if an initialization error occurs
+ */
+ public void initialize() throws Exception
+ {
+ getLogger().info( "initialization" );
+ }
+
+ /**
+ * Component execution trigger by the container following
+ * completion of the initialization stage.
+ */
+ public void execute()
+ {
+ getLogger().info( "execution" );
+ }
+
+ /**
+ * Component disposal trigger by the container during which
+ * the component will release consumed resources.
+ */
+ public void dispose()
+ {
+ getLogger().info( "disposal" );
+ m_logger = null;
+ }
+
+ /**
+ * Return the logging channel assigned to us by the container.
+ * @return the logging channel
+ */
+ private Logger getLogger()
+ {
+ return m_logger;
+ }
+
+}
+

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/templates/TutorialHello.XInfo.Template
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/templates/TutorialHello.XInfo.Template
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE type PUBLIC "-//AVALON/Type DTD Version 1.0//EN"
"http://avalon.apache.org/dtds/meta/type_1_1.dtd"; >
+
+<type>
+ <info>
+ <name>hello</name>
+ <version>1.0.0</version>
+ <lifestyle>transient</lifestyle>
+ </info>
+</type>
\ No newline at end of file

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/core/resource/AllTests.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/core/resource/AllTests.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,46 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package test.org.apache.avalon.ide.eclipse.core.resource;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * @author Andreas
+ *
+ * To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+public class AllTests
+{
+
+ public static void main(String[] args)
+ {
+ junit.textui.TestRunner.run(AllTests.class);
+ }
+
+ public static Test suite()
+ {
+ TestSuite suite =
+ new TestSuite("Test for
test.org.apache.avalon.ide.eclipse.core.resource");
+ //$JUnit-BEGIN$
+ suite.addTestSuite(ProjectResourceManagerTest.class);
+ //$JUnit-END$
+ return suite;
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/core/resource/ProjectResourceManagerTest.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/core/resource/ProjectResourceManagerTest.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,166 @@
+/*
+
+ Copyright 2004. 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.
+
+ */
+package test.org.apache.avalon.ide.eclipse.core.resource;
+
+import java.util.Iterator;
+
+import junit.framework.TestCase;
+
+import org.apache.avalon.ide.eclipse.core.resource.ProjectResourceManager;
+import org.apache.avalon.ide.eclipse.core.tools.DynProjectParam;
+import org.apache.avalon.ide.eclipse.core.xmlmodel.Directory;
+import org.apache.avalon.ide.eclipse.core.xmlmodel.ProjectModel;
+import org.apache.avalon.ide.eclipse.core.xmlmodel.ProjectModelConfiguration;
+import org.apache.avalon.ide.eclipse.merlin.launch.MerlinDeveloperLaunch;
+import org.apache.avalon.ide.eclipse.merlin.nature.MerlinProjectNature;
+import org.apache.avalon.ide.eclipse.merlin.ui.MerlinDeveloperUI;
+
+/**
+ * @author Andreas
+ *
+ * To change the template for this generated type comment go to Window -
+ * Preferences - Java - Code Generation - Code and Comments
+ */
+public class ProjectResourceManagerTest extends TestCase
+{
+ private static ProjectModelConfiguration projectConfig;
+ public static void main(String[] args)
+ {
+ junit.textui.TestRunner.run(ProjectResourceManagerTest.class);
+ }
+
+ /*
+ * Class to test for void ProjectResourceManager(String, String)
+ */
+ public void testGetProjectModelConfiguration()
+ {
+ projectConfig =
+ ProjectResourceManager.getProjectModelConfiguration(
+ "/properties/NewProjectConfigTest.xcfg",
+ MerlinDeveloperUI.PLUGIN_ID);
+
+ Iterator it = projectConfig.getProjectModels().iterator();
+ while (it.hasNext())
+ {
+ // Project 1
+ ProjectModel model = (ProjectModel) it.next();
+ this.assertEquals(model.getLabel() + "model test1 ", 4,
model.getDirectories().size());
+ // Directory1
+ Iterator d = model.getDirectories().iterator();
+ while (d.hasNext())
+ {
+ Directory dir = (Directory) d.next();
+ this.assertEquals(
+ dir.getName() + "Directory test1 (api) ",
+ 0,
+ dir.getTemplates().size());
+
+ dir = (Directory) d.next();
+ this.assertEquals(
+ dir.getName() + "Directory test2 (impl) ",
+ 0,
+ dir.getTemplates().size());
+
+ dir = (Directory) d.next();
+ this.assertEquals(
+ dir.getName() + "Directory test3 (impl/block-inf) ",
+ 1,
+ dir.getTemplates().size());
+
+ dir = (Directory) d.next();
+ this.assertEquals(
+ dir.getName() + "Directory test4 (test) ",
+ 0,
+ dir.getTemplates().size());
+ }
+ // Project2
+ model = (ProjectModel) it.next();
+ this.assertEquals(model.getLabel() + "model test2 ", 4,
model.getDirectories().size());
+ // Directory1
+ d = model.getDirectories().iterator();
+ while (d.hasNext())
+ {
+ Directory dir = (Directory) d.next();
+ this.assertEquals(
+ dir.getName() + "Directory test1 (api) ",
+ 0,
+ dir.getTemplates().size());
+
+ dir = (Directory) d.next();
+ this.assertEquals(
+ dir.getName() + "Directory test2 (impl) ",
+ 2,
+ dir.getTemplates().size());
+
+ dir = (Directory) d.next();
+ this.assertEquals(
+ dir.getName() + "Directory test3 (impl/block-inf) ",
+ 1,
+ dir.getTemplates().size());
+
+ dir = (Directory) d.next();
+ this.assertEquals(
+ dir.getName() + "Directory test4 (test) ",
+ 0,
+ dir.getTemplates().size());
+ }
+
+ // Project3
+ model = (ProjectModel) it.next();
+ this.assertEquals(model.getLabel() + "model test3 ", 0,
model.getDirectories().size());
+
+ }
+ this.assertEquals("project models test", 3,
projectConfig.getProjectModels().size());
+ }
+/*
+ * Test the creation of a new project
+ */
+ public void testCreateProject() throws Exception
+ {
+ final String projectName = "MerlinTest";
+ final String nature = MerlinDeveloperLaunch.MERLIN_PROJECT_NATURE_ID;
+ DynProjectParam param = new DynProjectParam();
+ param.setProjectName(projectName);
+ param.setContainerName("m_test");
+ param.setFullImplementationClassName("tutorial.impl.HelloWorldIml");
+ param.setFullServiceClassName("tutorial.api.HelloWorld");
+ param.setVersion("1.0.1");
+ param.setVirtualServiceName("hello world");
+
+ Iterator it = projectConfig.getProjectModels().iterator();
+ ProjectResourceManager prm = null;
+
+ while (it.hasNext())
+ {
+ prm =
+ new ProjectResourceManager(
+ (ProjectModel) it.next(),
+ param,
+ MerlinDeveloperUI.PLUGIN_ID,
+ nature);
+ }
+
+ assertEquals("test project name ", prm.getProject().getName(),
projectName);
+ assertEquals(
+ "test project nature ",
+ (prm.getProject().getNature(nature) instanceof
MerlinProjectNature),
+ true);
+
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/features/.cvsignore
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/features/.cvsignore
Fri Apr 8 13:52:15 2005
@@ -0,0 +1 @@
+*.jar

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/index.html
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/index.html
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,55 @@
+<html>
+<head>
+<title>MerlinDeveloper UpdateSite</title>
+<style>@import url("web/site.css");</style>
+<script type="text/javascript">
+ var returnval = 0;
+ var stylesheet, xmlFile, cache, doc;
+ function init(){
+ // NSCP 7.1+ / Mozilla 1.4.1+
+ // Use the standard DOM Level 2 technique, if it is supported
+ if (document.implementation &&
document.implementation.createDocument) {
+ xmlFile = document.implementation.createDocument("",
"", null);
+ stylesheet =
document.implementation.createDocument("", "", null);
+ xmlFile.load("site.xml");
+ stylesheet.load("web/site.xsl");
+ xmlFile.addEventListener("load", transform, false);
+ stylesheet.addEventListener("load", transform, false);
+ }
+ //IE 6.0+ solution
+ else if (window.ActiveXObject) {
+ xmlFile = new ActiveXObject("msxml2.DOMDocument.3.0");
+ xmlFile.async = false;
+ xmlFile.load("site.xml");
+ stylesheet = new
ActiveXObject("msxml2.FreeThreadedDOMDocument.3.0");
+ stylesheet.async = false;
+ stylesheet.load("web/site.xsl");
+ cache = new ActiveXObject("msxml2.XSLTemplate.3.0");
+ cache.stylesheet = stylesheet;
+ transformData();
+ }
+ }
+ // separate transformation function for IE 6.0+
+ function transformData(){
+ var processor = cache.createProcessor();
+ processor.input = xmlFile;
+ processor.transform();
+ data.innerHTML = processor.output;
+ }
+ // separate transformation function for NSCP 7.1+ and Mozilla 1.4.1+
+ function transform(){
+ returnval+=1;
+ if (returnval==2){
+ var processor = new XSLTProcessor();
+ processor.importStylesheet(stylesheet);
+ doc = processor.transformToDocument(xmlFile);
+ document.getElementById("data").innerHTML =
doc.documentElement.innerHTML;
+ }
+ }
+</script>
+</head>
+<body onload="init();">
+<!--[insert static HTML here]-->
+<div id="data"><!-- this is where the transformed data goes --></div>
+</body>
+</html>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/plugins/.cvsignore
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/plugins/.cvsignore
Fri Apr 8 13:52:15 2005
@@ -0,0 +1 @@
+*.jar

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/site.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/site.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+
+ <description url="http://www.apache.org/~oberhack/eclipse/updates/";>
+
+ </description>
+ <feature url="features/org.apache.avalon.developer_0.0.4.jar"
id="org.apache.avalon.developer" version="0.0.4" nl="en_US" >
+ <category name="3"/>
+ </feature>
+ <category-def name="3" label="Eclipse (2.x and 3.0)"/>
+</site>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/web/site.css
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/web/site.css
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,12 @@
+<STYLE type="text/css">
+td.spacer {padding-bottom: 10px; padding-top: 10px;}
+.title { font-family: sans-serif; color: #99AACC;}
+.bodyText { font-family: sans-serif; font-size: 9pt; color:#000000; }
+.sub-header { font-family: sans-serif; font-style: normal; font-weight:
bold; font-size: 9pt; color: white;}
+.log-text {font-family: sans-serif; font-style: normal; font-weight:
lighter; font-size: 8pt; color:black;}
+.big-header { font-family: sans-serif; font-style: normal; font-weight:
bold; font-size: 9pt; color: white; border-top:10px solid white;}
+.light-row {background:#FFFFFF}
+.dark-row {background:#EEEEFF}
+.header {background:#99AADD}
+#indent {word-wrap : break-word;width :300px;text-indent:10px;}
+</STYLE>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/web/site.xsl
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/web/site.xsl
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,214 @@
+<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
+<xsl:output method="html" encoding="ISO-8859-1"/>
+<xsl:key name="cat" match="category" use="@name"/>
+<xsl:template match="/">
+<xsl:for-each select="site">
+ <html>
+ <head>
+ <title>MerlinDeveloper UpdateSite</title>
+ <style>@import url("web/site.css");</style>
+ </head>
+ <body>
+ <h1 class="title">MerlinDeveloper UpdateSite</h1>
+ <p class="bodyText"><xsl:value-of select="description"/></p>
+ <table width="100%" border="0" cellspacing="1" cellpadding="2">
+ <xsl:for-each select="category-def">
+ <xsl:sort select="@label" order="ascending"
case-order="upper-first"/>
+ <xsl:sort select="@name" order="ascending"
case-order="upper-first"/>
+ <xsl:if test="count(key('cat',@name)) != 0">
+ <tr class="header">
+ <td class="sub-header" width="30%">
+ <xsl:value-of select="@name"/>
+ </td>
+ <td class="sub-header" width="70%">
+ <xsl:value-of select="description"/>
+ </td>
+ </tr>
+ <xsl:for-each select="key('cat',@name)">
+ <xsl:sort select="ancestor::feature//@version"
order="ascending"/>
+ <xsl:sort select="ancestor::feature//@id"
order="ascending" case-order="upper-first"/>
+ <tr>
+ <xsl:choose>
+ <xsl:when test="(position() mod 2 = 1)">
+ <xsl:attribute
name="class">dark-row</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute
name="class">light-row</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <td class="log-text" id="indent">
+ <xsl:choose>
+ <xsl:when
test="ancestor::feature//@label">
+ <a
href="{ancestor::feature//@url}"><xsl:value-of
select="ancestor::feature//@label"/></a>
+ <br/>
+ <div id="indent">
+ (<xsl:value-of
select="ancestor::feature//@id"/> - <xsl:value-of
select="ancestor::feature//@version"/>)
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <a
href="{ancestor::feature//@url}"><xsl:value-of
select="ancestor::feature//@id"/> - <xsl:value-of
select="ancestor::feature//@version"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ <br />
+ </td>
+ <td>
+ <table>
+ <xsl:if
test="ancestor::feature//@os">
+ <tr><td
class="log-text" id="indent">Operating Systems:</td>
+ <td class="log-text"
id="indent"><xsl:value-of select="ancestor::feature//@os"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if
test="ancestor::feature//@ws">
+ <tr><td
class="log-text" id="indent">Windows Systems:</td>
+ <td class="log-text"
id="indent"><xsl:value-of select="ancestor::feature//@ws"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if
test="ancestor::feature//@nl">
+ <tr><td
class="log-text" id="indent">Languages:</td>
+ <td class="log-text"
id="indent"><xsl:value-of select="ancestor::feature//@nl"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if
test="ancestor::feature//@arch">
+ <tr><td
class="log-text" id="indent">Architecture:</td>
+ <td class="log-text"
id="indent"><xsl:value-of select="ancestor::feature//@arch"/></td>
+ </tr>
+ </xsl:if>
+ </table>
+ </td>
+ </tr>
+ </xsl:for-each>
+ <tr><td class="spacer"><br/></td><td
class="spacer"><br/></td></tr>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="count(feature) &gt; count(feature/category)">
+ <tr class="header">
+ <td class="sub-header" colspan="2">
+ Uncategorized
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="function-available('msxsl:node-set')">
+ <xsl:variable name="rtf-nodes">
+ <xsl:for-each select="feature[not(category)]">
+ <xsl:sort select="@id" order="ascending"
case-order="upper-first"/>
+ <xsl:sort select="@version" order="ascending" />
+ <xsl:value-of select="."/>
+ <xsl:copy-of select="." />
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="myNodeSet"
select="msxsl:node-set($rtf-nodes)/*"/>
+ <xsl:for-each select="$myNodeSet">
+ <tr>
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 1">
+ <xsl:attribute name="class">dark-row</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="class">light-row</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <td class="log-text" id="indent">
+ <xsl:choose>
+ <xsl:when test="@label">
+ <a href="{@url}"><xsl:value-of
select="@label"/></a>
+ <br />
+ <div id="indent">
+ (<xsl:value-of select="@id"/> - <xsl:value-of
select="@version"/>)
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{@url}"><xsl:value-of select="@id"/>
- <xsl:value-of select="@version"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ <br /><br />
+ </td>
+ <td>
+ <table>
+ <xsl:if test="@os">
+ <tr><td class="log-text"
id="indent">Operating Systems:</td>
+ <td class="log-text"
id="indent"><xsl:value-of select="@os"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="@ws">
+ <tr><td class="log-text"
id="indent">Windows Systems:</td>
+ <td class="log-text"
id="indent"><xsl:value-of select="@ws"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="@nl">
+ <tr><td class="log-text"
id="indent">Languages:</td>
+ <td class="log-text"
id="indent"><xsl:value-of select="@nl"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="@arch">
+ <tr><td class="log-text"
id="indent">Architecture:</td>
+ <td class="log-text"
id="indent"><xsl:value-of select="@arch"/></td>
+ </tr>
+ </xsl:if>
+ </table>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="feature[not(category)]">
+ <xsl:sort select="@id" order="ascending" case-order="upper-first"/>
+ <xsl:sort select="@version" order="ascending" />
+ <tr>
+ <xsl:choose>
+ <xsl:when
test="count(preceding-sibling::feature[not(category)]) mod 2 = 1">
+ <xsl:attribute name="class">dark-row</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="class">light-row</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <td class="log-text" id="indent">
+ <xsl:choose>
+ <xsl:when test="@label">
+ <a href="{@url}"><xsl:value-of
select="@label"/></a>
+ <br />
+ <div id="indent">
+ (<xsl:value-of select="@id"/> - <xsl:value-of
select="@version"/>)
+ </div>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{@url}"><xsl:value-of select="@id"/>
- <xsl:value-of select="@version"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ <br /><br />
+ </td>
+ <td>
+ <table>
+ <xsl:if test="@os">
+ <tr><td class="log-text"
id="indent">Operating Systems:</td>
+ <td class="log-text"
id="indent"><xsl:value-of select="@os"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="@ws">
+ <tr><td class="log-text"
id="indent">Windows Systems:</td>
+ <td class="log-text"
id="indent"><xsl:value-of select="@ws"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="@nl">
+ <tr><td class="log-text"
id="indent">Languages:</td>
+ <td class="log-text"
id="indent"><xsl:value-of select="@nl"/></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="@arch">
+ <tr><td class="log-text"
id="indent">Architecture:</td>
+ <td class="log-text"
id="indent"><xsl:value-of select="@arch"/></td>
+ </tr>
+ </xsl:if>
+ </table>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </table>
+ </body>
+ </html>
+</xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/zip_dist/.cvsignore
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.eclipse.update/zip_dist/.cvsignore
Fri Apr 8 13:52:15 2005
@@ -0,0 +1 @@
+MerlinDeveloper_0.0.1.zip

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/build.properties
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/build.properties
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,4 @@
+source.testrepo.jar = src/
+bin.includes = plugin.xml,\
+ *.jar,\
+ testrepo.jar

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/plugin.xml
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/plugin.xml
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin
+ id="org.apache.avalon.ide.repository.testrepo"
+ name="Test Repository Plug-in"
+ version="1.0.0"
+ provider-name="Apache Software Foundation"
+ class="org.apache.avalon.ide.repository.testrepo.TestrepoPlugin">
+
+ <runtime>
+ <library name="testrepo.jar">
+ <export name="*"/>
+ </library>
+ </runtime>
+ <requires>
+ <import plugin="org.eclipse.ui.ide"/>
+ <import plugin="org.eclipse.ui.views"/>
+ <import plugin="org.eclipse.jface.text"/>
+ <import plugin="org.eclipse.ui.workbench.texteditor"/>
+ <import plugin="org.eclipse.ui.editors"/>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.apache.avalon.ide.eclipse.repository"/>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.osgi"/>
+ <import plugin="org.eclipse.osgi.util"/>
+ </requires>
+
+
+ <extension
+ point="org.apache.avalon.ide.eclipse.repository.agent">
+ <scheme
+ name="Test Repository Agent"
+
class="org.apache.avalon.ide.repository.testrepo.TestRepoRepositoryAgentFactory"
+ prefix="testrepo">
+ <description>
+ This Repository Agent only exists to aid in the creation of the
Repository View Plug-In and should not be used beyond that.
+ </description>
+ </scheme>
+ </extension>
+
+</plugin>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository/testrepo/TestRepoRepositoryAgent.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository/testrepo/TestRepoRepositoryAgent.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,564 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository.testrepo;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.Constructor;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Properties;
+import java.util.StringTokenizer;
+
+import org.apache.avalon.ide.repository.Compliance;
+import org.apache.avalon.ide.repository.RepositoryAgent;
+import org.apache.avalon.ide.repository.RepositoryAgentEvent;
+import org.apache.avalon.ide.repository.RepositoryAgentListener;
+import org.apache.avalon.ide.repository.ResourceInfo;
+import org.apache.avalon.ide.repository.Version;
+import org.apache.avalon.ide.repository.tools.common.ComplianceGroupImpl;
+import org.apache.avalon.ide.repository.tools.common.NonVersion;
+import org.apache.avalon.ide.repository.tools.common.ResourceGroupInfoImpl;
+import org.apache.avalon.ide.repository.tools.compliance.EmptyCompliance;
+import org.apache.avalon.ide.repository.tools.compliance.GenericCompliance;
+
+/** The URLRepositoryAgent is a generic RepositoryAgent for HTTP, FTP, file
and
+ * other valid URL based repositories.
+ *
+ * <p>There is at the moment a requirement that the repository must have the
following
+ * structure.</p>
+ * <pre>
+ * ./
+ * repository.meta - Properties file containing the Repository
metainfo
+ * component.list - Properties file containing all components
in the repository
+ * &lt;component-id&gt;/ - One directory for each repository.
+ * &lt;component-id&gt;/meta.data - Properties file with meta data of
the component
+ * &lt;component-id&gt;/&lt;artifacts&gt; - Each of the artifacts in the
repository.
+ * </pre>
+ * <p>
+ * The component.list properties file contains a single line for each
component in the
+ * repository. The key is equal to the component ID, and the value contains
a human
+ * readable name.
+ * </p>
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class TestRepoRepositoryAgent implements RepositoryAgent, Runnable
+{
+ private ArrayList m_ContainerTypes;
+
+ private ArrayList m_Listeners;
+
+ private boolean m_RefreshInProgress;
+ private boolean m_Available;
+ private String m_Reason;
+ private Locale m_Locale;
+
+ private URL m_RepositoryURL;
+ private HashMap m_ResourceIndex;
+
+ private String m_Name;
+ private String m_Description;
+
+ private Thread m_LoadingThread;
+
+ private ArrayList m_LoadQueue;
+
+ /** Constructor of the URL based Repository Agent.
+ *
+ */
+ public TestRepoRepositoryAgent(String url, Locale locale)
+ throws MalformedURLException, IOException
+ {
+ super();
+ m_Locale = locale;
+ if (!url.endsWith("/"))
+ url = url + "/";
+ m_RepositoryURL = new URL(url);
+ m_RefreshInProgress = false;
+ m_Available = false;
+ m_LoadQueue = new ArrayList();
+ m_Listeners = new ArrayList();
+ m_ContainerTypes = new ArrayList();
+
+ // TODO some better way to populate the types;
+ m_ContainerTypes.add( ResourceInfo.MIMETYPE_FOLDER );
+
+ m_LoadingThread = new Thread(this, "PlainURLRepository Loading");
+ m_LoadingThread.start();
+ }
+
+ /** Checks if the Repository is accessible and operational.
+ *
+ * @return true if the Repository is expected to work.
+ */
+ public boolean isRepositoryAvailable()
+ {
+ return m_Available;
+ }
+
+ public String getReasonNotAvailable()
+ {
+ return m_Reason;
+ }
+
+ /** Returns the Repository Name.
+ *
+ * @return The Name of the Repository.
+ */
+ public String getName()
+ {
+ return m_Name;
+ }
+
+ /** Returns a human-readable description of the Repository.
+ *
+ * @return A localized and human-readable description of the Repository.
+ */
+ public String getDescription()
+ {
+ return m_Description;
+ }
+
+ /** Returns the physical location of the Repository.
+ *
+ * @return A URL or other unique identifier of where the repository is
located.
+ */
+ public String getLocation()
+ {
+ return m_RepositoryURL.toExternalForm();
+ }
+
+ /** Returns the Locale that this RepositoryAgent is initialized to.
+ *
+ * @return The Locale that this RepositoryAgent is initialized to.
+ */
+ public Locale getLocale()
+ {
+ return m_Locale;
+ }
+
+ /** Loads the ResourceInfo from the Repository.
+ *
+ * @param resourceIdentification is the identification of the resource.
If the parameter
+ * is an empty string, the root resource is requested. The
identification must be
+ * repository relative.
+ */
+ public void loadResourceInfo(String resourceIdentification)
+ {
+ synchronized (m_LoadQueue)
+ {
+ m_LoadQueue.add(resourceIdentification);
+ }
+ }
+
+ /** Opens the InputStream to the actual resource.
+ *
+ * @param resource The ResourceInfo for which to open the InputStream to
its actual object.
+ *
+ * @return An opened InputStream to the actual resource object. It is
expected that the
+ * implementation uses buffered I/O, so clients don't need to optimize
access.
+ *
+ */
+ public InputStream openInputStream(ResourceInfo resource)
+ {
+ return null;
+ }
+
+ /** Updates the RepositoryAgent.
+ *
+ * For remote repositories, it is desireable that the RepositoryAgent
caches
+ * the meta content locally, on file or in-memory. This method explicitly
+ * tells the RepositoryAgent to drop the cache. The method should return
quickly
+ * so if a pre-fetch algorithm is used, it must be done in seperate
thread.
+ */
+ public void refresh()
+ {
+ synchronized (this)
+ {
+ m_Available = false;
+ m_ResourceIndex = null;
+ loadResourceInfo("/");
+ }
+ }
+
+ public void run()
+ {
+ try
+ {
+ while (true)
+ {
+ String resource = null;
+ try
+ {
+ resource = fetchResourceToLoad();
+ if (resource != null && !"".equals(resource))
+ loadResource(resource);
+ } catch (FileNotFoundException e)
+ {
+ fireResourceNotFoundEvent("File not found:" + resource);
+ } catch (MalformedURLException e)
+ {
+ fireResourceNotFoundEvent("Malformed:" + resource);
+ } catch (IOException e)
+ {
+ // TODO send unavailable event
+ if (m_Available)
+ fireUnavailableEvent(e.getMessage());
+ }
+ }
+ } catch (InterruptedException e)
+ {
+ // Do nothing, shutting down...
+ }
+ }
+
+ private String fetchResourceToLoad()
+ throws MalformedURLException, IOException, InterruptedException
+ {
+ synchronized (m_LoadQueue)
+ {
+ while (m_LoadQueue.size() == 0)
+ m_LoadQueue.wait(100);
+ String resource = (String) m_LoadQueue.get(0);
+ m_LoadQueue.remove(0);
+ System.out.println("Request to load:" + resource);
+ return resource;
+ }
+ }
+
+ private ResourceGroupInfoImpl loadRootResource() throws
MalformedURLException, IOException
+ {
+ synchronized (this)
+ {
+ if (m_ResourceIndex != null)
+ return (ResourceGroupInfoImpl) m_ResourceIndex.get("/");
+
+ Properties p = loadPropertiesFile("members.meta");
+
+ m_Name = p.getProperty("repository.name");
+ m_Description = p.getProperty("repository.description");
+ Version version = new NonVersion();
+ Compliance compliance = new EmptyCompliance();
+ String type = ResourceInfo.MIMETYPE_FOLDER;
+ ResourceGroupInfoImpl info =
+ new ResourceGroupInfoImpl("/", m_Name, m_Description, type,
version, compliance, null);
+ m_ResourceIndex = new HashMap();
+ m_ResourceIndex.put("/", info);
+ if (!m_Available)
+ fireAvailableEvent(info);
+ m_Available = true;
+ fireResourceLoadedEvent(info);
+ parseMembers(p, info);
+ return info;
+ }
+ }
+
+ private ResourceGroupInfoImpl loadResource(String resource)
+ throws MalformedURLException, IOException
+ {
+ if (resource.equals("/"))
+ return loadRootResource();
+
+ // Check cache
+ ResourceGroupInfoImpl info = (ResourceGroupInfoImpl)
m_ResourceIndex.get(resource);
+ if (info == null)
+ {
+ // Must load parent...
+ String parent = getParentIdentification(resource);
+ info = loadResource(parent);
+ info = (ResourceGroupInfoImpl) m_ResourceIndex.get(resource);
+ } else
+ {
+ if (info.isChildrenLoaded())
+ return info;
+ }
+
+ if (!resource.endsWith("/"))
+ resource = resource + "/";
+ if( m_ContainerTypes.contains( info.getType() ))
+ {
+ Properties p = loadPropertiesFile(resource + "members.meta");
+ parseMembers(p, info);
+ }
+ return info;
+ }
+
+ private void parseMembers(Properties p, ResourceGroupInfoImpl group)
+ {
+ Iterator list = p.entrySet().iterator();
+ while (list.hasNext())
+ {
+ Map.Entry entry = (Map.Entry) list.next();
+ String key = (String) entry.getKey();
+ if (key.startsWith("member.") && key.endsWith(".identification"))
+ {
+ parseMember(p, group, key);
+ }
+ }
+ }
+
+ private void parseMember(Properties p, ResourceGroupInfoImpl group,
String key)
+ {
+ int pos = key.indexOf('.', 7);
+ String prefix = key.substring(0, pos);
+ String ident = p.getProperty(prefix + ".identification");
+ if (m_ResourceIndex.containsKey(ident))
+ return;
+ String name = p.getProperty(prefix + ".name");
+ String descr = p.getProperty(prefix + ".description");
+ String verString = p.getProperty(prefix + ".version", "1.0");
+ String verClass =
+ p.getProperty(
+ prefix + ".versionclass",
+
"org.apache.avalon.repository.tools.common.ConventionalVersion");
+ Version version = createVersion(verString, verClass);
+ String typeString = p.getProperty(prefix + ".type",
ResourceInfo.MIMETYPE_FOLDER);
+ String complianceString = p.getProperty(prefix + ".compliance");
+ Compliance compliance = createCompliance(complianceString,
typeString);
+ String parentIdent = group.getIdentification();
+ if (parentIdent.equals("/"))
+ ident = "/" + ident;
+ else
+ ident = parentIdent + "/" + ident;
+
+ String type = ResourceInfo.MIMETYPE_FOLDER;
+ ResourceGroupInfoImpl info =
+ new ResourceGroupInfoImpl(ident, name, descr, type, version,
compliance, null);
+ m_ResourceIndex.put(ident, info);
+ group.addMember(info);
+ fireResourceLoadedEvent(info);
+ }
+
+ private Compliance createCompliance(String usage, String type)
+ {
+ if (usage == null || "".equals(usage))
+ return new EmptyCompliance();
+ ComplianceGroupImpl group = new ComplianceGroupImpl();
+ StringTokenizer st = new StringTokenizer(usage, " ,", false);
+ while (st.hasMoreTokens())
+ {
+ Compliance c = new GenericCompliance(st.nextToken());
+ group.addCompliance(c);
+ }
+ return group;
+ }
+
+ private Version createVersion(String ver, String classname)
+ {
+ try
+ {
+ Class cls = getClass().getClassLoader().loadClass(classname);
+ Class[] params = new Class[] { String.class };
+ Object[] args = new Object[] { ver };
+ Constructor cons = cls.getConstructor(params);
+ return (Version) cons.newInstance(args);
+ } catch (Exception e)
+ {
+ System.err.println("Warning!! Problem with Version class:" +
classname);
+ return new NonVersion();
+ }
+ }
+
+ private String getParentIdentification(String ident)
+ {
+ int pos = ident.lastIndexOf('/');
+ return ident.substring(0, pos + 1);
+ }
+
+ /** Adds a RepositoryAgentListener.
+ *
+ * <p>
+ * If an identical listener already exists, the listener in this call
will
+ * not be added and no event generated.
+ * </p>
+ * @param listener The listener to add.
+ */
+ public void addRepositoryAgentListener(RepositoryAgentListener listener)
+ {
+ synchronized (this)
+ {
+ if (m_Listeners.contains(listener))
+ return;
+
+ ArrayList v;
+ if (m_Listeners == null)
+ v = new ArrayList();
+ else
+ v = (ArrayList) m_Listeners.clone();
+ v.add(listener);
+ m_Listeners = v;
+ }
+ }
+
+ /** Removes a RepositoryAgentListener.
+ *
+ * <p>
+ * If the given listener does not exist, nothing will happen.
+ * </p>
+ * @param listener The listener to remove.
+ */
+ public void removeRepositoryAgentListener(RepositoryAgentListener
listener)
+ {
+ synchronized (this)
+ {
+ if (m_Listeners == null)
+ return;
+ if (!m_Listeners.contains(listener))
+ return;
+ ArrayList v = (ArrayList) m_Listeners.clone();
+ v.remove(listener);
+ m_Listeners = v;
+ }
+ }
+
+ private Properties loadPropertiesFile(String location)
+ throws IOException, MalformedURLException
+ {
+ while (location.startsWith("/"))
+ location = location.substring(1);
+ URL url = new URL(m_RepositoryURL, location);
+ Properties p = new Properties();
+ InputStream in = null;
+ try
+ {
+ in = url.openStream();
+ p.load(in);
+ } finally
+ {
+ if (in != null)
+ {
+ try
+ {
+ in.close();
+ } catch (IOException e)
+ {} // Nothing can do...
+ }
+ }
+ return p;
+ }
+
+ private void fireResourceLoadedEvent(ResourceInfo resource)
+ {
+ RepositoryAgentEvent event = new RepositoryAgentEvent(this,
resource.getName(), resource);
+ Iterator list = m_Listeners.iterator();
+ while (list.hasNext())
+ {
+ try
+ {
+ RepositoryAgentListener listener = (RepositoryAgentListener)
list.next();
+ listener.resourceLoaded(event);
+ } catch (Exception e)
+ {
+ // TODO error handling??
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private void fireResourceNotFoundEvent(String message)
+ {
+ RepositoryAgentEvent event = new RepositoryAgentEvent(this, message,
null);
+ Iterator list = m_Listeners.iterator();
+ while (list.hasNext())
+ {
+ try
+ {
+ RepositoryAgentListener listener = (RepositoryAgentListener)
list.next();
+ listener.resourceNotFound(event);
+ } catch (Exception e)
+ {
+ // TODO error handling??
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private void fireAvailableEvent(ResourceInfo resource)
+ {
+ RepositoryAgentEvent event = new RepositoryAgentEvent(this, null,
resource);
+ Iterator list = m_Listeners.iterator();
+ while (list.hasNext())
+ {
+ try
+ {
+ RepositoryAgentListener listener = (RepositoryAgentListener)
list.next();
+ listener.available(event);
+ } catch (Exception e)
+ {
+ // TODO error handling??
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private void fireUnavailableEvent(String message)
+ {
+ RepositoryAgentEvent event = new RepositoryAgentEvent(this, message,
null);
+ Iterator list = m_Listeners.iterator();
+ while (list.hasNext())
+ {
+ try
+ {
+ RepositoryAgentListener listener = (RepositoryAgentListener)
list.next();
+ listener.unavailable(event);
+ } catch (Exception e)
+ {
+ // TODO error handling??
+ e.printStackTrace();
+ }
+ }
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository/testrepo/TestRepoRepositoryAgentFactory.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository/testrepo/TestRepoRepositoryAgentFactory.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,226 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The end-user documentation included with the redistribution, if any,
+ * must include the following acknowledgment: "This product includes software
+ * developed by the Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself, if and
+ * wherever such third-party acknowledgments normally appear.
+ * 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and "Apache
+ * Software Foundation" must not be used to endorse or promote products
derived
+ * from this software without prior written permission. For written
permission,
+ * please contact apache AT apache.org.
+ * 5. Products derived from this software may not be called "Apache", nor
may
+ * "Apache" appear in their name, without prior written permission of the
+ * Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.repository.testrepo;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Locale;
+
+import org.apache.avalon.ide.repository.RepositoryAgent;
+import org.apache.avalon.ide.repository.RepositoryAgentCreationException;
+import org.apache.avalon.ide.repository.RepositoryAgentFactory;
+import org.apache.avalon.ide.repository.RepositoryAgentFactoryEvent;
+import org.apache.avalon.ide.repository.RepositoryAgentFactoryListener;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class TestRepoRepositoryAgentFactory implements RepositoryAgentFactory
+{
+ private ArrayList m_Listeners;
+ private HashMap m_Agents;
+
+ /**
+ *
+ */
+ public TestRepoRepositoryAgentFactory()
+ {
+ super();
+ m_Agents = new HashMap();
+ }
+
+ /**
+ * Creates a RepositoryAgent for the given location.
+ *
+ * <p>
+ * The semantics of the <i>location</i> parameter is implementation
+ * dependent. The RepositoryAgentFactory MUST handle any initial
"urn:" and
+ * <i>[type]</i> of a urn: <i>[type]</i>:<i>[location]</i> format.
+ * </p>
+ *
+ * @param location
+ * Location of the repository.
+ *
+ * @return @throws
+ * RepositoryAgentCreationException
+ */
+ public RepositoryAgent create(String location, Locale locale)
+ throws RepositoryAgentCreationException
+ {
+ try
+ {
+ String loc = normalize( location );
+ RepositoryAgent agent = new TestRepoRepositoryAgent(loc, locale);
+ m_Agents.put( loc, agent );
+ RepositoryAgentFactoryEvent event = new
RepositoryAgentFactoryEvent(this, agent);
+ Iterator list = m_Listeners.iterator();
+ while (list.hasNext())
+ {
+ try
+ {
+ RepositoryAgentFactoryListener listener =
+ (RepositoryAgentFactoryListener) list.next();
+ listener.createdRepositoryAgent(event);
+ } catch (Exception e)
+ {
+ // TODO report exception somewhere.
+ }
+ }
+ return agent;
+ } catch (MalformedURLException e)
+ {
+ throw new RepositoryAgentCreationException("Not a valid
location.", e);
+ } catch (IOException e)
+ {
+ throw new RepositoryAgentCreationException("Repository not
responding.", e);
+ }
+ }
+
+ /**
+ * Returns the RepositoryAgent at that location, if any. The location
+ * parameter is of the format <i><strong>urn:</strong> [type] <strong>:
+ * </strong> [location]</i>, and the RepositoryAgentFactory MUST handle
+ * the initial urn:[type], if present.
+ *
+ * @param location
+ * The location of the RepositoryAgent to find.
+ * @return Returns null if no RepositoryAgent exists at that URN.
+ */
+ public RepositoryAgent findRepositoryAgentByLocation(String location)
+ {
+ String loc = normalize( location );
+ return (RepositoryAgent) m_Agents.get( loc );
+ }
+
+ /**
+ * Call to dispose the RepositoryAgent.
+ *
+ * It is important that the factory is given a chance to clean up the
+ * RepositoryAgent, and therefor this method must be called when the
+ * RepositoryAgent is no longer needed.
+ *
+ * @param agent
+ * The RepositoryAgent to drop/delete.
+ */
+ public void dispose(RepositoryAgent agent)
+ {
+ m_Agents.remove( agent.getLocation() );
+ RepositoryAgentFactoryEvent event = new
RepositoryAgentFactoryEvent(this, agent);
+ Iterator list = m_Listeners.iterator();
+ while (list.hasNext())
+ {
+ try
+ {
+ RepositoryAgentFactoryListener listener =
+ (RepositoryAgentFactoryListener) list.next();
+ listener.deletedRepositoryAgent(event);
+ } catch (Exception e)
+ {
+ // TODO report exception somewhere.
+ }
+ }
+ }
+
+ /**
+ * Adds a RepositoryAgentFactoryListener.
+ *
+ * <p>
+ * If an equal listener already exists, the listener will not be
added.
+ * </p>
+ *
+ * @param listener
+ * The listener to add.
+ */
+ public void
addRepositoryAgentFactoryListener(RepositoryAgentFactoryListener listener)
+ {
+ synchronized (this)
+ {
+ ArrayList v;
+ if (m_Listeners == null)
+ v = new ArrayList();
+ else
+ v = (ArrayList) m_Listeners.clone();
+ v.add(listener);
+ m_Listeners = v;
+ }
+ }
+
+ /**
+ * Removes a RepositoryAgentFactoryListener.
+ *
+ * <p>
+ * If the listener does not exist, nothing will happen.
+ * </p>
+ *
+ * @param listener
+ * The listener to be removed.
+ */
+ public void
removeRepositoryAgentFactoryListener(RepositoryAgentFactoryListener listener)
+ {
+ if( m_Listeners == null )
+ return;
+ synchronized (this)
+ {
+ ArrayList v = (ArrayList) m_Listeners.clone();
+ v.remove(listener);
+ m_Listeners = v;
+ }
+ }
+
+ private String normalize( String location )
+ {
+ if( location.startsWith( "urn:" ))
+ location = location.substring( 4 );
+ int pos = location.indexOf( ":" );
+ if( pos >= 0 )
+ location = location.substring( pos + 1 );
+ if( ! location.endsWith( "/"))
+ location = location + "/";
+ return location;
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository/testrepo/TestrepoPlugin.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository/testrepo/TestrepoPlugin.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,75 @@
+package org.apache.avalon.ide.repository.testrepo;
+
+import org.eclipse.ui.plugin.*;
+import org.eclipse.core.runtime.*;
+import org.eclipse.core.resources.*;
+import java.util.*;
+
+/**
+ * The main plugin class to be used in the desktop.
+ */
+public class TestrepoPlugin extends AbstractUIPlugin
+{
+ //The shared instance.
+ private static TestrepoPlugin plugin;
+ //Resource bundle.
+ private ResourceBundle resourceBundle;
+
+ /**
+ * The constructor.
+ */
+ public TestrepoPlugin(IPluginDescriptor descriptor)
+ {
+ super(descriptor);
+ plugin = this;
+ try
+ {
+ resourceBundle =
+ ResourceBundle.getBundle(
+
"org.apache.avalon.ide.repository.testrepo.TestrepoPluginResources");
+ } catch (MissingResourceException x)
+ {
+ resourceBundle = null;
+ }
+ }
+
+ /**
+ * Returns the shared instance.
+ */
+ public static TestrepoPlugin getDefault()
+ {
+ return plugin;
+ }
+
+ /**
+ * Returns the workspace instance.
+ */
+ public static IWorkspace getWorkspace()
+ {
+ return ResourcesPlugin.getWorkspace();
+ }
+
+ /**
+ * Returns the string from the plugin's resource bundle, or 'key' if
not
+ * found.
+ */
+ public static String getResourceString(String key)
+ {
+ ResourceBundle bundle =
TestrepoPlugin.getDefault().getResourceBundle();
+ try
+ {
+ return (bundle != null ? bundle.getString(key) : key);
+ } catch (MissingResourceException e)
+ {
+ return key;
+ }
+ }
+
+ /**
+ * Returns the plugin's resource bundle,
+ */
+ public ResourceBundle getResourceBundle()
+ {
+ return resourceBundle;
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/repository-tools.jardesc
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/repository-tools.jardesc
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jardesc>
+ <jar path="target/repository-tools.jar"/>
+ <options overwrite="false" compress="false" exportErrors="true"
+ exportWarnings="true" saveDescription="true"
+ descriptionLocation="/org.apache.avalon.ide.repository/abc.jardesc"
+ useSourceFolders="false" buildIfNeeded="true"/>
+ <manifest manifestVersion="1.0" usesManifest="true"
+ reuseManifest="false" saveManifest="false"
+ generateManifest="true" manifestLocation="">
+ <sealing sealJar="false">
+ <packagesToSeal/>
+ <packagesToUnSeal/>
+ </sealing>
+ </manifest>
+ <selectedElements exportClassFiles="true" exportJavaFiles="false">
+ <javaElement
handleIdentifier="=org.apache.avalon.ide.repository/src/java"/>
+ <file path="/org.apache.avalon.ide.repository/.project"/>
+ <file path="/org.apache.avalon.ide.repository/.classpath"/>
+ </selectedElements>
+</jardesc>

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/Compliance.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/Compliance.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,74 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public interface Compliance
+{
+ /** Checks if the resource is compatible with a particular usage.
+ *
+ * <p>
+ * The querying entity defines the usage string, and if the resource is
+ * aware of being used in such a way, it responds true, otherwise false.
+ * </p>
+ * <p>
+ * Usage string must be globally unique, and the Java-type package name
+ * is to be used. Example; org.apache.avalon.merlin.3
+ * </p>
+ * @param usage The type of usage that the resource can be used for.
+ * @return true if the resource is compatible with the usage.
+ *
+ * @see org.apache.avalon.repository.Usage for more info on standard
usage types.
+ */
+ boolean isCompatibleWith( String usage );
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/InvalidSchemeException.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/InvalidSchemeException.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,80 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+/** Exception that indicates a URN problem in the RepositoryTypeRegistry.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class InvalidSchemeException extends RepositoryException
+{
+
+ /** Constructor with a short message of the problem.
+ *
+ * @param message A non-localized, human-readable message in plain
english, describing
+ * the problem that has occurred.
+ */
+ public InvalidSchemeException(String message)
+ {
+ super(message);
+ }
+
+ /** Constructor for nested exceptions.
+ *
+ * @param message A non-localized, human-readable message in plain
english, describing
+ * the problem that has occurred.
+ * @param cause The root cause of the exception.
+ */
+ public InvalidSchemeException(String message, Exception cause)
+ {
+ super(message, cause);
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgent.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgent.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,144 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+import java.io.InputStream;
+import java.util.Locale;
+
+
+
+/** The RepositoryAgent is a representative of the Repository (local or
remote)
+ * that knows how to communicate with the repository.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public interface RepositoryAgent
+{
+ /** Checks if the Repository is accessible and operational.
+ *
+ * @return true if the Repository is expected to work.
+ */
+ boolean isRepositoryAvailable();
+
+ /** Returns the Repository Name.
+ *
+ * @return The Name of the Repository.
+ */
+ String getName();
+
+ /** Returns a human-readable description of the Repository.
+ *
+ * @return A localized and human-readable description of the Repository.
+ */
+ String getDescription();
+
+ /** Returns the physical location of the Repository.
+ *
+ * @return A URL or other unique identifier of where the repository is
located.
+ */
+ String getLocation();
+
+ /** Returns the Locale that this RepositoryAgent is initialized to.
+ *
+ * @return The Locale that this RepositoryAgent is initialized to.
+ */
+ Locale getLocale();
+
+ /** Loads the ResourceInfo from the Repository.
+ *
+ * <p>
+ * Instructs the RepositoryAgent to load a particular ResourceInfo in
+ * background, and notify over the Event interface.
+ * </p>
+ * @param resourceIdentification is the identification of the resource,
relative
+ * to the repository root. If the parameter
+ * is an empty string, the root resource group is requested. The
identification must be
+ * repository relative.
+ */
+ void loadResourceInfo( String resourceIdentification );
+
+ /** Opens the InputStream to the actual resource.
+ *
+ * @param resource The ResourceInfo for which to open the InputStream to
its actual object.
+ *
+ * @return An opened InputStream to the actual resource object. It is
expected that the
+ * implementation uses buffered I/O, so clients don't need to optimize
access.
+ *
+ */
+ InputStream openInputStream( ResourceInfo resource );
+
+ /** Updates the RepositoryAgent.
+ *
+ * For remote repositories, it is desireable that the RepositoryAgent
caches
+ * the meta content locally, on file or in-memory. This method explicitly
+ * tells the RepositoryAgent to drop the cache. The method should return
quickly
+ * so if a pre-fetch algorithm is used, it must be done in seperate
thread.
+ */
+ void refresh();
+
+ /** Adds a RepositoryAgentListener.
+ *
+ * <p>
+ * If an identical listener already exists, the listener in this call
will
+ * not be added and no event generated.
+ * </p>
+ * @param listener The listener to add.
+ */
+ void addRepositoryAgentListener( RepositoryAgentListener listener );
+
+ /** Removes a RepositoryAgentListener.
+ *
+ * <p>
+ * If the given listener does not exist, nothing will happen.
+ * </p>
+ * @param listener The listener to remove.
+ */
+ void removeRepositoryAgentListener( RepositoryAgentListener listener );
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentCreationException.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentCreationException.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,75 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class RepositoryAgentCreationException extends RepositoryException
+{
+
+ /**
+ * @param message Describing the exception in a non-localized english
form.
+ */
+ public RepositoryAgentCreationException(String message)
+ {
+ super(message);
+ }
+
+ /**
+ * @param message Describing the exception in a non-localized english
form.
+ * @param cause The root cause of the exception.
+ */
+ public RepositoryAgentCreationException(String message, Exception cause)
+ {
+ super(message, cause);
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentEvent.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentEvent.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,83 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+import java.util.EventObject;
+
+
+/** Event sent from RepositoryAgents.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class RepositoryAgentEvent extends EventObject
+{
+ private ResourceInfo m_ResourceInfo;
+ private String m_Message;
+
+ /**
+ * @param source The RepositoryAgent sending the event.
+ */
+ public RepositoryAgentEvent(Object source, String message, ResourceInfo
resource )
+ {
+ super(source);
+ m_ResourceInfo = resource;
+ m_Message = message;
+ }
+
+ public ResourceInfo getResourceInfo()
+ {
+ return m_ResourceInfo;
+ }
+
+ public String getMessage()
+ {
+ return m_Message;
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentFactory.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentFactory.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,125 @@
+/*
+ *
+ *
============================================================================
+ * The Apache Software License, Version 1.1
+ *
============================================================================
+ *
+ * Copyright (C) 1999-2002 The Apache Software Foundation. All rights
reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
modifica-
+ * tion, are permitted provided that the following conditions are met: 1.
+ * Redistributions of source code must retain the above copyright notice,
this
+ * list of conditions and the following disclaimer. 2. Redistributions in
+ * binary form must reproduce the above copyright notice, this list of
+ * conditions and the following disclaimer in the documentation and/or other
+ * materials provided with the distribution. 3. The end-user documentation
+ * included with the redistribution, if any, must include the following
+ * acknowledgment: "This product includes software developed by the Apache
+ * Software Foundation (http://www.apache.org/)." Alternately, this
+ * acknowledgment may appear in the software itself, if and wherever such
+ * third-party acknowledgments normally appear. 4. The names "Jakarta",
"Apache
+ * Avalon", "Avalon Framework" and "Apache Software Foundation" must not be
+ * used to endorse or promote products derived from this software without
prior
+ * written permission. For written permission, please contact
+ * apache AT apache.org. 5. Products derived from this software may not be
called
+ * "Apache", nor may "Apache" appear in their name, without prior written
+ * permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * This software consists of voluntary contributions made by many individuals
+ * on behalf of the Apache Software Foundation. For more information on the
+ * Apache Software Foundation, please see <http://www.apache.org/> .
+ *
+ */
+package org.apache.avalon.ide.repository;
+
+import java.util.Locale;
+
+/**
+ * A Factory interface for creating RepositoryAgents.
+ *
+ * <p>
+ * The RepositoryTypeRegistry holds references to each registered
+ * RepositoryAgentFactory.
+ * </p>
+ *
+ * @see org.apache.avalon.repository.tools.RepositoryTypeRegistry
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public interface RepositoryAgentFactory
+{
+ /**
+ * Creates a RepositoryAgent for the given location.
+ *
+ * The semantics of the <i>location</i> parameter is implementation
+ * dependent. The RepositoryAgentFactory MUST handle any initial
"urn:" and
+ * <i>[type]</i> of a urn: <i>[type]</i>:<i>[location]</i> format.
+ *
+ * @param location
+ * Location of the repository.
+ *
+ * @return A RepositoryAgent for the given location and locale.
+ * @throws RepositoryAgentCreationException
+ */
+ RepositoryAgent create(String location, Locale locale) throws
RepositoryAgentCreationException;
+
+ /**
+ * Returns the RepositoryAgent at that location, if any. The location
+ * parameter is of the format <i><strong>urn:</strong> [type]
<strong>:
+ * </strong> [location]</i>, and the RepositoryAgentFactory MUST
handle
+ * the initial urn:[type], if present.
+ *
+ * @param location
+ * The location of the RepositoryAgent to find.
+ * @return Returns null if no RepositoryAgent exists at that URN.
+ */
+ RepositoryAgent findRepositoryAgentByLocation(String location);
+
+ /**
+ * Call to dispose the RepositoryAgent.
+ *
+ * It is important that the factory is given a chance to clean up the
+ * RepositoryAgent, and therefor this method must be called when the
+ * RepositoryAgent is no longer needed.
+ *
+ * @param agent
+ * The RepositoryAgent to drop/delete.
+ */
+ void dispose(RepositoryAgent agent);
+
+ /**
+ * Adds a RepositoryAgentFactoryListener.
+ *
+ * <p>
+ * If an equal listener already exists, the listener will not be
added.
+ * </p>
+ *
+ * @param listener
+ * The listener to add.
+ */
+ void addRepositoryAgentFactoryListener(RepositoryAgentFactoryListener
listener);
+
+ /**
+ * Removes a RepositoryAgentFactoryListener.
+ *
+ * <p>
+ * If the listener does not exist, nothing will happen.
+ * </p>
+ *
+ * @param listener
+ * The listener to be removed.
+ */
+ void removeRepositoryAgentFactoryListener(RepositoryAgentFactoryListener
listener);
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentFactoryEvent.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentFactoryEvent.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,75 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+import java.util.EventObject;
+
+/** Event sent from RepositoryAgentFactory.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class RepositoryAgentFactoryEvent extends EventObject
+{
+ private RepositoryAgent m_Agent;
+
+ /**
+ * @param source The RepositoryAgentFactory sending the event.
+ */
+ public RepositoryAgentFactoryEvent(Object source, RepositoryAgent agent )
+ {
+ super(source);
+ m_Agent = agent;
+ }
+
+ public RepositoryAgent getRepositoryAgent()
+ {
+ return m_Agent;
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentFactoryListener.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentFactoryListener.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,67 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+import java.util.EventListener;
+
+/** Listener interface for the RepositoryAgentFactory.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public interface RepositoryAgentFactoryListener extends EventListener
+{
+ /** Listener callback for the RepositoryAgentFactory.create() method.
+ *
+ * @param event The event object containing information about the
creation.
+ */
+ void createdRepositoryAgent( RepositoryAgentFactoryEvent event );
+
+ void deletedRepositoryAgent( RepositoryAgentFactoryEvent event );
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentListener.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryAgentListener.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,66 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+import java.util.EventListener;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public interface RepositoryAgentListener extends EventListener
+{
+ void available( RepositoryAgentEvent event );
+
+ void unavailable( RepositoryAgentEvent event );
+
+ void resourceLoaded( RepositoryAgentEvent event );
+
+ void resourceNotFound( RepositoryAgentEvent event );
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryConnectionException.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryConnectionException.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,75 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class RepositoryConnectionException extends RepositoryException
+{
+
+ /**
+ * @param message
+ */
+ public RepositoryConnectionException(String message)
+ {
+ super(message);
+ }
+
+ /**
+ * @param message
+ * @param cause
+ */
+ public RepositoryConnectionException(String message, Exception cause)
+ {
+ super(message, cause);
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryException.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryException.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,77 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+/** RepositoryException is the superclass of all exceptions related to
Repository
+ * operations.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class RepositoryException extends Exception
+{
+ /** Constructor with a non-localized exception message.
+ * @param message Description of exception in english.
+ */
+ public RepositoryException(String message)
+ {
+ super(message);
+ }
+
+ /** Constructor with a non-localized exception message and a nested root
cause
+ * exception.
+ * @param message Description of exception in english.
+ * @param cause The root cause of this exception.
+ */
+ public RepositoryException(String message, Exception cause)
+ {
+ super(message, cause);
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryFormatException.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryFormatException.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,75 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class RepositoryFormatException extends RepositoryException
+{
+
+ /** Constructor with a non-localized exception message.
+ * @param message Description of exception in english.
+ */
+ public RepositoryFormatException(String message)
+ {
+ super(message);
+ }
+
+ /** Constructor with a non-localized exception message and a nested root
cause
+ * exception.
+ * @param message Description of exception in english.
+ * @param cause The root cause of this exception.
+ */
+ public RepositoryFormatException(String message, Exception cause)
+ {
+ super(message, cause);
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositorySchemeDescriptor.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositorySchemeDescriptor.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,84 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+/** This is an interface to describe the Locator mechanism for the Repository
+ * Agent and its factory.
+ *
+ * A typical Repository is identified by a scheme and an URL, for instance;
+ * <pre>
+ * maven:http://avalon.apache.org/repository
+ * </pre>
+ * where "maven" is the <i>Scheme</i>, not inclusive of the colon (:), and
+ * "http://avalon.apache.org/repository"; is the URL. This interface is only
+ * handling the <i>Scheme</i> part, whereas the URL is a runtime aspect.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public interface RepositorySchemeDescriptor
+{
+ /** Returns the Scheme described in the descriptor.
+ *
+ * @return The <i>Scheme</i>, not inclusive of the colon (:)
+ */
+ String getScheme();
+
+ /** Returns the official full name of the Scheme.
+ *
+ * @return A human-readable name of the Scheme.
+ */
+ String getName();
+
+ /** Returns a longer description of the Scheme.
+ *
+ * @return A human-readable description of the Scheme.
+ */
+ String getDescription();
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryTypeRegistry.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryTypeRegistry.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,166 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+
+/** A Registry holding the RepositoryAgentFactory for each URN.
+ *
+ * <p>
+ * A Repository is accessed using a URN schema of:
+ * <pre>
+ * urn:[type]:[location]
+ * </pre>
+ * The <strong>[type]</strong> part is to which the RepositoryAgentFactory
is registered, and
+ * the <strong>[location]</strong> part is used in the
RepositoryAgentFactpry.create() method.
+ * </p>
+ * <p>
+ * The RepositoryTypeRegistry is responsible to parse the URN properly, so
the client
+ * code can pass in the full URN, without chopping off the type from the
location.
+ * </p>
+ * <p>
+ * Example;
+ * <pre>
+ * urn:plain-url:file:///opt/avalon/repository/
+ * </pre>
+ * </p>
+ * <p>
+ * To register a RepositoryAgent, we do;
+ * <pre>
+ * RepositoryAgentFactory factory = new PlainURLRepositoryAgentFactory();
+ * m_RepositoryTypeRegistry.add( "plain-url", factory );
+ * </pre>
+ * </p>
+ * <p>
+ * And to get to the repository of the URN above, we only need to do;
+ * <pre>
+ * String urn = "urn:plain-url:file:///opt/avalon/repository/"
+ * RepositoryAgentFactory factory =
m_RepositoryTypeRegistry.getRepositoryAgentFactory( urn );
+ * RepositoryAgent agent = factory.create( urn );
+ * if( agent.isRepositoryAvailable() )
+ * {
+ * ResourceInfo[] infos = agent.loadResourceInfo( "" ); // Load the
root resource group.
+ * for( int i=0 ; i &lt; infos.length ; i++ )
+ * {
+ * String name = infos[i].getName();
+ * String description = infos[i].getDescription();
+ * :
+ * :
+ * InputStream in = agent.openInputStream( infos[i] );
+ * :
+ * :
+ * }
+ * }
+ * </pre>
+ * </p>
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public interface RepositoryTypeRegistry
+{
+ /** Returns an array of registered URNs.
+ *
+ * @return A string array filled with the URNs that has been registered.
+ */
+ RepositorySchemeDescriptor[] getRegisteredURNs();
+
+ /** Returns the URNDescriptor registered under the type name.
+ *
+ * The type parameter may contain the "urn:" and [location] literals. It
+ * is the responsibility of the RepositoryTypeRegistry implementation to
+ * do the parsing.
+ *
+ * @param type The type of the urn to be looked up.
+ * @return
+ */
+ RepositorySchemeDescriptor findByType( String type );
+
+ /** Returns the RepositoryAgentFactory registered with the given URN.
+ *
+ * @param urn The URN for which to return its RepositoryAgentFactory.
+ * @return A RepositoryAgentFactory that has been registered to the URN.
+ * @throws InvalidURNException If there is no RepositoryAgentFactory
registered at that
+ * URN.
+ */
+ RepositoryAgentFactory getRepositoryAgentFactory(
RepositorySchemeDescriptor urn );
+
+ /** Registers a RepositoryAgentFactory to a particular URN.
+ *
+ * @param urn The URN to register the RepositoryAgentFactory to.
+ *
+ * @param agentFactory The RepositoryAgentFactory to be registered.
+ *
+ */
+ void registerRepositoryAgentFactory( RepositorySchemeDescriptor urn,
RepositoryAgentFactory agentFactory );
+
+ /** Unregister a URN.
+ *
+ * @param urn The URN to be un-registered from the
RepositoryTypeRegistry.
+ */
+ void unregisterRepositoryAgentFactory( RepositorySchemeDescriptor urn );
+
+ /** Adds a RepositoryRegistryListener.
+ *
+ * <p>
+ * If an identical listener already exists, the listener in this call
will
+ * not be added.
+ * </p>
+ * @param listener The listener to add.
+ */
+ void addRepositoryRegistryListener( RepositoryTypeRegistryListener
listener );
+
+ /** Removes a RepositoryRegistryListener.
+ *
+ * <p>
+ * If the given listener does not exist, nothing will happen.
+ * </p>
+ * @param listener The listener to remove.
+ */
+ void removeRepositoryRegistryListener( RepositoryTypeRegistryListener
listener );
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryTypeRegistryEvent.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryTypeRegistryEvent.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,78 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+import java.util.EventObject;
+
+/** Event for changes to the RepositoryRegistry.
+ *
+ * <p>
+ * This event is sent when there is a change to the RepositoryRegistry
+ * </p>
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class RepositoryTypeRegistryEvent extends EventObject
+{
+ private RepositoryAgentFactory m_Factory;
+
+ /**
+ * @param source
+ */
+ public RepositoryTypeRegistryEvent(Object source, RepositoryAgentFactory
factory )
+ {
+ super(source);
+ m_Factory = factory;
+ }
+
+ public RepositoryAgentFactory getRepositoryAgentFactory()
+ {
+ return m_Factory;
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryTypeRegistryListener.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/RepositoryTypeRegistryListener.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,62 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+import java.util.EventListener;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public interface RepositoryTypeRegistryListener extends EventListener
+{
+ void addedRepositoryAgent( RepositoryTypeRegistryEvent event );
+
+ void removedRepositoryAgent( RepositoryTypeRegistryEvent event );
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/ResourceGroupInfo.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/ResourceGroupInfo.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,60 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+/** An information set of a resource that may contain other resources.
+ *
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public interface ResourceGroupInfo extends ResourceInfo
+{
+ ResourceInfo[] getGroupMembers();
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/ResourceInfo.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/ResourceInfo.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,104 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+
+/** Interface to identify a Resource and provide information about it.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public interface ResourceInfo
+{
+ // TODO Should this list be here at all??
+ final String MIMETYPE_FOLDER = "application/x-folder";
+ final String MIMETYPE_JAR = "application/x-jar";
+ final String MIMETYPE_TAR = "application/x-tar";
+ final String MIMETYPE_ZIP = "application/x-zip";
+ final String MIMETYPE_PNG = "image/png";
+ final String MIMETYPE_JPEG = "image/jpeg";
+ final String MIMETYPE_GIF = "image/gif";
+
+ /** Returns the identification of the resource.
+ *
+ * @return A computer-readable, globally unique identifier of the
resource.
+ */
+ String getIdentification();
+
+ /** Returns the name of the resource.
+ *
+ * @return A localized, human-readable name of the resource.
+ */
+ String getName();
+
+ /** Returns a description of the resource.
+ *
+ * @return A localized, human-readable description of the Resource.
+ */
+ String getDescription();
+
+ /** Returns the Version of the resource.
+ *
+ * @return A Version object describing the version of the resource.
+ */
+ Version getVersion();
+
+ /** Returns a Compliance object.
+ *
+ * @return A Compliance object that the Component follows.
+ */
+ Compliance getCompliance();
+
+ /** Returns a Type identifier for the resource.
+ *
+ * @return A Type identifier, typically a mime-type.
+ */
+ String getType();
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/ResourceInfoNotAvailableException.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/ResourceInfoNotAvailableException.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,78 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+/** Thrown when the requested Block is not available from the Repository.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class ResourceInfoNotAvailableException extends RepositoryException
+{
+
+ /** Constructor for a non-localized message exception, where there is no
root
+ * cause exception.
+ * @param message A non-localized message describing the exception.
+ */
+ public ResourceInfoNotAvailableException(String message)
+ {
+ super(message);
+ }
+
+ /** Constructor for a nested exception with a root cause and a message in
+ * non-localized english.
+ * @param message A non-localized message describing the exception.
+ * @param cause The root cause of the exception.
+ */
+ public ResourceInfoNotAvailableException(String message, Exception cause)
+ {
+ super(message, cause);
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/Version.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/Version.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,63 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public interface Version extends Comparable
+{
+ /** Returns the externalized string of the version.
+ *
+ * @return An human readable string of the version
+ */
+ String toExternalName();
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/AvalonDateVersion.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/AvalonDateVersion.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,76 @@
+/*
+ * Created on Nov 10, 2003
+ *
+ * Copyright Bali Automation Sdn Bhd, Malaysia. All rights reserved.
+ */
+package org.apache.avalon.ide.repository.tools.common;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.apache.avalon.ide.repository.Version;
+
+/**
+ * @author niclas
+ */
+public class AvalonDateVersion implements Version
+{
+ static private final SimpleDateFormat m_Format;
+
+ private Date m_Date;
+
+ static {
+ m_Format = new SimpleDateFormat("YYYYMMDD.HHmmss");
+ }
+ /** Version class for YYYYMMDD.hhmmss format.
+ *
+ * @param ver Version string.
+ */
+ public AvalonDateVersion(String ver) throws ParseException
+ {
+ m_Date = m_Format.parse(ver);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.avalon.repository.Version#toExternalName()
+ */
+ public String toExternalName()
+ {
+ return m_Format.format(m_Date);
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Comparable#compareTo(java.lang.Object)
+ */
+ public int compareTo(Object o)
+ {
+ if (equals(o))
+ return 0;
+ if (!(o instanceof AvalonDateVersion))
+ return -1;
+ long t = m_Date.getTime();
+ long tComp = ((AvalonDateVersion) o).m_Date.getTime();
+ if (t < tComp)
+ return -1;
+ else
+ return 1;
+ }
+
+ public boolean equals(Object o)
+ {
+ if (o == null)
+ return false;
+ if (!(o instanceof AvalonDateVersion))
+ return false;
+ long t = m_Date.getTime();
+ long tComp = ((AvalonDateVersion) o).m_Date.getTime();
+ return t == tComp;
+ }
+
+ public int hashCode()
+ {
+ return m_Date.hashCode();
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/ComplianceGroupImpl.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/ComplianceGroupImpl.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,98 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository.tools.common;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.apache.avalon.ide.repository.Compliance;
+
+/** A helper class which will group a set of Compliances.
+ *
+ * <p>
+ * If a resource is compliant with many usages, the RepositoryAgent should
+ * create an instance of the this, and populate with the compliance classes.
+ * </p>
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class ComplianceGroupImpl implements Compliance
+{
+ private Collection m_Compliances;
+
+ public ComplianceGroupImpl()
+ {
+ super();
+ m_Compliances = new ArrayList();
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.repository.Compliance#isCompatibleWith(java.lang.String)
+ */
+ public boolean isCompatibleWith(String usage)
+ {
+ synchronized( m_Compliances )
+ {
+ Iterator list = m_Compliances.iterator();
+ while( list.hasNext())
+ {
+ Compliance compliance = (Compliance) list.next();
+ if( compliance.isCompatibleWith( usage ))
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void addCompliance( Compliance c )
+ {
+ m_Compliances.add( c );
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/ConventionalVersion.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/ConventionalVersion.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,145 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository.tools.common;
+
+import org.apache.avalon.ide.repository.Version;
+
+/** This Version implementation handles the classic X.Y.Z versioning scheme.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class ConventionalVersion implements Version
+{
+ private int m_Major;
+ private int m_Minor;
+ private int m_Micro;
+ private boolean m_ShortForm;
+
+ public ConventionalVersion(int major, int minor, int micro)
+ {
+ m_Major = major;
+ m_Minor = minor;
+ m_Micro = micro;
+ }
+
+ public ConventionalVersion(String ver)
+ {
+ int pos1 = ver.indexOf('.');
+ int pos2 = ver.indexOf('.', pos1 + 1);
+ if (pos2 < 0)
+ {
+ m_Major = Integer.parseInt(ver.substring(0, pos1));
+ m_Minor = Integer.parseInt(ver.substring(pos1 + 1));
+ m_ShortForm = true;
+ } else
+ {
+ m_Major = Integer.parseInt(ver.substring(0, pos1));
+ m_Minor = Integer.parseInt(ver.substring(pos1 + 1, pos2));
+ m_Micro = Integer.parseInt(ver.substring(pos2 + 1));
+ m_ShortForm = false;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.eclipse.merlin.model.repository.Version#toExternalName()
+ */
+ public String toExternalName()
+ {
+ if (m_ShortForm)
+ return "" + m_Major + "." + m_Minor;
+ else
+ return "" + m_Major + "." + m_Minor + "." + m_Micro;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Comparable#compareTo(java.lang.Object)
+ */
+ public int compareTo(Object o)
+ {
+ if (equals(o))
+ return 0;
+
+ ConventionalVersion ver = (ConventionalVersion) o;
+ if (ver.m_Major == m_Major)
+ {
+ if (ver.m_Minor == m_Minor)
+ {
+ if (ver.m_Micro > m_Micro)
+ return -1;
+ if (ver.m_Micro < m_Micro)
+ return 1;
+ return 0;
+ }
+ if (ver.m_Minor > m_Minor)
+ return -1;
+ return 1;
+ }
+ if (ver.m_Major > m_Major)
+ return -1;
+ return 1;
+ }
+
+ public boolean equals(Object o)
+ {
+ if (!(o instanceof ConventionalVersion))
+ return false;
+ ConventionalVersion v = (ConventionalVersion) o;
+ return v.m_Major == m_Major
+ && v.m_Minor == m_Minor
+ && v.m_Micro == m_Micro
+ && !(v.m_ShortForm ^ m_ShortForm);
+
+ }
+
+ public int hashCode()
+ {
+ return m_Major + m_Minor + m_Micro;
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/GenericSchemeDescriptor.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/GenericSchemeDescriptor.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,147 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository.tools.common;
+
+import org.apache.avalon.ide.repository.InvalidSchemeException;
+import org.apache.avalon.ide.repository.RepositorySchemeDescriptor;
+
+/** A RepositorySchemeDescriptor container for generic purpose.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class GenericSchemeDescriptor implements RepositorySchemeDescriptor
+{
+ private String m_Scheme;
+ private String m_Name;
+ private String m_Description;
+
+ public GenericSchemeDescriptor( String prefix, String name, String desc )
+ throws InvalidSchemeException
+ {
+ m_Scheme = normalize( prefix );
+ m_Name = name;
+ m_Description = desc;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.repository.tools.RepositorySchemeDescriptor#getPrefix()
+ */
+ public String getScheme()
+ {
+ return m_Scheme;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.repository.tools.RepositorySchemeDescriptor#getName()
+ */
+ public String getName()
+ {
+ return m_Name;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.repository.tools.ReopsitorySchemeDescriptor#getDescription()
+ */
+ public String getDescription()
+ {
+ return m_Description;
+ }
+
+ /** Validates a Scheme name and then calls the parse() method.
+ *
+ * @param urn to be normalized.
+ * @return A valid type.
+ * @throws InvalidSchemeException if the Scheme contains invalid
characters.
+ */
+ private String normalize(String urn) throws InvalidSchemeException
+ {
+ for (int i = 0; i < urn.length(); i++)
+ {
+ char ch = urn.charAt(i);
+ if( ch == ':')
+ break; // Anything beyond the colon could be legal.
+
+ if (!(Character.isLetterOrDigit(ch) || ch == '-' || ch == '_' ||
ch == ':' ))
+ {
+ throw new InvalidSchemeException("Illegal characters in
Scheme. Only Letter, Digit, dash and underscored allowed.");
+ }
+ }
+ return parse( urn );
+ }
+
+ /** Drops any trailing [location].
+ *
+ * @param urn to be parsed for a [type].
+ * @return The type in the URN.
+ */
+ private String parse(String urn)
+ {
+ urn = urn.trim();
+ int pos = urn.indexOf(':');
+ if (pos < 0)
+ return urn;
+ return urn.substring( 0, pos );
+ }
+
+ public String toString()
+ {
+ return m_Scheme + ":";
+ }
+
+ public int hashCode()
+ {
+ return m_Scheme.hashCode();
+ }
+
+ public boolean equals( Object o )
+ {
+ return m_Scheme.equals( o );
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/NonVersion.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/NonVersion.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,91 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository.tools.common;
+
+import org.apache.avalon.ide.repository.Version;
+
+/** This Version implementation is for resources that does not support any
version.
+ *
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class NonVersion implements Version
+{
+ public NonVersion()
+ {
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.eclipse.merlin.model.repository.Version#toExternalName()
+ */
+ public String toExternalName()
+ {
+ return "";
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Comparable#compareTo(java.lang.Object)
+ */
+ public int compareTo(Object o)
+ {
+ if (equals(o))
+ return 0;
+ return -1;
+ }
+
+ public boolean equals(Object o)
+ {
+ return o instanceof NonVersion;
+ }
+
+ public int hashCode()
+ {
+ return getClass().hashCode();
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/ResourceGroupInfoImpl.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/ResourceGroupInfoImpl.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,180 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository.tools.common;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.apache.avalon.ide.repository.Compliance;
+import org.apache.avalon.ide.repository.ResourceGroupInfo;
+import org.apache.avalon.ide.repository.ResourceInfo;
+import org.apache.avalon.ide.repository.Version;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class ResourceGroupInfoImpl implements ResourceGroupInfo
+{
+ private Collection m_Members;
+ private String m_Name;
+ private String m_Description;
+ private String m_Identification;
+ private String m_Type;
+ private Version m_Version;
+ private Compliance m_Compliance;
+ private boolean m_ChildLoaded;
+
+ public ResourceGroupInfoImpl(
+ String identification,
+ String name,
+ String description,
+ String mimetype,
+ Version ver,
+ Compliance compliance,
+ Collection members)
+ {
+ super();
+ m_Identification = identification;
+ m_Name = name;
+ m_Description = description;
+ m_Version = ver;
+ m_Compliance = compliance;
+ if (members == null)
+ members = new ArrayList();
+ m_Members = members;
+ m_ChildLoaded = false;
+ m_Type = mimetype;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.avalon.repository.ResourceGroupInfo#getGroupMembers()
+ */
+ public ResourceInfo[] getGroupMembers()
+ {
+ synchronized (m_Members)
+ {
+ ResourceInfo[] result = new ResourceInfo[m_Members.size()];
+ Iterator list = m_Members.iterator();
+ for (int i = 0; list.hasNext(); i++)
+ result[i] = (ResourceInfo) list.next();
+ return result;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.avalon.repository.ResourceInfo#getIdentification()
+ */
+ public String getIdentification()
+ {
+ return m_Identification;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.repository.ResourceInfo#getName(java.util.Locale)
+ */
+ public String getName()
+ {
+ return m_Name;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.repository.ResourceInfo#getDescription(java.util.Locale)
+ */
+ public String getDescription()
+ {
+ return m_Description;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.avalon.repository.ResourceInfo#getVersion()
+ */
+ public Version getVersion()
+ {
+ return m_Version;
+ }
+
+ public String getType()
+ {
+ return m_Type;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.avalon.repository.ResourceInfo#getCompliance()
+ */
+ public Compliance getCompliance()
+ {
+ return m_Compliance;
+ }
+
+ public boolean isChildrenLoaded()
+ {
+ return m_ChildLoaded;
+ }
+
+ public void addMember(ResourceInfo member)
+ {
+ synchronized (m_Members)
+ {
+ m_Members.add(member);
+ }
+ }
+
+ public void addMembers(Collection members)
+ {
+ m_ChildLoaded = true;
+ Iterator list = members.iterator();
+ while (list.hasNext())
+ {
+ ResourceInfo info = (ResourceInfo) list.next();
+ addMember(info);
+ }
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/ResourceInfoImpl.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/ResourceInfoImpl.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,130 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository.tools.common;
+
+import org.apache.avalon.ide.repository.Compliance;
+import org.apache.avalon.ide.repository.ResourceInfo;
+import org.apache.avalon.ide.repository.Version;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class ResourceInfoImpl implements ResourceInfo
+{
+ private String m_Name;
+ private String m_Description;
+ private String m_Identification;
+ private String m_Type;
+ private Version m_Version;
+ private Compliance m_Compliance;
+
+ public ResourceInfoImpl(
+ String identification,
+ String name,
+ String description,
+ String mimetype,
+ Version ver,
+ Compliance compliance)
+ {
+ super();
+ m_Identification = identification;
+ m_Name = name;
+ m_Description = description;
+ m_Version = ver;
+ m_Compliance = compliance;
+ m_Type = mimetype;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.avalon.repository.ResourceInfo#getIdentification()
+ */
+ public String getIdentification()
+ {
+ return m_Identification;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.repository.ResourceInfo#getName(java.util.Locale)
+ */
+ public String getName()
+ {
+ return m_Name;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.repository.ResourceInfo#getDescription(java.util.Locale)
+ */
+ public String getDescription()
+ {
+ return m_Description;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.avalon.repository.ResourceInfo#getVersion()
+ */
+ public Version getVersion()
+ {
+ return m_Version;
+ }
+
+ public String getType()
+ {
+ return m_Type;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.avalon.repository.ResourceInfo#getCompliance()
+ */
+ public Compliance getCompliance()
+ {
+ return m_Compliance;
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/SimpleRepositoryRegistry.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common/SimpleRepositoryRegistry.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,251 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository.tools.common;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import org.apache.avalon.ide.repository.RepositoryAgentFactory;
+import org.apache.avalon.ide.repository.RepositoryTypeRegistry;
+import org.apache.avalon.ide.repository.RepositoryTypeRegistryEvent;
+import org.apache.avalon.ide.repository.RepositoryTypeRegistryListener;
+import org.apache.avalon.ide.repository.RepositorySchemeDescriptor;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class SimpleRepositoryRegistry implements RepositoryTypeRegistry
+{
+ private HashMap m_Registrations;
+ private HashMap m_URNTypes;
+ private ArrayList m_Listeners;
+
+ /**
+ *
+ */
+ public SimpleRepositoryRegistry()
+ {
+ super();
+ m_Registrations = new HashMap();
+ m_URNTypes = new HashMap();
+ m_Listeners = new ArrayList();
+ }
+
+ /** Returns an array of registered URNs.
+ *
+ * @return A string array filled with the URNs that has been registered.
+ */
+ public RepositorySchemeDescriptor[] getRegisteredURNs()
+ {
+ synchronized( this )
+ {
+ RepositorySchemeDescriptor[] result = new
RepositorySchemeDescriptor[ m_Registrations.size() ];
+ Iterator list = m_Registrations.keySet().iterator();
+ for( int i=0 ; list.hasNext() ; i++ )
+ result[i] = (RepositorySchemeDescriptor) list.next();
+ return result;
+ }
+ }
+
+ /** Returns the URNDescriptor registered under the type name.
+ *
+ * The type parameter may contain the "urn:" and [location] literals. It
+ * is the responsibility of the RepositoryTypeRegistry implementation to
+ * do the parsing.
+ *
+ * @param location The location containing the type of the urn to be
looked up.
+ * @return
+ */
+ public RepositorySchemeDescriptor findByType( String location )
+ {
+ String type = normalize( location );
+ return (RepositorySchemeDescriptor) m_URNTypes.get( type );
+ }
+
+ /** Returns the RepositoryAgentFactory registered with the given URN.
+ *
+ * @param urn The URN for which to return its RepositoryAgentFactory.
+ * @return A RepositoryAgentFactory that has been registered to the URN.
+ * @throws InvalidURNException If there is no RepositoryAgentFactory
registered at that
+ * URN.
+ */
+ public RepositoryAgentFactory getRepositoryAgentFactory(
RepositorySchemeDescriptor urn )
+ {
+ synchronized( this )
+ {
+ return (RepositoryAgentFactory) m_Registrations.get( urn );
+ }
+ }
+
+ /** Registers a RepositoryAgentFactory to a particular URN.
+ *
+ * @param urn The URN to register the RepositoryAgentFactory to. The URN
may contain both the
+ * initial "urn:" part of the URN. The RepositoryTypeRegistry is
responsible for parsing out
+ * the relevant part.
+ *
+ * @param agentFactory The RepositoryAgentFactory to be registered.
+ *
+ * @exception InvalidURNException if the URN parameter is in invalid
format or is already
+ * in use.
+ */
+ public void registerRepositoryAgentFactory(RepositorySchemeDescriptor
urn, RepositoryAgentFactory factory)
+ {
+ if (m_Registrations.get(urn) != null)
+ return;
+
+ Iterator list;
+ synchronized (this)
+ {
+ m_URNTypes.put( urn.getScheme(), urn );
+ m_Registrations.put(urn, factory);
+ list = m_Listeners.iterator();
+ }
+ RepositoryTypeRegistryEvent event = new
RepositoryTypeRegistryEvent(this, factory);
+ while (list.hasNext())
+ {
+ try
+ {
+ RepositoryTypeRegistryListener listener =
+ (RepositoryTypeRegistryListener) list.next();
+ listener.addedRepositoryAgent(event);
+ } catch (Exception e)
+ {
+ // TODO Some form of error handling...
+ e.printStackTrace();
+ }
+ }
+ }
+
+ /** Unregister a URN.
+ *
+ * @param urn The URN to be un-registered from the
RepositoryTypeRegistry.
+ */
+ public void unregisterRepositoryAgentFactory( RepositorySchemeDescriptor
urn )
+ {
+ Iterator list;
+ RepositoryAgentFactory factory;
+ synchronized (this)
+ {
+ factory = (RepositoryAgentFactory) m_Registrations.get(urn);
+ m_URNTypes.remove( urn.getScheme() );
+ if (factory == null)
+ return;
+ list = m_Listeners.iterator();
+ }
+ RepositoryTypeRegistryEvent event = new
RepositoryTypeRegistryEvent(this, factory);
+ while (list.hasNext())
+ {
+ try
+ {
+ RepositoryTypeRegistryListener listener =
+ (RepositoryTypeRegistryListener) list.next();
+ listener.removedRepositoryAgent(event);
+ } catch (Exception e)
+ {
+ // TODO Some form of error handling...
+ e.printStackTrace();
+ }
+ }
+ }
+
+
+ /** Adds a RepositoryRegistryListener.
+ *
+ * <p>
+ * If an identical listener already exists, the listener in this call
will
+ * not be added.
+ * </p>
+ * @param listener The listener to add.
+ */
+ public void addRepositoryRegistryListener(RepositoryTypeRegistryListener
listener)
+ {
+ synchronized (this)
+ {
+ if (m_Listeners != null && m_Listeners.contains(listener))
+ return;
+
+ ArrayList v = (ArrayList) m_Listeners.clone();
+ v.add(listener);
+ m_Listeners = v;
+ }
+ }
+
+ /** Removes a RepositoryRegistryListener.
+ *
+ * <p>
+ * If the given listener does not exist, nothing will happen.
+ * </p>
+ * @param listener The listener to remove.
+ */
+ public void
removeRepositoryRegistryListener(RepositoryTypeRegistryListener listener)
+ {
+ synchronized (this)
+ {
+ if (m_Listeners == null)
+ return;
+ if (!m_Listeners.contains(listener))
+ return;
+ ArrayList v = (ArrayList) m_Listeners.clone();
+ v.remove(listener);
+ m_Listeners = v;
+ }
+ }
+
+ private String normalize( String location )
+ {
+ if( location.startsWith( "urn:" ))
+ location = location.substring( 4 );
+ int pos = location.indexOf( ":" );
+ if( pos >= 0 )
+ location = location.substring( 0, pos );
+ return location;
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/EmptyCompliance.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/EmptyCompliance.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,74 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository.tools.compliance;
+
+import org.apache.avalon.ide.repository.Compliance;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class EmptyCompliance implements Compliance
+{
+ // A String that should never be true.
+ public final String USAGE = "14657861234895746138237816894423";
+
+ public EmptyCompliance()
+ {
+ super();
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.repository.Compliance#isCompatibleWith(java.lang.String)
+ */
+ public boolean isCompatibleWith(String usage)
+ {
+ return false;
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/FortressCompliance.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/FortressCompliance.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,73 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository.tools.compliance;
+
+import org.apache.avalon.ide.repository.Compliance;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class FortressCompliance implements Compliance
+{
+ public final String USAGE = "org.apache.avalon.fortress";
+
+ public FortressCompliance()
+ {
+ super();
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.repository.Compliance#isCompatibleWith(java.lang.String)
+ */
+ public boolean isCompatibleWith(String usage)
+ {
+ return usage.startsWith( USAGE );
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/GenericCompliance.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/GenericCompliance.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,30 @@
+/*
+ * Created on Nov 10, 2003
+ *
+ * Copyright Bali Automation Sdn Bhd, Malaysia. All rights reserved.
+ */
+package org.apache.avalon.ide.repository.tools.compliance;
+
+import org.apache.avalon.ide.repository.Compliance;
+
+/**
+ * @author niclas
+ */
+public class GenericCompliance implements Compliance
+{
+ private String m_Usage;
+
+ public GenericCompliance( String usage )
+ {
+ m_Usage = usage;
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.repository.Compliance#isCompatibleWith(java.lang.String)
+ */
+ public boolean isCompatibleWith(String usage)
+ {
+ return m_Usage.equals( usage );
+ }
+
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/MerlinCompliance.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/MerlinCompliance.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,73 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository.tools.compliance;
+
+import org.apache.avalon.ide.repository.Compliance;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class MerlinCompliance implements Compliance
+{
+ public final String USAGE = "org.apache.avalon.merlin";
+
+ public MerlinCompliance()
+ {
+ super();
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.repository.Compliance#isCompatibleWith(java.lang.String)
+ */
+ public boolean isCompatibleWith(String usage)
+ {
+ return usage.startsWith( USAGE );
+ }
+}

Added:
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/PhoenixCompliance.java
==============================================================================
--- (empty file)
+++
development/laboratory/ide/eclipse/org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance/PhoenixCompliance.java
Fri Apr 8 13:52:15 2005
@@ -0,0 +1,73 @@
+/*
+
+ ============================================================================
+ The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+ include the following acknowledgment: "This product includes software
+ developed by the Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself, if
+ and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Jakarta", "Apache Avalon", "Avalon Framework" and
+ "Apache Software Foundation" must not be used to endorse or promote
+ products derived from this software without prior written
+ permission. For written permission, please contact apache AT apache.org.
+
+ 5. Products derived from this software may not be called "Apache", nor may
+ "Apache" appear in their name, without prior written permission of the
+ Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many individuals
+ on behalf of the Apache Software Foundation. For more information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.avalon.ide.repository.tools.compliance;
+
+import org.apache.avalon.ide.repository.Compliance;
+
+/**
+ * @author Niclas Hedhman, niclas AT hedhman.org
+ */
+public class PhoenixCompliance implements Compliance
+{
+ public final String USAGE = "org.apache.avalon.phoenix";
+
+ public PhoenixCompliance()
+ {
+ super();
+ }
+
+ /* (non-Javadoc)
+ * @see
org.apache.avalon.repository.Compliance#isCompatibleWith(java.lang.String)
+ */
+ public boolean isCompatibleWith(String usage)
+ {
+ return usage.startsWith( USAGE );
+ }
+}



  • svn commit: r2247 - in development/laboratory/ide/eclipse: org.apache.avalon.ide.eclipse.core org.apache.avalon.ide.eclipse.core/bin org.apache.avalon.ide.eclipse.core/bin/org org.apache.avalon.ide.eclipse.core/bin/org/apache org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/resource org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/tools org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/core/xmlmodel org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.core/bin/org/apache/avalon/ide/eclipse/merlin/core org.apache.avalon.ide.eclipse.core/docs org.apache.avalon.ide.eclipse.core/docs/eclipse org.apache.avalon.ide.eclipse.core/docs/eclipse/html org.apache.avalon.ide.eclipse.core/docs/eclipse/html/concepts org.apache.avalon.ide.eclipse.core/docs/eclipse/html/downloads org.apache.avalon.ide.eclipse.core/docs/eclipse/html/gettingstarted org.apache.avalon.ide.eclipse.core/docs/eclipse/html/icons org.apache.avalon.ide.eclipse.core/docs/eclipse/html/reference org.apache.avalon.ide.eclipse.core/docs/eclipse/html/samples org.apache.avalon.ide.eclipse.core/docs/eclipse/html/tasks org.apache.avalon.ide.eclipse.core/docs/eclipse/html/whatsnew org.apache.avalon.ide.eclipse.core/lib org.apache.avalon.ide.eclipse.core/lib/avalon-framework org.apache.avalon.ide.eclipse.core/src org.apache.avalon.ide.eclipse.core/src/org org.apache.avalon.ide.eclipse.core/src/org/apache org.apache.avalon.ide.eclipse.core/src/org/apache/avalon org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/resource org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/tools org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/core/xmlmodel org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.core/src/org/apache/avalon/ide/eclipse/merlin/core org.apache.avalon.ide.eclipse.features org.apache.avalon.ide.eclipse.launch org.apache.avalon.ide.eclipse.launch/bin org.apache.avalon.ide.eclipse.launch/bin/org org.apache.avalon.ide.eclipse.launch/bin/org/apache org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/builder org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/launch org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/launch/container org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/launch/ui org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/ide/eclipse/merlin/nature org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/util org.apache.avalon.ide.eclipse.launch/bin/org/apache/avalon/util/defaults org.apache.avalon.ide.eclipse.launch/doc org.apache.avalon.ide.eclipse.launch/icons org.apache.avalon.ide.eclipse.launch/lib org.apache.avalon.ide.eclipse.launch/src org.apache.avalon.ide.eclipse.launch/src/org org.apache.avalon.ide.eclipse.launch/src/org/apache org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/builder org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/container org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/launch/ui org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/ide/eclipse/merlin/nature org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util org.apache.avalon.ide.eclipse.launch/src/org/apache/avalon/util/defaults org.apache.avalon.ide.eclipse.repository org.apache.avalon.ide.eclipse.repository/doc org.apache.avalon.ide.eclipse.repository/html org.apache.avalon.ide.eclipse.repository/icons org.apache.avalon.ide.eclipse.repository/lib org.apache.avalon.ide.eclipse.repository/schema org.apache.avalon.ide.eclipse.repository/src org.apache.avalon.ide.eclipse.repository/src/org org.apache.avalon.ide.eclipse.repository/src/org/apache org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/actions org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/plugins org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/preferences org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/properties org.apache.avalon.ide.eclipse.repository/src/org/apache/avalon/ide/eclipse/repository/views org.apache.avalon.ide.eclipse.ui org.apache.avalon.ide.eclipse.ui/bin org.apache.avalon.ide.eclipse.ui/bin/icons org.apache.avalon.ide.eclipse.ui/bin/org org.apache.avalon.ide.eclipse.ui/bin/org/apache org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/operation org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/preferences org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/ui org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/ui/tools org.apache.avalon.ide.eclipse.ui/bin/org/apache/avalon/ide/eclipse/merlin/wizards org.apache.avalon.ide.eclipse.ui/icons org.apache.avalon.ide.eclipse.ui/icons/full org.apache.avalon.ide.eclipse.ui/icons/full/ctool16 org.apache.avalon.ide.eclipse.ui/icons/full/dtool16 org.apache.avalon.ide.eclipse.ui/icons/full/etool16 org.apache.avalon.ide.eclipse.ui/icons/full/obj16 org.apache.avalon.ide.eclipse.ui/icons/full/wizban org.apache.avalon.ide.eclipse.ui/properties org.apache.avalon.ide.eclipse.ui/src org.apache.avalon.ide.eclipse.ui/src/icons org.apache.avalon.ide.eclipse.ui/src/org org.apache.avalon.ide.eclipse.ui/src/org/apache org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/operation org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/preferences org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/ui/tools org.apache.avalon.ide.eclipse.ui/src/org/apache/avalon/ide/eclipse/merlin/wizards org.apache.avalon.ide.eclipse.ui/templates org.apache.avalon.ide.eclipse.ui/test org.apache.avalon.ide.eclipse.ui/test/test org.apache.avalon.ide.eclipse.ui/test/test/org org.apache.avalon.ide.eclipse.ui/test/test/org/apache org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/core org.apache.avalon.ide.eclipse.ui/test/test/org/apache/avalon/ide/eclipse/core/resource org.apache.avalon.ide.eclipse.update org.apache.avalon.ide.eclipse.update/features org.apache.avalon.ide.eclipse.update/plugins org.apache.avalon.ide.eclipse.update/web org.apache.avalon.ide.eclipse.update/zip_dist org.apache.avalon.ide.repository org.apache.avalon.ide.repository.testrepo org.apache.avalon.ide.repository.testrepo/src org.apache.avalon.ide.repository.testrepo/src/org org.apache.avalon.ide.repository.testrepo/src/org/apache org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository org.apache.avalon.ide.repository.testrepo/src/org/apache/avalon/ide/repository/testrepo org.apache.avalon.ide.repository/src org.apache.avalon.ide.repository/src/org org.apache.avalon.ide.repository/src/org/apache org.apache.avalon.ide.repository/src/org/apache/avalon org.apache.avalon.ide.repository/src/org/apache/avalon/ide org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/common org.apache.avalon.ide.repository/src/org/apache/avalon/ide/repository/tools/compliance, peter, 04/08/2005

Archive powered by MHonArc 2.6.24.

Top of Page