Details
-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Won't Fix
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Number of attachments :
Description
Now that pico/nano has one build system and has a lot of dependencies
between the subprojects itself, it is a tedious task to keep the version info
in the dependency up-to-date and for foreign libs consistent used by more
than one project.
Proposal:
Use entities in the project.xml to ease maintenance and ensure
consistency. I use this in an own Maven based project with success. See
following diff for some project.xml files:
====== snip ======
Index: picocontainer/project.xml
===================================================================
RCS file: /cvsroot/picocontainer/java/picocontainer/project.xml,v
retrieving revision 1.60
diff -u -r1.60 project.xml
picocontainer/project.xml 10 Feb 2004 07:33:40 -0000 1.60
+++ picocontainer/project.xml 20 Feb 2004 22:50:00 -0000
@@ -4,6 +4,8 @@
<!ENTITY eacute "é">
<!ENTITY oslash "ø">
<!ENTITY ouml "ö">
+
+ <!ENTITY dep-jmock SYSTEM "../build-system/dependency/jmock.ent">
]>
<project xmlns:j="jelly:core" xmlns:ant="jelly:ant">
@@ -138,10 +140,7 @@
<dependencies>
<!-- test time only -->
- <dependency>
- <id>jmock</id>
- <version>SNAPSHOT</version>
- </dependency>
+ &dep-jmock;
</dependencies>
@@ -222,13 +221,6 @@
<name>Matt Ho</name>
</contributor>
</contributors>
-
- <dependemcies>
- <dependency>
- <id>junit</id>
- <version>3.8.1</version>
- </dependency>
- </dependemcies>
<build>
<sourceDirectory>$
Index: pool/project.xml
===================================================================
RCS file: /cvsroot/picocontainer/java/pool/project.xml,v
retrieving revision 1.7
diff -u -r1.7 project.xml
pool/project.xml 8 Feb 2004 20:10:52 -0000 1.7
+++ pool/project.xml 20 Feb 2004 22:50:00 -0000
@@ -1,4 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE project [
+ <!ENTITY dep-picocontainer SYSTEM "../build-system/dependency/picocontainer.ent">
+ <!ENTITY dep-nanocontainer-testmodel SYSTEM "../build-system/dependency/nanocontainer-testmodel.ent">
+]>
<project>
<extend>${basedir}
/../project.xml</extend>
@@ -10,17 +14,9 @@
<dependencies>
- <dependency>
- <id>picocontainer</id>
- <version>1.0-beta-5-SNAPSHOT</version>
- <url>http://www.picocontainer.org/</url>
- </dependency>
+ &dep-picocontainer;
+ &dep-nanocontainer-testmodel;
- <dependency>
- <groupId>nanocontainer</groupId>
- <artifactId>nanocontainer-testmodel</artifactId>
- <version>1.0-alpha-1-SNAPSHOT</version>
- </dependency>
</dependencies>
</project>
====== snap ======
The entities for the dependencies are now located in a top-level directory build-system/dependency:
build-system/dependency/jmock.ent
build-system/dependency/nanocontainer-testmodel.ent
build-system/dependency/picocontainer.ent
This will make new releases much easier, just change the entity for the picocontainer and any subproject uses the right version.
Activity
Field | Original Value | New Value |
---|---|---|
Attachment | build-system.tar.gz [ 11522 ] |
Attachment | picocontainer.project.xml.diff [ 11523 ] |
Attachment | locator.tar.gz [ 11524 ] |
Attachment | picocontainer.project.xml.2.diff [ 11525 ] |
Assignee | Joerg Schaible [ joehni ] |
Status | Open [ 1 ] | In Progress [ 3 ] |
-
- Time Spent:
- 2 hours
-
Setup directory build-system with entity definitions.
Converted project.xml of picocontainer for new system.
Time Spent | 2 hours [ 7200 ] | |
Remaining Estimate | 2 hours [ 7200 ] | 6 hours [ 21600 ] |
-
- Time Spent:
- 2 hours
- Use entities in type3msg, testmodel, pool, pool2, picometer
Remaining Estimate | 6 hours [ 21600 ] | 4 hours [ 14400 ] |
Time Spent | 2 hours [ 7200 ] | 4 hours [ 14400 ] |
Status | In Progress [ 3 ] | Open [ 1 ] |
Resolution | Won't Fix [ 2 ] | |
Status | Open [ 1 ] | Closed [ 6 ] |
May you attach a new patch please? JIRA has munged this one (indentation).