ajack 2004/01/23 15:32:27
Modified: python/gump/model module.py ant.py project.py depend.py
template/forrest/src/documentation/content/xdocs site.xml
python/gump/test/resources/full1 module5.xml module4.xml
svn_module1.xml module2.xml maven1.xml package1.xml
module3.xml
python/gump/output xref.py
python/gump/syndication syndicator.py
python/gump/utils note.py
python/gump/document forrest.py
Log:
1) Fixed 'full dependee' count (for proj/module) -- better view of "affects".
2) Made not push to RSS/Atom if goes from prereq failed to success.
3) Cleaned the test data some more.
4) More xref (by description, by output)
5) Dependencies/Dependees not annotated (prior to next step = optimize).
Revision Changes Path
1.29 +4 -4 jakarta-gump/python/gump/model/module.py
Index: module.py
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/model/module.py,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- module.py 20 Jan 2004 21:55:23 -0000 1.28
+++ module.py 23 Jan 2004 23:32:26 -0000 1.29
@@ -393,7 +393,7 @@
if not project in self.totalDependees:
self.totalDependees.append(project)
for dependee in project.getFullDependees():
- dependeeProject=dependee.getProject()
+ dependeeProject=dependee.getOwnerProject()
if not dependeeProject in self.totalDependees:
self.totalDependees.append(dependeeProject)
1.13 +2 -1 jakarta-gump/python/gump/model/ant.py
Index: ant.py
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/model/ant.py,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ant.py 9 Jan 2004 19:57:18 -0000 1.12
+++ ant.py 23 Jan 2004 23:32:26 -0000 1.13
@@ -134,7 +134,8 @@
INHERIT_ALL, \
runtime,
0, \
- ids)
+ ids,
+ 'Property Dependency for ' + property.name)
# :TODOs:
# if not property.classpath: depend['noclasspath']=Single({})
1.29 +6 -6 jakarta-gump/python/gump/model/project.py
Index: project.py
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/model/project.py,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- project.py 16 Jan 2004 23:12:10 -0000 1.28
+++ project.py 23 Jan 2004 23:32:26 -0000 1.29
@@ -325,7 +325,7 @@
if not dependee in self.fullDependees:
# We have a new dependee
self.fullDependees.append(dependee)
- for subdependee in dependee.getProject().getFullDependees():
+ for subdependee in dependee.getOwnerProject().getFullDependees():
if not subdependee in self.fullDependees:
self.fullDependees.append(subdependee)
self.fullDependees.sort()
@@ -347,10 +347,10 @@
affected=0
# Get all dependenees (optional/otherwise)
- dependees=self.getFullDependees()
+ fullDependees=self.getFullDependees()
# Look through all dependees
- for dependee in dependees:
+ for dependee in fullDependees:
project=dependee.getOwnerProject()
cause=project.getCause()
1.7 +9 -2 jakarta-gump/python/gump/model/depend.py
Index: depend.py
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/model/depend.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- depend.py 9 Jan 2004 19:57:18 -0000 1.6
+++ depend.py 23 Jan 2004 23:32:26 -0000 1.7
@@ -105,6 +105,10 @@
elif 'none' == xmldepend.inherit:
inherit=INHERIT_NONE
+ ids = xmldepend.ids
+
+ annotation = 'Expressed Dependency'
+
#
# Construct the dependency
#
@@ -112,12 +116,14 @@
dependProject, \
inherit, \
runtime, \
- optional)
+ optional, \
+ ids, \
+ annotation)
class ProjectDependency(Annotatable):
""" A dependency from one project to another """
- def __init__(self,owner,project,inherit,runtime=0,optional=0,ids=None):
+ def
__init__(self,owner,project,inherit,runtime=0,optional=0,ids=None,annotation=None):
Annotatable.__init__(self)
@@ -127,6 +133,7 @@
self.runtime=runtime
self.optional=optional
self.ids=ids
+ if annotation: self.addInfo(annotation)
# :TODO: if same ids, but different order/spacing, it ought match..
def __eq__(self,other):
1.16 +3 -0
jakarta-gump/template/forrest/src/documentation/content/xdocs/site.xml
Index: site.xml
===================================================================
RCS file:
/home/cvs/jakarta-gump/template/forrest/src/documentation/content/xdocs/site.xml,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- site.xml 21 Jan 2004 18:52:30 -0000 1.15
+++ site.xml 23 Jan 2004 23:32:26 -0000 1.16
@@ -56,10 +56,13 @@
<index label="Index" href="gump_xref/index.html"/>
<index label="by Repository" href="gump_xref/repo_module.html"/>
<index label="by Package" href="gump_xref/package_module.html"/>
+ <index label="by Description" href="gump_xref/description_module.html"/>
</stats>
<stats label="Projects" tab="xref">
<index label="by Package" href="gump_xref/package_project.html"/>
+ <index label="by Description" href="gump_xref/description_project.html"/>
+ <index label="by Output" href="gump_xref/output_project.html"/>
</stats>
<external-refs>
1.4 +1 -1 jakarta-gump/python/gump/test/resources/full1/module5.xml
Index: module5.xml
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/module5.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- module5.xml 21 Jan 2004 18:52:30 -0000 1.3
+++ module5.xml 23 Jan 2004 23:32:26 -0000 1.4
@@ -8,7 +8,7 @@
<cvs repository="repository1"/>
<project name="project5">
- <package>org.apache.project5t</package>
+ <package>org.apache.project5</package>
<depend project="alias1"/>
1.5 +0 -1 jakarta-gump/python/gump/test/resources/full1/module4.xml
Index: module4.xml
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/module4.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- module4.xml 21 Jan 2004 18:52:30 -0000 1.4
+++ module4.xml 23 Jan 2004 23:32:26 -0000 1.5
@@ -16,7 +16,6 @@
<depend project="project1"/>
<depend project="project3"/>
- <option project="random"/>
<home nested="dist"/>
1.4 +0 -2 jakarta-gump/python/gump/test/resources/full1/svn_module1.xml
Index: svn_module1.xml
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/svn_module1.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- svn_module1.xml 21 Jan 2004 18:52:30 -0000 1.3
+++ svn_module1.xml 23 Jan 2004 23:32:26 -0000 1.4
@@ -10,8 +10,6 @@
<project name="svn_project1">
<package>org.apache.tools.svn_project1</package>
<ant target="gump"/>
- <depend project="random"/>
- <option project="random"/>
<home nested="dist"/>
<jar name="lib/outputSVN.jar" id="outputSVN"/>
<license name="LICENSE"/>
1.9 +0 -1 jakarta-gump/python/gump/test/resources/full1/module2.xml
Index: module2.xml
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/module2.xml,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- module2.xml 21 Jan 2004 18:52:30 -0000 1.8
+++ module2.xml 23 Jan 2004 23:32:26 -0000 1.9
@@ -17,7 +17,6 @@
</ant>
<depend project="project1" inherit="runtime"/>
- <option project="random"/>
<home nested="dist"/>
<mkdir dir="mkdir2"/>
1.5 +2 -3 jakarta-gump/python/gump/test/resources/full1/maven1.xml
Index: maven1.xml
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/maven1.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- maven1.xml 21 Jan 2004 18:52:30 -0000 1.4
+++ maven1.xml 23 Jan 2004 23:32:26 -0000 1.5
@@ -12,12 +12,11 @@
<maven target="gump"/>
- <depend project="project4"/>
- <option project="random"/>
+ <depend project="alias1"/>
<home nested="dist"/>
- <jar name="lib/output1.jar" id="output1"/>
+ <jar name="lib/maven1.jar" id="maven1"/>
<license name="LICENSE"/>
1.4 +0 -5 jakarta-gump/python/gump/test/resources/full1/package1.xml
Index: package1.xml
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/package1.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- package1.xml 21 Jan 2004 18:52:30 -0000 1.3
+++ package1.xml 23 Jan 2004 23:32:26 -0000 1.4
@@ -12,9 +12,6 @@
<ant target="gump"/>
- <depend project="random"/>
- <option project="random"/>
-
<home nested="dist"/>
<jar name="lib/output.jar" id="output"/>
@@ -27,8 +24,6 @@
<project name="honorary1">
<package>org.apache.tools.honarary1</package>
- <depend project="random"/>
- <option project="random"/>
<home nested="dist"/>
</project>
</module>
1.7 +1 -4 jakarta-gump/python/gump/test/resources/full1/module3.xml
Index: module3.xml
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/module3.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- module3.xml 21 Jan 2004 18:52:30 -0000 1.6
+++ module3.xml 23 Jan 2004 23:32:26 -0000 1.7
@@ -10,12 +10,9 @@
<project name="project3">
<package>org.apache.project3</package>
- <ant target="gump">
- <property name="ant.home" reference="home" project="project1"/>
- </ant>
+ <ant target="gump"/>
<depend project="project2" runtime="true"/>
- <option project="random"/>
<home nested="dist"/>
1.6 +77 -0 jakarta-gump/python/gump/output/xref.py
Index: xref.py
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/output/xref.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- xref.py 9 Jan 2004 19:57:18 -0000 1.5
+++ xref.py 23 Jan 2004 23:32:27 -0000 1.6
@@ -79,12 +79,23 @@
self.workspace=workspace
self.repositoryToModule={}
+
self.packageToModule={}
self.packageToProject={}
+ self.descriptionToModule={}
+ self.descriptionToProject={}
+
+ self.outputToProject={}
+
+ self.descriptorLocationToProject={}
+
# Build Information Maps
self.mapRepositories()
self.mapPackages()
+ self.mapDescriptions()
+ self.mapOutputs()
+ self.mapDescriptorLocations()
def mapRepositories(self):
for module in self.workspace.getModules():
@@ -117,6 +128,60 @@
if not project in self.packageToProject[packageName]:
self.packageToProject[packageName].append(project)
+ def mapDescriptions(self):
+ for module in self.workspace.getModules():
+ if module.isPackaged(): continue
+
+ moduleDescription=module.getDescription()
+ if moduleDescription:
+ if not self.descriptionToModule.has_key(moduleDescription):
+ self.descriptionToModule[moduleDescription]=[]
+
+ if not module in self.descriptionToModule[moduleDescription]:
+ self.descriptionToModule[moduleDescription].append(module)
+
+ for project in module.getProjects():
+ if project.isPackaged(): continue
+
+ projectDescription=project.getDescription()
+ if projectDescription:
+ if not self.descriptionToProject.has_key(projectDescription):
+ self.descriptionToProject[projectDescription]=[]
+
+ if not project in self.descriptionToProject[projectDescription]:
+
self.descriptionToProject[projectDescription].append(project)
+
+
+ def mapOutputs(self):
+ for module in self.workspace.getModules():
+
+ for project in module.getProjects():
+
+ if project.hasJars():
+
+ for jar in project.getJars():
+ jarName=jar.getName()
+ if not self.outputToProject.has_key(jarName):
+ self.outputToProject[jarName]=[]
+
+ if not project in self.outputToProject[jarName]:
+ self.outputToProject[jarName].append(project)
+
+
+ def mapDescriptorLocations(self):
+ for module in self.workspace.getModules():
+
+ for project in module.getProjects():
+
+ locn=str(project.xml.href)
+
+ if locn:
+ if not self.outputToProject.has_key(locn):
+ self.outputToProject[locn]=[]
+
+ if not project in self.outputToProject[locn]:
+ self.outputToProject[locn].append(project)
+
def getRepositoryToModuleMap(self):
return self.repositoryToModule
@@ -125,5 +190,17 @@
def getPackageToProjectMap(self):
return self.packageToProject
+
+ def getDescriptionToModuleMap(self):
+ return self.descriptionToModule
+
+ def getDescriptionToProjectMap(self):
+ return self.descriptionToProject
+
+ def getOutputToProjectMap(self):
+ return self.outputToProject
+
+ def getDescriptorLocationToProjectMap(self):
+ return self.descriptorLocationToProject
1.17 +43 -18 jakarta-gump/python/gump/syndication/syndicator.py
Index: syndicator.py
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/syndication/syndicator.py,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- syndicator.py 16 Jan 2004 17:37:16 -0000 1.16
+++ syndicator.py 23 Jan 2004 23:32:27 -0000 1.17
@@ -182,24 +182,30 @@
+ note.getLevelName() + '</td><td>' \
+ note.getText() + '</td></tr>\n')
content += '<table></p>'
-
- if object.worklist:
- content += '<p><table>'
- for work in object.worklist:
- url=resolver.getAbsoluteUrl(work)
- state=stateName(work.state)
- content += ('<tr><td><a href=\'' + \
- url + '\'>' + work.getName() + \
- '</a></td><td>' + state + \
- '</td></tr>\n')
- content += '</table></p>'
-
-# Overkill
-# content += ('<br><hr>\n<img align=\'left\' alt=\'Brought to you by Jakarta
Gump\' src=\'%s\'/>') \
-# % resolver.getImageUrl('apache.png')
+
+ #
+ # They can come visit for this...
+ #
+
+ #if object.worklist:
+ # content += '<p><table>'
+ # for work in object.worklist:
+ # url=resolver.getAbsoluteUrl(work)
+ # state=stateName(work.state)
+ # content += ('<tr><td><a href=\'' + \
+ # url + '\'>' + work.getName() + \
+ # '</a></td><td>' + state + \
+ # '</td></tr>\n')
+ # content += '</table></p>'
return content
+ #
+ # Only report once per state change
+ # Don't report on prereq failed, or if just came from that
+ # Don't report on packages
+ # Don't report on bogus states (testing)
+ #
def moduleOughtBeWidelySyndicated(self, module):
stats=module.getStats()
@@ -209,8 +215,18 @@
and not stats.currentState == STATE_UNSET \
and not stats.currentState == STATE_NONE \
and not stats.currentState == STATE_COMPLETE \
+ and not ( \
+ stats.currentState == STATE_SUCCESS and \
+ stats.previousState == STATE_PREREQ_FAILED ) \
and not module.isPackaged()
+
+ #
+ # Only report once per state change
+ # Don't report on prereq failed, or if just came from that
+ # Don't report on packages
+ # Don't report on bogus states (testing)
+ #
def projectOughtBeWidelySyndicated(self, project):
stats=project.getStats()
@@ -220,10 +236,16 @@
and not stats.currentState == STATE_UNSET \
and not stats.currentState == STATE_NONE \
and not stats.currentState == STATE_COMPLETE \
+ and not ( \
+ stats.currentState == STATE_SUCCESS and \
+ stats.previousState == STATE_PREREQ_FAILED ) \
and not project.isPackaged()
def syndicate(run):
+ #
+ # Produce an RSS Feed
+ #
try:
from gump.syndication.rss import RSSSyndicator
simple=RSSSyndicator()
@@ -231,6 +253,9 @@
except:
log.error('Failed to generate RSS Feeds', exc_info=1)
+ #
+ # Produce an Atom Feed
+ #
try:
from gump.syndication.atom import AtomSyndicator
atom=AtomSyndicator()
1.6 +11 -1 jakarta-gump/python/gump/utils/note.py
Index: note.py
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/utils/note.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- note.py 9 Jan 2004 19:57:19 -0000 1.5
+++ note.py 23 Jan 2004 23:32:27 -0000 1.6
@@ -145,7 +145,17 @@
output.write(getIndent(indent)+'Annotations:\n')
for note in self.annotations:
- note.dump(indent+1,output)
+ note.dump(indent+1,output)
+
+
+ def getAnnotationsAsString(self,eol="\n"):
+ notes=''
+
+ if self.annotations:
+ for note in self.annotations:
+ notes += str(note) + eol
+
+ return notes
def transferAnnotations(source,destination):
for note in source.annotations:
1.57 +167 -9 jakarta-gump/python/gump/document/forrest.py
Index: forrest.py
===================================================================
RCS file: /home/cvs/jakarta-gump/python/gump/document/forrest.py,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -r1.56 -r1.57
--- forrest.py 21 Jan 2004 21:26:02 -0000 1.56
+++ forrest.py 23 Jan 2004 23:32:27 -0000 1.57
@@ -1067,7 +1067,7 @@
def
documentDependenciesList(self,xdocNode,title,dependencies,dependees,referencingObject):
if dependencies:
projectSection=xdocNode.createSection(title)
-
projectTable=projectSection.createTable(['Name','Type','Inheritence','Ids','State'])
+
projectTable=projectSection.createTable(['Name','Type','Inheritence','Ids','State','Notes'])
for depend in dependencies:
# Project/Owner
@@ -1096,8 +1096,14 @@
ids = depend.getIds() or 'All'
projectRow.createData(ids)
- # State description
-
self.insertStateDescription(project,referencingObject,projectRow.createData())
+ # State Icon
+
self.insertStateIcon(project,referencingObject,projectRow.createData())
+
+ # Dependency Annotations
+ noteData=projectRow.createData()
+ for note in depend.getAnnotations():
+ noteData.createText(str(note))
+ noteData.createBreak()
def documentAnnotations(self,xdocNode,annotatable):
@@ -1460,8 +1466,8 @@
document.createParagraph("""
Statistics from Gump show the depth and health of inter-relationships.
- See side menu for choices.
""")
+
overviewSection=document.createSection('Overview')
overviewList=overviewSection.createList()
@@ -1469,6 +1475,7 @@
overviewList.createEntry('Projects: ', stats.wguru.projectsInWorkspace)
overviewList.createEntry('Avg Projects Per Module: ',
stats.wguru.averageProjectsPerModule)
+ self.documentSummary(overviewSection,workspace.getProjectSummary())
mstatsSection=document.createSection('Module Statistics')
mstatsTable=mstatsSection.createTable(['Page','Description'])
@@ -1539,7 +1546,7 @@
# Projects By Sequence
pBySeq=self.documentProjectsBySequenceInState(stats, run, workspace,
gumpSet)
pstatsRow=pstatsTable.createRow()
- pstatsRow.createData().createLink(pBySeq, 'Projects By duration in state')
+ pstatsRow.createData().createLink(pBySeq, 'Projects By Duration in state')
pstatsRow.createData('Duration in current state.')
document.serialize()
@@ -1796,18 +1803,43 @@
mxrefRow.createData().createLink(mByP, 'Modules By Package')
mxrefRow.createData('The package(s) contained in the module.')
+ # Modules By Description
+ mByD=self.documentModulesByDescription(xref, run, workspace, gumpSet)
+ mxrefRow=mxrefTable.createRow()
+ mxrefRow.createData().createLink(mByD, 'Modules By Description')
+ mxrefRow.createData('The descriptions for the module.')
+
##################################################################3
# Projects ...........
pxrefSection=document.createSection('Project Cross Reference')
pxrefTable=pxrefSection.createTable(['Page','Description'])
- # Modules By Package
+ # Projects By Package
pByP=self.documentProjectsByPackage(xref, run, workspace, gumpSet)
pxrefRow=pxrefTable.createRow()
pxrefRow.createData().createLink(pByP, 'Projects By Package')
pxrefRow.createData('The package(s) contained in the project.')
+ # Projects By Description
+ pByD=self.documentProjectsByDescription(xref, run, workspace, gumpSet)
+ pxrefRow=pxrefTable.createRow()
+ pxrefRow.createData().createLink(pByD, 'Projects By Description')
+ pxrefRow.createData('The descriptions for the project.')
+
+ # Projects By Outputs
+ pByO=self.documentProjectsByOutput(xref, run, workspace, gumpSet)
+ pxrefRow=pxrefTable.createRow()
+ pxrefRow.createData().createLink(pByO, 'Projects By Output')
+ pxrefRow.createData('The outputs for the project, e.g. jars.')
+
+
+ # Projects By Descriptor Location
+ #pByDL=self.documentProjectsByDescriptorLocation(xref, run, workspace,
gumpSet)
+ #pxrefRow=pxrefTable.createRow()
+ #pxrefRow.createData().createLink(pByDL, 'Projects By Descriptor Location')
+ #pxrefRow.createData('The descriptor for the project.')
+
document.serialize()
def documentModulesByRepository(self,xref,run,workspace,gumpSet):
@@ -1868,6 +1900,38 @@
return fileName + '.html'
+
+ def documentModulesByDescription(self,xref,run,workspace,gumpSet):
+ fileName='description_module'
+ file=self.resolver.getFile(xref,fileName)
+ document=XDocDocument('Modules By Description', file)
+
+ descriptionTable=document.createTable(['Modules By Description'])
+
+ descriptionMap=xref.getDescriptionToModuleMap()
+ for description in createOrderedList(descriptionMap.keys()):
+
+ moduleList=createOrderedList(descriptionMap.get(description))
+
+ hasSome=0
+ for module in moduleList:
+ if not gumpSet.inModules(module): continue
+ hasSome=1
+
+ if hasSome:
+ descriptionRow=descriptionTable.createRow()
+ descriptionRow.createData(description)
+
+ moduleData=descriptionRow.createData()
+ for module in moduleList:
+ if not gumpSet.inModules(module): continue
+ self.insertLink(module, xref, moduleData)
+ moduleData.createText(' ')
+
+ document.serialize()
+
+ return fileName + '.html'
+
def documentProjectsByPackage(self,xref,run,workspace,gumpSet):
fileName='package_project'
file=self.resolver.getFile(xref,fileName)
@@ -1890,6 +1954,100 @@
packageRow.createData(package)
projectData=packageRow.createData()
+ for project in projectList:
+ if not gumpSet.inSequence(project): continue
+ self.insertLink(project, xref, projectData)
+ projectData.createText(' ')
+
+ document.serialize()
+
+ return fileName + '.html'
+
+ def documentProjectsByDescription(self,xref,run,workspace,gumpSet):
+ fileName='description_project'
+ file=self.resolver.getFile(xref,fileName)
+ document=XDocDocument('Projects By Description', file)
+
+ descriptionTable=document.createTable(['Projects By Description'])
+
+ descriptionMap=xref.getDescriptionToProjectMap()
+ for description in createOrderedList(descriptionMap.keys()):
+
+ projectList=createOrderedList(descriptionMap.get(description))
+
+ hasSome=0
+ for project in projectList:
+ if not gumpSet.inSequence(project): continue
+ hasSome=1
+
+ if hasSome:
+ descriptionRow=descriptionTable.createRow()
+ descriptionRow.createData(description)
+
+ projectData=descriptionRow.createData()
+ for project in projectList:
+ if not gumpSet.inSequence(project): continue
+ self.insertLink(project, xref, projectData)
+ projectData.createText(' ')
+
+ document.serialize()
+
+ return fileName + '.html'
+
+
+ def documentProjectsByOutput(self,xref,run,workspace,gumpSet):
+ fileName='output_project'
+ file=self.resolver.getFile(xref,fileName)
+ document=XDocDocument('Projects By Outputs (e.g. Jars)', file)
+
+ outputTable=document.createTable(['Projects By Outputs (e.g. Jars)'])
+
+ outputMap=xref.getOutputToProjectMap()
+ for output in createOrderedList(outputMap.keys()):
+
+ projectList=createOrderedList(outputMap.get(output))
+
+ hasSome=0
+ for project in projectList:
+ if not gumpSet.inSequence(project): continue
+ hasSome=1
+
+ if hasSome:
+ outputRow=outputTable.createRow()
+ outputRow.createData(output)
+
+ projectData=outputRow.createData()
+ for project in projectList:
+ if not gumpSet.inSequence(project): continue
+ self.insertLink(project, xref, projectData)
+ projectData.createText(' ')
+
+ document.serialize()
+
+ return fileName + '.html'
+
+ def documentProjectsByDescriptorLocation(self,xref,run,workspace,gumpSet):
+ fileName='descriptor_project'
+ file=self.resolver.getFile(xref,fileName)
+ document=XDocDocument('Projects By Descriptor Location', file)
+
+ descLocnTable=document.createTable(['Projects By Descriptor Location'])
+
+ descLocnMap=xref.getDescriptorLocationToProjectMap()
+ for descLocn in createOrderedList(descLocnMap.keys()):
+
+ projectList=createOrderedList(descLocnMap.get(descLocn))
+
+ hasSome=0
+ for project in projectList:
+ if not gumpSet.inSequence(project): continue
+ hasSome=1
+
+ if hasSome:
+ descLocnRow=descLocnTable.createRow()
+ descLocnRow.createData(descLocn)
+
+ projectData=descLocnRow.createData()
for project in projectList:
if not gumpSet.inSequence(project): continue
self.insertLink(project, xref, projectData)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]