Author: tdraier
Date: Wed Aug  8 15:03:54 2007
New Revision: 18155

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18155&repname=
=3Djahia
Log:
preload page after creation, in order to create all necessary definitions /=
 containerlist

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/sites/Manage=
Sites.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/beans/PageBea=
n.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportBaseService.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportService.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportHandler.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/pages/Jah=
iaPageBaseService.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/utils/JahiaTools.j=
ava

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/sites/=
ManageSites.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/admin/sites/ManageSites.java&rev=3D18155&re=
pname=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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/sites/Manage=
Sites.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/sites/Manage=
Sites.java Wed Aug  8 15:03:54 2007
@@ -1083,10 +1083,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: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/beans/P=
ageBean.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/data/beans/PageBean.java&rev=3D18155&repnam=
e=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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/beans/PageBea=
n.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/beans/PageBea=
n.java Wed Aug  8 15:03:54 2007
@@ -486,6 +486,9 @@
             final ContentField parentContentField =3D (ContentField) conte=
ntPage.
                     getParent(processingContext.getUser(),
                             processingContext.getEntryLoadRequest(), proce=
ssingContext.getOperationMode());
+            if (parentContentField =3D=3D null) {
+                return null;
+            }
             final JahiaField parentJahiaField =3D parentContentField.getJa=
hiaField(
                     processingContext.getEntryLoadRequest());
             if (parentJahiaField =3D=3D null) {

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/imp=
ortexport/ImportExportBaseService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/importexport/ImportExportBaseServi=
ce.java&rev=3D18155&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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportBaseService.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportBaseService.java Wed Aug  8 15:03:54 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;
@@ -107,8 +105,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;
@@ -2381,7 +2379,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;
@@ -2427,56 +2425,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: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/imp=
ortexport/ImportExportService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/importexport/ImportExportService.j=
ava&rev=3D18155&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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportService.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportService.java Wed Aug  8 15:03:54 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.
@@ -136,7 +135,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: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/imp=
ortexport/ImportHandler.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/importexport/ImportHandler.java&re=
v=3D18155&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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportHandler.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportHandler.java Wed Aug  8 15:03:54 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: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/pag=
es/JahiaPageBaseService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/pages/JahiaPageBaseService.java&re=
v=3D18155&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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/pages/Jah=
iaPageBaseService.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/pages/Jah=
iaPageBaseService.java Wed Aug  8 15:03:54 2007
@@ -16,6 +16,7 @@
  * limitations under the License.
  */package org.jahia.services.pages;
 =

+import org.apache.commons.httpclient.methods.GetMethod;
 import org.jahia.bin.Jahia;
 import org.jahia.content.ContentObject;
 import org.jahia.content.ContentPageKey;
@@ -32,7 +33,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;
@@ -43,8 +43,12 @@
 import org.jahia.services.usermanager.JahiaUser;
 import org.jahia.services.version.EntryLoadRequest;
 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.*;
 =

 /**
@@ -308,6 +312,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;
     }
@@ -2192,4 +2201,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: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/utils/JahiaT=
ools.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/utils/JahiaTools.java&rev=3D18155&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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/utils/JahiaTools.j=
ava (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/utils/JahiaTools.j=
ava Wed Aug  8 15:03:54 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

Reply via email to