]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
a8097fc3f3c507661863735f5d564bd76bc085cc
[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.NuxeoClientEmbedded;\r
7 import org.collectionspace.services.nuxeo.client.java.NuxeoConnectorEmbedded;\r
8 import org.nuxeo.ecm.core.api.repository.RepositoryInstance;\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 logger = 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         NuxeoClientEmbedded client = NuxeoConnectorEmbedded.getInstance().getClient();\r
24         RepositoryInstance  repoSession = client.openRepository();\r
25         try {\r
26             return importTree(repoSession, file, dest);\r
27         } finally {\r
28 //            repository.close();\r
29             client.releaseRepository(repoSession);\r
30         }\r
31     }\r
32 \r
33     String importTree(RepositoryInstance repository, File file, String toPath) throws Exception {\r
34         DocumentReader reader = null;\r
35         DocumentWriter writer = null;\r
36         String dump = "NO RESULTS";\r
37         try {\r
38             System.out.println("importTree reading file: "+file+(file!=null ? " exists? "+file.exists() : " file param is null"));\r
39             reader = new LoggedXMLDirectoryReader(file);  //our overload of XMLDirectoryReader.\r
40             writer = new DocumentModelWriter(repository, toPath, 10);\r
41             DocumentPipe pipe = new DocumentPipeImpl(10);\r
42             // pipe.addTransformer(transformer);\r
43             pipe.setReader(reader);\r
44             pipe.setWriter(writer);\r
45             pipe.run();\r
46         } finally {\r
47             if (reader != null) {\r
48                 reader.close();\r
49                 dump = ((LoggedXMLDirectoryReader)reader).report();\r
50             }\r
51             if (writer != null) {\r
52                 writer.close();\r
53             }\r
54         }\r
55         return dump;\r
56     }\r
57 }