// DOReplicator replicator=(DOReplicator)
// m_server.getModule("org.fcrepo.server.storage.replication.DOReplicator");
DOManager manager =
(DOManager) m_server
.getModule("org.fcrepo.server.storage.DOManager");
FieldSearch fieldSearch =
(FieldSearch) m_server
.getModule("org.fcrepo.server.search.FieldSearch");
PIDGenerator pidGenerator =
(PIDGenerator) m_server
.getModule("org.fcrepo.server.management.PIDGenerator");
// SET OBJECT PROPERTIES:
logger.debug("Rebuild: Setting object/component states and create dates if unset...");
// set object state to "A" (Active) if not already set
if (obj.getState() == null || obj.getState().equals("")) {
obj.setState("A");
}
// set object create date to UTC if not already set
if (obj.getCreateDate() == null || obj.getCreateDate().equals("")) {
obj.setCreateDate(nowUTC);
}
// set object last modified date to UTC
obj.setLastModDate(nowUTC);
// SET OBJECT PROPERTIES:
logger.debug("Rebuild: Setting object/component states and create dates if unset...");
// set object state to "A" (Active) if not already set
if (obj.getState() == null || obj.getState().equals("")) {
obj.setState("A");
}
// set object create date to UTC if not already set
if (obj.getCreateDate() == null || obj.getCreateDate().equals("")) {
obj.setCreateDate(nowUTC);
}
// set object last modified date to UTC
obj.setLastModDate(nowUTC);
// SET DATASTREAM PROPERTIES...
Iterator<String> dsIter = obj.datastreamIdIterator();
while (dsIter.hasNext()) {
for (Datastream ds : obj.datastreams(dsIter.next())) {
// Set create date to UTC if not already set
if (ds.DSCreateDT == null || ds.DSCreateDT.equals("")) {
ds.DSCreateDT = nowUTC;
}
// Set state to "A" (Active) if not already set
if (ds.DSState == null || ds.DSState.equals("")) {
ds.DSState = "A";
}
}
}
// PID GENERATION:
// have the system generate a PID if one was not provided
logger.debug("INGEST: Stream contained PID with retainable namespace-id... will use PID from stream.");
try {
pidGenerator.neverGeneratePID(obj.getPid());
} catch (IOException e) {
throw new RuntimeException("Error calling pidGenerator.neverGeneratePID(): "
+ e.getMessage(),
e);
}
// REGISTRY:
// at this point the object is valid, so make a record
// of it in the digital object registry
try {
registerObject(obj);
} catch (StorageDeviceException e) {
// continue past individual errors
logger.error(e.getMessage());
}
try {
logger.info("COMMIT: Attempting replication: " + obj.getPid());
DOReader reader =
manager.getReader(Server.USE_DEFINITIVE_STORE,
m_context,
obj.getPid());
logger.info("COMMIT: Updating FieldSearch indexes...");
fieldSearch.update(reader);
} catch (ServerException se) {
System.out.println("Error while replicating: "
+ se.getClass().getName() + ": " + se.getMessage());
se.printStackTrace();