You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gump.apache.org by le...@apache.org on 2005/01/04 00:33:44 UTC
svn commit: r124038 - in gump/branches/Dec04MajorCleanup: metadata metadata/projects/ant.apache.org pygump/python/gump/engine
Author: leosimons
Date: Mon Jan 3 15:33:41 2005
New Revision: 124038
URL: http://svn.apache.org/viewcvs?view=rev&rev=124038
Log:
* Make a set of sort-of-okay metadata.
* Make the Model Loader work
* Start on the Model Objectifier
* Small bit of docs for the VFS
* Start to split out logging into different channels
* Documentation on the modeller and a lot of code clean up
Modified:
gump/branches/Dec04MajorCleanup/metadata/profile.xml
gump/branches/Dec04MajorCleanup/metadata/projects/ant.apache.org/module.xml
gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/__init__.py
gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/modeller.py
gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/vfs.py
Modified: gump/branches/Dec04MajorCleanup/metadata/profile.xml
Url: http://svn.apache.org/viewcvs/gump/branches/Dec04MajorCleanup/metadata/profile.xml?view=diff&rev=124038&p1=gump/branches/Dec04MajorCleanup/metadata/profile.xml&r1=124037&p2=gump/branches/Dec04MajorCleanup/metadata/profile.xml&r2=124038
==============================================================================
--- gump/branches/Dec04MajorCleanup/metadata/profile.xml (original)
+++ gump/branches/Dec04MajorCleanup/metadata/profile.xml Mon Jan 3 15:33:41 2005
@@ -14,502 +14,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<profile name="gump">
-
-<!-- Apache.Ant -->
-
- <module href="project/ant.xml"/>
- <!--module href="project/ant-1.5.xml"/-->
- <module href="project/ant-antidote.xml"/>
-
-<!-- Apache.Avalon (SVN) -->
- <module href="project/avalon-tools.xml"/> <!-- magic bootstrap -->
- <module href="http://svn.apache.org/repos/asf/avalon/trunk/central/system/gump/avalon-trunk.xml"/>
-
- <!-- <module href="project/avalon-trunk.xml"/> -->
-
-<!-- Apache.Avalon (CVS) -->
- <!-- <module href="project/avalon.xml"/> -->
- <!-- <module href="project/avalon-components.xml"/> -->
- <!-- <module href="project/avalon-logkit.xml"/> -->
-
- <module href="project/avalon-sandbox.xml"/>
- <!-- module href="project/avalon-phoenix.xml"/ -->
-
-<!-- Apache.Cocoon -->
-
- <module href="http://svn.apache.org/repos/asf/cocoon/trunk/gump.xml"/>
-
-<!-- Apache Lenya -->
-
- <module href="project/lenya.xml"/>
- <!--module href="http://svn.apache.org/repos/asf/incubator/lenya/trunk/gump.xml"/-->
-
-<!-- Apache.DB -->
-
- <module href="project/db-commons.xml"/>
- <module href="project/db-commons-sandbox.xml"/>
- <module href="project/db-ojb.xml"/>
- <module href="project/db-torque.xml"/>
-
-<!-- Apache.Excalibur -->
-
- <module href="project/excalibur.xml"/>
- <module href="project/excalibur-legacy.xml"/>
-
-<!-- Apache Forrest -->
-
- <module href="project/forrest.xml"/>
-
-<!-- Apache.Gump -->
-
- <module href="project/gump.xml"/>
-
-<!-- Apache.Geronimo -->
- <module href="project/geronimo.xml"/>
-
-<!-- Apache.HTTPd -->
-
- <module href="project/apache-httpd.xml"/>
-
-<!-- Apache.Incubator -->
-
- <module href="project/depot.xml"/>
- <module href="project/incubator-altrmi.xml"/>
- <module href="project/myfaces.xml"/>
-
-<!-- Apache.Directory -->
- <module href="project/directory-naming.xml"/>
- <module href="project/directory-eve.xml"/>
- <module href="project/directory-janus.xml"/>
- <module href="project/directory-ldap.xml"/>
- <module href="project/directory-snickers.xml"/>
- <module href="project/directory-kerberos.xml"/>
- <module href="project/directory-seda.xml"/>
-
-<!-- Apache.James -->
-
- <module href="project/james-server.xml"/>
-
-<!-- Apache.Jakarta -->
-
- <!--module href="project/jakarta-alexandria.xml"/-->
- <module href="project/jakarta-bcel.xml"/>
- <module href="project/jakarta-bsf.xml"/>
- <module href="project/jakarta-cactus.xml"/>
- <module href="project/jakarta-commons.xml"/>
- <module href="project/jakarta-commons-codec-11.xml"/>
- <module href="project/jakarta-commons-configuration-10.xml"/>
- <module href="project/commons-httpclient-2.0-branch.xml"/>
- <module href="project/jakarta-commons-sandbox.xml"/>
- <module href="project/jakarta-ecs.xml"/>
- <module href="project/jakarta-hivemind.xml"/>
- <module href="project/jakarta-jetspeed.xml"/>
- <module href="project/jakarta-jmeter.xml"/>
- <module href="project/jakarta-jmeter-20.xml"/>
- <module href="project/jakarta-lucene.xml"/>
- <module href="project/jakarta-oro.xml"/>
- <module href="project/jakarta-poi.xml"/>
- <module href="project/jakarta-poi3.xml"/>
- <module href="project/jakarta-pluto.xml"/>
- <module href="project/jakarta-regexp.xml"/>
- <module href="project/jakarta-servletapi-4.xml"/>
- <module href="project/jakarta-servletapi-5.xml"/>
- <module href="project/jakarta-servletapi.xml"/>
- <module href="project/jakarta-site2.xml"/>
- <module href="project/jakarta-slide.xml"/>
- <module href="project/struts.xml"/>
- <module href="project/jakarta-tapestry.xml"/>
- <module href="project/jakarta-taglibs.xml"/>
- <module href="project/jstl-jsp-12.xml"/>
- <module href="project/jakarta-turbine-2.xml"/>
- <module href="project/jakarta-turbine-fulcrum.xml"/>
- <module href="project/jakarta-tomcat-40.xml"/>
- <module href="project/jakarta-tomcat-catalina.xml"/>
- <module href="project/jakarta-tomcat-5.xml"/>
- <module href="project/jakarta-tomcat-jasper_tc5.xml"/>
- <module href="project/jakarta-tomcat-connectors.xml"/>
- <module href="project/jakarta-tomcat-connectors-coyote_10.xml"/>
- <module href="project/jakarta-tomcat-jasper_tc4.xml"/>
- <module href="project/jakarta-tomcat-33.xml"/>
- <module href="project/jakarta-tomcat-jasper.xml"/>
- <module href="project/jakarta-tools.xml"/>
-
- <!-- Turbine projects taken from cvs -->
- <module href="project/jakarta-turbine-3.xml"/>
- <module href="project/jakarta-turbine-jcs.xml"/>
- <module href="project/jakarta-turbine-stratum.xml"/>
- <module href="project/jelly-tags.xml"/>
-
- <module href="project/jakarta-velocity.xml"/>
- <module href="project/jakarta-velocity-tools.xml"/>
- <module href="project/jakarta-velocity-dvsl.xml"/>
- <module href="project/jakarta-watchdog.xml"/>
-
-<!-- Apache.Logging -->
- <module href="project/logging-log4j.xml"/>
- <module href="project/logging-log4j-12.xml"/>
-
-<!-- Apache.Maven -->
- <module href="project/maven.xml"/>
-
-<!-- Apache Portable Runtime -->
- <module href="project/apr.xml"/>
- <module href="project/apr-util.xml"/>
-
-<!-- Apache.WebServices -->
-
- <module href="project/ws-axis.xml"/>
- <module href="project/ws-fx.xml"/>
- <module href="project/ws-jaxme.xml"/>
- <module href="project/ws-juddi.xml"/>
- <module href="project/ws-soap.xml"/>
- <module href="project/ws-wsif.xml"/>
- <module href="project/ws-wsil.xml"/>
- <module href="project/ws-wsrp4j.xml"/>
- <module href="project/ws-xmlrpc.xml"/>
- <module href="project/apollo.xml"/>
- <module href="project/muse.xml"/>
-
-
-<!-- Apache.XML -->
-
- <module href="project/xml-batik.xml"/>
- <module href="project/xml-commons.xml"/>
- <module href="project/xml-crimson.xml"/>
- <module href="project/xml-fop.xml"/>
- <module href="project/xml-fop-maintenance.xml"/>
- <module href="project/xml-site.xml"/>
- <module href="project/xml-security.xml"/>
- <module href="project/xml-stylebook.xml"/>
- <module href="project/xml-xalan.xml"/>
- <module href="project/xml-xerces.xml"/>
- <module href="project/xml-xerces2.xml"/>
- <module href="project/xml-xindice.xml"/>
- <module href="project/xml-xmlbeans.xml"/>
-
-<!-- SourceForge -->
-
- <module href="project/beanshell.xml"/>
- <module href="project/beaver.xml"/>
- <module href="project/beepcore.xml"/>
- <module href="project/checkstyle.xml"/>
- <module href="project/dumbster.xml"/>
- <module href="project/dom4j.xml"/>
- <module href="project/easymock.xml"/>
- <module href="project/ehcache.xml"/>
- <!-- No more needed module href="project/findbugs.xml"/ -->
- <!--module href="project/freemarker.xml"/-->
- <module href="project/hsqldb.xml"/>
- <module href="project/httpunit.xml"/>
- <module href="project/hibernate.xml"/>
- <module href="project/ibatis.xml"/>
- <module href="project/iso-relax.xml"/>
- <module href="project/invicta.xml"/>
- <module href="project/javagroups.xml"/>
- <module href="project/javassist.xml"/>
- <module href="project/javassist-2.x.xml"/>
- <!--module href="project/javasrc.xml"/-->
- <module href="project/jaxen.xml"/>
- <module href="project/jdbm.xml"/>
- <module href="project/jetty.xml"/>
- <module href="project/jetty4.xml"/>
- <module href="project/jfor.xml"/>
- <module href="project/jgen.xml"/>
- <module href="project/jgroups.xml"/>
- <!-- No more needed module href="project/jrefactory.xml"/ -->
- <module href="project/jtidy.xml"/>
- <module href="project/junit.xml"/>
- <module href="project/jython.xml"/>
- <module href="project/mockobjects.xml"/>
- <module href="project/mx4j.xml"/>
- <module href="project/nant.xml"/>
- <module href="project/picocontainer.xml"/>
- <module href="project/qdox.xml"/>
- <module href="project/quartz.xml"/>
- <module href="project/relaxng.xml"/>
- <module href="project/saxon7.xml"/>
- <module href="project/saxon6.xml"/>
- <module href="project/spring.xml"/>
- <module href="project/struts-sslext.xml"/>
- <!--module href="project/webwork.xml"/-->
- <module href="project/wss4j.xml"/>
- <module href="project/xdoclet.xml"/>
- <module href="project/xjavadoc.xml"/>
- <module href="project/xmlunit.xml"/>
- <module href="project/xml-im-exporter.xml"/>
- <module href="project/junit-addons.xml"/>
- <module href="project/ant-contrib.xml"/>
- <module href="project/ant-contrib-cpptasks.xml"/>
- <!--module href="http://cvs.sourceforge.net/viewcvs.py/*checkout*/ant-contrib/ant-contrib/src/etc/gump-descriptor.xml?rev=HEAD"/-->
- <!--module href="http://cvs.sourceforge.net/viewcvs.py/*checkout*/ant-contrib/cpptasks/src/etc/gump-descriptor.xml?rev=HEAD"/-->
- <!--module href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/ldapd/ldapd-common/gump.xml?rev=HEAD&content-type=text/xml"/-->
- <!--module href="http://cvs.werken.com/viewcvs.cgi/werkz/gump.xml?rev=HEAD&cvsroot=werkz"/-->
-
- <module href="project/smartfrog.xml"/>
-
- <!-- krysalis@sf -->
-
- <!-- NOTE(SM): removing these projects because they are not used by anybody else -->
- <!--module href="project/barcode4j.xml"/-->
- <!--module href="project/antworks-importer.xml"/-->
- <!--module href="project/antworks-antlets.xml"/-->
- <module href="project/jcharts.xml"/>
-
- <!-- misc -->
-
- <module href="project/xpp.xml"/>
-
- <module href="project/antlr.xml"/>
- <module href="project/asm.xml"/>
- <module href="project/packaged-asm.xml"/>
- <module href="project/aspectj.xml"/>
- <module href="project/axion.xml"/>
- <module href="project/bouncycastle.xml"/>
- <module href="project/bsf.xml"/>
- <module href="project/castor.xml"/>
- <module href="project/caucho-libs.xml"/>
- <module href="project/commonj.xml"/>
- <module href="project/cryptix.xml"/>
- <module href="project/domts.xml"/>
- <module href="project/dougLea.xml"/>
- <module href="project/eyebrowse.xml"/>
- <module href="project/icu4j.xml"/>
- <module href="project/jacorb.xml"/>
- <module href="project/javacc.xml"/>
- <module href="project/jce.xml"/>
- <module href="project/jcifs.xml"/>
- <module href="project/jdom.xml"/>
- <!--module href="project/jena.xml"/-->
- <module href="project/jsch.xml"/>
- <module href="project/jdepend.xml"/>
- <module href="project/junitperf.xml"/>
- <module href="project/maven-javaapp-plugin.xml"/>
- <module href="project/nekohtml.xml"/>
- <module href="project/nekopull.xml"/>
- <module href="project/nsuml.xml"/>
- <module href="project/resin.xml"/>
- <module href="project/rhino.xml"/>
- <module href="project/rhino-cocoondev.xml"/>
- <module href="project/scarab.xml"/>
- <module href="project/eclipse.xml"/>
- <module href="project/radeox.xml"/>
- <module href="project/snacc4j.xml"/>
- <module href="project/town.xml"/>
- <module href="project/uddi4j.xml"/>
- <module href="project/village.xml"/>
- <module href="project/wsdl4j.xml"/>
- <module href="project/cos.xml"/>
- <module href="project/multipartrequest.xml"/>
- <module href="project/packaged-jaxen.xml"/>
- <module href="project/packaged-jetty.xml"/>
- <module href="project/packaged-dom4j.xml"/>
-
-<!-- CodeHaus -->
- <module href="project/classworlds.xml"/>
- <module href="project/groovy.xml"/>
- <module href="project/packaged-groovy.xml"/>
- <module href="project/openejb.xml"/>
-
-<!-- D-Haven -->
-
- <module href="project/d-haven.xml"/>
-
-<!-- Sun -->
-
- <module href="project/ejb.xml"/>
- <module href="project/j2ee-connector.xml"/>
- <module href="project/jaas.xml"/>
- <module href="project/jaf.xml"/>
- <module href="project/javamail.xml"/>
- <module href="project/java-xml-pack.xml"/>
- <module href="project/jdbc.xml"/>
- <module href="project/jdo.xml"/>
- <module href="project/jimi.xml"/>
- <module href="project/jisp.xml"/>
- <module href="project/jms.xml"/>
- <module href="project/jmx.xml"/>
- <module href="project/jndi.xml"/>
- <module href="project/jsse.xml"/>
- <module href="project/jta.xml"/>
- <!--module href="project/jts.xml"/-->
- <module href="project/ldap.xml"/>
- <module href="project/msv.xml"/>
- <module href="project/tranquilo.xml"/>
- <module href="project/stax.xml"/>
-
-<!-- java.net -->
-
- <module href="project/which4j.xml"/>
- <module href="project/xom.xml"/>
-
-<!-- OpenSAML -->
- <module href="project/opensaml.xml"/>
-
-
-<!-- OpenSymphony -->
- <module href="project/opensymphony.xml"/>
-
-<!-- Tagish -->
- <module href="project/tagish.xml"/>
-
-<!-- Unknown -->
- <module href="project/tagsoup.xml"/>
-
-<!-- Installed packages -->
-
- <project name="antlr" package="antlr-2.7.3"/>
- <project name="aspectj" package="aspectj-1.2.1rc1"/>
- <!-- project name="avalon-phoenix-dependencies"
- package="avalon-phoenix-dependencies"/ -->
- <project name="axion" package="axion-1.0-M2"/>
- <project name="bcmail" package="bouncycastle-jdk14"/>
- <project name="bcprov" package="bouncycastle-jdk14"/>
- <!--project name="beaver" package="beaver-0.9.3.4"/-->
- <project name="bsf" package="bsf-2_2"/>
- <project name="classworlds" package="classworlds-1.0"/>
- <project name="commonj" package="commonj"/>
- <project name="concurrent" package="dougLea"/>
- <project name="cos" package="cos-05Nov2002"/>
- <project name="cryptix" package="cryptix32-20001002-r3.2.0"/>
- <project name="commons-codec-11" package="commons-codec-1.1"/>
- <!--project name="dumbster" package="dumbster1.3"/-->
- <project name="eclipse" package="eclipse-3.0.1"/>
- <project name="ehcache" package="ehcache-1.0"/>
- <project name="ejb" package="ejb-2_0-fr"/>
- <project name="excalibur-legacy" package="excalibur-legacy"/>
- <project name="excalibur-configuration" package="excalibur-legacy"/>
- <project name="excalibur-instrument-legacy" package="excalibur-legacy"/>
- <project name="hibernate" package="hibernate-2.1"/>
- <project name="cglib" package="hibernate-2.1"/>
- <project name="geronimo-spec-jms" package="jms1.0.2"/>
- <project name="geronimo-spec-jta" package="jta-spec1_0_1"/>
- <project name="d-haven-event" package="d-haven-event-1.0.3"/>
- <project name="d-haven-managed-pool" package="d-haven-managed-pool-1.0"/>
- <project name="hessian" package="caucho-libs"/>
- <project name="ibatis" package="iBATIS_DBL-2.0.5.399"/>
- <project name="iso-relax" package="isorelax.20020707"/>
- <project name="j2ee-connector" package="j2ee_connector-1_5-fr"/>
- <project name="jaas" package="jaas1_0"/>
- <project name="jaf" package="jaf-1.0.1"/>
- <project name="javacc" package="javacc-3.1"/>
- <project name="javamail" package="javamail-1.3.2"/>
- <project name="javassist-2.x" package="javassist-2.6"/>
- <project name="jaxm" package="java_xml_pack-summer-02_01"/>
- <project name="jaxp" package="java_xml_pack-summer-02_01"/>
- <project name="jaxr" package="java_xml_pack-summer-02_01"/>
- <project name="jaxrpc" package="java_xml_pack-summer-02_01"/>
- <project name="jce" package="jce"/>
- <project name="jcharts" package="jCharts-0.7.5"/>
- <project name="jcifs" package="jcifs"/>
- <project name="jdbc" package="jdbc2_0"/>
- <project name="jetty4" package="jetty-4.2.21"/>
- <project name="jimi" package="Jimi"/>
- <project name="jisp" package="jisp-2.5.1"/>
- <project name="jdepend" package="jdepend-2.6"/>
- <project name="jdo" package="jdo-1_0_1-ri"/>
- <project name="jgen" package="jgenerator-2.2"/>
- <project name="jms" package="jms1.1"/>
- <project name="jmx" package="jmx-1_2-ri"/>
- <project name="jndi" package="jndi1_2_1"/>
- <project name="jsch" package="jsch-0.1.18"/>
- <project name="jsse" package="jsse1.0.3"/>
- <project name="jta" package="jta-spec1_0_1"/>
- <!--project name="jts" package="jts1_0"/-->
- <project name="junitperf" package="junitperf-1.8"/>
- <project name="ldap" package="ldap-1_2_4"/>
- <project name="nekohtml" package="nekohtml-0.9.3"/>
- <project name="nekopull" package="nekopull-0.2.4"/>
- <project name="maven-javaapp-plugin" package="maven-javaapp-plugin"/>
- <project name="mockobjects" package="mockobjects-0.09"/>
- <project name="mockobjects-j2ee-13" package="mockobjects-0.09"/>
- <project name="mockobjects-with-groovy-compatible-jar-id"
- package="mockobjects-0.09"/>
- <!--project name="mockobjects-j2ee-14" package="mockobjects-0.09"/-->
- <!--project name="msv" package="msv-20030225"/-->
- <project name="multipartrequest" package="MultipartRequest-1.30rc1"/>
- <project name="nsuml" package="nsuml"/>
- <project name="openejb" package="openejb-0.9.2"/>
- <project name="osworkflow" package="osworkflow-2.7.0"/>
- <project name="oscore" package="oscore-2.2.4"/>
- <project name="packaged-asm" package="asm-1.4.3"/>
- <project name="packaged-groovy" package="groovy-1.0-beta-7"/>
- <project name="packaged-jaxen" package="jaxen-1.0-FCS"/>
- <project name="packaged-jetty" package="jetty-5.0.RC4"/>
- <project name="packaged-jetty-all" package="jetty-5.0.RC4"/>
- <project name="packaged-jetty-jaas" package="jetty-5.0.RC4"/>
- <project name="picocontainer" package="picocontainer-1.1"/>
- <project name="propertyset" package="propertyset-1.2.0"/>
- <project name="qdox" package="qdox-1.5"/>
- <project name="packaged-dom4j" package="dom4j-1.4"/>
- <project name="radeox" package="radeox-1.0-BETA-2"/>
- <project name="relaxng" package="relaxngDatatype-1.0"/>
- <project name="resin" package="resin-3.0.8"/>
- <project name="saxpath" package="jaxen-1.0-FCS"/>
- <project name="saxon7" package="saxon7-9"/>
- <project name="saxon7-sql" package="saxon7-9"/>
- <project name="saxon7-jdom" package="saxon7-9"/>
- <project name="saxon6" package="saxon6_5_3"/>
- <project name="saxon6-jdom" package="saxon6_5_3"/>
- <project name="snacc" package="snacc4j"/>
- <project name="spring" package="spring-framework-1.1.1"/>
- <project name="stax" package="stax"/>
- <project name="tagishauth" package="20030217.jaas-modules.1.0.3.full"/>
- <project name="tagsoup" package="tagsoup-0.10.1"/>
- <project name="tranquilo" package="xsdlib-20010424"/>
-
-<!-- Repository definitions -->
-
- <repository href="repository/ant.xml"/>
- <repository href="repository/apr.xml"/>
- <repository href="repository/apache-httpd.xml"/>
- <repository href="repository/apache-incubator-svn.xml"/>
- <repository href="repository/avalon.xml"/>
- <repository href="repository/avalon-svn.xml"/>
- <repository href="repository/cocoon.xml"/>
- <repository href="repository/cocoondev.xml"/>
- <repository href="repository/lenya.xml"/>
- <repository href="repository/codehaus.xml"/>
- <repository href="repository/codehaus_scm.xml"/>
- <repository href="repository/db.xml"/>
- <repository href="repository/dbxml.xml"/>
- <repository href="repository/devworks.xml"/>
- <repository href="repository/exolab.xml"/>
- <repository href="repository/excalibur-svn.xml"/>
- <repository href="repository/forrest.xml"/>
- <repository href="repository/geronimo.xml"/>
- <repository href="repository/groovy.xml"/>
- <repository href="repository/gump.xml"/>
- <repository href="repository/incubator.xml"/>
- <repository href="repository/jacorb.xml"/>
- <repository href="repository/jakarta.xml"/>
- <repository href="repository/jakarta-svn.xml"/>
- <repository href="repository/james.xml"/>
- <repository href="repository/javanet.xml"/>
- <repository href="repository/jdom.xml"/>
- <repository href="repository/logging.xml"/>
- <repository href="repository/maven.xml"/>
- <repository href="repository/mozilla.xml"/>
- <repository href="repository/objectweb.xml"/>
- <repository href="repository/opensaml.xml"/>
- <repository href="repository/tigris.xml"/>
- <repository href="repository/sourceforge.xml"/>
- <repository href="repository/struts-svn.xml"/>
- <repository href="repository/whichever.xml"/>
- <repository href="repository/w3c.xml"/>
- <repository href="repository/ws.xml"/>
- <repository href="repository/ws-fx.xml"/>
- <repository href="repository/xml.xml"/>
- <repository href="repository/xml-svn.xml"/>
- <repository href="repository/xpp.xml"/>
-
-<!-- server definitions -->
-
- <server href="server/brutus.xml"/>
-
-<!-- tracker definitions -->
-
- <tracker href="tracker/apache-jira.xml"/>
-
+<profile name="gump">
+ <module href="projects/ant.apache.org/module.xml"/>
</profile>
Modified: gump/branches/Dec04MajorCleanup/metadata/projects/ant.apache.org/module.xml
Url: http://svn.apache.org/viewcvs/gump/branches/Dec04MajorCleanup/metadata/projects/ant.apache.org/module.xml?view=diff&rev=124038&p1=gump/branches/Dec04MajorCleanup/metadata/projects/ant.apache.org/module.xml&r1=124037&p2=gump/branches/Dec04MajorCleanup/metadata/projects/ant.apache.org/module.xml&r2=124038
==============================================================================
--- gump/branches/Dec04MajorCleanup/metadata/projects/ant.apache.org/module.xml (original)
+++ gump/branches/Dec04MajorCleanup/metadata/projects/ant.apache.org/module.xml Mon Jan 3 15:33:41 2005
@@ -23,8 +23,9 @@
<cvs repository="ant"/>
- <project href="ant.xml"/>
- <project href="bootstap-ant.xml"/>
+ <project href="projects/ant.apache.org/ant.xml"/>
+ <project href="projects/ant.apache.org/bootstrap-ant.xml"/>
+ <project href="failure"/>
</module>
Modified: gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/__init__.py
Url: http://svn.apache.org/viewcvs/gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/__init__.py?view=diff&rev=124038&p1=gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/__init__.py&r1=124037&p2=gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/__init__.py&r2=124038
==============================================================================
--- gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/__init__.py (original)
+++ gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/__init__.py Mon Jan 3 15:33:41 2005
@@ -66,12 +66,17 @@
# get engine dependencies
log = get_logger(config.log_level, "engine")
db = get_db(config)
- vfsdir = os.path.join(config.paths_work, "vfs-cache" )
+
+ vfsdir = os.path.join(config.paths_work, "vfs-cache")
if not os.path.isdir(vfsdir):
os.mkdir(vfsdir);
vfs = get_vfs(config.paths_metadata, vfsdir)
- modeller_loader = get_modeller_loader(vfs, log)
- modeller_objectifier = get_modeller_objectifier()
+
+ modeller_log = get_logger(config.log_level, "modeller")
+ mergefile = os.path.join(config.paths_work, "merge.xml")
+ dropfile = os.path.join(config.paths_work, "dropped.xml")
+ modeller_loader = get_modeller_loader(modeller_log, vfs, mergefile, dropfile)
+ modeller_objectifier = get_modeller_objectifier(modeller_log)
# create engine
engine = Engine(config, log, db, modeller_loader, modeller_objectifier)
@@ -158,13 +163,13 @@
from gump.engine.vfs import VFS
return VFS(filesystem_root, cache_dir)
-def get_modeller_loader(vfs, log):
+def get_modeller_loader(log, vfs=None, mergefile=None, dropfile=None):
from gump.engine.modeller import Loader
- return Loader(vfs, log)
+ return Loader(log, vfs, mergefile, dropfile)
-def get_modeller_objectifier():
+def get_modeller_objectifier(log):
from gump.engine.modeller import Objectifier
- return Objectifier()
+ return Objectifier(log)
###
### Classes
Modified: gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/modeller.py
Url: http://svn.apache.org/viewcvs/gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/modeller.py?view=diff&rev=124038&p1=gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/modeller.py&r1=124037&p2=gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/modeller.py&r2=124038
==============================================================================
--- gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/modeller.py (original)
+++ gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/modeller.py Mon Jan 3 15:33:41 2005
@@ -25,167 +25,412 @@
from xml import dom
from xml.dom import minidom
-from gump.model import Workspace
+from gump.model import *
class ModellerError(Exception):
+ """Generic error thrown for all internal Modeller module exceptions."""
pass
class Loader:
+ """Parses and resolves Gump XML metadata.
+
+ The only "public" method of this class is get_workspace_tree. This method
+ reads in a gump workspace. It then looks for any elements in that workspace
+ that have a "href" attribute. This href attribute is resolved to a new XML
+ file using the provided Virtual File System, which is then merged with the
+ Element that has the attribute. That resolution process is continued until
+ the entire workspace no longer contains any hrefs. At that point, the entire
+ Workspace is returned as a DOM Element.
+
+ If any HREFs fail to resolve properly, the associated projects (or if there
+ are no associated projects, the associated modules) are removed from the
+ workspace completely. If no associated project or module exists, the Loader
+ will give up and raise an exception.
+
+ Note that the loader does *not* do any verification of the XML it loads.
+ The only thing it assumes is the existence of <project/> elements contained
+ within <module/> elements, and that these elements have name attributes. So,
+ for example, the following would be parsed without complaints by the loader:
+
+ <bogus>
+ <imagine>
+ <any>
+ <xml-data>
+ <with>
+ <module name="foo">
+ <project name="bar">
+ <build href="somefile.xml"/>
+ </project>
+ <project href="otherfile.xml"/>
+ </module>
+ <module href="jo.xml"/>
+ </with>
+ </xml-data>
+ </bogus>
+
+ Of course, other parts of the modeller package are not so tolerant!
"""
- Parses XML, resolves HREFs, creates a big DOM tree.
- """
- def __init__(self,vfs,log):
+ def __init__(self, log, vfs=None, mergefile=None, dropfile=None):
+ """
+ Create a new Loader.
+
+ Arguments:
+
+ - log -- the log to write debug and error messages to.
+ - vfs -- the virtual file system to use for resolving hrefs. May
+ be None only if the workspace to load does not contain
+ any hrefs.
+ - mergefile -- the full path to the file to write the merged
+ workspace xml to. If None, no such file will be
+ written.
+ - dropfile -- the full path to the file to write the xml
+ describing dropped projects to. If None, no such
+ file will be written.
+ """
self.log = log
self.vfs = vfs
+ self.mergefile = mergefile
+ self.dropfile = dropfile
- def get_workspace_tree(self,workspace):
- """
- Parse the workspace, then resolve all hrefs.
+ def get_workspace_tree(self, workspace):
+ """Parse the provided workspace, then resolve all hrefs.
- Returns a tuple with the parsed dom and the nodes that were dropped
- because of problems.
- """
- dom = minidom.parse(workspace)
- dom.normalize()
-
- dropped_nodes = []
- self._resolve_hrefs_in_workspace(dom, dropped_nodes)
+ Returns a tuple with the parsed workspace as a dom Element, and all
+ the Nodes that were dropped because of problems as a list.
- pretty = dom.toprettyxml()
- self.log.debug("Merged XML:")
- self.log.debug("----------------------------------------------------")
- self.log.debug(pretty)
- self.log.debug("----------------------------------------------------")
+ The provided workspace argument can either be a stream or a path to
+ a file.
+ """
+ # get root <workspace/> element
+ wsdom = minidom.parse(workspace)
+ wsdom.normalize()
+ ws = wsdom.documentElement
+
+ dropped_nodes = [] # will be used for storing projects we drop...
+
+ # resolve all hrefs in all elements, for example
+ # <project href="blah.xml"/>; replaces that element with the
+ # contents of blah.xml
+ self._resolve_hrefs_in_workspace(ws, dropped_nodes)
+ # write the merged xml tree to a file
+ self._write_merge_files(wsdom, dropped_nodes)
- return (dom, dropped_nodes)
+ # the combined results
+ return (ws, dropped_nodes)
- def _resolve_hrefs_in_workspace(self, dom, dropped_nodes):
- self._resolve_hrefs_in_children(dom, dropped_nodes)
+ def _resolve_hrefs_in_workspace(self, ws, dropped_nodes):
+ """Redirects to _resolve_hrefs_in_children."""
+ self._resolve_hrefs_in_children(ws, dropped_nodes)
- def _resolve_hrefs_in_children(self, node, dropped_nodes):
- """
- Recursively resolve all hrefs in all the children for a DOM node.
+ def _resolve_hrefs_in_children(self, element, dropped_nodes):
+ """Recursively resolve all hrefs in all the children for a DOM node.
The resolution is done in a resolve-then-recurse manner, so the end
- result is a dom tree without hrefs.
+ result is a dom tree without hrefs. Note that this method expects to
+ be passed in a dom Element or something else which actually has children;
+ passing in an Attr for example makes no sense and results in problems.
+
+ The dropped_nodes arguments should be a list that will be populated with
+ nodes for which href resolution fails.
"""
- for child in node.childNodes:
- # retrieve the referenced document and merge it in
- if child.nodeType == dom.Node.ELEMENT_NODE:
- if child.hasAttribute('href'):
- if not 'url' == child.tagName: # make exception for the <url/> tag, which
- # documents an url for a project
- self._resolve_href(child, dropped_nodes)
+ for child in element.childNodes:
+ # only resolve hrefs for elements
+ if not child.nodeType == dom.Node.ELEMENT_NODE: continue
+ # there's a <url href=""/> element which is descriptive and should
+ # not be resolved
+ if child.tagName == 'url': continue
+ if child.hasAttribute('href'):
+ # yep, this is one to load...
+ self._resolve_href(child, dropped_nodes)
- # now recurse to resolve any hrefs within this child
- self._resolve_hrefs_in_children(child, dropped_nodes)
-
- if child.tagName == 'repository' and child.getAttribute('name'):
- self.log.debug( "Processed repository %s" % child.getAttribute('name') )
- if child.tagName == 'module' and child.getAttribute('name'):
- self.log.debug( "Processed module %s" % child.getAttribute('name') )
- if child.tagName == 'project' and child.getAttribute('name'):
- self.log.debug( "Processed project %s" % child.getAttribute('name') )
+ # now recurse to resolve any hrefs within this child
+ self._resolve_hrefs_in_children(child, dropped_nodes)
- return node
+ # we're now done with resolution
+ #return node
def _resolve_href(self, node, dropped_nodes):
- """
- Resolve a href for the current node by merging the referenced xml
- document with the provided node. The href attribute on the provided
- node will be removed. The modified node is then returned.
+ """Resolve a href for the provided node.
+
+ We merge in the referenced xml document into the provided node.
+ The href attribute on the provided node will be removed if the merge
+ succeeds. If the merge fails the provided node will be removed from
+ its parent and appended to the dropped_nodes list.
"""
href = node.getAttribute('href')
- self.log.debug("Resolving HREF: %s" % href)
+ self.log.debug( "Resolving HREF: %s" % href )
+
try:
stream = self.vfs.get_as_stream(href)
except Exception, details:
- self.log.exception("VFS error while merging in a node!")
+ # swallow this in interest of log readability
self._drop_module_or_project(node, dropped_nodes)
- return
-
- new_node = minidom.parse(stream)
- new_node.normalize()
- stream.close()
- new_node = new_node.getElementsByTagName(node.tagName).item(0)
+ return # make sure to stop processing...
+
+ new_dom = minidom.parse(stream)
+ new_dom.normalize()
+ stream.close() # close file immediately, we're done!
+ new_root = new_dom.documentElement
+ # we succeeded loading the new document, get rid of the href
node.removeAttribute('href')
- return self._merge_nodes(node, new_node)
+
+ self._import_node(node, new_root)
+
+ # we're done with the file now, allow GC
+ new_root.unlink()
- def _merge_nodes(self, target_node, new_node):
- """
- Combines two DOM trees together. The second argument is merged into
- the first argument, which is then returned.
+ def _import_node(self, target_node, new_node):
+ """Combines two DOM trees together.
+
+ The second argument is merged into the first argument, which is then
+ returned.
"""
+ self._import_attributes(target_node, new_node)
+ self._import_children(target_node, new_node)
+
+ def _import_attributes(self, target_node, new_node):
+ """Copy all attributes from the new node to the target node."""
- # copy attributes from the new node to the target node
new_attributes = new_node.attributes
if new_attributes:
- length = len(new_attributes)
+ #if new_attributes.length > 0:
i = 0
- while i < length:
- attribute = new_attributes.item(i)
- attname = attribute.name
- attvalue = new_node.getAttribute(attname)
- #if target_node.getAttributeNode(attname):
- # target_node.removeAttribute(attname)
- target_node.setAttribute(attname, attvalue)
-
- # copy elements from the new node to the target node
+ while i < new_attributes.length: # for loops gives a KeyError,
+ att = new_attributes.item(i) # seems like a minidom bug!
+ i = i + 1
+ if not att: continue
+
+ name = att.name.__str__()
+ value = new_node.getAttribute(name).__str__()
+ target_node.setAttribute(name, value)
+
+ def _import_children(self, target_node, new_node):
+ """Copy all children from the new node to the target node."""
new_elements = new_node.childNodes
- if new_elements:
+ if new_elements and new_elements.length > 0:
for child in new_elements:
- self.log.debug( "Appending child:\n%s" % child.toprettyxml() )
- target_node.appendChild( child )
-
- return target_node
+ clone = child.cloneNode(True)
+ target_node.appendChild( clone )
def _drop_module_or_project(self, node, dropped_nodes):
- """
- Finds the project associated with this node and removes it from the dom tree.
- If there is no associated project, the associated module is removed instead. If
- there is no module either, an exception is raised.
+ """Finds the project associated with this node and removes it.
+
+ If there is no associated project, the associated module is removed
+ instead. If there is no module either, an exception is raised.
"""
- # find the offending project or module
- parent = None
- if node.tagName == "project" or node.tagName == "module":
- parent = node # remove ourself
+ project = self._find_project_containing_node(node)
+ if project:
+ doc = self._find_document_containing_node(project)
+ module = self._find_module_containing_node(project)
+ modulename = module.getAttribute("name")
+ comment = doc.createComment(" Part of module: %s " % modulename)
+ project.appendChild(comment)
+ name = project.getAttribute("name")
+ self.log.warning("Dropping project '%s' from module '%s' because of href resolution error!" % (name , modulename))
+
+ self._do_drop(project, dropped_nodes)
else:
- parent = node.parentNode
- while parent and not node.tagName == "project":
- parent = parent.parentNode
-
- if not parent: # no <project/>, look for <module/>
- parent = node.parentNode
- while parent and not node.tagName == "module":
- parent = parent.parentNode
-
- if not parent:
- # TODO provide more info
- raise ModellerError, "Unresolvable HREF found outside a <project/> or <module/>: %s." % (node.toprettyxml())
-
- # remove that project or module from its parent
- node_to_remove_element_from = parent.parentNode
- if not node_to_remove_element_from:
- # TODO provide more info
- raise ModellerError, "Rogue <project/> or <module/> (without a parent): %s." % (parent.toprettyxml())
- node_to_remove_element_from.removeChild(parent)
-
- # but save it off for error reporting
- self.log.warning("Dropping because of href resolution error:\n%s" % (parent.toprettyxml()))
- dropped_nodes.append(parent)
+ module = self._find_module_containing_node(node)
+ if module:
+ doc = self._find_document_containing_node(module)
+ name = module.getAttribute("name")
+ self.log.warning("Dropping module '%s' because of href resolution error!" % name)
+
+ self._do_drop(project, dropped_nodes)
+ else:
+ raise ModellerError, \
+ "Problematic node has no parent <project/> or " + \
+ "<module/>, unable to recover! Node:\n%s" \
+ % node.toprettyxml()
+
+ def _do_drop(self, to_remove, dropped_nodes):
+ """Remove node from its parent and add to dropped_nodes list."""
+
+ node_to_remove_element_from = to_remove.parentNode
+ node_to_remove_element_from.removeChild(to_remove)
+ dropped_nodes.append(to_remove)
+
+ def _find_document_containing_node(self, node):
+ """Walk up the DOM hierarchy to locate a Document node."""
+ parent = node
+ while not parent.nodeType == dom.Node.DOCUMENT_NODE:
+ parent = parent.parentNode
+ if not parent: # really ought not happen I think...
+ raise ModellerError, "Cannot find document containing this node!"
+
+ return parent
+
+ def _find_project_containing_node(self, node):
+ """Walk up the DOM hierarchy to locate a <project> Element."""
+
+ parent = node
+ while parent.nodeType == dom.Node.ELEMENT_NODE:
+ if parent.tagName == "project":
+ return parent
+ parent = parent.parentNode
+ if not parent:
+ return None
+
+ def _find_module_containing_node(self, node):
+ """Walk up the DOM hierarchy to locate a <module> Element."""
+ parent = node
+ while parent.nodeType == dom.Node.ELEMENT_NODE:
+ if parent.tagName == "module":
+ return parent
+ parent = parent.parentNode
+ if not parent:
+ return None
+
+ def _write_merge_files(self, wsdom, dropped_nodes):
+ """Write the fully resolved DOM tree to a file.
+
+ Also writes an XML file detailing any projects and modules that were
+ dropped because of a HREF resolution issue.
+ """
+ if self.mergefile:
+ merged = open(self.mergefile, 'w')
+ merged.write( wsdom.toprettyxml() )
+ merged.close()
+
+ if self.dropfile and len(dropped_nodes) > 0:
+ impl = dom.getDOMImplementation()
+ dropdoc = impl.createDocument(None, "dropped-projects-and-modules", None)
+ dropdocroot = dropdoc.documentElement
+ for node in dropped_nodes:
+ dropdocroot.appendChild(node)
+ dropped = open(self.dropfile, 'w')
+ dropped.write( dropdoc.toprettyxml() )
+ dropped.close()
class Objectifier:
- """
- Turns DOM workspace into Pythonified workspace.
- """
+ """Turns DOM workspace into Pythonified workspace."""
+
+ def __init__(self, log):
+ self.log = log
+
def get_workspace(self, dom):
+ raise RuntimeError, "not implemented!" # TODO
+
workspace = self._create_workspace(dom)
+ self._create_repositories(workspace, dom)
+ self._create_modules(workspace, dom)
+ self._create_projects(workspace, dom)
- raise RuntimeError, "not implemented!" # TODO
- def _create_workspace(self, dom):
- root = dom.getElementsByTagName('workspace').item(0)
- workspace = Workspace(root.getAttribute('name'))
\ No newline at end of file
+ def _create_workspace(self, root):
+ workspace = Workspace(root.getAttribute('name'))
+
+
+ def _create_repositories(self, workspace, root):
+ repository_definitions = self._find_repository_definitions(root)
+
+ undefined = []
+
+ for repository_definition in repository_definitions:
+ if not repository_definition.hasChildNodes(): # hope it gets defined later
+ if not repository.getAttribute("name"):
+ raise ModellerError, "Encountered a repository without a name!"
+ undefined.append(repository_definition)
+ continue
+
+ name = repository_definition.getAttribute("name")
+ title = None
+ try: title = self._find_element_text(repository_definition, "title")
+ except: pass
+
+ home_page = None
+ try: home_page = self._find_element_text(repository_definition, "home-page")
+ except: pass
+
+ cvsweb = None
+ try: cvsweb = self._find_element_text(repository_definition, "cvsweb")
+ except:
+ try: cvsweb = self._find_element_text(repository_definition, "web")
+ except: pass
+
+ redistributable = False
+ if repository_definition.getElementsByTagName("redistributable").length > 0:
+ redistributable = True
+
+ repository = None
+
+ type = repository_definition.getAttribute("type").upper()
+ if type == "CVS":
+ repository = _create_cvs_repository(workspace, name, title, home_page, cvsweb, redistributable, repository_definition)
+ elif type == "SVN":
+ repository = _create_svn_repository(workspace, name, title, home_page, cvsweb, redistributable, repository_definition)
+ else:
+ raise ModellerError, "Unknown repository type '%s' for repository '%s'" % (type, name)
+
+ workspace.repositories[name] = repository
+
+ # TODO: add support for maven repository definitions here as found
+ # inside maven project.xml files...
+
+ # walk the undefined repository list to make sure they're all defined
+ # now. If that's not the case, we'll complain about it right here.
+ for repository_definition in undefined:
+ name = repository_definition.getAttribute("name")
+ if not workspace.repositories.has_key(name):
+ # TODO: drop associated modules and projects instead
+ raise ModellerError, "Repository '%s' is referenced but never defined!" % name
+
+ undefined = None # clean up just to be sure...
+
+ def _create_cvs_repository(self, workspace, name, title, home_page, cvsweb, redistributable, repository_definition):
+ hostname = self._find_element_text(repository_definition, "hostname")
+ path = self._find_element_text(repository_definition, "path")
+
+ method = CVS_METHOD_PSERVER
+ try: method = self._find_element_text(repository_definition, "method")
+ except: pass
+
+ user = None
+ try: user = self._find_element_text(repository_definition, "user")
+ except: pass
+
+ password = None
+ try: password = self._find_element_text(repository_definition, "password")
+ except: pass
+
+ repository = CvsRepository(workspace,
+ name,
+ hostname,
+ path,
+ title = title,
+ home_page = home_page,
+ cvsweb = cvsweb,
+ redistributable = False,
+ method = CVS_METHOD_PSERVER,
+ user = user,
+ password = password)
+ return repository
+
+ def _find_repository_definitions(self, root):
+ return root.getElementsByTagName("repository")
+
+ def _find_element_text(self, parent, element_name):
+ return parent.getElementsByTagName(element_name).item(0).firstChild.data
+
+ def _create_modules(self, repositories, root):
+ module_definitions = self._find_module_definitions(root)
+
+ for module_definition in module_definitions:
+ name = module_definition.getAttribute("name")
+ repository = self._find_repository_for_module(repositories, module_definition)
+ module = Module(repository)
+ if repository:
+ repository.modules[name] = module
+
+ def _create_projects(self, modules, root):
+ project_definitions = self._find_project_definitions(root)
+
+ for project_definition in project_definitions:
+ name = project_definition.getAttribute("name")
+ module = self._find_module_for_project(modules, project_definition)
+ project = Project(module)
+ if module:
+ module.projects[name] = project
\ No newline at end of file
Modified: gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/vfs.py
Url: http://svn.apache.org/viewcvs/gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/vfs.py?view=diff&rev=124038&p1=gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/vfs.py&r1=124037&p2=gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/vfs.py&r2=124038
==============================================================================
--- gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/vfs.py (original)
+++ gump/branches/Dec04MajorCleanup/pygump/python/gump/engine/vfs.py Mon Jan 3 15:33:41 2005
@@ -60,7 +60,7 @@
it is not possible to "escape" from this
root.
- cachedir -- path to the directory on this machine that should
- be used as the
+ be used as the cache for downloaded files.
"""
if filesystem_root:
self.filesystem_root = os.path.abspath(filesystem_root)
@@ -86,7 +86,7 @@
"""
if not url_or_path:
- raise Error, "Bad url or path requested: %s" % url_or_path
+ raise Error, "Bad url or path requested: '%s'" % url_or_path
if string.find(url_or_path, ':') != -1:
return self._get_url_as_stream(url_or_path)
@@ -113,19 +113,19 @@
a Error will be thrown.
"""
if not self.filesystem_root:
- raise Error, "This VFS does not support retrieving local files (%s was requested)!" % path
+ raise Error, "This VFS does not support retrieving local files ('%s' was requested)!" % path
relpath = path.lstrip('/') # transform absolute paths into paths
# relative to the VFS filesystem "root"
fullpath = os.path.abspath(os.path.join( self.filesystem_root, relpath ))
if not fullpath.startswith(self.filesystem_root):
- raise Error, "The requested resource %s is not part of the VFS!" % path
+ raise Error, "The requested resource '%s' is not part of the VFS!" % path
if not os.path.exists(fullpath):
- raise Error, "No resource %s found in VFS!" % path
+ raise Error, "No resource '%s' found in VFS!" % path
if not os.path.isfile(fullpath):
- raise Error, "Requested resource %s is not a stream!" % path
+ raise Error, "Requested resource '%s' is not a stream!" % path
return open(fullpath)