Skip to content
This repository has been archived by the owner on Jul 26, 2022. It is now read-only.

Commit

Permalink
Fully working status command through daemon
Browse files Browse the repository at this point in the history
Now need to clean / avoid long switch cases
  • Loading branch information
vwiencek committed Sep 8, 2014
1 parent 3535fd8 commit 61ceb56
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
import org.syncany.config.to.PortTO;
import org.syncany.operations.daemon.DaemonOperation;
import org.syncany.operations.daemon.messages.StatusFolderRequest;
import org.syncany.operations.daemon.messages.StatusFolderResponse;
import org.syncany.operations.daemon.messages.api.MessageFactory;
import org.syncany.operations.daemon.messages.api.Request;
import org.syncany.operations.daemon.messages.api.Response;
Expand Down Expand Up @@ -438,7 +439,8 @@ private int sendToRest(Command command, String commandName, String[] commandArgs

Response response = MessageFactory.createResponse(responseStr);

out.println(response.getMessage());
command.setOut(out);
command.printResults(((StatusFolderResponse)response).getResult());

return 0;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
import org.syncany.operations.daemon.messages.WatchEventFolderResponse;
import org.syncany.operations.daemon.messages.api.FolderRequest;
import org.syncany.operations.daemon.messages.api.FolderRequestHandler;
import org.syncany.operations.daemon.messages.api.Response;
import org.syncany.operations.restore.RestoreOperation;
import org.syncany.operations.restore.RestoreOperationOptions;
import org.syncany.operations.restore.RestoreOperationResult;
Expand Down Expand Up @@ -149,8 +150,10 @@ public void onRequestReceived(FolderRequest folderRequest) {
logger.log(Level.INFO, "Received " + folderRequest);

try {
FolderRequestHandler handler = FolderRequestHandler.createFolderRequestHandler(folderRequest);
handler.handleRequest(folderRequest);
FolderRequestHandler handler = FolderRequestHandler.createFolderRequestHandler(folderRequest, config);
Response response = handler.handleRequest(folderRequest);

eventBus.post(response);
}
catch (Exception e) {
eventBus.post(new BadRequestResponse(folderRequest.getId(), "Invalid request."));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,9 @@ public Response handleRequest(Request request) {
try {
StatusOperation operation = new StatusOperation(config, concreteRequest.getOptions());
StatusOperationResult operationResult = operation.execute();

return new StatusFolderResponse(operationResult);
StatusFolderResponse statusFolderResponse = new StatusFolderResponse(operationResult, request.getId());

return statusFolderResponse;
}
catch (Exception e) {
logger.log(Level.WARNING, "Cannot obtain status.", e);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,20 @@
*/
package org.syncany.operations.daemon.messages;

import org.simpleframework.xml.Element;
import org.syncany.operations.daemon.messages.api.Response;
import org.syncany.operations.status.StatusOperationResult;

public class StatusFolderResponse extends Response {
@Element(required = true)
private StatusOperationResult result;

public StatusFolderResponse() {
// Nothing
}

public StatusFolderResponse(StatusOperationResult result) {
super();
public StatusFolderResponse(StatusOperationResult result, int requestId) {
super(200, requestId, null);
this.result = result;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ public FolderRequestHandler(Config config) {

public abstract Response handleRequest(Request request);

public static FolderRequestHandler createFolderRequestHandler(Request request) throws Exception {
String fqClassName = request.getClass().getName()+FolderRequestHandler.class.getSimpleName();
public static FolderRequestHandler createFolderRequestHandler(Request request, Config config) throws Exception {
String fqClassName = request.getClass().getName() + "Handler";
Class<?> clazz = Class.forName(fqClassName);

return (FolderRequestHandler) clazz.getConstructor(Config.class).newInstance();
return (FolderRequestHandler) clazz.getConstructor(Config.class).newInstance(config);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,8 @@ private static String getMessageType(String message) throws Exception {
}

private static Class<? extends Message> getMessageClass(String requestType) throws Exception {
String thisPackage = MessageFactory.class.getPackage().getName();
//TODO [low]: deleting .api not so nice .....
String thisPackage = MessageFactory.class.getPackage().getName().replaceAll(".api", "");
String camelCaseMessageType = StringUtil.toCamelCase(requestType);
String fqMessageClassName = thisPackage + "." + camelCaseMessageType;

Expand Down

0 comments on commit 61ceb56

Please sign in to comment.