Author: tdraier
Date: Fri Sep 14 12:33:46 2007
New Revision: 18446
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18446&repname=
=3Djahia
Log:
preload page after creation, in order to create all necessary definitions /=
containerlist (port 18155)
Modified:
trunk/core/src/java/org/jahia/admin/sites/ManageSites.java
trunk/core/src/java/org/jahia/data/beans/PageBean.java
trunk/core/src/java/org/jahia/services/importexport/ImportExportBaseSer=
vice.java
trunk/core/src/java/org/jahia/services/importexport/ImportExportService=
.java
trunk/core/src/java/org/jahia/services/importexport/ImportHandler.java
trunk/core/src/java/org/jahia/services/pages/JahiaPageBaseService.java
trunk/core/src/java/org/jahia/utils/JahiaTools.java
Modified: trunk/core/src/java/org/jahia/admin/sites/ManageSites.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/admin/sites/ManageSites.java&rev=3D18446&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/admin/sites/ManageSites.java (original)
+++ trunk/core/src/java/org/jahia/admin/sites/ManageSites.java Fri Sep 14 1=
2:33:46 2007
@@ -1086,10 +1086,6 @@
// enable admin group to admin the page
adminAclEntry =3D new JahiaAclEntry(7, 0);
page.getACL().setGroupEntry(adminGroup, adminAclEntry);
-
- // set the site page by last action...
- site.setHomePageID(page.getID());
- sMgr.updateSite(site);
} else {
Boolean asAJob =3D (Boolean) request.getAttribute("asA=
Job");
if (asAJob =3D=3D null || asAJob.booleanValue()) {
Modified: trunk/core/src/java/org/jahia/data/beans/PageBean.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/data/beans/PageBean.java&rev=3D18446&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/data/beans/PageBean.java (original)
+++ trunk/core/src/java/org/jahia/data/beans/PageBean.java Fri Sep 14 12:33=
:46 2007
@@ -511,12 +511,13 @@
final ContentField parentContentField =3D (ContentField) conte=
ntPage.
getParent(processingContext.getUser(),
processingContext.getEntryLoadRequest(), proce=
ssingContext.getOperationMode());
- if (parentContentField !=3D null) { =
- final JahiaField parentJahiaField =3D parentContentField.g=
etJahiaField(
+ if (parentContentField =3D=3D null) {
+ return null;
+ }
+ final JahiaField parentJahiaField =3D parentContentField.getJa=
hiaField(
processingContext.getEntryLoadRequest());
- if (parentJahiaField !=3D null) {
- return new FieldBean(parentJahiaField, processingConte=
xt);
- } =
+ if (parentJahiaField !=3D null) {
+ return new FieldBean(parentJahiaField, processingContext);
}
} catch (JahiaException je) {
logger.error("Error while loading parent field for page " + ge=
tID(), je);
Modified: trunk/core/src/java/org/jahia/services/importexport/ImportExportB=
aseService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/importexport/ImportExportBaseService.java&rev=3D18446&rep=
name=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/importexport/ImportExportBaseSer=
vice.java (original)
+++ trunk/core/src/java/org/jahia/services/importexport/ImportExportBaseSer=
vice.java Fri Sep 14 12:33:46 2007
@@ -17,18 +17,17 @@
*/package org.jahia.services.importexport;
=
import org.apache.axis.encoding.Base64;
-import org.apache.commons.httpclient.*;
-import org.apache.commons.httpclient.cookie.CookiePolicy;
-import org.apache.commons.httpclient.methods.GetMethod;
+import org.apache.commons.httpclient.HttpURL;
+import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.id.IdentifierGenerator;
import org.apache.commons.id.IdentifierGeneratorFactory;
import org.apache.commons.lang.StringUtils;
+import org.apache.slide.content.NodeProperty;
import org.apache.webdav.lib.WebdavResource;
import org.apache.xerces.dom.DocumentImpl;
import org.apache.xerces.jaxp.SAXParserFactoryImpl;
import org.apache.xerces.util.XMLChar;
import org.apache.xml.utils.DOMBuilder;
-import org.apache.slide.content.NodeProperty;
import org.jahia.bin.Jahia;
import org.jahia.bin.JahiaInterface;
import org.jahia.content.*;
@@ -36,25 +35,23 @@
import org.jahia.data.applications.EntryPointInstance;
import org.jahia.data.applications.WebAppContext;
import org.jahia.data.containers.JahiaContainerDefinition;
-import org.jahia.data.fields.JahiaFieldDefinition;
import org.jahia.data.fields.JahiaApplicationField;
+import org.jahia.data.fields.JahiaFieldDefinition;
import org.jahia.data.files.JahiaFileField;
import org.jahia.data.templates.JahiaTemplatesPackage;
import org.jahia.data.templates.JahiaTemplatesPackageHandler;
+import org.jahia.engines.EngineMessage;
import org.jahia.exceptions.JahiaException;
import org.jahia.exceptions.JahiaPageNotFoundException;
import org.jahia.hibernate.manager.JahiaLinkManager;
import org.jahia.hibernate.manager.JahiaSiteLanguageListManager;
import org.jahia.hibernate.manager.SpringContextSingleton;
+import org.jahia.hibernate.model.JahiaAcl;
import org.jahia.hibernate.model.JahiaAclEntry;
import org.jahia.hibernate.model.JahiaAclName;
-import org.jahia.hibernate.model.JahiaAcl;
import org.jahia.params.ProcessingContext;
-import org.jahia.params.valves.TokenAuthValveImpl;
import org.jahia.registries.ServicesRegistry;
import org.jahia.services.JahiaService;
-import org.jahia.services.workflow.WorkflowService;
-import org.jahia.services.workflow.ExternalWorkflow;
import org.jahia.services.acl.JahiaACLEntry;
import org.jahia.services.acl.JahiaACLException;
import org.jahia.services.acl.JahiaBaseACL;
@@ -73,8 +70,8 @@
import org.jahia.services.scheduler.SchedulerService;
import org.jahia.services.sites.JahiaSite;
import org.jahia.services.sites.JahiaSitesService;
-import org.jahia.services.sites.SiteLanguageSettings;
import org.jahia.services.sites.SiteLanguageMapping;
+import org.jahia.services.sites.SiteLanguageSettings;
import org.jahia.services.templates_deployer.JahiaTemplatesDeployerService;
import org.jahia.services.timebasedpublishing.RangeRetentionRule;
import org.jahia.services.timebasedpublishing.RetentionRule;
@@ -84,9 +81,10 @@
import org.jahia.services.version.VersioningDifferenceStatus;
import org.jahia.services.webdav.DAVFileAccess;
import org.jahia.services.webdav.JahiaWebdavBaseService;
-import org.jahia.taglibs.esi.JesiConst;
+import org.jahia.services.workflow.ExternalWorkflow;
+import org.jahia.services.workflow.WorkflowService;
+import org.jahia.utils.JahiaTools;
import org.jahia.utils.LanguageCodeConverters;
-import org.jahia.engines.EngineMessage;
import org.quartz.CronTrigger;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
@@ -108,8 +106,8 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
-import java.util.regex.Pattern;
import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
@@ -2414,7 +2412,7 @@
logger.debug("Export Url is : "+exportUrl);
=
try {
- InputStream st =3D makeJahiaRequest(exportUrl, member, use=
rname, password, 5);
+ InputStream st =3D JahiaTools.makeJahiaRequest(exportUrl, =
member, username, password, 5);
SAXParserFactory factory;
factory =3D new SAXParserFactoryImpl();
SAXParser parser =3D null;
@@ -2460,56 +2458,6 @@
return webdavSession;
}
=
- public InputStream makeJahiaRequest(URL url, JahiaUser user, String us=
ername, String password, int redirectContinue) throws IOException {
- GetMethod method =3D null;
-
- HttpState initialState =3D new HttpState();
- //Set to COMPATIBILITY for it to work in as many cases as possible
- initialState.setCookiePolicy(CookiePolicy.COMPATIBILITY);
- final HttpClient client =3D new HttpClient();
- //Create a new HttpState container
- client.setState(initialState);
- client.setConnectionTimeout(Jahia.getSettings().getConnectionTimeo=
utForProductionJob());
- for ( ; redirectContinue > 0 ; redirectContinue-- ) {
- // Create an instance of HttpClient.
-
- // Create a method instance.
- method =3D new GetMethod(url.toString());
- method.setFollowRedirects(false);
- if (username !=3D null && password !=3D null) {
- method.addRequestHeader("Authorization", "BASIC " + Base64=
.encode((username + ":" + password).getBytes("ISO-8859-1")));
- } else {
- method.addRequestHeader(TokenAuthValveImpl.addToken(user));
- }
- //notify EsiInvalidateValve that these requests are due to imp=
orts (so as not to invalidate content)
- if (Jahia.getSettings().isEsiCacheActivated()) {
- method.addRequestHeader(JesiConst.ESI_IMPORT_HEADER, "yes"=
);
- }
- // Execute the method.
- int result =3D client.executeMethod(method);
- logger.debug("Response status code for ["+url +"] is : " + res=
ult);
-
- //this is just in case we get a different host redirection or =
an error:
- if (result =3D=3D HttpStatus.SC_MOVED_TEMPORARILY) {
- String redirectLocation;
- Header locationHeader =3D method.getResponseHeader("locati=
on");
- if (locationHeader !=3D null) {
- redirectLocation =3D locationHeader.getValue();
- url =3D new URL(redirectLocation);
- logger.info("Redirection to a different host ["+url +"=
]");
- } else {
- throw new IOException("No HTTP location Header in redi=
rect send by request to ["+url +"]. HTTP status code ["+result+"]");
- }
- } else if (result !=3D HttpStatus.SC_OK) {
- throw new IOException("Unsupported HTTP status code ["+res=
ult+" i.e. "+method.getStatusText()+"] for request to ["+url +"].");
- } else {
- return method.getResponseBodyAsStream();
- }
- }
-
- throw new IOException("Too many redirects for request to ["+url +"=
].");
- }
-
private Set getSiteLanguages(JahiaSite site) throws JahiaException {
Set languages =3D new HashSet();
Vector v =3D site.getLanguageSettings(true);
Modified: trunk/core/src/java/org/jahia/services/importexport/ImportExportS=
ervice.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/importexport/ImportExportService.java&rev=3D18446&repname=
=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/importexport/ImportExportService=
.java (original)
+++ trunk/core/src/java/org/jahia/services/importexport/ImportExportService=
.java Fri Sep 14 12:33:46 2007
@@ -31,12 +31,11 @@
import org.xml.sax.SAXException;
=
import java.io.*;
-import java.net.URL;
import java.text.ParseException;
import java.util.Date;
+import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.List;
=
/**
* Created by IntelliJ IDEA.
@@ -135,7 +134,4 @@
WebdavResource exportToSite(JahiaSite site, String targetName, Date ex=
portTime, String username, String password, JahiaUser member, String sitena=
me, String contextname, String servletname, boolean withMetadata) throws IO=
Exception, JahiaException, SAXException;
=
public void startProductionJob(JahiaSite site, ProcessingContext jPara=
ms) throws ParseException;
-
- public InputStream makeJahiaRequest(URL url, JahiaUser user, String us=
ername, String password, int redirectContinue) throws IOException;
-
}
Modified: trunk/core/src/java/org/jahia/services/importexport/ImportHandler=
.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/importexport/ImportHandler.java&rev=3D18446&repname=3Djah=
ia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/importexport/ImportHandler.java =
(original)
+++ trunk/core/src/java/org/jahia/services/importexport/ImportHandler.java =
Fri Sep 14 12:33:46 2007
@@ -74,6 +74,7 @@
import org.jahia.services.workflow.WorkflowService;
import org.jahia.services.workflow.ExternalWorkflow;
import org.jahia.utils.LanguageCodeConverters;
+import org.jahia.utils.JahiaTools;
import org.jahia.engines.EngineMessage;
import org.springframework.transaction.support.TransactionTemplate;
import org.xml.sax.Attributes;
@@ -377,9 +378,6 @@
}
setMetadata(currentObject, atts);
setJahiaLinks(currentObject, atts);
-
- site.setHomePageID( jahiaPage.getID() );
- ServicesRegistry.getInstance().getJahiaSitesServic=
e().updateSite(site);
}
}
if (top && currentObject !=3D null) {
@@ -397,7 +395,7 @@
} else {
lock =3D LockKey.composeLockKey(LockKey.IMPORT_ACT=
ION + "_SITE", site.getID(), site.getID());
}
-
+ =
// transfer lock from parent to current
LockService lockReg =3D ServicesRegistry.getInstance()=
.getLockService();
List linfos =3D lockReg.getInfo(lock);
@@ -677,26 +675,14 @@
pageID =3D ((ContentContainerList)parent).getPageID();
JahiaContentContainerFacade contentContainerFacade =3D
null;
- try {
- contentContainerFacade =3D new JahiaContentContainerFa=
cade (0,
- site.getID(),
- pageID,
- parent.getID(),
- parent.getDefinitionID(null),
- 0,
- jParams,
- site.getLanguageSettingsAsLocales (false));
- } catch (JahiaException e) {
- loadPage(pageID);
- contentContainerFacade =3D new JahiaContentContainerFa=
cade (0,
- site.getID(),
- pageID,
- parent.getID(),
- parent.getDefinitionID(null),
- 0,
- jParams,
- site.getLanguageSettingsAsLocales (false));
- }
+ contentContainerFacade =3D new JahiaContentContainerFacade=
(0,
+ site.getID(),
+ pageID,
+ parent.getID(),
+ parent.getDefinitionID(null),
+ 0,
+ jParams,
+ site.getLanguageSettingsAsLocales (false));
int parentAclID =3D parent.getParent(elr).getAclID();
int parentId =3D 0;
if (parent.getParent(elr) instanceof ContentContainer) {
@@ -893,119 +879,114 @@
}
=
ContentDefinition def =3D null;
- for (int tries =3D 0; !isContainerList && !isField && tries<2; tri=
es++) {
- if (tries =3D=3D 1) {
- loadPage(pageID);
- }
=
- if (localName.endsWith("List")) {
- def =3D JahiaContainerDefinitionsRegistry.getInstance().ge=
tDefinition(site.getID(), localName.substring(0,localName.length()-4));
- if (def !=3D null) {
- JahiaContainerSubDefinition sd =3D (JahiaContainerSubD=
efinition) ((JahiaContainerDefinition)def).getSubDefs().get(new Integer(pag=
eDefId));
- if (sd !=3D null) {
- isContainerList =3D true;
- }
+ if (localName.endsWith("List")) {
+ def =3D JahiaContainerDefinitionsRegistry.getInstance().getDef=
inition(site.getID(), localName.substring(0,localName.length()-4));
+ if (def !=3D null) {
+ JahiaContainerSubDefinition sd =3D (JahiaContainerSubDefin=
ition) ((JahiaContainerDefinition)def).getSubDefs().get(new Integer(pageDef=
Id));
+ if (sd !=3D null) {
+ isContainerList =3D true;
}
- } else {
- def =3D JahiaFieldDefinitionsRegistry.getInstance().getDef=
inition(site.getID(), localName);
- if (def !=3D null) {
- JahiaFieldSubDefinition sd =3D (JahiaFieldSubDefinitio=
n) ((JahiaFieldDefinition)def).getSubDefs().get(new Integer(pageDefId));
- if (sd !=3D null) {
- isField =3D true;
- }
+ }
+ } else {
+ def =3D JahiaFieldDefinitionsRegistry.getInstance().getDefinit=
ion(site.getID(), localName);
+ if (def !=3D null) {
+ JahiaFieldSubDefinition sd =3D (JahiaFieldSubDefinition) (=
(JahiaFieldDefinition)def).getSubDefs().get(new Integer(pageDefId));
+ if (sd !=3D null) {
+ isField =3D true;
}
}
+ }
=
- if (def !=3D null && parent instanceof ContentContainer) {
- JahiaContainerDefinition parentDef =3D JahiaContainerDefin=
itionsRegistry.getInstance().getDefinition(ctnDefId);
- JahiaContainerSubDefinition parentSd =3D (JahiaContainerSu=
bDefinition) parentDef.getSubDefs().get(new Integer(pageDefId));
- List struct =3D parentSd.getStructure();
- boolean found =3D false;
- for (Iterator iterator =3D struct.iterator(); iterator.has=
Next() && !found;) {
- ContentDefinition contentDefinition =3D (ContentDefini=
tion) ((JahiaContainerStructure) iterator.next()).getObjectDef();
- if (contentDefinition.getObjectKey().equals(def.getObj=
ectKey())) {
- found =3D true;
- }
- }
- if (!found) {
- isContainerList =3D false;
- isField =3D false;
+ if (def !=3D null && parent instanceof ContentContainer) {
+ JahiaContainerDefinition parentDef =3D JahiaContainerDefinitio=
nsRegistry.getInstance().getDefinition(ctnDefId);
+ JahiaContainerSubDefinition parentSd =3D (JahiaContainerSubDef=
inition) parentDef.getSubDefs().get(new Integer(pageDefId));
+ List struct =3D parentSd.getStructure();
+ boolean found =3D false;
+ for (Iterator iterator =3D struct.iterator(); iterator.hasNext=
() && !found;) {
+ ContentDefinition contentDefinition =3D (ContentDefinition=
) ((JahiaContainerStructure) iterator.next()).getObjectDef();
+ if (contentDefinition.getObjectKey().equals(def.getObjectK=
ey())) {
+ found =3D true;
}
}
+ if (!found) {
+ isContainerList =3D false;
+ isField =3D false;
+ }
+ }
=
- if (!isField && !isContainerList) {
- logger.debug("Definitions not found, checking aliases");
+ if (!isField && !isContainerList) {
+ logger.debug("Definitions not found, checking aliases");
=
- String importedPt =3D atts.getValue(ImportExportService.JC=
R_URI, "primaryType");
- String aliasName =3D null;
- String baseName =3D null;
- boolean containerListAlias =3D false;
- if (localName.endsWith("List")) {
- if (importedPt !=3D null) {
- aliasName =3D importedPt.substring(importedPt.inde=
xOf(':')+1, importedPt.length() - 4);
- }
- baseName =3D localName.substring(0,localName.length()-=
4);
- containerListAlias =3D true;
- } else {
- if (importedPt !=3D null) {
- aliasName =3D importedPt.substring(importedPt.inde=
xOf(':')+1);
- }
- baseName =3D localName;
+ String importedPt =3D atts.getValue(ImportExportService.JCR_UR=
I, "primaryType");
+ String aliasName =3D null;
+ String baseName =3D null;
+ boolean containerListAlias =3D false;
+ if (localName.endsWith("List")) {
+ if (importedPt !=3D null) {
+ aliasName =3D importedPt.substring(importedPt.indexOf(=
':')+1, importedPt.length() - 4);
+ }
+ baseName =3D localName.substring(0,localName.length()-4);
+ containerListAlias =3D true;
+ } else {
+ if (importedPt !=3D null) {
+ aliasName =3D importedPt.substring(importedPt.indexOf(=
':')+1);
}
+ baseName =3D localName;
+ }
=
- List struct =3D null;
- if (parent instanceof ContentContainer) {
- JahiaContainerDefinition parentDef =3D JahiaContainerD=
efinitionsRegistry.getInstance().getDefinition(ctnDefId);
- JahiaContainerSubDefinition sd =3D (JahiaContainerSubD=
efinition) parentDef.getSubDefs().get(new Integer(pageDefId));
- struct =3D sd.getStructure();
- } else {
- Vector definitions =3D JahiaContainerDefinitionsRegist=
ry.getInstance().getDefinitionsInTemplate(pageDefId);
- for (int i =3D 0; i < definitions.size() && struct=3D=
=3Dnull; i++) {
- JahiaContainerDefinition definition =3D (JahiaCont=
ainerDefinition) definitions.elementAt(i);
- String[] aliasNames =3D definition.getAliasName();
- for (int j =3D 0; j < aliasNames.length; j++) {
- String name =3D aliasNames[j];
- if(name!=3Dnull && (name.equals(aliasName) || =
name.equals(baseName))) {
- def =3D definition;
- isContainerList =3D true;
- }
+ List struct =3D null;
+ if (parent instanceof ContentContainer) {
+ JahiaContainerDefinition parentDef =3D JahiaContainerDefin=
itionsRegistry.getInstance().getDefinition(ctnDefId);
+ JahiaContainerSubDefinition sd =3D (JahiaContainerSubDefin=
ition) parentDef.getSubDefs().get(new Integer(pageDefId));
+ struct =3D sd.getStructure();
+ } else {
+ Vector definitions =3D JahiaContainerDefinitionsRegistry.g=
etInstance().getDefinitionsInTemplate(pageDefId);
+ for (int i =3D 0; i < definitions.size() && struct=3D=3Dnu=
ll; i++) {
+ JahiaContainerDefinition definition =3D (JahiaContaine=
rDefinition) definitions.elementAt(i);
+ String[] aliasNames =3D definition.getAliasName();
+ for (int j =3D 0; j < aliasNames.length; j++) {
+ String name =3D aliasNames[j];
+ if(name!=3Dnull && (name.equals(aliasName) || name=
.equals(baseName))) {
+ def =3D definition;
+ isContainerList =3D true;
}
}
}
- if (struct !=3D null) {
- for (Iterator iterator =3D struct.iterator(); iterator=
.hasNext();) {
- ContentDefinition contentDefinition =3D (ContentDe=
finition) ((JahiaContainerStructure) iterator.next()).getObjectDef();
- String[] aliases =3D contentDefinition.getAliasNam=
e();
- for (int i =3D 0; i < aliases.length; i++) {
- String alias =3D aliases[i];
- if (contentDefinition instanceof JahiaContaine=
rDefinition && containerListAlias) {
- JahiaContainerSubDefinition subDef =3D (Ja=
hiaContainerSubDefinition) ((JahiaContainerDefinition) contentDefinition).g=
etSubDefs().get(new Integer(pageDefId));
- if (alias !=3D null && (alias.equals(alias=
Name) || alias.equals(baseName)) && subDef !=3D null) {
- def =3D contentDefinition;
- isContainerList =3D true;
- }
- } else if (contentDefinition instanceof JahiaF=
ieldDefinition && !containerListAlias) {
- JahiaFieldSubDefinition subDef =3D (JahiaF=
ieldSubDefinition) ((JahiaFieldDefinition)contentDefinition).getSubDefs().g=
et(new Integer(pageDefId));
- if (alias !=3D null && (alias.equals(alias=
Name) || alias.equals(baseName)) && subDef !=3D null) {
- def =3D contentDefinition;
- isField =3D true;
- }
- }
- }
+ }
+ if (struct !=3D null) {
+ for (Iterator iterator =3D struct.iterator(); iterator.has=
Next();) {
+ ContentDefinition contentDefinition =3D (ContentDefini=
tion) ((JahiaContainerStructure) iterator.next()).getObjectDef();
+ String[] aliases =3D contentDefinition.getAliasName();
+ for (int i =3D 0; i < aliases.length; i++) {
+ String alias =3D aliases[i];
if (contentDefinition instanceof JahiaContainerDef=
inition && containerListAlias) {
JahiaContainerSubDefinition subDef =3D (JahiaC=
ontainerSubDefinition) ((JahiaContainerDefinition) contentDefinition).getSu=
bDefs().get(new Integer(pageDefId));
- if (contentDefinition.getName().equals(aliasNa=
me) && subDef !=3D null) {
+ if (alias !=3D null && (alias.equals(aliasName=
) || alias.equals(baseName)) && subDef !=3D null) {
def =3D contentDefinition;
isContainerList =3D true;
}
} else if (contentDefinition instanceof JahiaField=
Definition && !containerListAlias) {
JahiaFieldSubDefinition subDef =3D (JahiaField=
SubDefinition) ((JahiaFieldDefinition)contentDefinition).getSubDefs().get(n=
ew Integer(pageDefId));
- if (contentDefinition.getName().equals(aliasNa=
me) && subDef !=3D null) {
+ if (alias !=3D null && (alias.equals(aliasName=
) || alias.equals(baseName)) && subDef !=3D null) {
def =3D contentDefinition;
isField =3D true;
}
}
}
+ if (contentDefinition instanceof JahiaContainerDefinit=
ion && containerListAlias) {
+ JahiaContainerSubDefinition subDef =3D (JahiaConta=
inerSubDefinition) ((JahiaContainerDefinition) contentDefinition).getSubDef=
s().get(new Integer(pageDefId));
+ if (contentDefinition.getName().equals(aliasName) =
&& subDef !=3D null) {
+ def =3D contentDefinition;
+ isContainerList =3D true;
+ }
+ } else if (contentDefinition instanceof JahiaFieldDefi=
nition && !containerListAlias) {
+ JahiaFieldSubDefinition subDef =3D (JahiaFieldSubD=
efinition) ((JahiaFieldDefinition)contentDefinition).getSubDefs().get(new I=
nteger(pageDefId));
+ if (contentDefinition.getName().equals(aliasName) =
&& subDef !=3D null) {
+ def =3D contentDefinition;
+ isField =3D true;
+ }
+ }
}
}
}
@@ -1795,7 +1776,7 @@
logger.debug("Cannot find definitions, try to initialize page"=
);
URL url =3D new URL(Jahia.getSettings().getLocalAccessUri() + =
jParams.composePageUrl(pageID));
=
- InputStream is =3D ServicesRegistry.getInstance().getImportExp=
ortService().makeJahiaRequest(url, jParams.getUser(), null, null, 5);
+ InputStream is =3D JahiaTools.makeJahiaRequest(url, jParams.ge=
tUser(), null, null, 5);
is.close();
} catch (IOException e) {
if (e.getMessage().startsWith("Unsupported HTTP status code [5=
00]")) {
Modified: trunk/core/src/java/org/jahia/services/pages/JahiaPageBaseService=
.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/pages/JahiaPageBaseService.java&rev=3D18446&repname=3Djah=
ia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/pages/JahiaPageBaseService.java =
(original)
+++ trunk/core/src/java/org/jahia/services/pages/JahiaPageBaseService.java =
Fri Sep 14 12:33:46 2007
@@ -17,6 +17,7 @@
*/package org.jahia.services.pages;
=
import org.apache.log4j.Logger;
+import org.apache.commons.httpclient.methods.GetMethod;
import org.jahia.bin.Jahia;
import org.jahia.content.ContentObject;
import org.jahia.content.ContentPageKey;
@@ -33,7 +34,6 @@
import org.jahia.params.ParamBean;
import org.jahia.params.ProcessingContext;
import org.jahia.registries.ServicesRegistry;
-import org.jahia.services.acl.ACLNotFoundException;
import org.jahia.services.acl.JahiaBaseACL;
import org.jahia.services.cache.Cache;
import org.jahia.services.cache.CacheService;
@@ -47,8 +47,12 @@
import org.jahia.services.version.JahiaSaveVersion;
import org.jahia.services.version.StateModificationContext;
import org.jahia.services.workflow.WorkflowEvent;
+import org.jahia.utils.JahiaTools;
import org.springframework.util.StopWatch;
=
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
import java.util.*;
=
/**
@@ -311,6 +315,11 @@
JahiaEvent theWfEvent =3D new JahiaEvent(this, jParam, page);
ServicesRegistry.getInstance().getJahiaEventService().
fireAddPage(theWfEvent);
+ if (site.getHomePageID() =3D=3D -1) {
+ site.setHomePageID(page.getID());
+ ServicesRegistry.getInstance().getJahiaSitesService().updateSi=
te(site);
+ }
+ loadPage(page.getID(), jParam);
=
return page;
}
@@ -2233,4 +2242,27 @@
return pageManager.getPageIDByURLKeyAndSiteID(pageURLKey,
siteID);
}
=
+ private void loadPage(int pageID, ProcessingContext jParams) throws Ja=
hiaException {
+ GetMethod method =3D null;
+ /// Try again after page load
+ try {
+ logger.debug("Cannot find definitions, try to initialize page"=
);
+ URL url =3D new URL(Jahia.getSettings().getLocalAccessUri() + =
jParams.composePageUrl(pageID));
+
+ InputStream is =3D JahiaTools.makeJahiaRequest(url, jParams.ge=
tUser(), null, null, 5);
+ is.close();
+ } catch (IOException e) {
+ if (e.getMessage().startsWith("Unsupported HTTP status code [5=
00]")) {
+ logger.error("Compilation error",e);
+ } else {
+ logger.error("Cant make a local request at "+Jahia.getSett=
ings().getLocalAccessUri()+", check your localAccessUri parameter ("+e.getM=
essage()+")");
+ }
+ }
+ finally {
+ if (method !=3D null)
+ method.releaseConnection();
+ }
+ }
+
+
}
Modified: trunk/core/src/java/org/jahia/utils/JahiaTools.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/utils/JahiaTools.java&rev=3D18446&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/utils/JahiaTools.java (original)
+++ trunk/core/src/java/org/jahia/utils/JahiaTools.java Fri Sep 14 12:33:46=
2007
@@ -25,39 +25,31 @@
=
package org.jahia.utils;
=
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.StringReader;
-import java.net.URL;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Enumeration;
-import java.util.Locale;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletRequest;
-import javax.servlet.http.HttpServletRequest;
-
-import org.jahia.utils.keygenerator.JahiaKeyGen;
-import org.jahia.params.ProcessingContext;
+import org.apache.commons.httpclient.Header;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpState;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.cookie.CookiePolicy;
+import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.jexl.Expression;
import org.apache.commons.jexl.ExpressionFactory;
import org.apache.commons.jexl.JexlContext;
import org.apache.commons.jexl.JexlHelper;
-import java.util.Map;
-import org.apache.commons.jexl.parser.ParseException;
+import org.apache.log4j.Logger;
+import org.jahia.bin.Jahia;
+import org.jahia.params.ProcessingContext;
+import org.jahia.params.valves.TokenAuthValveImpl;
+import org.jahia.services.usermanager.JahiaUser;
+import org.jahia.taglibs.esi.JesiConst;
+import org.jahia.utils.keygenerator.JahiaKeyGen;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletRequest;
+import javax.servlet.http.HttpServletRequest;
+import java.io.*;
+import java.net.URL;
+import java.text.SimpleDateFormat;
+import java.util.*;
=
=
/**
@@ -83,6 +75,8 @@
private static final char[] AUTHORIZED_CHARS =3D
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789.-=
".toCharArray();
=
+ private static Logger logger =3D Logger.getLogger(JahiaTools.class);
+
/*********************************************************************=
*****
* Debugging Tools
*
@@ -607,7 +601,7 @@
* check if a file or directory exists on disk. The check is case sens=
itive
*
* @author NK
- * @param String the absolute path
+ * @param path the absolute path
* @return boolean true if comparison is success
*/
static public boolean checkFileNameCaseSensitive(String path){
@@ -634,7 +628,7 @@
* delete a file or directory (and all its content)
*
* @author NK
- * @param (File) the abstract file object
+ * @param f the abstract file object
*/
public static boolean deleteFile(File f){
return deleteFile(f,false);
@@ -647,8 +641,8 @@
* delete a file or directory ( and all its contains )
*
* @author NK
- * @param (File) the abstract file object
- * @param (boolean) contentOnly id true, delete only the folder content
+ * @param f the abstract file object
+ * @param contentOnly contentOnly id true, delete only the folder cont=
ent
*/
public static boolean deleteFile(File f, boolean contentOnly){
=
@@ -681,8 +675,8 @@
* Return the file name but without the extension
*
* @author NK
- * @param (String) filename , the complete file name with extension
- * @param (String) ext , the extension to remove
+ * @param filename , the complete file name with extension
+ * @param ext , the extension to remove
* @return(String) the filename without a gived extension
*/
public static String removeFileExtension(String filename, String ext){
@@ -801,8 +795,8 @@
* Return a substitute String value if the source is null otherwise
* return the source value
*
- * @param String the data
- * @param String the subsitute value
+ * @param data the data
+ * @param newValue the subsitute value
* @return String
* @author NK
*/
@@ -819,8 +813,8 @@
* Return a substitute Integer object if the source is null otherwise
* return the source integer object
*
- * @param Integer data
- * @param Integer newValue
+ * @param data
+ * @param newValue
* @return String
* @author NK
*/
@@ -899,8 +893,8 @@
* @author Khue N'Guyen
* @author Alexandre Kraft
*
- * @param name the property name
- * @param val the property value
+ * @param propertyName the property name
+ * @param propvalue the property value
* @param path the full filesystem path to the properties file
*/
public static void updatepropvalue( String propertyName,
@@ -1285,4 +1279,53 @@
return buff.toString();
}
=
+ public static InputStream makeJahiaRequest(URL url, JahiaUser user, St=
ring username, String password, int redirectContinue) throws IOException {
+ GetMethod method =3D null;
+
+ HttpState initialState =3D new HttpState();
+ //Set to COMPATIBILITY for it to work in as many cases as possible
+ initialState.setCookiePolicy(CookiePolicy.COMPATIBILITY);
+ final HttpClient client =3D new HttpClient();
+ //Create a new HttpState container
+ client.setState(initialState);
+ client.setConnectionTimeout(Jahia.getSettings().getConnectionTimeo=
utForProductionJob());
+ for ( ; redirectContinue > 0 ; redirectContinue-- ) {
+ // Create an instance of HttpClient.
+
+ // Create a method instance.
+ method =3D new GetMethod(url.toString());
+ method.setFollowRedirects(false);
+ if (username !=3D null && password !=3D null) {
+ method.addRequestHeader("Authorization", "BASIC " + org.ap=
ache.axis.encoding.Base64.encode((username + ":" + password).getBytes("ISO-=
8859-1")));
+ } else {
+ method.addRequestHeader(TokenAuthValveImpl.addToken(user));
+ }
+ //notify EsiInvalidateValve that these requests are due to imp=
orts (so as not to invalidate content)
+ if (Jahia.getSettings().isEsiCacheActivated()) {
+ method.addRequestHeader(JesiConst.ESI_IMPORT_HEADER, "yes"=
);
+ }
+ // Execute the method.
+ int result =3D client.executeMethod(method);
+ logger.debug("Response status code for ["+url +"] is : " + res=
ult);
+
+ //this is just in case we get a different host redirection or =
an error:
+ if (result =3D=3D HttpStatus.SC_MOVED_TEMPORARILY) {
+ String redirectLocation;
+ Header locationHeader =3D method.getResponseHeader("locati=
on");
+ if (locationHeader !=3D null) {
+ redirectLocation =3D locationHeader.getValue();
+ url =3D new URL(redirectLocation);
+ logger.info("Redirection to a different host ["+url +"=
]");
+ } else {
+ throw new IOException("No HTTP location Header in redi=
rect send by request to ["+url +"]. HTTP status code ["+result+"]");
+ }
+ } else if (result !=3D HttpStatus.SC_OK) {
+ throw new IOException("Unsupported HTTP status code ["+res=
ult+" i.e. "+method.getStatusText()+"] for request to ["+url +"].");
+ } else {
+ return method.getResponseBodyAsStream();
+ }
+ }
+
+ throw new IOException("Too many redirects for request to ["+url +"=
].");
+ }
}
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list