You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gump.apache.org by bo...@apache.org on 2010/07/20 08:09:38 UTC
svn commit: r965728 - in /gump/trunk/python/gump/core/model: builder.py
project.py
Author: bodewig
Date: Tue Jul 20 06:09:38 2010
New Revision: 965728
URL: http://svn.apache.org/viewvc?rev=965728&view=rev
Log:
Simplify local installation of POMs with a special 'builder' - will need to learn parsing POMs for versions to become really useful
Modified:
gump/trunk/python/gump/core/model/builder.py
gump/trunk/python/gump/core/model/project.py
Modified: gump/trunk/python/gump/core/model/builder.py
URL: http://svn.apache.org/viewvc/gump/trunk/python/gump/core/model/builder.py?rev=965728&r1=965727&r2=965728&view=diff
==============================================================================
--- gump/trunk/python/gump/core/model/builder.py (original)
+++ gump/trunk/python/gump/core/model/builder.py Tue Jul 20 06:09:38 2010
@@ -328,6 +328,38 @@ class Maven2(Builder):
return None
return self.local_repo
+class Mvn2Install(Maven2):
+ """ Installs a single file into the local mvn repository """
+
+ def __init__(self, dom, project):
+ Maven2.__init__(self, dom, project)
+ self.goal = 'install:install-file'
+ self.packaging = self.getDomAttributeValue('packaging', 'pom')
+ self.file = self.getDomAttributeValue('file', 'pom.xml')
+ self.version = self.getDomAttributeValue('version')
+ self.artifactId = self.getDomAttributeValue('artifactId')
+
+ def expand(self, project, workspace):
+ """ Turns the builder's attributes into properties """
+ Builder.expand(self, project, workspace)
+
+ impl = getDOMImplementation()
+ if (self.artifactId):
+ self.add_property(impl, 'artifactId', self.artifactId)
+ else:
+ self.add_property(impl, 'artifactId', project.getName())
+ self.add_property(impl, 'groupId', project.getArtifactGroup())
+ self.add_property(impl, 'packaging', self.packaging)
+ self.add_property(impl, 'file', self.file)
+ self.add_property(impl, 'version', self.version)
+
+ def add_property(self, impl, name, value):
+ """ Adds a named property """
+ doc = impl.createDocument(None, 'property', None)
+ prop = doc.documentElement
+ prop.setAttribute('name', name)
+ prop.setAttribute('value', value)
+ self.importProperty(prop)
# represents an <configure/> element
class Configure(Builder):
Modified: gump/trunk/python/gump/core/model/project.py
URL: http://svn.apache.org/viewvc/gump/trunk/python/gump/core/model/project.py?rev=965728&r1=965727&r2=965728&view=diff
==============================================================================
--- gump/trunk/python/gump/core/model/project.py (original)
+++ gump/trunk/python/gump/core/model/project.py Tue Jul 20 06:09:38 2010
@@ -28,8 +28,8 @@ import gump.util.process.command
from gump import log
from gump.core.config import default
-from gump.core.model.builder import Ant, NAnt, Maven, Maven2, Script, \
- Configure, Make
+from gump.core.model.builder import Ant, NAnt, Maven, Maven2, Mvn2Install, \
+ Script, Configure, Make
from gump.core.model.depend import Dependable, importDomDependency
from gump.core.model.misc import AddressPair, \
Resultable, Positioned, Mkdir, Delete, JunitReport, Work
@@ -461,6 +461,14 @@ class Project(NamedModelObject, Statable
# Copy over any XML errors/warnings
# :TODO:#1: transferAnnotations(self.xml.maven, self)
+ # Import any <mvn2install part [if not packaged]
+ if self.hasDomChild('mvn2install') and not packaged:
+ self.mvn = Mvn2Install(self.getDomChild('mvn2install'), self)
+ self.builder.append(self.mvn)
+
+ # Copy over any XML errors/warnings
+ # :TODO:#1: transferAnnotations(self.xml.maven, self)
+
# Import any <script part [if not packaged]
if self.hasDomChild('script') and not packaged:
self.script = Script(self.getDomChild('script'), self)
@@ -649,7 +657,10 @@ class Project(NamedModelObject, Statable
self.addJVMArgs(self.getDomChild("maven"))
if self.mvn:
- self.addJVMArgs(self.getDomChild("mvn"))
+ if self.hasDomChild('mvn'):
+ self.addJVMArgs(self.getDomChild("mvn"))
+ if self.hasDomChild('mvn2install'):
+ self.addJVMArgs(self.getDomChild("mvn2install"))
#
# complete properties