Revision 6134
Added by ben leinfelder almost 13 years ago
MetacatPopulator.java | ||
---|---|---|
44 | 44 |
import org.dataone.client.D1Client; |
45 | 45 |
import org.dataone.client.MNode; |
46 | 46 |
import org.dataone.client.ObjectFormatCache; |
47 |
import org.dataone.eml.DataoneEMLParser; |
|
48 |
import org.dataone.eml.EMLDocument; |
|
49 |
import org.dataone.eml.EMLDocument.DistributionMetadata; |
|
50 | 47 |
import org.dataone.service.types.AuthToken; |
51 | 48 |
import org.dataone.service.types.Checksum; |
52 | 49 |
import org.dataone.service.types.ChecksumAlgorithm; |
... | ... | |
55 | 52 |
import org.dataone.service.types.ObjectFormat; |
56 | 53 |
import org.dataone.service.types.Subject; |
57 | 54 |
import org.dataone.service.types.SystemMetadata; |
55 |
import org.ecoinformatics.datamanager.DataManager; |
|
56 |
import org.ecoinformatics.datamanager.database.DatabaseConnectionPoolInterface; |
|
57 |
import org.ecoinformatics.datamanager.parser.DataPackage; |
|
58 | 58 |
|
59 | 59 |
import edu.ucsb.nceas.metacat.MetaCatServlet; |
60 |
import edu.ucsb.nceas.metacat.dataquery.MetacatDatabaseConnectionPoolFactory; |
|
60 | 61 |
import edu.ucsb.nceas.metacat.properties.PropertyService; |
61 | 62 |
import edu.ucsb.nceas.metacat.restservice.InputStreamDataSource; |
62 | 63 |
|
... | ... | |
139 | 140 |
System.out.println("doctext: " + doctext); |
140 | 141 |
is = stringToStream(doctext); |
141 | 142 |
//parse the document |
142 |
DataoneEMLParser parser = DataoneEMLParser.getInstance(); |
|
143 |
EMLDocument emld = parser.parseDocument(is); |
|
144 |
if(emld == null) |
|
143 |
DatabaseConnectionPoolInterface connectionPool = MetacatDatabaseConnectionPoolFactory.getDatabaseConnectionPoolInterface(); |
|
144 |
DataManager dataManager = DataManager.getInstance(connectionPool, connectionPool.getDBAdapterName()); |
|
145 |
DataPackage dataPackage = dataManager.parseMetadata(is); |
|
146 |
|
|
147 |
if(dataPackage == null) |
|
145 | 148 |
{ |
146 | 149 |
continue; |
147 | 150 |
} |
... | ... | |
152 | 155 |
|
153 | 156 |
printHeader("creating document on destination " + destinationUrl); |
154 | 157 |
SystemMetadata sysmeta = generateSystemMetadata(doc); |
155 |
for(int j=0; j<emld.distributionMetadata.size(); j++)
|
|
158 |
for(int j=0; j < dataPackage.getEntityList().length; j++)
|
|
156 | 159 |
{ |
157 |
Identifier emlId = sysmeta.getIdentifier(); |
|
158 |
DistributionMetadata dm = emld.distributionMetadata.elementAt(j); |
|
159 |
String dataDocUrl = dm.url; |
|
160 |
String dataDocMimeType = dm.mimeType; |
|
160 |
String dataDocUrl = dataPackage.getEntityList()[j].getURL(); |
|
161 |
String dataDocMimeType = |
|
162 |
dataPackage.getEntityList()[j].getDataFormat(); |
|
163 |
if (dataDocMimeType == null) { |
|
164 |
dataDocMimeType = |
|
165 |
ObjectFormatCache.getFormat("application/octet-stream").getFmtid().getValue(); |
|
166 |
} |
|
161 | 167 |
String dataDocLocalId = ""; |
162 | 168 |
if(dataDocUrl.trim().startsWith("ecogrid://knb/")) |
163 | 169 |
{ //we only handle ecogrid urls right now |
... | ... | |
248 | 254 |
logout(); |
249 | 255 |
} |
250 | 256 |
|
251 |
/** |
|
252 |
* create the documents listed by an eml document as described in the |
|
253 |
* new system |
|
254 |
* @param doc |
|
255 |
* @param emld |
|
256 |
*/ |
|
257 |
private void createDescribedDocuments(Document doc, EMLDocument emld) |
|
258 |
{ |
|
259 |
|
|
260 |
} |
|
257 |
|
|
261 | 258 |
|
262 | 259 |
/** |
263 | 260 |
* @param doc |
Also available in: Unified diff
use Data Manager Library to parse EML when needed in DataONE classes.
(augmented DML to parse data format elements in EML to estimate MIME type)
https://redmine.dataone.org/issues/1634