-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CWE-149539 - ISPW/GIT Set commit Build status on CLI Failure
CWE-149018 - ISPW/Git - Jenkins Build Process for commits - address failures
- Loading branch information
1 parent
016e8d4
commit b0192de
Showing
20 changed files
with
3,124 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -38,3 +38,6 @@ release.properties | |
/.settings/ | ||
/work/ | ||
/work-old/ | ||
/queue.txt | ||
/queue1.txt | ||
/queue2.txt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
package com.compuware.ispw.git; | ||
|
||
import java.util.StringTokenizer; | ||
|
||
public class GitInfo | ||
{ | ||
private String ref; | ||
private String refId; | ||
private String hash; | ||
|
||
public GitInfo(String ref, String refId, String hash) | ||
{ | ||
this.ref = ref; | ||
this.refId = refId; | ||
this.hash = hash; | ||
} | ||
|
||
/* (non-Javadoc) | ||
* @see java.lang.Object#toString() | ||
*/ | ||
@Override | ||
public String toString() | ||
{ | ||
return ref + "|" + refId + "|" + hash; | ||
} | ||
|
||
public static GitInfo parse(String s) | ||
{ | ||
StringTokenizer tokenizer = new StringTokenizer(s, "|"); | ||
String ref = tokenizer.nextToken(); | ||
String refId = tokenizer.nextToken(); | ||
String hash = tokenizer.nextToken(); | ||
|
||
return new GitInfo(ref, refId, hash); | ||
} | ||
|
||
/** | ||
* @return the ref | ||
*/ | ||
public String getRef() | ||
{ | ||
return ref; | ||
} | ||
|
||
/** | ||
* @param ref | ||
* the ref to set | ||
*/ | ||
public void setRef(String ref) | ||
{ | ||
this.ref = ref; | ||
} | ||
|
||
/** | ||
* @return the refId | ||
*/ | ||
public String getRefId() | ||
{ | ||
return refId; | ||
} | ||
|
||
/** | ||
* @param refId | ||
* the refId to set | ||
*/ | ||
public void setRefId(String refId) | ||
{ | ||
this.refId = refId; | ||
} | ||
|
||
/** | ||
* @return the hash | ||
*/ | ||
public String getHash() | ||
{ | ||
return hash; | ||
} | ||
|
||
/** | ||
* @param hash | ||
* the hash to set | ||
*/ | ||
public void setHash(String hash) | ||
{ | ||
this.hash = hash; | ||
} | ||
|
||
} |
23 changes: 23 additions & 0 deletions
23
src/main/java/com/compuware/ispw/git/GitInfoConverter.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package com.compuware.ispw.git; | ||
|
||
import java.io.IOException; | ||
import java.io.OutputStream; | ||
import com.squareup.tape2.ObjectQueue.Converter; | ||
|
||
public class GitInfoConverter implements Converter<GitInfo> | ||
{ | ||
public static String UTF_8 = "UTF-8"; | ||
|
||
@Override | ||
public GitInfo from(byte[] source) throws IOException | ||
{ | ||
return GitInfo.parse(new String(source, UTF_8)); | ||
} | ||
|
||
@Override | ||
public void toStream(GitInfo value, OutputStream sink) throws IOException | ||
{ | ||
sink.write(value.toString().getBytes(UTF_8)); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
// Copyright 2012 Square, Inc. | ||
package com.squareup.tape2; | ||
|
||
import java.io.ByteArrayOutputStream; | ||
import java.io.IOException; | ||
import java.util.Iterator; | ||
import javax.annotation.Nonnull; | ||
import javax.annotation.Nullable; | ||
|
||
final class FileObjectQueue<T> extends ObjectQueue<T> { | ||
/** Backing storage implementation. */ | ||
private final QueueFile queueFile; | ||
/** Reusable byte output buffer. */ | ||
private final DirectByteArrayOutputStream bytes = new DirectByteArrayOutputStream(); | ||
@Private final Converter<T> converter; | ||
|
||
FileObjectQueue(QueueFile queueFile, Converter<T> converter) { | ||
this.queueFile = queueFile; | ||
this.converter = converter; | ||
} | ||
|
||
@Override public @Nonnull QueueFile file() { | ||
return queueFile; | ||
} | ||
|
||
@Override public int size() { | ||
return queueFile.size(); | ||
} | ||
|
||
@Override public boolean isEmpty() { | ||
return queueFile.isEmpty(); | ||
} | ||
|
||
@Override public void add(T entry) throws IOException { | ||
bytes.reset(); | ||
converter.toStream(entry, bytes); | ||
queueFile.add(bytes.getArray(), 0, bytes.size()); | ||
} | ||
|
||
@Override public @Nullable T peek() throws IOException { | ||
byte[] bytes = queueFile.peek(); | ||
if (bytes == null) return null; | ||
return converter.from(bytes); | ||
} | ||
|
||
@Override public void remove() throws IOException { | ||
queueFile.remove(); | ||
} | ||
|
||
@Override public void remove(int n) throws IOException { | ||
queueFile.remove(n); | ||
} | ||
|
||
@Override public void clear() throws IOException { | ||
queueFile.clear(); | ||
} | ||
|
||
@Override public void close() throws IOException { | ||
queueFile.close(); | ||
} | ||
|
||
/** | ||
* Returns an iterator over entries in this queue. | ||
* | ||
* <p>The iterator disallows modifications to the queue during iteration. Removing entries from | ||
* the head of the queue is permitted during iteration using {@link Iterator#remove()}. | ||
* | ||
* <p>The iterator may throw an unchecked {@link IOException} during {@link Iterator#next()} | ||
* or {@link Iterator#remove()}. | ||
*/ | ||
@Override public Iterator<T> iterator() { | ||
return new QueueFileIterator(queueFile.iterator()); | ||
} | ||
|
||
@Override public String toString() { | ||
return "FileObjectQueue{" | ||
+ "queueFile=" + queueFile | ||
+ '}'; | ||
} | ||
|
||
private final class QueueFileIterator implements Iterator<T> { | ||
final Iterator<byte[]> iterator; | ||
|
||
@Private QueueFileIterator(Iterator<byte[]> iterator) { | ||
this.iterator = iterator; | ||
} | ||
|
||
@Override public boolean hasNext() { | ||
return iterator.hasNext(); | ||
} | ||
|
||
@Override public T next() { | ||
byte[] data = iterator.next(); | ||
try { | ||
return converter.from(data); | ||
} catch (IOException e) { | ||
throw QueueFile.<Error>getSneakyThrowable(e); | ||
} | ||
} | ||
|
||
@Override public void remove() { | ||
iterator.remove(); | ||
} | ||
} | ||
|
||
/** Enables direct access to the internal array. Avoids unnecessary copying. */ | ||
private static final class DirectByteArrayOutputStream extends ByteArrayOutputStream { | ||
DirectByteArrayOutputStream() { | ||
} | ||
|
||
/** | ||
* Gets a reference to the internal byte array. The {@link #size()} method indicates how many | ||
* bytes contain actual data added since the last {@link #reset()} call. | ||
*/ | ||
byte[] getArray() { | ||
return buf; | ||
} | ||
} | ||
} |
Oops, something went wrong.