Skip to content

Commit

Permalink
Adição de testes ao pacote Diff
Browse files Browse the repository at this point in the history
  • Loading branch information
dheraclio committed Nov 28, 2010
2 parents 7b7147d + 0e2cf49 commit b471423
Show file tree
Hide file tree
Showing 36 changed files with 738 additions and 116 deletions.
7 changes: 6 additions & 1 deletion src/main/java/br/uff/ic/gardener/ConfigurationItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
* Configuration Item Class. Works like a Configuration Item data and metadata container.
*
* @author Vitor Neves*/
public class ConfigurationItem {
public class ConfigurationItem implements Comparable<ConfigurationItem>{

/**InputStream source of CI data.
*/
Expand Down Expand Up @@ -104,4 +104,9 @@ public String toString()
{
return String.format("(%s, %s)", uri.getPath(), revision.toString());
}

@Override
public int compareTo(ConfigurationItem arg0) {
return getUri().compareTo(arg0.getUri());
}
}
42 changes: 42 additions & 0 deletions src/main/java/br/uff/ic/gardener/RevisionCommited.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package br.uff.ic.gardener;

import java.util.Date;

/**
* Represent a revision commited to System
* @author Marcos
*
*/
public class RevisionCommited {

private String user;

private Date dateCommit;

private String message;

private RevisionID id;

public RevisionCommited(RevisionID _id, String _user, String _msg, Date _date)
{
user = _user;
id = _id;
dateCommit = _date;
message = _msg;
}
public final String getUser() {
return user;
}

public final Date getDateCommit() {
return dateCommit;
}

public final String getMessage() {
return message;
}

public final RevisionID getId() {
return id;
}
}
6 changes: 6 additions & 0 deletions src/main/java/br/uff/ic/gardener/RevisionID.java
Original file line number Diff line number Diff line change
Expand Up @@ -89,4 +89,10 @@ public static RevisionID fromString(String str) {
public int compareTo(RevisionID arg0) {
return (int) (getNumber() - arg0.getNumber());
}

@Override
public boolean equals(Object other)
{
return this.revision == ((RevisionID)other).getNumber();
}
}
117 changes: 92 additions & 25 deletions src/main/java/br/uff/ic/gardener/cli/CLI.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

import java.io.File;
import java.net.URI;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
Expand All @@ -18,18 +20,24 @@
import org.kohsuke.args4j.ExampleMode;
import org.kohsuke.args4j.Option;

import com.mongodb.io.StreamUtil;

import br.uff.ic.gardener.RevisionCommited;
import br.uff.ic.gardener.RevisionID;
import br.uff.ic.gardener.TransationException;
import br.uff.ic.gardener.client.APIClient;
import br.uff.ic.gardener.client.APIClientException;
import br.uff.ic.gardener.comm.ComClientException;
import br.uff.ic.gardener.diff.Diff;
import br.uff.ic.gardener.util.ANDFileFilter;
import br.uff.ic.gardener.util.FileHelper;
import br.uff.ic.gardener.util.GlobFilenameFilter;
import br.uff.ic.gardener.util.NotDirectoryFileFilter;
import br.uff.ic.gardener.util.TokenizerWithQuote;
import br.uff.ic.gardener.util.UtilStream;
import br.uff.ic.gardener.workspace.CIWorkspaceStatus;
import br.uff.ic.gardener.workspace.WorkspaceException;
import br.uff.ic.gardener.workspace.WorkspaceOperation.Operation;


/**
Expand Down Expand Up @@ -65,9 +73,15 @@ public class CLI {
@Option(name = "-status", aliases = "--status", metaVar = "STATUS", usage = "Show status of workspace")
private boolean bStatus = false;

@Option(name = "-log", aliases = "--log", metaVar = "LOG", usage = "Show log of system")
private boolean bLog = false;

@Option(name = "-m", aliases = "--message", metaVar = "MESSAGE", usage="Message to transations (Checkout, Checkin)")
private String strMessage = "";

@Option(name = "-user", aliases = "--user", metaVar= "USER", usage="The user of manager the workspace. it is usage to send the user information to the serv in a commit")
private String strUser = null;

// Other arguments
@Argument
private List<String> listArguments = new ArrayList<String>();
Expand All @@ -81,7 +95,18 @@ public class CLI {
@SuppressWarnings("unused")
@Option(name = "-r", aliases = "--revision", metaVar = "REVISION", usage = "Specify the revision in checkout")
private void setRevision(String strRevision) {
revision = RevisionID.fromString(strRevision);
int pos = -1;
if((pos = strRevision.indexOf(':')) > 0)
{
String temp1 = strRevision.substring(0,pos);
String temp2 = strRevision.substring(pos+1, strRevision.length());
revision = RevisionID.fromString(temp1);
lastRevision = RevisionID.fromString(temp2);
}else
{
revision = RevisionID.fromString(strRevision);
lastRevision = null;
}
}

/**
Expand Down Expand Up @@ -114,7 +139,12 @@ private void setRevision(String strRevision) {
@Option(name = "-u", aliases="--UnifiedFormat", metaVar="DIFF_UNIFIED_FORMAT", usage = "Use Unified Format")
private boolean bDiffUnifiedFormat = false;

/**
* Revision or first revision
*/
private RevisionID revision = RevisionID.LAST_REVISION;

private RevisionID lastRevision = null;

/**
* Define possible operations to CLI
Expand All @@ -123,7 +153,7 @@ private void setRevision(String strRevision) {
*
*/
private enum OPERATION {
INIT, CHECKOUT, COMMIT, UPDATE, DIFF, ADD, REMOVE, RENAME, STATUS, NULL
INIT, CHECKOUT, COMMIT, UPDATE, DIFF, ADD, REMOVE, RENAME, STATUS, LOG, NULL
}

// private OPERATION operation = OPERATION.NULL;
Expand Down Expand Up @@ -153,6 +183,9 @@ private OPERATION getOperation() {
return OPERATION.RENAME;
}else if(bStatus){
return OPERATION.STATUS;
}else if(bLog)
{
return OPERATION.LOG;
}
else
return OPERATION.NULL;
Expand Down Expand Up @@ -198,6 +231,9 @@ synchronized static public CLI me() {
*/
static private String[] preParser(String[] args)
{
if(args.length == 0)
return args;

if(! args[0].startsWith("-"))
{
args[0] = "-" + args[0];
Expand Down Expand Up @@ -283,6 +319,9 @@ static File getActualPath() {
private void internalDoMain(String[] args) {
CmdLineParser parser = new CmdLineParser(this);

if(strUser != null)
getClient().setUser(strUser);

// default destiny
pathWorkspace = CLI.getActualPath();

Expand All @@ -294,24 +333,6 @@ private void internalDoMain(String[] args) {
args = preParser(args);
// parse the arguments.
parser.parseArgument(args);

/* //trata do uriWorkspace e do uriServ
// trata URI sem file://
if (uriWorkspace.getHost() == null
|| uriWorkspace.getHost() == "") {
try {
uriWorkspace = new URI(
"file",
"",
uriWorkspace.getPath(),
uriWorkspace.getFragment()
);
} catch (URISyntaxException e) {
e.printStackTrace();
return;
}
}
*/

if (uriServ != null) {
// trata URI sem file://
Expand All @@ -323,11 +344,18 @@ private void internalDoMain(String[] args) {
}

switch (getOperation()) {

case NULL:
System.out.println("Specify a command: ");
for(OPERATION op: OPERATION.values())
{
System.out.println(op.toString() + ", ");
}
break;
case INIT:
if(listArguments.size() == 0)
{
System.err.println("Specify the project name to init.");
break;
}
onInit(listArguments.get(0));
break;
Expand Down Expand Up @@ -386,12 +414,15 @@ private void internalDoMain(String[] args) {
onCheckout();
break;
case COMMIT:
onCommit(strMessage);
onCommit();
break;

case STATUS:
onStatus();
break;
case LOG:
onLog();
break;
default:
// this will redirect the output to the specified output
parser.printUsage(System.out);
Expand All @@ -409,6 +440,8 @@ private void internalDoMain(String[] args) {
catch(APIClientException e)
{
printError("Controller error:", e, parser);
} catch (ComClientException e) {
printError("ComClinet error:", e, parser);
}
}

Expand All @@ -421,6 +454,22 @@ private void onStatus() throws WorkspaceException, APIClientException {
System.out.println(ci.toString());
}
}

private void onLog() throws APIClientException, ComClientException
{
LinkedList<RevisionCommited> list = new LinkedList<RevisionCommited>();
getClient().generateLog(list, revision, lastRevision);

for(RevisionCommited rc: list)
{
String s = rc.getId().toString();
System.out.printf("Revision :%s%s", s, UtilStream.getLineSeperator());
DateFormat d = new SimpleDateFormat();
System.out.printf("\tDate : %s%s", d.format(rc.getDateCommit()), UtilStream.getLineSeperator());
System.out.printf("\tUser : %s%s", rc.getUser(), UtilStream.getLineSeperator());
System.out.printf("\tMessage: %s%s", rc.getMessage(), UtilStream.getLineSeperator());
}
}

/**
* Reset CLI Commands
Expand All @@ -434,7 +483,25 @@ private static void resetCLI()

private static void printError(String msg, Throwable error, CmdLineParser parser)
{
System.err.println(String.format("%s: %s", msg, error.getMessage()));
System.err.println(String.format("%s: %s%s%s%s", msg, error.getMessage(), UtilStream.getLineSeperator()
,"================================================================"
,UtilStream.getLineSeperator()));

System.err.println(String.format("Exception messages:"));
Throwable t = error;
while(t != null)
{
System.err.println(String.format("\t%s", t.toString()));
t= t.getCause();
}
System.err.println(String.format("%s%s%s", UtilStream.getLineSeperator()
,UtilStream.getLineSeperator()
,"================================================================"
,UtilStream.getLineSeperator()
));
System.err.println("Possible Commands:");


parser.printUsage(System.err);
System.err.println(parser.printExample(ExampleMode.ALL));

Expand Down Expand Up @@ -471,8 +538,8 @@ private void onUpdate() throws TransationException
*
* @throws WorkspaceException
*/
private void onCommit(String message) throws TransationException {
getClient().commit(message);
private void onCommit() throws TransationException {
getClient().commit(this.strMessage);
}

/**
Expand Down
Loading

0 comments on commit b471423

Please sign in to comment.