summaryrefslogtreecommitdiffstatsabout
diff options
context:
space:
mode:
authorAndrew Bayer2010-06-16 18:49:49 (EDT)
committer Shawn O. Pearce2010-06-16 19:10:28 (EDT)
commit068eb927107503059eb6b9e99b7aa7447d7e5bb4 (patch)
tree8fd03bc265029c91cd608cf033c2cafac7114f0b
parent93ccd4a7fe0bbb29ff76ef2b594a7421a81df183 (diff)
downloadjgit-068eb927107503059eb6b9e99b7aa7447d7e5bb4.zip
jgit-068eb927107503059eb6b9e99b7aa7447d7e5bb4.tar.gz
jgit-068eb927107503059eb6b9e99b7aa7447d7e5bb4.tar.bz2
Make ObjectId, RefSpec, RemoteConfig, URIish serializablerefs/changes/80/880/2
Modifications to various classes in order to allow serialization for use of JGit in Hudson's git plugin. Change-Id: If088717d3da7483538c00a927e433a74085ae9e6
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectId.java26
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/RefSpec.java7
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteConfig.java5
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java5
4 files changed, 37 insertions, 6 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectId.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectId.java
index fc43d19..36a9c7c 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectId.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectId.java
@@ -48,11 +48,17 @@ import org.eclipse.jgit.errors.InvalidObjectIdException;
import org.eclipse.jgit.util.NB;
import org.eclipse.jgit.util.RawParseUtils;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+
/**
* A SHA-1 abstraction.
*/
-public class ObjectId extends AnyObjectId {
- private static final ObjectId ZEROID;
+public class ObjectId extends AnyObjectId implements Serializable {
+ private static final long serialVersionUID = 1L;
+ private static final ObjectId ZEROID;
private static final String ZEROID_STR;
@@ -271,4 +277,20 @@ public class ObjectId extends AnyObjectId {
public ObjectId toObjectId() {
return this;
}
+
+ private void writeObject(ObjectOutputStream os) throws IOException {
+ os.writeInt(w1);
+ os.writeInt(w2);
+ os.writeInt(w3);
+ os.writeInt(w4);
+ os.writeInt(w5);
+ }
+
+ private void readObject(ObjectInputStream ois) throws IOException {
+ w1 = ois.readInt();
+ w2 = ois.readInt();
+ w3 = ois.readInt();
+ w4 = ois.readInt();
+ w5 = ois.readInt();
+ }
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/RefSpec.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/RefSpec.java
index ca6f015..1b4d3c6 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/RefSpec.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/RefSpec.java
@@ -44,6 +44,7 @@
package org.eclipse.jgit.transport;
import java.text.MessageFormat;
+import java.io.Serializable;
import org.eclipse.jgit.JGitText;
import org.eclipse.jgit.lib.Constants;
@@ -55,8 +56,10 @@ import org.eclipse.jgit.lib.Ref;
* A ref specification provides matching support and limited rules to rewrite a
* reference in one repository to another reference in another repository.
*/
-public class RefSpec {
- /**
+public class RefSpec implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
* Suffix for wildcard ref spec component, that indicate matching all refs
* with specified prefix.
*/
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteConfig.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteConfig.java
index 28e1cd9..3df56c6 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteConfig.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteConfig.java
@@ -45,6 +45,7 @@
package org.eclipse.jgit.transport;
+import java.io.Serializable;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Collections;
@@ -60,7 +61,9 @@ import org.eclipse.jgit.lib.Config;
* describing how refs should be transferred between this repository and the
* remote repository.
*/
-public class RemoteConfig {
+public class RemoteConfig implements Serializable {
+ private static final long serialVersionUID = 1L;
+
private static final String SECTION = "remote";
private static final String KEY_URL = "url";
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java
index 5939bc2..15bd0b1 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/URIish.java
@@ -45,6 +45,7 @@
package org.eclipse.jgit.transport;
+import java.io.Serializable;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.regex.Matcher;
@@ -59,7 +60,9 @@ import org.eclipse.jgit.lib.Constants;
* RFC 2396 URI's is that no URI encoding/decoding ever takes place. A space or
* any special character is written as-is.
*/
-public class URIish {
+public class URIish implements Serializable {
+ private static final long serialVersionUID = 1L;
+
private static final Pattern FULL_URI = Pattern
.compile("^(?:([a-z][a-z0-9+-]+)://(?:([^/]+?)(?::([^/]+?))?@)?(?:([^/]+?))?(?::(\\d+))?)?((?:[A-Za-z]:)?/.+)$");