tdraier 2005/08/29 11:20:17 CEST
Modified files:
core/src/java/org/jahia/engines/importexport
ManageContentPicker.java
ManageImportExport.java
core/src/java/org/jahia/services/importexport
ContentPickerListener.java
ImportExportBaseService.java
ImportExportService.java
ImportHandler.java
Log:
moved methods from engine to service, fixed copy/import methods
Revision Changes Path
1.11 +7 -79
jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java.diff?r1=1.10&r2=1.11&f=h
1.12 +3 -3
jahia/core/src/java/org/jahia/engines/importexport/ManageImportExport.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/importexport/ManageImportExport.java.diff?r1=1.11&r2=1.12&f=h
1.6 +1 -1
jahia/core/src/java/org/jahia/services/importexport/ContentPickerListener.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ContentPickerListener.java.diff?r1=1.5&r2=1.6&f=h
1.16 +99 -20
jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java.diff?r1=1.15&r2=1.16&f=h
1.8 +17 -8
jahia/core/src/java/org/jahia/services/importexport/ImportExportService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ImportExportService.java.diff?r1=1.7&r2=1.8&f=h
1.12 +26 -17
jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java.diff?r1=1.11&r2=1.12&f=h
Index: ManageContentPicker.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ManageContentPicker.java 21 Aug 2005 16:13:42 -0000 1.10
+++ ManageContentPicker.java 29 Aug 2005 09:20:16 -0000 1.11
@@ -17,7 +17,6 @@
import org.jahia.registries.ServicesRegistry;
import org.jahia.services.containers.ContentContainer;
import org.jahia.services.containers.ContentContainerList;
-import org.jahia.services.importexport.ImportExportBaseService;
import org.jahia.services.importexport.ImportExportService;
import org.jahia.services.importexport.ImportHandler;
import org.jahia.services.search.*;
@@ -115,6 +114,9 @@
engineMap.put( "searchResults", subMap.get("searchResults"));
engineMap.put( "searchString", subMap.get("searchString"));
SearchViewHandlerImpl searchViewHandler = (SearchViewHandlerImpl)
subMap.get(Search_Engine.SEARCH_HANDLER);
+
+ ImportExportService ie =
ServicesRegistry.getInstance().getImportExportService();
+
if (searchViewHandler!=null) {
searchViewHandler.setScreen("execute");
engineMap.put( Search_Engine.SEARCH_HANDLER, searchViewHandler);
@@ -257,7 +259,6 @@
JahiaSearchHit jahiaSearchHit = (JahiaSearchHit)
iterator.next();
ContentObject current =
ContentContainer.getContainer(Integer.parseInt(jahiaSearchHit.getId()));
int score = jahiaSearchHit.getScore();
-
while (current != null && current.hasActiveEntries()) {
if (current.getPickedObject() != null) {
break;
@@ -265,7 +266,7 @@
if (current instanceof ContentContainer) {
ContainerDefinitionKey currentCdk =
(ContainerDefinitionKey) ((ContentContainer)current).getDefinitionKey(null);
JahiaContainerDefinition currentJcd =
(JahiaContainerDefinition) ContentObject.getInstance(currentCdk);
- if (isCompatible(thisJcd, currentJcd)) {
+ if (ie.isCompatible(thisJcd, currentJcd)) {
ContentObject current2 = current;
while (current2 != null &&
current2.getPickedObject() == null) {
current2 = current2.getParent(null);
@@ -346,9 +347,9 @@
try {
ContentObject source =
ContentContainer.getContainer(Integer.parseInt(jParams.getParameter("containerId")));
if ("linked".equals(jParams.getParameter("copytype"))) {
- linkedCopy(source, object, jParams);
+ ie.linkedCopy(source, object, jParams);
} else {
- copy(source, object, jParams);
+ ie.copy(source, object, jParams,
EntryLoadRequest.CURRENT);
}
engineMap.put("contentpick_engine.fieldForm", "<script
language=\"javascript\">window.opener.location.href =
defineMatrixParam(window.opener.location.href);window.close();</script>");
} catch (JahiaException e) {
@@ -361,89 +362,16 @@
return true;
}
- private boolean isCompatible(JahiaContainerDefinition picker,
JahiaContainerDefinition picked) {
- if (picker.getID() == picked.getID()) {
- return true;
- }
-
- String[] pickerAliases = picker.getAliasName();
- String[] pickedAliases = picked.getAliasName();
- for (int i = 0; i < pickedAliases.length; i++) {
- String pickedAlias = pickedAliases[i];
- for (int j = 0; j < pickerAliases.length; j++) {
- String pickerAlias = pickerAliases[j];
- if (pickerAlias.equals(pickedAlias)) {
- return true;
- }
- }
- }
-
- return false;
- }
-
public boolean update (ProcessingContext jParams, HashMap engineMap,
ContentObject object)
throws JahiaException, JahiaSessionExpirationException {
return true;
}
+
private boolean save( ProcessingContext jParams, HashMap engineMap,
ContentObject object)
throws JahiaException {
return true;
}
- public ContentObject copy(ContentObject source, ContentObject
parentDest, ProcessingContext jParams) {
- return copy(source,parentDest, getSiteLanguages(jParams), jParams);
- }
-
- public ContentObject copy(ContentObject source, ContentObject
parentDest, Set languages, ProcessingContext jParams) {
- try {
- ImportExportService ie =
ServicesRegistry.getInstance().getImportExportService();
-
- Iterator iterator = languages.iterator();
- String lang = (String) iterator.next();
-
- // Copy first lang only
- ImportHandler handler = new ImportHandler(parentDest,jParams,
lang);
- Set files = new HashSet();
- ie.export(source, lang, handler, files, jParams, true);
- ContentObject main = handler.getLastObject();
-
- while (iterator.hasNext()) {
- String nextLang = (String) iterator.next();
- ImportHandler h = new ImportHandler(main, jParams, nextLang);
- h.setUpdateOnly(true);
- ie.export(source, lang, handler, files, jParams, true);
- }
-
- return main;
- } catch (Exception e) {
- logger.error("Error during copying",e);
- }
- return null;
- }
-
- public ContentObject linkedCopy(ContentObject source, ContentObject
parentDest, ProcessingContext jParams) {
- Set languages = getSiteLanguages(jParams);
- ContentObject dest = copy (source, parentDest, languages, jParams);
- if(dest!=null)
- source.addPickerObject(jParams, dest);
- return dest;
- }
-
- private Set getSiteLanguages(ProcessingContext jParams) {
- Set languages = new HashSet();
- try {
- Vector v = jParams.getSite().getLanguageSettings();
- for (Iterator iterator = v.iterator(); iterator.hasNext();) {
- SiteLanguageSettings sls = (SiteLanguageSettings)
iterator.next();
- languages.add(sls.getCode());
- }
- } catch (JahiaException e) {
- logger.error("Jahia exception",e);
- // ????
- }
- return languages;
- }
-
}
Index: ManageImportExport.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/importexport/ManageImportExport.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ManageImportExport.java 19 Aug 2005 15:11:26 -0000 1.11
+++ ManageImportExport.java 29 Aug 2005 09:20:16 -0000 1.12
@@ -132,13 +132,13 @@
ServletOutputStream outputStream =
resp.getOutputStream();
if
("zipfiles".equals(jParams.getParameter("exportformat"))) {
resp.setContentType("application/zip");
- ie.export(object, languageCodes, outputStream,
jParams, true, true, to, from);
+ ie.export(object, languageCodes, outputStream,
jParams, null, true, to, from);
} else if
("zipnofiles".equals(jParams.getParameter("exportformat"))) {
resp.setContentType("application/zip");
- ie.export(object, languageCodes, outputStream,
jParams, true, false, to, from);
+ ie.export(object, languageCodes, outputStream,
jParams, null, false, to, from);
} else {
resp.setContentType("text/xml");
- ie.export(object, jParams.getLocale().toString(),
outputStream, jParams, true, to, from);
+ ie.export(object, jParams.getLocale().toString(),
outputStream, jParams, null, to, from);
}
outputStream.close();
engineMap.put (JahiaEngine.RENDER_TYPE_PARAM, new
Integer(-1));
Index: ContentPickerListener.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ContentPickerListener.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ContentPickerListener.java 19 Aug 2005 15:11:27 -0000 1.5
+++ ContentPickerListener.java 29 Aug 2005 09:20:17 -0000 1.6
@@ -57,7 +57,7 @@
// copy first lang
String lang = (String) iterator1.next();
ImportHandler handler = new
ImportHandler(picker,jParams, lang);
- ie.export(contentObject, lang, handler,
files, jParams, true,EntryLoadRequest.STAGED, EntryLoadRequest.CURRENT);
+ ie.export(contentObject, lang, handler,
files, jParams, null ,EntryLoadRequest.STAGED, EntryLoadRequest.CURRENT);
}
}
}
Index: ImportExportBaseService.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- ImportExportBaseService.java 22 Aug 2005 14:09:17 -0000 1.15
+++ ImportExportBaseService.java 29 Aug 2005 09:20:17 -0000 1.16
@@ -35,6 +35,7 @@
import org.jahia.services.webdav.DAVFileAccess;
import org.jahia.services.webdav.JahiaWebdavBaseService;
import org.jahia.services.JahiaService;
+import org.jahia.services.sites.SiteLanguageSettings;
import org.jahia.hibernate.model.JahiaAclEntry;
import org.w3c.dom.Document;
import org.xml.sax.ContentHandler;
@@ -61,6 +62,9 @@
*/
public class ImportExportBaseService extends JahiaService implements
ImportExportService {
+ private static org.apache.log4j.Logger logger =
+ org.apache.log4j.Logger.getLogger(ImportExportBaseService.class);
+
private static ImportExportBaseService instance;
private static IdentifierGenerator idGen;
@@ -80,31 +84,31 @@
public void stop() {}
- public Document export(ContentObject object, String languageCodes,
ProcessingContext jParams, boolean recursive) throws JahiaException,
SAXException {
- return export(object, languageCodes, jParams, recursive,
EntryLoadRequest.CURRENT, null);
+ public Document export(ContentObject object, String languageCodes,
ProcessingContext jParams, Set included) throws JahiaException, SAXException {
+ return export(object, languageCodes, jParams, included,
EntryLoadRequest.CURRENT, null);
}
- public Document export(ContentObject object, String languageCodes,
ProcessingContext jParams, boolean recursive, EntryLoadRequest toLoadRequest,
EntryLoadRequest fromLoadRequest) throws JahiaException, SAXException {
+ public Document export(ContentObject object, String languageCodes,
ProcessingContext jParams, Set included, EntryLoadRequest toLoadRequest,
EntryLoadRequest fromLoadRequest) throws JahiaException, SAXException {
DocumentImpl doc = new DocumentImpl();
DOMBuilder db = new DOMBuilder(doc,doc);
- export(object, languageCodes, db, new HashSet(), jParams, recursive,
toLoadRequest, fromLoadRequest);
+ export(object, languageCodes, db, new HashSet(), jParams, included,
toLoadRequest, fromLoadRequest);
return doc;
}
- public void export(ContentObject object, String languageCode,
OutputStream out, ProcessingContext jParams, boolean recursive) throws
JahiaException, SAXException, IOException {
- export(object, languageCode, out, jParams, recursive,
EntryLoadRequest.CURRENT, null);
+ public void export(ContentObject object, String languageCode,
OutputStream out, ProcessingContext jParams, Set included) throws
JahiaException, SAXException, IOException {
+ export(object, languageCode, out, jParams, included,
EntryLoadRequest.CURRENT, null);
}
- public void export(ContentObject object, String languageCode,
OutputStream out, ProcessingContext jParams, boolean recursive,
EntryLoadRequest toLoadRequest, EntryLoadRequest fromLoadRequest) throws
JahiaException, SAXException, IOException {
+ public void export(ContentObject object, String languageCode,
OutputStream out, ProcessingContext jParams, Set included, EntryLoadRequest
toLoadRequest, EntryLoadRequest fromLoadRequest) throws JahiaException,
SAXException, IOException {
DataWriter dw = new DataWriter(new OutputStreamWriter(out, "UTF-8"));
- export(object, languageCode, dw, new HashSet(), jParams, recursive,
toLoadRequest, fromLoadRequest);
+ export(object, languageCode, dw, new HashSet(), jParams, included,
toLoadRequest, fromLoadRequest);
}
- public void export(ContentObject object, Set languageCodes, OutputStream
out, ProcessingContext jParams, boolean recursive, boolean zipWithFiles) throws
JahiaException, SAXException, IOException {
- export(object, languageCodes, out, jParams, recursive, zipWithFiles,
EntryLoadRequest.CURRENT, null);
+ public void export(ContentObject object, Set languageCodes, OutputStream
out, ProcessingContext jParams, Set included, boolean zipWithFiles) throws
JahiaException, SAXException, IOException {
+ export(object, languageCodes, out, jParams, included, zipWithFiles,
EntryLoadRequest.CURRENT, null);
}
- public void export(ContentObject object, Set languageCodes, OutputStream
out, ProcessingContext jParams, boolean recursive, boolean zipWithFiles,
EntryLoadRequest toLoadRequest, EntryLoadRequest fromLoadRequest) throws
JahiaException, SAXException, IOException {
+ public void export(ContentObject object, Set languageCodes, OutputStream
out, ProcessingContext jParams, Set included, boolean zipWithFiles,
EntryLoadRequest toLoadRequest, EntryLoadRequest fromLoadRequest) throws
JahiaException, SAXException, IOException {
Set files = new HashSet();
byte[] buffer = new byte[4096];
@@ -119,7 +123,7 @@
zout.putNextEntry(anEntry);
DataWriter dw = new DataWriter(new OutputStreamWriter(zout,
"UTF-8"));
- export(object, l, dw, files, jParams, recursive, toLoadRequest,
fromLoadRequest);
+ export(object, l, dw, files, jParams, included, toLoadRequest,
fromLoadRequest);
}
if (zipWithFiles) {
@@ -146,11 +150,11 @@
zout.close();
}
- public void export(ContentObject object, String languageCode,
ContentHandler h, Set files, ProcessingContext jParams, boolean recursive)
throws JahiaException, SAXException {
- export(object, languageCode, h, files, jParams, recursive,
EntryLoadRequest.CURRENT, null);
+ public void export(ContentObject object, String languageCode,
ContentHandler h, Set files, ProcessingContext jParams, Set included) throws
JahiaException, SAXException {
+ export(object, languageCode, h, files, jParams, included,
EntryLoadRequest.CURRENT, null);
}
- public void export(ContentObject object, String language, ContentHandler
h, Set files, ProcessingContext jParams, boolean recursive, EntryLoadRequest
toLoadRequest, EntryLoadRequest fromLoadRequest) throws JahiaException,
SAXException {
+ public void export(ContentObject object, String language, ContentHandler
h, Set files, ProcessingContext jParams, Set included, EntryLoadRequest
toLoadRequest, EntryLoadRequest fromLoadRequest) throws JahiaException,
SAXException {
toLoadRequest = new EntryLoadRequest(toLoadRequest);
toLoadRequest.setFirstLocale(language);
if (fromLoadRequest != null) {
@@ -169,13 +173,13 @@
h.startPrefixMapping(jParams.getSiteKey()+"nt",
JAHIA_URI+jParams.getSiteKey()+ "/nt");
h.endPrefixMapping(jParams.getSiteKey()+"nt");
- export(object, language, h, files, jParams, recursive, true,
toLoadRequest, fromLoadRequest);
+ export(object, language, h, files, jParams, included, true,
toLoadRequest, fromLoadRequest);
h.endDocument();
System.out.println("-->"+files);
}
- private void export(ContentObject object, String language,
ContentHandler h, Set files, ProcessingContext jParams, boolean recursive,
boolean top, EntryLoadRequest toLoadRequest, EntryLoadRequest fromLoadRequest)
throws JahiaException, SAXException {
+ private void export(ContentObject object, String language,
ContentHandler h, Set files, ProcessingContext jParams, Set included, boolean
top, EntryLoadRequest toLoadRequest, EntryLoadRequest fromLoadRequest) throws
JahiaException, SAXException {
try {
AttributesImpl attr = new AttributesImpl();
if (top) {
@@ -357,7 +361,7 @@
}
// Recurse on children
- if ((recursive || elementName == null) &&
!"removed".equals(changedStatus)) {
+ if (!"removed".equals(changedStatus)) {
EntryLoadRequest withDeleted = new
EntryLoadRequest(toLoadRequest);
withDeleted.setWithMarkedForDeletion(true);
List l = object.getChilds(jParams.getUser(), withDeleted,
jParams.getOperationMode());
@@ -368,8 +372,9 @@
for (Iterator iterator = l.iterator(); iterator.hasNext();) {
ContentObject child = (ContentObject) iterator.next();
- export(child, language, h, files, jParams, true, false,
toLoadRequest, fromLoadRequest);
-
+ if (included == null || included.contains(child)) {
+ export(child, language, h, files, jParams, included,
false, toLoadRequest, fromLoadRequest);
+ }
}
}
@@ -671,4 +676,78 @@
}
}
+ public ContentObject copy(ContentObject source, ContentObject
parentDest, ProcessingContext jParams, EntryLoadRequest loadRequest) {
+ return copy(source,parentDest, getSiteLanguages(jParams), jParams,
loadRequest);
+ }
+
+ public ContentObject copy(ContentObject source, ContentObject
parentDest, Set languages, ProcessingContext jParams, EntryLoadRequest
loadRequest) {
+ try {
+ Iterator iterator = languages.iterator();
+ String lang = (String) iterator.next();
+
+ // Copy first lang only
+ ImportHandler handler = new ImportHandler(parentDest,jParams,
lang);
+ Set files = new HashSet();
+ export(source, lang, handler, files, jParams, null, loadRequest,
null);
+ ContentObject main = handler.getLastObject();
+
+ while (iterator.hasNext()) {
+ String nextLang = (String) iterator.next();
+ ImportHandler h = new ImportHandler(main, jParams, nextLang);
+ h.setUpdateOnly(true);
+ export(source, lang, handler, files, jParams, null,
loadRequest, null);
+ }
+
+ return main;
+ } catch (Exception e) {
+ logger.error("Error during copying",e);
+ }
+ return null;
+ }
+
+ public ContentObject linkedCopy(ContentObject source, ContentObject
parentDest, ProcessingContext jParams) {
+ Set languages = getSiteLanguages(jParams);
+ ContentObject dest = copy (source, parentDest, languages, jParams,
EntryLoadRequest.CURRENT);
+ if(dest!=null)
+ source.addPickerObject(jParams, dest);
+ return dest;
+ }
+
+ private Set getSiteLanguages(ProcessingContext jParams) {
+ Set languages = new HashSet();
+ try {
+ Vector v = jParams.getSite().getLanguageSettings();
+ for (Iterator iterator = v.iterator(); iterator.hasNext();) {
+ SiteLanguageSettings sls = (SiteLanguageSettings)
iterator.next();
+ languages.add(sls.getCode());
+ }
+ } catch (JahiaException e) {
+ logger.error("Jahia exception",e);
+ // ????
+ }
+ return languages;
+ }
+
+
+ public boolean isCompatible(JahiaContainerDefinition dest,
JahiaContainerDefinition source) {
+ if (dest.getID() == source.getID()) {
+ return true;
+ }
+
+ String[] pickerAliases = dest.getAliasName();
+ String[] pickedAliases = source.getAliasName();
+ for (int i = 0; i < pickedAliases.length; i++) {
+ String pickedAlias = pickedAliases[i];
+ for (int j = 0; j < pickerAliases.length; j++) {
+ String pickerAlias = pickerAliases[j];
+ if (pickerAlias.equals(pickedAlias)) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+
}
Index: ImportExportService.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ImportExportService.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ImportExportService.java 19 Aug 2005 15:11:27 -0000 1.7
+++ ImportExportService.java 29 Aug 2005 09:20:17 -0000 1.8
@@ -5,6 +5,7 @@
import org.jahia.params.ProcessingContext;
import org.jahia.exceptions.JahiaException;
import org.jahia.services.version.EntryLoadRequest;
+import org.jahia.data.containers.JahiaContainerDefinition;
import org.apache.xerces.dom.DocumentImpl;
import org.xml.sax.SAXException;
import org.xml.sax.ContentHandler;
@@ -31,21 +32,21 @@
String JAHIA_URI="http://www.jahia.org/";
String NS_URI = "http://www.w3.org/2000/xmlns/";
- Document export(ContentObject object, String languageCodes,
ProcessingContext jParams, boolean recursive) throws JahiaException,
SAXException;
+ Document export(ContentObject object, String languageCodes,
ProcessingContext jParams, Set included) throws JahiaException, SAXException;
- Document export(ContentObject object, String languageCodes,
ProcessingContext jParams, boolean recursive, EntryLoadRequest toLoadRequest,
EntryLoadRequest fromLoadRequest) throws JahiaException, SAXException;
+ Document export(ContentObject object, String languageCodes,
ProcessingContext jParams, Set included, EntryLoadRequest toLoadRequest,
EntryLoadRequest fromLoadRequest) throws JahiaException, SAXException;
- void export(ContentObject object, Set languageCodes, OutputStream out,
ProcessingContext jParams, boolean recursive, boolean zipWithFiles) throws
JahiaException, SAXException, IOException;
+ void export(ContentObject object, Set languageCodes, OutputStream out,
ProcessingContext jParams, Set included, boolean zipWithFiles) throws
JahiaException, SAXException, IOException;
- void export(ContentObject object, Set languageCodes, OutputStream out,
ProcessingContext jParams, boolean recursive, boolean zipWithFiles,
EntryLoadRequest toLoadRequest, EntryLoadRequest fromLoadRequest) throws
JahiaException, SAXException, IOException;
+ void export(ContentObject object, Set languageCodes, OutputStream out,
ProcessingContext jParams, Set included, boolean zipWithFiles, EntryLoadRequest
toLoadRequest, EntryLoadRequest fromLoadRequest) throws JahiaException,
SAXException, IOException;
- void export(ContentObject object, String languageCode, OutputStream out,
ProcessingContext jParams, boolean recursive) throws JahiaException,
SAXException, IOException;
+ void export(ContentObject object, String languageCode, OutputStream out,
ProcessingContext jParams, Set included) throws JahiaException, SAXException,
IOException;
- void export(ContentObject object, String languageCode, OutputStream out,
ProcessingContext jParams, boolean recursive, EntryLoadRequest toLoadRequest,
EntryLoadRequest fromLoadRequest) throws JahiaException, SAXException,
IOException;
+ void export(ContentObject object, String languageCode, OutputStream out,
ProcessingContext jParams, Set included, EntryLoadRequest toLoadRequest,
EntryLoadRequest fromLoadRequest) throws JahiaException, SAXException,
IOException;
- void export(ContentObject object, String languageCodes, ContentHandler
h, Set files, ProcessingContext jParams, boolean recursive) throws
JahiaException, SAXException;
+ void export(ContentObject object, String languageCodes, ContentHandler
h, Set files, ProcessingContext jParams, Set included) throws JahiaException,
SAXException;
- void export(ContentObject object, String languageCodes, ContentHandler
h, Set files, ProcessingContext jParams, boolean recursive, EntryLoadRequest
toLoadRequest, EntryLoadRequest fromLoadRequest) throws JahiaException,
SAXException;
+ void export(ContentObject object, String languageCodes, ContentHandler
h, Set files, ProcessingContext jParams, Set included, EntryLoadRequest
toLoadRequest, EntryLoadRequest fromLoadRequest) throws JahiaException,
SAXException;
void importFile(ContentObject parent, ProcessingContext jParams,
InputStream inputStream);
@@ -58,4 +59,12 @@
void exportFilesAcl(ContentHandler ch, Set files) throws SAXException;
void importFilesAcl(ProcessingContext jParams, InputStream is);
+
+ ContentObject copy(ContentObject source, ContentObject parentDest,
ProcessingContext jParams, EntryLoadRequest loadRequest);
+
+ ContentObject copy(ContentObject source, ContentObject parentDest, Set
languages, ProcessingContext jParams, EntryLoadRequest loadRequest);
+
+ ContentObject linkedCopy(ContentObject source, ContentObject parentDest,
ProcessingContext jParams);
+
+ boolean isCompatible(JahiaContainerDefinition dest,
JahiaContainerDefinition source);
}
Index: ImportHandler.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ImportHandler.java 25 Aug 2005 10:15:53 -0000 1.11
+++ ImportHandler.java 29 Aug 2005 09:20:17 -0000 1.12
@@ -72,6 +72,7 @@
protected boolean updateOnly = false;
protected EntryLoadRequest elr;
protected Locale oldLocale;
+ protected EntryLoadRequest oldElr;
public ImportHandler(ContentObject root, ProcessingContext jParams,
String language) {
this.jParams = jParams;
@@ -88,6 +89,8 @@
public void startDocument() throws SAXException {
oldLocale = jParams.getCurrentLocale();
jParams.setCurrentLocale(LanguageCodeConverters.languageCodeToLocale(language));
+ oldElr = jParams.getEntryLoadRequest();
+ jParams.setEntryLoadRequest(oldElr);
}
public void endDocument() throws SAXException {
@@ -118,9 +121,10 @@
cpf.getAclID(), jParams);
cpf.setValue(jahiaPage.getID(), jParams);
ServicesRegistry.getInstance ().getJahiaFieldService ().
- saveField (((ContentPageField)
cpf).getJahiaField(jParams.getEntryLoadRequest()), cpf.getACL().getParentID(),
jParams);
+ saveField (((ContentPageField)
cpf).getJahiaField(elr), cpf.getACL().getParentID(), jParams);
}
jParams.setCurrentLocale(oldLocale);
+ jParams.setEntryLoadRequest(oldElr);
} catch (JahiaException e) {
throw new SAXException(e);
}
@@ -128,6 +132,7 @@
public void startElement(String namespaceURI, String localName, String
qName, Attributes atts) throws SAXException {
try {
+ logger.info("Importing {" + namespaceURI + "}" +localName + " "
+ atts);
String uuid = atts.getValue(ImportExportBaseService.JCR_URI,
"uuid");
String diff = atts.getValue(ImportExportBaseService.JAHIA_URI,
"diff");
@@ -172,7 +177,7 @@
String containerName = localName.substring(0,
localName.length() - 4);
ContentContainerList cc;
if (parent instanceof ContentContainer) {
- cc = ((ContentContainer)
parent).getJahiaContainer(jParams,
EntryLoadRequest.STAGED).getContainerList(containerName).getContentContainerList();
+ cc = ((ContentContainer)
parent).getJahiaContainer(jParams,
elr).getContainerList(containerName).getContentContainerList();
} else {
int id =
ServicesRegistry.getInstance().getJahiaContainersService().getContainerListID(containerName,
pageID);
cc =
ServicesRegistry.getInstance().getJahiaContainersService().loadContainerList(id,
LoadFlags.ALL, jParams).getContentContainerList();
@@ -181,7 +186,7 @@
} else {
ContentField cf;
if (parent instanceof ContentContainer) {
- JahiaContainer jahiaContainer =
((ContentContainer) parent).getJahiaContainer(jParams, EntryLoadRequest.STAGED);
+ JahiaContainer jahiaContainer =
((ContentContainer) parent).getJahiaContainer(jParams, elr);
JahiaField f =
jahiaContainer.getField(localName);
if (f == null) {
cf = (ContentField) createObject(parent,
namespaceURI, localName, atts);
@@ -190,14 +195,14 @@
}
} else {
int id =
ServicesRegistry.getInstance().getJahiaFieldService().getFieldID(localName,
pageID);
- cf =
ServicesRegistry.getInstance().getJahiaFieldService().loadField(id,
LoadFlags.ALL, jParams, EntryLoadRequest.STAGED).getContentField();
+ cf =
ServicesRegistry.getInstance().getJahiaFieldService().loadField(id,
LoadFlags.ALL, jParams, elr).getContentField();
}
currentObject = cf;
}
} else if (parent instanceof ContentContainerList) {
// Container inside a list
// Warning - find the container from its
position within the list - might be dangerous if container list has been updated
- List l = parent.getChilds(jParams.getUser(),
EntryLoadRequest.STAGED, jParams.getOperationMode());
+ List l = parent.getChilds(jParams.getUser(), elr,
jParams.getOperationMode());
ImportExportUtils.orderContainerList(l, jParams);
Integer iIndex = (Integer)
containerIndex.get(parent);
@@ -224,7 +229,7 @@
} else if (parent instanceof ContentPageField) {
// Page
ContentPageField theField = (ContentPageField)
parent;
- currentObject =
theField.getContentPage(EntryLoadRequest.STAGED);
+ currentObject = theField.getContentPage(elr);
}
}
@@ -269,6 +274,7 @@
public void endElement(String namespaceURI, String localName, String
qName) throws SAXException {
lastObject = (ContentObject) objects.pop();
+ logger.info("End element {" + namespaceURI + "}" +localName + " =
"+lastObject);
}
@@ -291,6 +297,7 @@
// }
protected ContentObject createObject(ContentObject parent, String
namespaceURI, String localName, Attributes atts) throws JahiaException {
+ logger.info("Create {" + namespaceURI + "}" +localName);
ContentObject object = null;
int pageID = 0;
if (parent instanceof ContentPage || parent instanceof
ContentContainer) {
@@ -377,12 +384,12 @@
0,
jParams,
jParams.getSite().getLanguageSettingsAsLocales
(false));
- int parentAclID =
parent.getParent(jParams.getEntryLoadRequest()).getAclID();
+ int parentAclID = parent.getParent(elr).getAclID();
int parentId = 0;
- if (parent.getParent(jParams.getEntryLoadRequest()) instanceof
ContentContainer) {
- parentId =
parent.getParent(jParams.getEntryLoadRequest()).getID();
+ if (parent.getParent(elr) instanceof ContentContainer) {
+ parentId = parent.getParent(elr).getID();
}
- JahiaContainer container =
contentContainerFacade.getContainer(jParams.getEntryLoadRequest(),true);
+ JahiaContainer container =
contentContainerFacade.getContainer(elr,true);
if (atts.getValue(ImportExportBaseService.JAHIA_URI,
"diff")!=null) {
Integer iIndex = (Integer) containerIndex.get(parent);
if (iIndex == null) {
@@ -390,13 +397,13 @@
containerIndex.put(parent, iIndex);
}
// SET
- List l = parent.getChilds(jParams.getUser(),
EntryLoadRequest.STAGED, jParams.getOperationMode());
+ List l = parent.getChilds(jParams.getUser(), elr,
jParams.getOperationMode());
ImportExportUtils.orderContainerList(l, jParams);
int i = -l.size();
int rank = i + iIndex.intValue();
for (Iterator iterator = l.iterator(); iterator.hasNext();) {
ContentContainer contentObject = (ContentContainer)
iterator.next();
- JahiaContainer jc =
contentObject.getJahiaContainer(jParams, EntryLoadRequest.STAGED);
+ JahiaContainer jc =
contentObject.getJahiaContainer(jParams, elr);
if (i == rank) {
i++;
}
@@ -455,10 +462,12 @@
}
}
if (jahiaPage != null) {
- object = jahiaPage.getContentPage();
- ((ContentPageField)parent).setValue(jahiaPage.getID(),
jParams);
+ JahiaField jahiaField = ((ContentPageField)
parent).getJahiaField(elr);
+ jahiaField.setValue(Integer.toString(jahiaPage.getID()));
+ jahiaField.setObject(jahiaPage);
ServicesRegistry.getInstance ().getJahiaFieldService ().
- saveField (((ContentPageField)
parent).getJahiaField(jParams.getEntryLoadRequest()),
parent.getACL().getParentID(), jParams);
+ saveField (jahiaField,
parent.getACL().getParentID(), jParams);
+ object = jahiaPage.getContentPage();
}
}
@@ -562,7 +571,7 @@
List md = object.getMetadatas();
for (Iterator iterator = md.iterator(); iterator.hasNext();) {
ContentField metadataContentField = (ContentField)
iterator.next();
- FieldDefinitionKey fdk = (FieldDefinitionKey)
metadataContentField.getDefinitionKey(EntryLoadRequest.STAGED);
+ FieldDefinitionKey fdk = (FieldDefinitionKey)
metadataContentField.getDefinitionKey(elr);
JahiaFieldDefinition jcd = (JahiaFieldDefinition)
ContentObject.getInstance(fdk);
String metadataName = jcd.getName();
String value;
@@ -574,7 +583,7 @@
value = attr.getValue(ImportExportService.JAHIA_URI,
metadataName);
}
if (value != null) {
- JahiaField jf =
metadataContentField.getJahiaField(EntryLoadRequest.STAGED);
+ JahiaField jf = metadataContentField.getJahiaField(elr);
jf.setValue(parseValue(metadataContentField,value));
jf.save(jParams);
}