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,10 +48,16 @@
import org.eclipse.jgit.util.NB; import org.eclipse.jgit.util.NB;
import org.eclipse.jgit.util.RawParseUtils; 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. * A SHA-1 abstraction.
*/ */
public class ObjectId extends AnyObjectId { public class ObjectId extends AnyObjectId implements Serializable {
private static final long serialVersionUID = 1L;
private static final ObjectId ZEROID; private static final ObjectId ZEROID;
private static final String ZEROID_STR; private static final String ZEROID_STR;
@ -271,4 +277,20 @@ protected ObjectId(final AnyObjectId src) {
public ObjectId toObjectId() { public ObjectId toObjectId() {
return this; 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; package org.eclipse.jgit.transport;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.io.Serializable;
import org.eclipse.jgit.JGitText; import org.eclipse.jgit.JGitText;
import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Constants;
@ -55,7 +56,9 @@
* A ref specification provides matching support and limited rules to rewrite a * A ref specification provides matching support and limited rules to rewrite a
* reference in one repository to another reference in another repository. * 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 * Suffix for wildcard ref spec component, that indicate matching all refs
* with specified prefix. * with specified prefix.

View File

@ -45,6 +45,7 @@
package org.eclipse.jgit.transport; package org.eclipse.jgit.transport;
import java.io.Serializable;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -60,7 +61,9 @@
* describing how refs should be transferred between this repository and the * describing how refs should be transferred between this repository and the
* remote repository. * 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 SECTION = "remote";
private static final String KEY_URL = "url"; private static final String KEY_URL = "url";

View File

@ -45,6 +45,7 @@
package org.eclipse.jgit.transport; package org.eclipse.jgit.transport;
import java.io.Serializable;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.net.URL; import java.net.URL;
import java.util.regex.Matcher; 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 * RFC 2396 URI's is that no URI encoding/decoding ever takes place. A space or
* any special character is written as-is. * 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 private static final Pattern FULL_URI = Pattern
.compile("^(?:([a-z][a-z0-9+-]+)://(?:([^/]+?)(?::([^/]+?))?@)?(?:([^/]+?))?(?::(\\d+))?)?((?:[A-Za-z]:)?/.+)$"); .compile("^(?:([a-z][a-z0-9+-]+)://(?:([^/]+?)(?::([^/]+?))?@)?(?:([^/]+?))?(?::(\\d+))?)?((?:[A-Za-z]:)?/.+)$");