source: ComponentRegistry/trunk/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/tools/RegistryToolHelper.java @ 131

Last change on this file since 131 was 131, checked in by patdui, 14 years ago
File size: 2.6 KB
Line 
1package clarin.cmdi.componentregistry.tools;
2
3import java.io.IOException;
4import java.io.InputStream;
5
6import javax.ws.rs.core.MediaType;
7
8import org.slf4j.Logger;
9import org.slf4j.LoggerFactory;
10
11import clarin.cmdi.componentregistry.model.RegisterResponse;
12import clarin.cmdi.componentregistry.rest.ComponentRegistryRestService;
13
14import com.sun.jersey.api.client.WebResource;
15import com.sun.jersey.multipart.FormDataMultiPart;
16
17public class RegistryToolHelper {
18
19    private final static Logger LOG = LoggerFactory.getLogger(RegistryToolHelper.class);
20
21    private final WebResource service;
22    private int failed = 0;
23
24    public RegistryToolHelper(WebResource service) {
25        this.service = service;
26    }
27
28    public void registerComponent(InputStream input, String creatorName, String description, String group, String name) throws IOException {
29        FormDataMultiPart form = createForm(input, creatorName, description, name);
30        form.field(ComponentRegistryRestService.GROUP_FORM_FIELD, group);
31        RegisterResponse response = service.path("/components").type(MediaType.MULTIPART_FORM_DATA).post(RegisterResponse.class, form);
32        handleResult(response);
33    }
34
35    public void registerProfile(InputStream input, String creatorName, String description, String name) throws IOException {
36        FormDataMultiPart form = createForm(input, creatorName, description, name);
37        RegisterResponse response = service.path("/profiles").type(MediaType.MULTIPART_FORM_DATA).post(RegisterResponse.class, form);
38        handleResult(response);
39    }
40
41    private FormDataMultiPart createForm(InputStream input, String creatorName, String description, String name) throws IOException {
42        FormDataMultiPart form = new FormDataMultiPart();
43        form.field(ComponentRegistryRestService.DATA_FORM_FIELD, input, MediaType.APPLICATION_OCTET_STREAM_TYPE);
44        form.field(ComponentRegistryRestService.NAME_FORM_FIELD, name);
45        form.field(ComponentRegistryRestService.DESCRIPTION_FORM_FIELD, description);
46        form.field(ComponentRegistryRestService.CREATOR_NAME_FORM_FIELD, creatorName);
47        return form;
48    }
49
50    private void handleResult(RegisterResponse response) {
51        if (response.isRegistered()) {
52            LOG.info("Registration ok.");
53        } else {
54            failed++;
55            LOG.error("Registration failed with the following errors:");
56            for (int i = 0; i < response.getErrors().size(); i++) {
57                LOG.error(response.getErrors().get(i));
58            }
59        }
60    }
61
62    public int getNrOfFailed() {
63        return failed;
64    }
65
66}
Note: See TracBrowser for help on using the repository browser.