Merge lp:~piastucki/bzr-java-lib/bzr-java-lib into lp:~verterok/bzr-java-lib/bzr-java-lib

Proposed by Piotr Piastucki
Status: Merged
Approved by: Guillermo Gonzalez
Approved revision: 221
Merged at revision: 218
Proposed branch: lp:~piastucki/bzr-java-lib/bzr-java-lib
Merge into: lp:~verterok/bzr-java-lib/bzr-java-lib
Diff against target: 288 lines (+67/-17)
11 files modified
pom.xml (+3/-3)
src/main/java/org/vcs/bazaar/client/BazaarStatus.java (+12/-5)
src/main/java/org/vcs/bazaar/client/IBazaarLogMessage.java (+5/-0)
src/main/java/org/vcs/bazaar/client/IBazaarStatus.java (+1/-0)
src/main/java/org/vcs/bazaar/client/commandline/CommandLineClient.java (+1/-1)
src/main/java/org/vcs/bazaar/client/commandline/CommandLineLogMessage.java (+12/-3)
src/main/java/org/vcs/bazaar/client/commandline/CommandLineStatus.java (+2/-2)
src/main/java/org/vcs/bazaar/client/commandline/parser/XMLLogParser.java (+17/-1)
src/main/java/org/vcs/bazaar/client/commandline/parser/XMLStatusParser.java (+2/-2)
src/test/java/org/vcs/bazaar/client/commandline/parser/XMLLogParserTest.java (+8/-0)
src/test/resources/org/vcs/bazaar/client/commandline/parser/log.xml (+4/-0)
To merge this branch: bzr merge lp:~piastucki/bzr-java-lib/bzr-java-lib
Reviewer Review Type Date Requested Status
Guillermo Gonzalez Approve
Review via email: mp+146509@code.launchpad.net

Commit message

This commit adds support for tags in IBazaarLogMessage and introduces directory flag to IBazaarStatus t distinguish between deleted folders and files

Description of the change

Currently there is no way to distinguich between deleted files and directories in status command result. The changes proposed for merging fix the issue.

To post a comment you must log in.
219. By Piotr Piastucki

Add support for tags in IBazaarLogMessage

220. By Piotr Piastucki

Do not getURI() as it is invalid for lp branches

221. By Piotr Piastucki

bump version and fix dependency GAV

Revision history for this message
Guillermo Gonzalez (verterok) wrote :

looks good, thanks for working on this.

review: Approve
Revision history for this message
Guillermo Gonzalez (verterok) wrote :

Could you add a commit message? Once that's added I'll merge the branch.

