Author: sshyrkov
Date: Mon Nov 12 08:22:39 2007
New Revision: 19117

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19117&repname=
=3Djahia
Log:
Adjust site import to support new folder structure (changes for Jahia Inclu=
de Tag)

Modified:
    branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/admin/sites/M=
anageSites.java
    branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/services/impo=
rtexport/ImportExportBaseService.java
    branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/services/temp=
lates/JahiaTemplateManagerService.java
    branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/services/temp=
lates/TemplatePackageDeployer.java

Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/admin/s=
ites/ManageSites.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/admin/sites/ManageSites.java&rev=3D191=
17&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-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/admin/sites/M=
anageSites.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/admin/sites/M=
anageSites.java Mon Nov 12 08:22:39 2007
@@ -960,7 +960,7 @@
                 JahiaSiteTools.addGroup(guestGroup, site);
 =

                 // create the guest user
-                String uniqueKey =3D JahiaUserManagerService.GUEST_USERNAM=
E + ":" + String.valueOf(site.getID());
+                String uniqueKey =3D JahiaUserManagerService.GUEST_USERNAM=
E + ":" + site.getID();
                 JahiaUser guestSiteUser =3D jums.createUser(JahiaUserManag=
erService.GUEST_USERNAME,
                         JahiaUserManagerService.GUEST_USERNAME,
                         uniqueKey,
@@ -978,31 +978,23 @@
 =

                 String firstImport =3D (String) request.getAttribute("firs=
tImport");
                 String selectTmplSet =3D (String) request.getAttribute("se=
lectedTmplSet");
-
-                JahiaTemplatesPackage templPackage =3D ServicesRegistry
-                        .getInstance().getJahiaTemplateManagerService()
-                        .associateTemplatePackageWithSite(selectTmplSet, s=
ite);
-                =

-                int homePageDefId =3D ServicesRegistry.getInstance()
-                        .getJahiaPageTemplateService()
-                        .lookupPageTemplateByName(
-                                templPackage.getHomePageTemplate().getName=
(),
-                                site.getID()).getID();
-                =

                 File initialZip =3D null;
                 String initialZipName =3D null;
-                =

-                if ("defaultImport".equals(firstImport)) {
-                    String zipName =3D templPackage.getInitialImport();
-                    if (zipName !=3D null) {
-                        initialZip =3D new File(Jahia.getSettings().getJah=
iaTemplatesDiskPath() +
-                                File.separator + site.getSiteKey() +
-                                File.separator + templPackage.getRootFolde=
r() +
-                                File.separator + zipName);
+                JahiaTemplatesPackage templPackage =3D null;
+                if (selectTmplSet !=3D null) {
+                    templPackage =3D ServicesRegistry.getInstance()
+                            .getJahiaTemplateManagerService()
+                            .associateTemplatePackageWithSite(selectTmplSe=
t,
+                                    site);
+
+                    if ("defaultImport".equals(firstImport)) {
+                        initialZip =3D templPackage.getInitialImport() !=
=3D null ? new File(
+                                templPackage.getRootFolderPath(), templPac=
kage
+                                        .getInitialImport())
+                                : null;
                     }
                 }
                 =

-                =

 //                if (JahiaSiteTools.createTemplateDir(site)) {
 //                    String selectTmplSet =3D (String) request.getAttribu=
te("selectedTmplSet");
 //                    JahiaTemplatesPackage tmplPack =3D null;
@@ -1061,8 +1053,9 @@
                 }
                 if ("fileImport".equals(firstImport)) {
                     initialZip =3D (File) request.getAttribute("fileImport=
");
-                    initialZipName =3D (String) request.getAttribute("file=
ImportName");
-                }
+                    initialZipName =3D (String) request
+                            .getAttribute("fileImportName");
+                }                =

                 if (initialZip =3D=3D null || !initialZip.exists() || "noI=
mport".equals(firstImport)) {
                     // create site language
                     SiteLanguageSettings newLanguage =3D
@@ -1080,6 +1073,11 @@
                     jParams.setSubstituteEntryLoadRequest(saveRequest);
 =

                     JahiaPageService pageService =3D ServicesRegistry.getI=
nstance().getJahiaPageService();
+                    int homePageDefId =3D ServicesRegistry.getInstance()
+                            .getJahiaPageTemplateService()
+                            .lookupPageTemplateByName(
+                                    templPackage.getHomePageTemplate()
+                                            .getName(), site.getID()).getI=
D();
                     JahiaPage page =3D pageService.createPage(site.getID(),
                             0,
                             PageInfoInterface.TYPE_DIRECT,
@@ -1167,13 +1165,6 @@
 //                        ServicesRegistry.getInstance().getJahiaTemplates=
DeployerService(),
 //                        ServicesRegistry.getInstance().getJahiaFileWatch=
erService());
 =

-                // copy the default shared components
-                /** todo FIXME temporarily deactivated because we will now
-                 * share the applications by default instead of deploying =
them
-                 * for each web site.
-                 // copySharedComponents(site.getSiteKey());
-                 */
-
                 // create the search index
                 searchServ.createSearchHandler(site.getID());
                 searchServ.indexSite(site.getID(), jParams.getUser());
@@ -1186,7 +1177,7 @@
                     Properties adminProps =3D (Properties) session.getAttr=
ibute(CLASS_NAME + "adminProps");
                     if (adminUsername !=3D null) {
                         // create user...
-                        uniqueKey =3D adminUsername + ":" + String.valueOf=
(site.getID());
+                        uniqueKey =3D adminUsername + ":" + site.getID();
                         adminSiteUser =3D jums.createUser(adminUsername, a=
dminPassword, uniqueKey, site.getID(), adminProps);
                     }
                 } else {

Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/service=
s/importexport/ImportExportBaseService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/services/importexport/ImportExportBase=
Service.java&rev=3D19117&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-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/services/impo=
rtexport/ImportExportBaseService.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/services/impo=
rtexport/ImportExportBaseService.java Mon Nov 12 08:22:39 2007
@@ -1517,13 +1517,14 @@
                 }
                 os.close();
                 try {
-                    if (ServicesRegistry.getInstance().getJahiaPageTemplat=
eService().getNbPageTemplates(jParams.getSiteID()) =3D=3D 1) {
-                        JahiaTemplatesPackageHandler h =3D new JahiaTempla=
tesPackageHandler(f.getPath());
-                        JahiaTemplatesPackage tmplPack =3D h.getPackage();
-                        JahiaTemplatesDeployerService deplServ =3D Service=
sRegistry.getInstance().getJahiaTemplatesDeployerService();
-                        deplServ.deploy(site, "", tmplPack.getFilePath(), =
false);
-
-                        deplServ.registerTemplates(site, tmplPack);
+                    if (ServicesRegistry.getInstance().getJahiaPageTemplat=
eService().getNbPageTemplates(jParams.getSiteID()) =3D=3D 0) {
+                        ServicesRegistry.getInstance().getJahiaTemplateMan=
agerService().deployTemplatePackageForSite(site, f);
+//                        JahiaTemplatesPackageHandler h =3D new JahiaTemp=
latesPackageHandler(f.getPath());
+//                        JahiaTemplatesPackage tmplPack =3D h.getPackage(=
);
+//                        JahiaTemplatesDeployerService deplServ =3D Servi=
cesRegistry.getInstance().getJahiaTemplatesDeployerService();
+//                        deplServ.deploy(site, "", tmplPack.getFilePath()=
, false);
+//
+//                        deplServ.registerTemplates(site, tmplPack);
                     }
                 } catch (JahiaException e) {
                     logger.error("Cannot import templates",e);

Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/service=
s/templates/JahiaTemplateManagerService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/services/templates/JahiaTemplateManage=
rService.java&rev=3D19117&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-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/services/temp=
lates/JahiaTemplateManagerService.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/services/temp=
lates/JahiaTemplateManagerService.java Mon Nov 12 08:22:39 2007
@@ -17,6 +17,7 @@
  */
 package org.jahia.services.templates;
 =

+import java.io.File;
 import java.net.MalformedURLException;
 import java.util.Iterator;
 import java.util.List;
@@ -150,12 +151,37 @@
         logger.info("Jahia JahiaTemplateManagerService started successfull=
y."
                 + " Total number of found template packages: "
                 + templatePackageRegistry.getAvailablePackagesCount());
+        =

+        try {
+            JahiaTemplatesPackageHandler.serializeTemplateDescriptor(
+                    templatePackageRegistry.lookup("Custom templates v1"),
+                    new File("w:/temp"));
+        } catch (JahiaTemplateServiceException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
     }
 =

     public void stop() throws JahiaException {
         // TODO perform clean up
     }
 =

+    /**
+     * Deploys the template set from the specifgied JAR file that is locat=
ed in
+     * the shared templates folder.
+     * =

+     * @param templateJar
+     *            the file of the template package JAR file
+     * @throws JahiaException
+     *             in case of an error
+     */
+    public void deployTemplatePackageForSite(JahiaSite site, File template=
Jar)
+            throws JahiaException {
+        String pkgName =3D templatePackageDeployer.deployTemplatePackage(
+                templateJar, true);
+        associateTemplatePackageWithSite(pkgName, site);
+    }
+
     public JahiaTemplatesPackage associateTemplatePackageWithSite(
             String templatePackageName, JahiaSite site) throws JahiaExcept=
ion {
         JahiaTemplatesPackage templatePackage =3D getTemplatePackage(templ=
atePackageName);

Modified: branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/service=
s/templates/TemplatePackageDeployer.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-INCLUD=
E-TAG-BRANCH/core/src/java/org/jahia/services/templates/TemplatePackageDepl=
oyer.java&rev=3D19117&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-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/services/temp=
lates/TemplatePackageDeployer.java (original)
+++ branches/JAHIA-INCLUDE-TAG-BRANCH/core/src/java/org/jahia/services/temp=
lates/TemplatePackageDeployer.java Mon Nov 12 08:22:39 2007
@@ -20,11 +20,14 @@
 import java.io.File;
 import java.io.FileFilter;
 import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 =

 import org.apache.commons.io.IOCase;
 import org.apache.commons.io.filefilter.DirectoryFileFilter;
 import org.apache.commons.io.filefilter.NameFileFilter;
 import org.apache.commons.io.filefilter.SuffixFileFilter;
+import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.jahia.data.templates.JahiaTemplatesPackage;
 import org.jahia.exceptions.JahiaException;
@@ -43,6 +46,9 @@
     private static Logger logger =3D Logger
             .getLogger(TemplatePackageDeployer.class);
 =

+    private static final SimpleDateFormat DATE_FORMAT =3D new SimpleDateFo=
rmat(
+            "yyyy-MM-dd");
+
     /** Meta-Inf folder * */
     private static final String META_INF_FOLDER =3D "Meta-Inf";
 =

@@ -67,7 +73,7 @@
         logger.info("Start deploying new template package "
                 + tmplPack.getName());
 =

-        if (templatesFolderAlreadyExists(tmplPack)) {
+        if (templatesFolderAlreadyExists(tmplPack.getRootFolder())) {
             String msg =3D "Unable to deploy template package '"
                     + tmplPack.getName() + "'. Folder '"
                     + tmplPack.getRootFolder() + "' already exists";
@@ -110,32 +116,64 @@
                         JahiaException.ERROR_SEVERITY);
             }
         }
+        =

+        // overwrite template deployment descriptor
+        JahiaTemplatesPackageHandler.serializeTemplateDescriptor(tmplPack,=
 tmplRootFolder);
+        =

         FileListSync.getInstance().trigger();
     }
 =

     /**
-     * Deploys the shared template set from the spoecifgied JAR file that =
is
-     * located in the shared templates folder.
+     * Deploys the template set from the specifgied JAR file that is locat=
ed in
+     * the shared templates folder. Returns the name of the deployed packa=
ge.
      * =

-     * @param packageJarFileName
-     *            the file name of teh template package JAR file
+     * @param templateJar
+     *            the file of the template package JAR file
+     * @param renameIfExists
+     *            rename he template package set and the root folder, in c=
ase of
+     *            conflicts
+     * @return the name of the deployed package
      */
-    public void deploySharedTemplatePackage(String packageJarFileName) {
+    public String deployTemplatePackage(File templateJar, boolean renameIf=
Exists) {
+        String deployedPackageName =3D null;
         try {
-            File templateJar =3D new File(settingsBean
-                    .getJahiaSharedTemplatesDiskPath(), packageJarFileName=
);
             JahiaTemplatesPackageHandler packageHandler =3D new JahiaTempl=
atesPackageHandler(
-                    templateJar.getAbsolutePath());
+                    templateJar);
             JahiaTemplatesPackage pkg =3D packageHandler.getPackage();
+            validatePackage(pkg);
             if (pkg !=3D null) {
                 logger.debug("Template package found: " + pkg.getName());
                 if (!templatePackageRegistry.contains(pkg.getName())
-                        && !templatesFolderAlreadyExists(pkg)) {
+                        && !templatesFolderAlreadyExists(pkg.getRootFolder=
())) {
                     deployPackage(packageHandler);
                     templatePackageRegistry.register(pkg);
+                    deployedPackageName =3D pkg.getName();
                 } else {
-                    logger.debug("Template package '" + pkg.getName()
-                            + "' already exists. Skipping.");
+                    if (renameIfExists) {
+                        String postfix =3D DATE_FORMAT.format(new Date());
+                        String pkgNameBase =3D pkg.getName() + "-" + postf=
ix;
+                        String rootFolderBase =3D pkg.getRootFolder()
+                                + "-" + postfix;
+                        String pkgName =3D pkgNameBase;
+                        String rootFolder =3D rootFolderBase;
+                        int postfixCounter =3D 0;
+                        while (templatePackageRegistry.contains(pkgName)
+                                || templatesFolderAlreadyExists(rootFolder=
)) {
+                            ++postfixCounter;
+                            pkgName =3D pkgNameBase + "_" + postfixCounter;
+                            rootFolder =3D rootFolderBase + "_"
+                                    + postfixCounter;
+                        }
+
+                        deployedPackageName =3D pkgName;
+
+                        // TODO implement renaming
+                        throw new UnsupportedOperationException(
+                                "Implement renaming");
+                    } else {
+                        logger.debug("Template package '" + pkg.getName()
+                                + "' already exists. Skipping.");
+                    }
                 }
             } else {
                 logger.warn("Unable to read template package from the file=
: "
@@ -143,10 +181,27 @@
             }
         } catch (JahiaException ex) {
             logger.warn(
-                    "Unable to read the templates deployment descriptor un=
der "
-                            + packageJarFileName, ex);
+                    "Unable to read the templates deployment descriptor fr=
om "
+                            + templateJar.getPath(), ex);
+        }
+
+        return deployedPackageName;
+    }
+
+    private void validatePackage(JahiaTemplatesPackage pkg) {
+        if (StringUtils.isEmpty(pkg.getName())) {
+            logger.warn("Template package name '" + pkg.getName()
+                    + "' is not valid. Setting it to 'templates'.");
+            pkg.setName("templates");
+        }
+        if (StringUtils.isEmpty(pkg.getRootFolder())) {
+            String folderName =3D pkg.getName().replace(' ', '_').toLowerC=
ase();
+            logger.warn("Template package root folder '" + pkg.getRootFold=
er()
+                    + "' is not valid. Setting it to '"+ folderName + "'."=
);
+            pkg.setRootFolder(folderName);
         }
     }
+    =

 =

     /**
      * Search and remove the META-INF folder
@@ -228,7 +283,8 @@
                     ".jar"));
             // iterate over found JAR files and deploy them
             for (int i =3D 0; i < jarFiles.length; i++) {
-                deploySharedTemplatePackage(jarFiles[i]);
+                deployTemplatePackage(new File(settingsBean
+                        .getJahiaSharedTemplatesDiskPath(), jarFiles[i]), =
false);
             }
         }
 =

@@ -244,9 +300,9 @@
         templatePackageRegistry =3D tmplPackageRegistry;
     }
 =

-    private boolean templatesFolderAlreadyExists(JahiaTemplatesPackage tmp=
lPack) {
-        return new File(settingsBean.getJahiaTemplatesDiskPath(), tmplPack
-                .getRootFolder()).exists();
+    private boolean templatesFolderAlreadyExists(String rootFolderName) {
+        return new File(settingsBean.getJahiaTemplatesDiskPath(),
+                rootFolderName).exists();
     }
 =

 }
\ No newline at end of file

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to