Mercurial > hg4j
annotate src/org/tmatesoft/hg/repo/ext/MqManager.java @ 659:a5cf64f2e7e4 smartgit-4.6
Poor performance when reading/collecting branch information. Respect new cache location for recent mercurial revisions. Use different algorithm to build branch cache
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Fri, 05 Jul 2013 20:42:45 +0200 |
parents | 6526d8adbc0f |
children |
rev | line source |
---|---|
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
1 /* |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
2 * Copyright (c) 2012 TMate Software Ltd |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
3 * |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
4 * This program is free software; you can redistribute it and/or modify |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
5 * it under the terms of the GNU General Public License as published by |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
6 * the Free Software Foundation; version 2 of the License. |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
7 * |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
8 * This program is distributed in the hope that it will be useful, |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
11 * GNU General Public License for more details. |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
12 * |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
13 * For information on how to redistribute this software under |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
14 * the terms of a license other than GNU General Public License |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
15 * contact TMate Software at support@hg4j.com |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
16 */ |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
17 package org.tmatesoft.hg.repo.ext; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
18 |
471
7bcfbc255f48
Merge changes from smartgit3 branch into 1.1 stream
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
465
diff
changeset
|
19 import static org.tmatesoft.hg.util.LogFacility.Severity.Warn; |
7bcfbc255f48
Merge changes from smartgit3 branch into 1.1 stream
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
465
diff
changeset
|
20 |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
21 import java.io.File; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
22 import java.io.IOException; |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
23 import java.util.ArrayList; |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
24 import java.util.Collections; |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
25 import java.util.HashMap; |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
26 import java.util.LinkedList; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
27 import java.util.List; |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
28 import java.util.Map; |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
29 |
628
6526d8adbc0f
Explicit HgRuntimeException to facilitate easy switch from runtime to checked exceptions
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
624
diff
changeset
|
30 import org.tmatesoft.hg.core.HgIOException; |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
31 import org.tmatesoft.hg.core.Nodeid; |
493
ba36f66c32b4
Refactor to keep knowledge about repository control files and their location in respect to .hg/ in a single place (facilitate future adoption of shared repositories)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
490
diff
changeset
|
32 import org.tmatesoft.hg.internal.Internals; |
480
f3fab7a20841
Refactor LineReader utility as stanalone class to facilitate reuse
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
475
diff
changeset
|
33 import org.tmatesoft.hg.internal.LineReader; |
471
7bcfbc255f48
Merge changes from smartgit3 branch into 1.1 stream
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
465
diff
changeset
|
34 import org.tmatesoft.hg.repo.HgInvalidControlFileException; |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
35 import org.tmatesoft.hg.util.LogFacility; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
36 import org.tmatesoft.hg.util.Path; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
37 |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
38 /** |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
39 * Mercurial Queues Support. |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
40 * Access to MqExtension functionality. |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
41 * |
501
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
493
diff
changeset
|
42 * @since 1.1 |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
43 * @author Artem Tikhomirov |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
44 * @author TMate Software Ltd. |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
45 */ |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
46 public class MqManager { |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
47 |
465
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
48 private static final String PATCHES_DIR = "patches"; |
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
49 |
501
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
493
diff
changeset
|
50 private final Internals repo; |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
51 private List<PatchRecord> applied = Collections.emptyList(); |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
52 private List<PatchRecord> allKnown = Collections.emptyList(); |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
53 private List<String> queueNames = Collections.emptyList(); |
465
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
54 private String activeQueue = PATCHES_DIR; |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
55 |
501
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
493
diff
changeset
|
56 /*package-local*/ MqManager(Internals internalRepo) { |
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
493
diff
changeset
|
57 repo = internalRepo; |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
58 } |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
59 |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
60 /** |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
61 * Updates manager with up-to-date state of the mercurial queues. |
501
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
493
diff
changeset
|
62 * @return <code>this</code> for convenience |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
63 */ |
501
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
493
diff
changeset
|
64 public MqManager refresh() throws HgInvalidControlFileException { |
624
507602cb4fb3
FIXMEs and TODOs: pay some technical debt
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
501
diff
changeset
|
65 // MQ doesn't seem to use any custom lock mechanism. |
507602cb4fb3
FIXMEs and TODOs: pay some technical debt
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
501
diff
changeset
|
66 // MQ uses Mercurial's wc/store lock when updating repository (strip/new queue) |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
67 applied = allKnown = Collections.emptyList(); |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
68 queueNames = Collections.emptyList(); |
490
b3c16d1aede0
Refactoring: move HgRepository's implementation aspects to Internals (which is now its imlementation counterpart and primary repository class to be used by other parts of the library)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
480
diff
changeset
|
69 final LogFacility log = repo.getSessionContext().getLog(); |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
70 try { |
501
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
493
diff
changeset
|
71 File queues = repo.getFileFromRepoDir("patches.queues"); |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
72 if (queues.isFile()) { |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
73 LineReader lr = new LineReader(queues, log).trimLines(true).skipEmpty(true); |
480
f3fab7a20841
Refactor LineReader utility as stanalone class to facilitate reuse
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
475
diff
changeset
|
74 lr.read(new LineReader.SimpleLineCollector(), queueNames = new LinkedList<String>()); |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
75 } |
465
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
76 final String queueLocation; // path under .hg to patch queue information (status, series and diff files) |
501
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
493
diff
changeset
|
77 File activeQueueFile = repo.getFileFromRepoDir("patches.queue"); |
465
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
78 // file is there only if it's not default queue ('patches') that is active |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
79 if (activeQueueFile.isFile()) { |
465
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
80 ArrayList<String> contents = new ArrayList<String>(); |
480
f3fab7a20841
Refactor LineReader utility as stanalone class to facilitate reuse
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
475
diff
changeset
|
81 new LineReader(activeQueueFile, log).read(new LineReader.SimpleLineCollector(), contents); |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
82 if (contents.isEmpty()) { |
471
7bcfbc255f48
Merge changes from smartgit3 branch into 1.1 stream
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
465
diff
changeset
|
83 log.dump(getClass(), Warn, "File %s with active queue name is empty", activeQueueFile.getName()); |
465
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
84 activeQueue = PATCHES_DIR; |
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
85 queueLocation = PATCHES_DIR + '/'; |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
86 } else { |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
87 activeQueue = contents.get(0); |
465
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
88 queueLocation = PATCHES_DIR + '-' + activeQueue + '/'; |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
89 } |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
90 } else { |
465
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
91 activeQueue = PATCHES_DIR; |
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
92 queueLocation = PATCHES_DIR + '/'; |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
93 } |
465
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
94 final Path.Source patchLocation = new Path.Source() { |
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
95 |
471
7bcfbc255f48
Merge changes from smartgit3 branch into 1.1 stream
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
465
diff
changeset
|
96 public Path path(CharSequence p) { |
465
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
97 StringBuilder sb = new StringBuilder(64); |
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
98 sb.append(".hg/"); |
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
99 sb.append(queueLocation); |
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
100 sb.append(p); |
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
101 return Path.create(sb); |
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
102 } |
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
103 }; |
501
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
493
diff
changeset
|
104 final File fileStatus = repo.getFileFromRepoDir(queueLocation + "status"); |
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
493
diff
changeset
|
105 final File fileSeries = repo.getFileFromRepoDir(queueLocation + "series"); |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
106 if (fileStatus.isFile()) { |
480
f3fab7a20841
Refactor LineReader utility as stanalone class to facilitate reuse
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
475
diff
changeset
|
107 new LineReader(fileStatus, log).read(new LineReader.LineConsumer<List<PatchRecord>>() { |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
108 |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
109 public boolean consume(String line, List<PatchRecord> result) throws IOException { |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
110 int sep = line.indexOf(':'); |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
111 if (sep == -1) { |
471
7bcfbc255f48
Merge changes from smartgit3 branch into 1.1 stream
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
465
diff
changeset
|
112 log.dump(MqManager.class, Warn, "Bad line in %s:%s", fileStatus.getPath(), line); |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
113 return true; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
114 } |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
115 Nodeid nid = Nodeid.fromAscii(line.substring(0, sep)); |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
116 String name = new String(line.substring(sep+1)); |
465
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
117 result.add(new PatchRecord(nid, name, patchLocation.path(name))); |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
118 return true; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
119 } |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
120 }, applied = new LinkedList<PatchRecord>()); |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
121 } |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
122 if (fileSeries.isFile()) { |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
123 final Map<String,PatchRecord> name2patch = new HashMap<String, PatchRecord>(); |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
124 for (PatchRecord pr : applied) { |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
125 name2patch.put(pr.getName(), pr); |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
126 } |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
127 LinkedList<String> knownPatchNames = new LinkedList<String>(); |
480
f3fab7a20841
Refactor LineReader utility as stanalone class to facilitate reuse
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
475
diff
changeset
|
128 new LineReader(fileSeries, log).read(new LineReader.SimpleLineCollector(), knownPatchNames); |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
129 // XXX read other queues? |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
130 allKnown = new ArrayList<PatchRecord>(knownPatchNames.size()); |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
131 for (String name : knownPatchNames) { |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
132 PatchRecord pr = name2patch.get(name); |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
133 if (pr == null) { |
465
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
134 pr = new PatchRecord(null, name, patchLocation.path(name)); |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
135 } |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
136 allKnown.add(pr); |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
137 } |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
138 } |
628
6526d8adbc0f
Explicit HgRuntimeException to facilitate easy switch from runtime to checked exceptions
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
624
diff
changeset
|
139 } catch (HgIOException ex) { |
6526d8adbc0f
Explicit HgRuntimeException to facilitate easy switch from runtime to checked exceptions
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
624
diff
changeset
|
140 throw new HgInvalidControlFileException(ex, true); |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
141 } |
501
d2f6ab541330
Change the way extensions are accessed (with ExtensionsManager now), add preliminary Rebase extension support
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
493
diff
changeset
|
142 return this; |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
143 } |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
144 |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
145 /** |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
146 * Number of patches not yet applied |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
147 * @return positive value when there are |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
148 */ |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
149 public int getQueueSize() { |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
150 return getAllKnownPatches().size() - getAppliedPatches().size(); |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
151 } |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
152 |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
153 /** |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
154 * Subset of the patches from the queue that were already applied to the repository |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
155 * <p>Analog of 'hg qapplied' |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
156 * |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
157 * <p>Clients shall call {@link #refresh()} prior to first use |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
158 * @return collection of records in no particular order, may be empty if none applied |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
159 */ |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
160 public List<PatchRecord> getAppliedPatches() { |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
161 return Collections.unmodifiableList(applied); |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
162 } |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
163 |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
164 /** |
465
2078692eeb58
MqManager: read status/series of the active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
464
diff
changeset
|
165 * All of the patches in the active queue that MQ knows about for this repository |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
166 * |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
167 * <p>Clients shall call {@link #refresh()} prior to first use |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
168 * @return collection of records in no particular order, may be empty if there are no patches in the queue |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
169 */ |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
170 public List<PatchRecord> getAllKnownPatches() { |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
171 return Collections.unmodifiableList(allKnown); |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
172 } |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
173 |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
174 /** |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
175 * Name of the patch queue <code>hg qqueue --active</code> which is active now. |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
176 * @return patch queue name |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
177 */ |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
178 public String getActiveQueueName() { |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
179 return activeQueue; |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
180 } |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
181 |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
182 /** |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
183 * Patch queues known in the repository, <code>hg qqueue -l</code> analog. |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
184 * There's at least one patch queue (default one names 'patches'). Only one patch queue at a time is active. |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
185 * |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
186 * @return names of patch queues |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
187 */ |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
188 public List<String> getQueueNames() { |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
189 return Collections.unmodifiableList(queueNames); |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
190 } |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
191 |
475
0e34b8f3946a
Tests for MqManager
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
471
diff
changeset
|
192 public final class PatchRecord { |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
193 private final Nodeid nodeid; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
194 private final String name; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
195 private final Path location; |
464
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
196 |
1a3c18d57a8e
MqManager evolution: same PatchRecord instances, list patch queues, detect active queue
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
463
diff
changeset
|
197 // hashCode/equals might be useful if cons becomes public |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
198 |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
199 PatchRecord(Nodeid revision, String name, Path diffLocation) { |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
200 nodeid = revision; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
201 this.name = name; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
202 this.location = diffLocation; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
203 } |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
204 |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
205 /** |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
206 * Identifies changeset of the patch that has been applied to the repository |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
207 * |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
208 * @return changeset revision or <code>null</code> if this patch is not yet applied |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
209 */ |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
210 public Nodeid getRevision() { |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
211 return nodeid; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
212 } |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
213 |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
214 /** |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
215 * Identifies patch, either based on a user-supplied name (<code>hg qnew <i>patch-name</i></code>) or |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
216 * an automatically generated name (like <code><i>revisionIndex</i>.diff</code> for imported changesets). |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
217 * Clients shall not rely on this naming scheme, though. |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
218 * |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
219 * @return never <code>null</code> |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
220 */ |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
221 public String getName() { |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
222 return name; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
223 } |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
224 |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
225 /** |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
226 * Location of diff file with the patch, relative to repository root |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
227 * @return path to the patch, never <code>null</code> |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
228 */ |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
229 public Path getPatchLocation() { |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
230 return location; |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
231 } |
475
0e34b8f3946a
Tests for MqManager
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
471
diff
changeset
|
232 |
0e34b8f3946a
Tests for MqManager
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
471
diff
changeset
|
233 @Override |
0e34b8f3946a
Tests for MqManager
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
471
diff
changeset
|
234 public String toString() { |
0e34b8f3946a
Tests for MqManager
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
471
diff
changeset
|
235 String fmt = "mq.PatchRecord[name:%s; %spath:%s]"; |
0e34b8f3946a
Tests for MqManager
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
471
diff
changeset
|
236 String ni = nodeid != null ? String.format("applied as: %s; ", nodeid.shortNotation()) : ""; |
0e34b8f3946a
Tests for MqManager
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
471
diff
changeset
|
237 return String.format(fmt, name, ni, location); |
0e34b8f3946a
Tests for MqManager
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
471
diff
changeset
|
238 } |
463
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
239 } |
a0507a9f3da0
Initial support for MqExtension
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff
changeset
|
240 } |