/** * {@inheritDoc} */ @Override public boolean equals(Object o) { return o instanceof PID && m_normalized.equals(((PID) o).toString()); }
/** * {@inheritDoc} */ @Override public boolean equals(Object o) { return o instanceof PID && m_normalized.equals(((PID) o).toString()); }
public static String decode(String encoded) throws LowlevelStorageException { try { int i = encoded.indexOf('+'); if (i != -1) { return Server.pidFromFilename(encoded.substring(0, i)) .toString() + encoded.substring(i); } else { return Server.pidFromFilename(encoded).toString(); } } catch (MalformedPidException e) { throw new LowlevelStorageException(true, e.getMessage(), e); } } }
public static String decode(String encoded) throws LowlevelStorageException { try { int i = encoded.indexOf('+'); if (i != -1) { return Server.pidFromFilename(encoded.substring(0, i)) .toString() + encoded.substring(i); } else { return Server.pidFromFilename(encoded).toString(); } } catch (MalformedPidException e) { throw new LowlevelStorageException(true, e.getMessage(), e); } } }
@After public void tearDown() throws Exception { apim.purgeObject(DEMO_REST_PID.toString(), "TestRESTAPI.tearDown: purging " + DEMO_REST_PID, false); }
@Test public void testGETMethodBuiltInBadUserArg() throws Exception { URI url = getURI( String.format("/objects/%s/methods/fedora-system:3/viewMethodIndex?noSuchArg=foo", DEMO_REST_PID.toString())); verifyNoAuthFailOnAPIAAuth(url); HttpGet get = new HttpGet(url); HttpResponse response = getOrDelete(get, getAuthAccess(), false); int status = response.getStatusLine().getStatusCode(); EntityUtils.consumeQuietly(response.getEntity()); assertFalse(SC_OK == status); }
@Test public void testGETMethodBuiltInBadMethod() throws Exception { URI url = getURI( String.format("/objects/%s/methods/fedora-system:3/noSuchMethod", DEMO_REST_PID.toString())); verifyNoAuthFailOnAPIAAuth(url); HttpGet get = new HttpGet(url); HttpResponse response; int status = 0; response = getOrDelete(get, getAuthAccess(), false); status = response.getStatusLine().getStatusCode(); EntityUtils.consumeQuietly(response.getEntity()); assertFalse(SC_OK == status); }
@Test public void testSetDatastreamState() throws Exception { String state = "D"; URI url = getURI( String.format("/objects/%s/datastreams/DS1?dsState=%s", DEMO_REST_PID .toString(), state)); StringEntity entity = getStringEntity("", TEXT_XML); verifyPUTStatusOnly(url, SC_UNAUTHORIZED, entity, false); verifyPUTStatusOnly(url, SC_OK, entity, true); Datastream ds1 = apim.getDatastream(DEMO_REST_PID.toString(), "DS1", null); assertEquals(state, ds1.getState()); }
@Test public void testModifyDatastreamNoContent() throws Exception { String label = "testModifyDatastreamNoContent"; URI url = getURI( String.format("/objects/%s/datastreams/DS1?dsLabel=%s", DEMO_REST_PID .toString(), label)); StringEntity entity = getStringEntity("", TEXT_XML); verifyPUTStatusOnly(url, SC_UNAUTHORIZED, entity, false); verifyPUTStatusOnly(url, SC_OK, entity, true); Datastream ds1 = apim.getDatastream(DEMO_REST_PID.toString(), "DS1", null); assertEquals(label, ds1.getLabel()); }
@Test public void testGETMethodBuiltInNoArg() throws Exception { URI url = getURI( String.format("/objects/%s/methods/fedora-system:3/viewMethodIndex", DEMO_REST_PID.toString())); verifyNoAuthFailOnAPIAAuth(url); HttpGet get = new HttpGet(url); HttpResponse response; int status = 0; response = getOrDelete(get, getAuthAccess(), false); status = response.getStatusLine().getStatusCode(); EntityUtils.consumeQuietly(response.getEntity()); assertEquals(SC_OK, status); }
@Test public void testGetObjectHistory() throws Exception { URI url = getURI(String.format("/objects/%s/versions", DEMO_REST_PID.toString())); verifyNoAuthFailOnAPIAAuth(url); verifyGETStatusOnly(url, SC_OK); url = getURI(String.format("/objects/%s/versions?format=xml", DEMO_REST_PID.toString())); verifyNoAuthFailOnAPIAAuth(url); verifyGETStatusOnly(url, SC_OK); }
@Test public void testSetDatastreamVersionable() throws Exception { boolean versionable = false; URI url = getURI(String.format("/objects/%s/datastreams/DS1?versionable=%s", DEMO_REST_PID .toString(), versionable)); StringEntity entity = getStringEntity("", TEXT_XML); verifyPUTStatusOnly(url, SC_UNAUTHORIZED, entity, false); verifyPUTStatusOnly(url, SC_OK, entity, true); Datastream ds1 = apim.getDatastream(DEMO_REST_PID.toString(), "DS1", null); assertEquals(versionable, ds1.isVersionable()); }
@Test public void testModifyObject() throws Exception { URI url = getURI(String.format("/objects/%s?label=%s", DEMO_REST_PID.toString(), "foo")); StringEntity entity = getStringEntity("", TEXT_XML); verifyPUTStatusOnly(url, SC_UNAUTHORIZED, entity, false); verifyPUTStatusOnly(url, SC_OK, entity, true); assertEquals("foo", apia.getObjectProfile(DEMO_REST_PID.toString(), null) .getObjLabel()); }
@Test public void testPurgeDatastream() throws Exception { URI url = getURI( String.format( "/objects/%s/datastreams/RELS-EXT", DEMO_REST_PID.toString())); verifyDELETEStatusOnly(url, SC_UNAUTHORIZED, false); verifyDELETEStatusOnly(url, SC_OK, true); }
@Test public void testFindObjects() throws Exception { URI url = getURI(String .format("/objects?pid=true&terms=%s&query=&resultFormat=xml", DEMO_REST_PID.toString())); verifyNoAuthFailOnAPIAAuth(url); // FIXME: findObjects should have a schema? remove "false" to enable validation verifyGETStatusOnly(url, SC_OK, false); }
@Test public void testGetObjectXML() throws Exception { URI url = getURI(String.format("/objects/%s/objectXML", DEMO_REST_PID.toString())); verifyGETStatusString(url, SC_UNAUTHORIZED, false, true); verifyGETStatusString(url, SC_OK, true, true); }
private Foxml11Document createFoxmlObject(String spid, String contentLocation) throws Exception { PID pid = PID.getInstance(spid); Date date = new Date(1); Foxml11Document doc = new Foxml11Document(pid.toString()); doc.addObjectProperty(Property.STATE, "A"); if (contentLocation != null && contentLocation.length() > 0) { String ds = "DS"; String dsv = "DS1.0"; doc.addDatastream(ds, State.A, ControlGroup.M, true); doc.addDatastreamVersion(ds, dsv, "text/plain", "label", 1, date); doc.setContentLocation(dsv, contentLocation, org.fcrepo.server.storage.types.Datastream.DS_LOCATION_TYPE_URL); } return doc; }
private Foxml11Document createFoxmlObject(String spid, String contentLocation) throws Exception { PID pid = PID.getInstance(spid); Date date = new Date(1); Foxml11Document doc = new Foxml11Document(pid.toString()); doc.addObjectProperty(Property.STATE, "A"); if (contentLocation != null && contentLocation.length() > 0) { String ds = "DS"; String dsv = "DS1.0"; doc.addDatastream(ds, State.A, ControlGroup.E, true); doc.addDatastreamVersion(ds, dsv, "text/plain", "label", 1, date); doc.setContentLocation(dsv, contentLocation, org.fcrepo.server.storage.types.Datastream.DS_LOCATION_TYPE_URL); } return doc; }
public void send(String destName, FedoraMethod method, FedoraMessage message) throws MessagingException { TextMessage jmsMessage = jmsMgr.createTextMessage(destName, message.toString()); try { jmsMessage.setStringProperty("methodName", method.getName()); if(method.getPID() != null) { jmsMessage.setStringProperty("pid", method.getPID().toString()); } } catch(JMSException jmse) { throw new MessagingException("Unable to set message properties.", jmse); } jmsMgr.send(destName, jmsMessage); }
public void send(String destName, FedoraMethod method, FedoraMessage message) throws MessagingException { TextMessage jmsMessage = jmsMgr.createTextMessage(destName, message.toString()); try { jmsMessage.setStringProperty("methodName", method.getName()); if(method.getPID() != null) { jmsMessage.setStringProperty("pid", method.getPID().toString()); } } catch(JMSException jmse) { throw new MessagingException("Unable to set message properties.", jmse); } jmsMgr.send(destName, jmsMessage); }