package de.twenty11.skysail.server.ext.jgit.internal; import java.util.GregorianCalendar; import org.restlet.data.Form; import org.restlet.resource.Get; import org.restlet.resource.ResourceException; import de.twenty11.skysail.common.Presentation; import de.twenty11.skysail.common.PresentationStyle; import de.twenty11.skysail.common.responses.FormResponse; import de.twenty11.skysail.common.responses.SkysailResponse; import de.twenty11.skysail.server.ext.jgit.ExecuteMavenCommand; import de.twenty11.skysail.server.ext.jgit.LocalRepositoryDescriptor; import de.twenty11.skysail.server.restlet.AddServerResource; @Presentation(preferred = PresentationStyle.EDIT) public class MavenFormResource extends AddServerResource<MavenFormDescriptor> { private LocalRepositoryDescriptor repositoryDescriptor; private String path; @Override protected void doInit() throws ResourceException { String id = (String) getRequest().getAttributes().get("id"); repositoryDescriptor = ((MyApplication) getApplication()).getRepository().getLocalRepositoryDescriptor(id); path = repositoryDescriptor.getPath() + getReference().getRemainingPart(); } @Override @Get("html") public FormResponse<MavenFormDescriptor> createForm() { return new FormResponse<MavenFormDescriptor>(new MavenFormDescriptor(), "../maven" + getReference().getRemainingPart()); } @Override public MavenFormDescriptor getData(Form form) { return new MavenFormDescriptor(form.getFirstValue("command"), path); } @Override public SkysailResponse<MavenFormDescriptor> addEntity(MavenFormDescriptor entity) { ExecuteMavenCommand command = new ExecuteMavenCommand(repositoryDescriptor, entity); ((MyApplication) getApplication()).addExecutedCommand(new GregorianCalendar().getTimeInMillis(), command); command.execute(); return new SkysailResponse<MavenFormDescriptor>(); } }