Thanks.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'pom.xml'
2--- pom.xml 2009-11-15 06:24:46 +0000
3+++ pom.xml 2013-02-07 18:35:23 +0000
4@@ -5,7 +5,7 @@
5 <groupId>org.vcs.bazaar.client</groupId>
6 <artifactId>bzr-java-lib</artifactId>
7 <packaging>jar</packaging>
8- <version>0.5.3-SNAPSHOT</version>
9+ <version>0.5.4-SNAPSHOT</version>
10 <name>bzr-java-lib</name>
11 <url>http://maven.apache.org</url>
12 <scm>
13@@ -24,8 +24,8 @@
14 </repositories>
15 <dependencies>
16 <dependency>
17- <groupId>kxml2</groupId>
18- <artifactId>kxml2-min</artifactId>
19+ <groupId>net.sf.kxml</groupId>
20+ <artifactId>kxml2-min</artifactId>
21 <version>2.3.0</version>
22 </dependency>
23 <dependency>
24
25=== modified file 'src/main/java/org/vcs/bazaar/client/BazaarStatus.java'
26--- src/main/java/org/vcs/bazaar/client/BazaarStatus.java 2009-11-18 08:48:43 +0000
27+++ src/main/java/org/vcs/bazaar/client/BazaarStatus.java 2013-02-07 18:35:23 +0000
28@@ -21,22 +21,24 @@
29 protected final EnumSet<BazaarStatusKind> statuses = EnumSet.noneOf(BazaarStatusKind.class);
30 protected final File branchRoot;
31 protected final File file;
32+ protected final boolean directory;
33
34- public static IBazaarStatus create(File path, File branchRoot, BazaarStatusKind...status) {
35+ public static IBazaarStatus create(File path, boolean directory, File branchRoot, BazaarStatusKind...status) {
36 final List<BazaarStatusKind> statuses = new ArrayList<BazaarStatusKind>(1);
37 for (BazaarStatusKind kind : status) {
38 statuses.add(kind);
39 }
40- return new BazaarStatus(statuses, path, branchRoot);
41+ return new BazaarStatus(statuses, path, directory, branchRoot);
42 }
43
44- public BazaarStatus(File path, File branchRoot) {
45+ public BazaarStatus(File path, boolean directory, File branchRoot) {
46 this.branchRoot = branchRoot;
47 this.file = path;
48+ this.directory = directory;
49 }
50
51- public BazaarStatus(final List<BazaarStatusKind> statuses, File path, File branchRoot) {
52- this(path, branchRoot);
53+ public BazaarStatus(final List<BazaarStatusKind> statuses, File path, boolean directory, File branchRoot) {
54+ this(path, directory, branchRoot);
55 this.statuses.addAll(statuses);
56 }
57
58@@ -103,6 +105,7 @@
59 return statuses;
60 }
61
62+ @Override
63 public String toString() {
64 final StringBuilder sb = new StringBuilder();
65 sb.append(getShortStatus()).append(" ");
66@@ -110,4 +113,8 @@
67 return sb.toString();
68 }
69
70+ public boolean isDirectory() {
71+ return directory;
72+ }
73+
74 }
75
76=== modified file 'src/main/java/org/vcs/bazaar/client/IBazaarLogMessage.java'
77--- src/main/java/org/vcs/bazaar/client/IBazaarLogMessage.java 2009-11-18 08:48:43 +0000
78+++ src/main/java/org/vcs/bazaar/client/IBazaarLogMessage.java 2013-02-07 18:35:23 +0000
79@@ -62,6 +62,11 @@
80 */
81 public List<String> getParents();
82
83+ /**
84+ *
85+ * @return a unmodifiable list of revision tags
86+ */
87+ public List<String> getTags();
88
89 public static final class LogMessageComparator implements Comparator<IBazaarLogMessage> {
90 public int compare(IBazaarLogMessage log1, IBazaarLogMessage log2) {
91
92=== modified file 'src/main/java/org/vcs/bazaar/client/IBazaarStatus.java'
93--- src/main/java/org/vcs/bazaar/client/IBazaarStatus.java 2009-11-18 08:48:43 +0000
94+++ src/main/java/org/vcs/bazaar/client/IBazaarStatus.java 2013-02-07 18:35:23 +0000
95@@ -72,4 +72,5 @@
96
97 public int hashCode();
98
99+ boolean isDirectory();
100 }
101
102=== modified file 'src/main/java/org/vcs/bazaar/client/commandline/CommandLineClient.java'
103--- src/main/java/org/vcs/bazaar/client/commandline/CommandLineClient.java 2010-12-28 19:13:52 +0000
104+++ src/main/java/org/vcs/bazaar/client/commandline/CommandLineClient.java 2013-02-07 18:35:23 +0000
105@@ -496,7 +496,7 @@
106 IBazaarInfo info = new XMLInfoParser().parse(cmd.getStandardOutput());
107 if(info == null) {
108 // something bad happened, bail out!
109- throw new BazaarClientException("An unexpected error occurred while getting the info of: " + location.getURI());
110+ throw new BazaarClientException("An unexpected error occurred while getting the info of: " + location.toString());
111 }
112 return info;
113 }
114
115=== modified file 'src/main/java/org/vcs/bazaar/client/commandline/CommandLineLogMessage.java'
116--- src/main/java/org/vcs/bazaar/client/commandline/CommandLineLogMessage.java 2009-11-18 08:48:43 +0000
117+++ src/main/java/org/vcs/bazaar/client/commandline/CommandLineLogMessage.java 2013-02-07 18:35:23 +0000
118@@ -43,6 +43,8 @@
119
120 private final List<String> parents;
121
122+ private final List<String> tags;
123+
124 /**
125 *
126 * @param revno
127@@ -59,7 +61,8 @@
128 @SuppressWarnings("unchecked")
129 public CommandLineLogMessage(final String revno, final String commiter, final String author,
130 final String nick, final String timestamp, final String message, final List<IBazaarStatus> resourceStatus,
131- final List<IBazaarLogMessage> merged, final String revisionId, final List<String> parents) {
132+ final List<IBazaarLogMessage> merged, final String revisionId, final List<String> parents,
133+ final List<String> tags) {
134 this.revno = revno;
135 this.commiter = commiter;
136 this.nick = nick;
137@@ -70,12 +73,14 @@
138 this.author = author;
139 this.revisionId = revisionId;
140 this.parents = Collections.unmodifiableList(parents==null?Collections.EMPTY_LIST:parents);
141+ this.tags = Collections.unmodifiableList(tags==null?Collections.EMPTY_LIST:tags);
142 }
143
144 public CommandLineLogMessage(final String revno, final String commiter, final String nick,
145 final String timestamp, final String message, final List<IBazaarStatus> resourceStatus,
146- final List<IBazaarLogMessage> merged, final String revisionId, final List<String> parents) {
147- this(revno, commiter, null, nick, timestamp, message, resourceStatus, merged, revisionId, parents);
148+ final List<IBazaarLogMessage> merged, final String revisionId, final List<String> parents,
149+ final List<String> tags) {
150+ this(revno, commiter, null, nick, timestamp, message, resourceStatus, merged, revisionId, parents, tags);
151 }
152
153 public String getBranchNick() {
154@@ -148,6 +153,10 @@
155 return revisionId;
156 }
157
158+ public List<String> getTags() {
159+ return tags;
160+ }
161+
162 public int hasMerge() {
163 final List<IBazaarLogMessage> merges = getMerged();
164 if(merges != null) {
165
166=== modified file 'src/main/java/org/vcs/bazaar/client/commandline/CommandLineStatus.java'
167--- src/main/java/org/vcs/bazaar/client/commandline/CommandLineStatus.java 2009-11-18 08:48:43 +0000
168+++ src/main/java/org/vcs/bazaar/client/commandline/CommandLineStatus.java 2013-02-07 18:35:23 +0000
169@@ -21,8 +21,8 @@
170 private File previousFile;
171 private String oldKind, newKind;
172
173- public CommandLineStatus(BazaarStatusKind statusKind, File path, File previousPath, String newKind, String oldKind, File branchRoot) {
174- super(path, branchRoot);
175+ public CommandLineStatus(BazaarStatusKind statusKind, File path, boolean directory, File previousPath, String newKind, String oldKind, File branchRoot) {
176+ super(path, directory, branchRoot);
177 this.previousFile = previousPath;
178 this.newKind = newKind;
179 this.oldKind = oldKind;
180
181=== modified file 'src/main/java/org/vcs/bazaar/client/commandline/parser/XMLLogParser.java'
182--- src/main/java/org/vcs/bazaar/client/commandline/parser/XMLLogParser.java 2009-11-18 08:48:43 +0000
183+++ src/main/java/org/vcs/bazaar/client/commandline/parser/XMLLogParser.java 2013-02-07 18:35:23 +0000
184@@ -35,6 +35,7 @@
185 public static final String MESSAGE = "message";
186 public static final String LOG = "log";
187 public static final String TAGS = "tags";
188+ public static final String TAG = "tag";
189 public static final String PARENTS = "parents";
190 public static final String PARENT = "parent";
191 public static final String MERGE = "merge";
192@@ -104,6 +105,7 @@
193 List<String> parents = null;
194 List<IBazaarStatus> statuses = null;
195 final List<IBazaarLogMessage> mergedLogs = new ArrayList<IBazaarLogMessage>();
196+ List<String> tags = null;
197 int eventType = parser.next();
198 while (!(eventType == XmlPullParser.END_TAG && LOG.equals(parser.getName())) || eventType == XmlPullParser.END_DOCUMENT) {
199 if (eventType == XmlPullParser.START_TAG && REVNO.equals( parser.getName() )) {
200@@ -112,6 +114,8 @@
201 revisionId = parser.nextText();
202 } else if (eventType == XmlPullParser.START_TAG && PARENTS.equals( parser.getName() )) {
203 parents = parseParents();
204+ } else if (eventType == XmlPullParser.START_TAG && TAGS.equals( parser.getName() )) {
205+ tags = parseTags();
206 } else if (eventType == XmlPullParser.START_TAG && COMMITER.equals( parser.getName() )) {
207 commiter = parser.nextText();
208 } else if (eventType == XmlPullParser.START_TAG && BRANCH_NICK.equals( parser.getName() )) {
209@@ -130,7 +134,7 @@
210 eventType = parser.next();
211 }
212 return new CommandLineLogMessage(revno, commiter, null, nick, timestamp, message,
213- statuses, mergedLogs, revisionId, parents);
214+ statuses, mergedLogs, revisionId, parents, tags);
215 }
216
217 private List<IBazaarLogMessage> parseMergedLogs() throws XmlPullParserException, IOException {
218@@ -163,4 +167,16 @@
219 }
220 return parents;
221 }
222+
223+ private List<String> parseTags() throws XmlPullParserException, IOException {
224+ final List<String> tags = new ArrayList<String>(0);
225+ int eventType = parser.next();
226+ while (eventType != XmlPullParser.END_TAG && !TAGS.equals(parser.getName())) {
227+ if (eventType == XmlPullParser.START_TAG && TAG.equals(parser.getName())) {
228+ tags.add(parser.nextText());
229+ }
230+ eventType = parser.next();
231+ }
232+ return tags;
233+ }
234 }
235
236=== modified file 'src/main/java/org/vcs/bazaar/client/commandline/parser/XMLStatusParser.java'
237--- src/main/java/org/vcs/bazaar/client/commandline/parser/XMLStatusParser.java 2009-11-18 08:48:43 +0000
238+++ src/main/java/org/vcs/bazaar/client/commandline/parser/XMLStatusParser.java 2013-02-07 18:35:23 +0000
239@@ -126,7 +126,7 @@
240 continue;
241 }
242 // TODO: add conflict type enum
243- final IBazaarStatus status = new CommandLineStatus(getStatusKind(group), getAsFile(path), null, null, null, workDir);
244+ final IBazaarStatus status = new CommandLineStatus(getStatusKind(group), getAsFile(path), false, null, null, null, workDir);
245 statuses.add(status);
246 } else if (eventType == XmlPullParser.START_TAG && (parser.getName().equals(FILE) || parser.getName().equals(DIR))) {
247 String path, prevPath, newKind, oldKind;
248@@ -150,7 +150,7 @@
249 continue;
250 }
251 final IBazaarStatus status = new CommandLineStatus(
252- getStatusKind(group), getAsFile(path),
253+ getStatusKind(group), getAsFile(path), parser.getName().equals(DIR),
254 getAsFile(prevPath), newKind, oldKind, workDir);
255 statuses.add(status);
256 } else if (eventType == XmlPullParser.END_TAG && group.equals(parser.getName())) {
257
258=== modified file 'src/test/java/org/vcs/bazaar/client/commandline/parser/XMLLogParserTest.java'
259--- src/test/java/org/vcs/bazaar/client/commandline/parser/XMLLogParserTest.java 2009-11-18 08:48:43 +0000
260+++ src/test/java/org/vcs/bazaar/client/commandline/parser/XMLLogParserTest.java 2013-02-07 18:35:23 +0000
261@@ -121,4 +121,12 @@
262 assertEquals("guillo.gonzo@gmail.com-20080824030806-cqf1nsf47bgp2bwr", firstLog.getRevisionId());
263 }
264
265+ @Test
266+ public void testTags() {
267+ IBazaarLogMessage firstLog = logs.get(0);
268+ assertEquals(0, firstLog.getTags().size());
269+ IBazaarLogMessage aLog = logs.get(1);
270+ assertEquals(2, aLog.getTags().size());
271+ }
272+
273 }
274
275=== modified file 'src/test/resources/org/vcs/bazaar/client/commandline/parser/log.xml'
276--- src/test/resources/org/vcs/bazaar/client/commandline/parser/log.xml 2008-06-07 22:09:39 +0000
277+++ src/test/resources/org/vcs/bazaar/client/commandline/parser/log.xml 2013-02-07 18:35:23 +0000
278@@ -42,6 +42,10 @@
279 </log>
280 <log>
281 <revno>2871</revno>
282+ <tags>
283+ <tag>tag_2871_1</tag>
284+ <tag>tag_2871_2</tag>
285+ </tags>
286 <committer>
287 Canonical.com Patch Queue Manager &lt;fake@no-mail.net&gt;
288 </committer>

Subscribers

People subscribed via source and target branches