]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
68a4c1ef405778087f3bca2c3806053e6809f5c7
[tmp/jakarta-migration.git] /
1 package org.collectionspace.services.imports.nuxeo;\r
2 \r
3 import java.io.File;\r
4 import org.apache.commons.logging.Log;\r
5 import org.apache.commons.logging.LogFactory;\r
6 import org.collectionspace.services.nuxeo.client.java.NuxeoConnector;\r
7 import org.nuxeo.ecm.core.api.repository.RepositoryInstance;\r
8 import org.nuxeo.ecm.core.client.NuxeoClient;\r
9 import org.nuxeo.ecm.core.io.DocumentPipe;\r
10 import org.nuxeo.ecm.core.io.DocumentReader;\r
11 import org.nuxeo.ecm.core.io.DocumentWriter;\r
12 import org.nuxeo.ecm.core.io.impl.DocumentPipeImpl;\r
13 import org.nuxeo.ecm.core.io.impl.plugins.DocumentModelWriter;\r
14 // we use our own override of this: import org.nuxeo.ecm.core.io.impl.plugins.XMLDirectoryReader;\r
15 \r
16 // based loosely on package org.nuxeo.ecm.shell.commands.io.ImportCommand;\r
17 public class ImportCommand {\r
18     private static final Log log = LogFactory.getLog(ImportCommand.class);\r
19 \r
20     public String run(String src, String dest) throws Exception {\r
21         File file = new File(src);\r
22         ///cspace way of configuring client and auth:\r
23         NuxeoClient client = NuxeoConnector.getInstance().getClient();\r
24         RepositoryInstance  repository = client.openRepository();\r
25         try {\r
26             return importTree(repository, file, dest);\r
27         } finally {\r
28             repository.close();\r
29         }\r
30     }\r
31 \r
32     String importTree(RepositoryInstance repository, File file, String toPath) throws Exception {\r
33         DocumentReader reader = null;\r
34         DocumentWriter writer = null;\r
35         String dump = "NO RESULTS";\r
36         try {\r
37             System.out.println("importTree reading file: "+file+(file!=null ? " exists? "+file.exists() : " file param is null"));\r
38             reader = new LoggedXMLDirectoryReader(file);  //our overload of XMLDirectoryReader.\r
39             writer = new DocumentModelWriter(repository, toPath, 10);\r
40             DocumentPipe pipe = new DocumentPipeImpl(10);\r
41             // pipe.addTransformer(transformer);\r
42             pipe.setReader(reader);\r
43             pipe.setWriter(writer);\r
44             pipe.run();\r
45         } finally {\r
46             if (reader != null) {\r
47                 reader.close();\r
48                 dump = ((LoggedXMLDirectoryReader)reader).report();\r
49             }\r
50             if (writer != null) {\r
51                 writer.close();\r
52             }\r
53         }\r
54         return dump;\r
55     }\r
56 }