Make ObjectId, RefSpec, RemoteConfig, URIish serializable

Modifications to various classes in order to allow serialization
for use of JGit in Hudson's git plugin.

Change-Id: If088717d3da7483538c00a927e433a74085ae9e6
This commit is contained in:
Andrew Bayer 2010-06-16 15:49:49 -07:00 committed by Shawn O. Pearce
parent 93ccd4a7fe
commit 068eb92710
4 changed files with 37 additions and 6 deletions

View File

@ -48,11 +48,17 @@
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 @@ protected ObjectId(final AnyObjectId src) {
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();
}
}

View File

@ -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 @@
* 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.
*/

View File

@ -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 @@
* 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";

View File

@ -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 @@
* 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]:)?/.+)$");