gatein SVN: r5270 - exo/portal/branches.
by do-not-reply@jboss.org
Author: trong.tran
Date: 2010-11-25 07:25:10 -0500 (Thu, 25 Nov 2010)
New Revision: 5270
Added:
exo/portal/branches/standalone/
Log:
Create a branch for implemetation of standalone application feature
Copied: exo/portal/branches/standalone (from rev 5269, exo/portal/branches/3.1.x)
14 years, 1 month
gatein SVN: r5269 - in portal/trunk: component/application-registry/src/main/java/org/exoplatform/application/gadget/impl and 1 other directories.
by do-not-reply@jboss.org
Author: julien_viet
Date: 2010-11-25 06:13:32 -0500 (Thu, 25 Nov 2010)
New Revision: 5269
Added:
portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/GadgetImporter.java
portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/RemoteImporter.java
Removed:
portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/LocalImporter.java
Modified:
portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/GadgetDeployer.java
portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/GadgetRegistryService.java
portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/ServletLocalImporter.java
portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/impl/GadgetRegistryServiceImpl.java
portal/trunk/portlet/dashboard/src/main/java/org/exoplatform/gadget/webui/component/UIGadgetPortlet.java
Log:
GTNPORTAL-1692 : Decouple gadget import process and gadget import metadata extraction
Modified: portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/GadgetDeployer.java
===================================================================
--- portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/GadgetDeployer.java 2010-11-25 10:45:22 UTC (rev 5268)
+++ portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/GadgetDeployer.java 2010-11-25 11:13:32 UTC (rev 5269)
@@ -19,8 +19,6 @@
package org.exoplatform.application.gadget;
import org.exoplatform.application.gadget.impl.GadgetRegistryServiceImpl;
-import org.exoplatform.commons.chromattic.ChromatticLifeCycle;
-import org.exoplatform.commons.chromattic.SessionContext;
import org.exoplatform.commons.xml.DocumentSource;
import org.exoplatform.commons.xml.XMLValidator;
import org.exoplatform.container.ExoContainerContext;
@@ -40,11 +38,10 @@
import org.w3c.dom.NodeList;
import javax.servlet.ServletContext;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
/**
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
@@ -115,28 +112,27 @@
private void handle(ServletContext scontext, URL gadgetsURL)
{
- ChromatticLifeCycle lifeCycle = gadgetRegistryService.getChromatticLifeCycle();
- lifeCycle.openContext();
try
{
+ List<GadgetImporter> importers = new ArrayList<GadgetImporter>();
Document docXML = validator.validate(DocumentSource.create(gadgetsURL));
NodeList nodeList = docXML.getElementsByTagName("gadget");
for (int i = 0; i < nodeList.getLength(); i++)
{
Element gadgetElement = (Element)nodeList.item(i);
String gadgetName = gadgetElement.getAttribute("name");
- log.debug("About to import gadget " + gadgetName);
+
+ //
+ log.debug("About to parse gadget " + gadgetName);
Element pathElt = XMLTools.getUniqueChild(gadgetElement, "path", false);
+ GadgetImporter importer = null;
if (pathElt != null)
{
String path = XMLTools.asString(pathElt, true);
- ServletLocalImporter importer = new ServletLocalImporter(
+ importer = new ServletLocalImporter(
gadgetName,
- gadgetRegistryService.getRegistry(),
path,
- scontext,
- true);
- importer.doImport();
+ scontext);
}
else
{
@@ -144,24 +140,26 @@
if (urlElt != null)
{
String url = XMLTools.asString(urlElt, true);
- ServletLocalImporter importer = new ServletLocalImporter(
+ importer = new RemoteImporter(
gadgetName,
- gadgetRegistryService.getRegistry(),
- url,
- scontext,
- false);
- importer.doImport();
+ url);
}
}
+
+ //
+ if (importer != null)
+ {
+ importers.add(importer);
+ log.debug("Add gadget " + gadgetName + " to gadget imports");
+ }
}
+
+ // Import everything
+ gadgetRegistryService.deploy(importers);
}
catch (Exception e)
{
log.error("Could not process gadget file " + gadgetsURL, e);
}
- finally
- {
- lifeCycle.closeContext(true);
- }
}
}
Copied: portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/GadgetImporter.java (from rev 5265, portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/LocalImporter.java)
===================================================================
--- portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/GadgetImporter.java (rev 0)
+++ portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/GadgetImporter.java 2010-11-25 11:13:32 UTC (rev 5269)
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2009 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.exoplatform.application.gadget;
+
+import org.apache.shindig.common.uri.Uri;
+import org.apache.shindig.gadgets.spec.GadgetSpec;
+import org.apache.shindig.gadgets.spec.ModulePrefs;
+import org.exoplatform.application.gadget.impl.GadgetDefinition;
+import org.gatein.common.logging.Logger;
+import org.gatein.common.logging.LoggerFactory;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+
+/**
+ * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+public abstract class GadgetImporter
+{
+
+ /** . */
+ private static final Logger log = LoggerFactory.getLogger(GadgetImporter.class);
+
+ /** The gadget name as seen by GateIn. */
+ private String gadgetName;
+
+ /** The gadget uri. */
+ private String gadgetURI;
+
+ protected GadgetImporter(
+ String gadgetName,
+ String gadgetURI)
+ {
+ this.gadgetName = gadgetName;
+ this.gadgetURI = gadgetURI;
+ }
+
+ public String getGadgetName()
+ {
+ return gadgetName;
+ }
+
+ public String getGadgetURI()
+ {
+ return gadgetURI;
+ }
+
+ protected abstract byte[] getGadgetBytes(String gadgetURI) throws IOException;
+
+ protected abstract String getGadgetURL(String gadgetURI) throws Exception;
+
+ protected abstract void process(String gadgetURI, GadgetDefinition def) throws Exception;
+
+ private String getGadgetTitle(ModulePrefs prefs, String defaultValue)
+ {
+ String title = prefs.getDirectoryTitle();
+ if (title == null || title.trim().length() < 1)
+ {
+ title = prefs.getTitle();
+ }
+ if (title == null || title.trim().length() < 1)
+ {
+ return defaultValue;
+ }
+ return title;
+ }
+
+ public void doImport(GadgetDefinition def) throws Exception
+ {
+ // Get bytes
+ byte[] bytes = getGadgetBytes(gadgetURI);
+ if (bytes == null)
+ {
+ log.error("Cannot import gadget " + gadgetURI + " because its data could not be found");
+ return;
+ }
+
+ // Get encoding
+ String encoding = EncodingDetector.detect(new ByteArrayInputStream(bytes));
+
+ //
+ String gadget = new String(bytes, encoding);
+
+ //
+ String gadgetURL = getGadgetURL(gadgetURI);
+ GadgetSpec spec = new GadgetSpec(Uri.parse(gadgetURL), gadget);
+ ModulePrefs prefs = spec.getModulePrefs();
+
+
+ //
+ String description = prefs.getDescription();
+ String thumbnail = prefs.getThumbnail().toString();
+ String title = getGadgetTitle(prefs, gadgetName);
+ String referenceURL = prefs.getTitleUrl().toString();
+
+ //
+ log.info("Importing gadget name=" + gadgetName + " description=" + description + " thumbnail=" + thumbnail + " title=" +
+ thumbnail + " title=" + title);
+
+ //
+ def.setDescription(description);
+ def.setThumbnail(thumbnail); // Do something better than that
+ def.setTitle(title);
+ def.setReferenceURL(referenceURL);
+
+ //
+ process(gadgetURI, def);
+ }
+
+ @Override
+ public String toString()
+ {
+ return getClass().getSimpleName() + "[name=" + getGadgetName() + ",path=" + getGadgetURI() + "]";
+ }
+}
Modified: portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/GadgetRegistryService.java
===================================================================
--- portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/GadgetRegistryService.java 2010-11-25 10:45:22 UTC (rev 5268)
+++ portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/GadgetRegistryService.java 2010-11-25 11:13:32 UTC (rev 5269)
@@ -33,6 +33,13 @@
{
/**
+ * Deploy a set of gadgets.
+ *
+ * @param gadgets the gadgets to deploy
+ */
+ public void deploy(Iterable<GadgetImporter> gadgets);
+
+ /**
* Return Gadget object retrieved from database by its name.
*
* @param name the name of gadget
Deleted: portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/LocalImporter.java
===================================================================
--- portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/LocalImporter.java 2010-11-25 10:45:22 UTC (rev 5268)
+++ portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/LocalImporter.java 2010-11-25 11:13:32 UTC (rev 5269)
@@ -1,247 +0,0 @@
-/*
- * Copyright (C) 2009 eXo Platform SAS.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.exoplatform.application.gadget;
-
-import org.apache.shindig.common.uri.Uri;
-import org.apache.shindig.gadgets.spec.GadgetSpec;
-import org.apache.shindig.gadgets.spec.ModulePrefs;
-import org.chromattic.ext.ntdef.NTFolder;
-import org.chromattic.ext.ntdef.Resource;
-import org.exoplatform.application.gadget.impl.GadgetDefinition;
-import org.exoplatform.application.gadget.impl.GadgetRegistry;
-import org.exoplatform.application.gadget.impl.LocalGadgetData;
-import org.exoplatform.application.gadget.impl.RemoteGadgetData;
-import org.gatein.common.logging.Logger;
-import org.gatein.common.logging.LoggerFactory;
-import org.gatein.common.net.URLTools;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.net.URL;
-
-/**
- * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
- * @version $Revision$
- */
-public abstract class LocalImporter
-{
-
- /** . */
- private static final Logger log = LoggerFactory.getLogger(LocalImporter.class);
-
- /** The gadget name as seen by GateIn. */
- private String name;
-
- /** The gadget registry. */
- private GadgetRegistry registry;
-
- /** The gadget path. */
- private String gadgetPath;
-
- /** . */
- private boolean local;
-
- /** Used temporarily when importing resources. */
- private NTFolder folder;
-
- protected LocalImporter(
- String name,
- GadgetRegistry registry,
- String gadgetPath,
- boolean local)
- {
- this.name = name;
- this.registry = registry;
- this.gadgetPath = gadgetPath;
- this.local = local;
- }
-
- private byte[] getGadgetBytes() throws IOException
- {
- if (local)
- {
- return getContent(gadgetPath);
- }
- else
- {
- URL url = new URL(gadgetPath);
- return URLTools.getContent(url, 5000, 5000);
- }
- }
-
- private String getGadgetURL() throws Exception
- {
- if (local)
- {
- return "http://www.gatein.org";
- }
- else
- {
- return gadgetPath;
- }
- }
-
- private String getGadgetTitle(ModulePrefs prefs, String defaultValue)
- {
- String title = prefs.getDirectoryTitle();
- if (title == null || title.trim().length() < 1)
- {
- title = prefs.getTitle();
- }
- if (title == null || title.trim().length() < 1)
- {
- return defaultValue;
- }
- return title;
- }
-
- public void doImport() throws Exception
- {
- if (registry.getGadget(name) != null)
- {
- log.debug("Will not import existing gagdet " + name);
- return;
- }
-
- // Get bytes
- byte[] bytes = getGadgetBytes();
- if (bytes == null)
- {
- log.error("Cannot import gadget " + gadgetPath + " because its data could not be found");
- return;
- }
-
- // Get encoding
- String encoding = EncodingDetector.detect(new ByteArrayInputStream(bytes));
-
- //
- String gadget = new String(bytes, encoding);
-
- //
- String gadgetURL = getGadgetURL();
- GadgetSpec spec = new GadgetSpec(Uri.parse(gadgetURL), gadget);
- ModulePrefs prefs = spec.getModulePrefs();
-
- //
- GadgetDefinition def = registry.addGadget(name);
-
- //
- String description = prefs.getDescription();
- String thumbnail = prefs.getThumbnail().toString();
- String title = getGadgetTitle(prefs, name);
- String referenceURL = prefs.getTitleUrl().toString();
-
- //
- log.info("Importing gadget name=" + name + " description=" + description + " thumbnail=" + thumbnail + " title=" +
- thumbnail + " title=" + title);
-
- //
- def.setDescription(description);
- def.setThumbnail(thumbnail); // Do something better than that
- def.setTitle(title);
- def.setReferenceURL(referenceURL);
- def.setLocal(local);
-
- //
- if (local)
- {
- LocalGadgetData data = (LocalGadgetData)def.getData();
-
- //
- String fileName = getName(gadgetPath);
- data.setFileName(fileName);
-
- // Import resource
- folder = data.getResources();
- String folderPath = getParent(gadgetPath);
- visitChildren(folderPath);
- folder = null;
- }
- else
- {
- RemoteGadgetData data = (RemoteGadgetData)def.getData();
-
- // Set remote URL
- data.setURL(gadgetPath);
- }
- }
-
- private void visit(String resourcePath) throws Exception
- {
- String name = getName(resourcePath);
- if (isFile(resourcePath))
- {
- byte[] content = getContent(resourcePath);
-
- //
- if (content != null)
- {
- String mimeType = getMimeType(name);
-
- //
- if (mimeType == null)
- {
- mimeType = "application/octet-stream";
- }
-
- // We can detect encoding for XML files
- String encoding = null;
- if ("application/xml".equals(mimeType))
- {
- encoding = EncodingDetector.detect(new ByteArrayInputStream(content));
- }
-
- // Correct mime type for gadgets
- if (resourcePath.equals(gadgetPath)) {
- mimeType = LocalGadgetData.GADGET_MIME_TYPE;
- }
-
- //
- folder.createFile(name, new Resource(mimeType, encoding, content));
- }
- }
- else
- {
- folder = folder.createFolder(name);
- visitChildren(resourcePath);
- folder = folder.getParent();
- }
- }
-
- private void visitChildren(String folderPath) throws Exception
- {
- for (String childPath : getChildren(folderPath))
- {
- visit(childPath);
- }
- }
-
- public abstract String getName(String resourcePath) throws IOException;
-
- public abstract String getParent(String resourcePath) throws IOException;
-
- public abstract byte[] getContent(String filePath) throws IOException;
-
- public abstract Iterable<String> getChildren(String folderPath) throws IOException;
-
- public abstract boolean isFile(String resourcePath) throws IOException;
-
- public abstract String getMimeType(String fileName);
-}
Added: portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/RemoteImporter.java
===================================================================
--- portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/RemoteImporter.java (rev 0)
+++ portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/RemoteImporter.java 2010-11-25 11:13:32 UTC (rev 5269)
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2010 eXo Platform SAS.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.exoplatform.application.gadget;
+
+import org.exoplatform.application.gadget.impl.GadgetDefinition;
+import org.exoplatform.application.gadget.impl.RemoteGadgetData;
+import org.gatein.common.net.URLTools;
+
+import java.io.IOException;
+import java.net.URL;
+
+/**
+ * @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
+ * @version $Revision$
+ */
+public class RemoteImporter extends GadgetImporter
+{
+
+ public RemoteImporter(String name, String gadgetPath)
+ {
+ super(name, gadgetPath);
+ }
+
+ @Override
+ protected byte[] getGadgetBytes(String gadgetURI) throws IOException
+ {
+ URL url = new URL(gadgetURI);
+ return URLTools.getContent(url, 5000, 5000);
+ }
+
+ @Override
+ protected String getGadgetURL(String gadgetURI) throws Exception
+ {
+ return "http://www.gatein.org";
+ }
+
+ @Override
+ protected void process(String gadgetURI, GadgetDefinition def) throws Exception
+ {
+ def.setLocal(false);
+
+ //
+ RemoteGadgetData data = (RemoteGadgetData)def.getData();
+
+ // Set remote URL
+ data.setURL(gadgetURI);
+ }
+}
Modified: portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/ServletLocalImporter.java
===================================================================
--- portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/ServletLocalImporter.java 2010-11-25 10:45:22 UTC (rev 5268)
+++ portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/ServletLocalImporter.java 2010-11-25 11:13:32 UTC (rev 5269)
@@ -18,12 +18,16 @@
*/
package org.exoplatform.application.gadget;
-import org.exoplatform.application.gadget.impl.GadgetRegistry;
+import org.chromattic.ext.ntdef.NTFolder;
+import org.chromattic.ext.ntdef.Resource;
+import org.exoplatform.application.gadget.impl.GadgetDefinition;
+import org.exoplatform.application.gadget.impl.LocalGadgetData;
import org.gatein.common.io.IOTools;
import org.gatein.common.logging.Logger;
import org.gatein.common.logging.LoggerFactory;
import javax.servlet.ServletContext;
+import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Set;
@@ -32,7 +36,7 @@
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
* @version $Revision$
*/
-public class ServletLocalImporter extends LocalImporter
+public class ServletLocalImporter extends GadgetImporter
{
/** . */
@@ -41,22 +45,103 @@
/** . */
private final ServletContext servletContext;
+ /** Used temporarily when importing resources. */
+ private NTFolder folder;
+
public ServletLocalImporter(
String name,
- GadgetRegistry registry,
String gadgetPath,
- ServletContext servletContext,
- boolean local)
+ ServletContext servletContext)
{
- super(name, registry, gadgetPath, local);
+ super(name, gadgetPath);
//
this.servletContext = servletContext;
}
@Override
- public String getName(String resourcePath) throws IOException
+ protected byte[] getGadgetBytes(String gadgetURI) throws IOException
{
+ return getContent(gadgetURI);
+ }
+
+ @Override
+ protected String getGadgetURL(String gadgetURI) throws Exception
+ {
+ return gadgetURI;
+ }
+
+ @Override
+ protected void process(String gadgetURI, GadgetDefinition def) throws Exception
+ {
+ def.setLocal(true);
+
+ //
+ LocalGadgetData data = (LocalGadgetData)def.getData();
+
+ //
+ String fileName = getName(gadgetURI);
+ data.setFileName(fileName);
+
+ // Import resource
+ folder = data.getResources();
+ String folderPath = getParent(gadgetURI);
+ visitChildren(gadgetURI, folderPath);
+ folder = null;
+ }
+
+ private void visit(String uri, String resourcePath) throws Exception
+ {
+ String name = getName(resourcePath);
+ if (isFile(resourcePath))
+ {
+ byte[] content = getContent(resourcePath);
+
+ //
+ if (content != null)
+ {
+ String mimeType = getMimeType(name);
+
+ //
+ if (mimeType == null)
+ {
+ mimeType = "application/octet-stream";
+ }
+
+ // We can detect encoding for XML files
+ String encoding = null;
+ if ("application/xml".equals(mimeType))
+ {
+ encoding = EncodingDetector.detect(new ByteArrayInputStream(content));
+ }
+
+ // Correct mime type for gadgets
+ if (resourcePath.equals(uri)) {
+ mimeType = LocalGadgetData.GADGET_MIME_TYPE;
+ }
+
+ //
+ folder.createFile(name, new Resource(mimeType, encoding, content));
+ }
+ }
+ else
+ {
+ folder = folder.createFolder(name);
+ visitChildren(uri, resourcePath);
+ folder = folder.getParent();
+ }
+ }
+
+ private void visitChildren(String gadgetURI, String folderPath) throws Exception
+ {
+ for (String childPath : getChildren(folderPath))
+ {
+ visit(gadgetURI, childPath);
+ }
+ }
+
+ private String getName(String resourcePath) throws IOException
+ {
// It's a directory, remove the trailing '/'
if (resourcePath.endsWith("/"))
{
@@ -70,8 +155,7 @@
return resourcePath.substring(index + 1);
}
- @Override
- public String getParent(String resourcePath) throws IOException
+ private String getParent(String resourcePath) throws IOException
{
// It's a directory, remove the trailing '/'
if (resourcePath.endsWith("/"))
@@ -86,8 +170,7 @@
return resourcePath.substring(0, index + 1);
}
- @Override
- public byte[] getContent(String filePath) throws IOException
+ private byte[] getContent(String filePath) throws IOException
{
InputStream in = servletContext.getResourceAsStream(filePath);
if (in == null)
@@ -101,21 +184,18 @@
}
}
- @Override
- public Iterable<String> getChildren(String folderPath) throws IOException
+ private Iterable<String> getChildren(String folderPath) throws IOException
{
- @SuppressWarnings("unchecked") Set resourcePaths = servletContext.getResourcePaths(folderPath);
+ @SuppressWarnings("unchecked") Set<String> resourcePaths = servletContext.getResourcePaths(folderPath);
return resourcePaths;
}
- @Override
- public boolean isFile(String resourcePath) throws IOException
+ private boolean isFile(String resourcePath) throws IOException
{
return !resourcePath.endsWith("/");
}
- @Override
- public String getMimeType(String fileName)
+ private String getMimeType(String fileName)
{
return servletContext.getMimeType(fileName);
}
Modified: portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/impl/GadgetRegistryServiceImpl.java
===================================================================
--- portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/impl/GadgetRegistryServiceImpl.java 2010-11-25 10:45:22 UTC (rev 5268)
+++ portal/trunk/component/application-registry/src/main/java/org/exoplatform/application/gadget/impl/GadgetRegistryServiceImpl.java 2010-11-25 11:13:32 UTC (rev 5269)
@@ -23,6 +23,7 @@
import org.chromattic.ext.ntdef.Resource;
import org.exoplatform.application.gadget.Gadget;
import org.exoplatform.application.gadget.GadgetRegistryService;
+import org.exoplatform.application.gadget.GadgetImporter;
import org.exoplatform.application.registry.impl.ApplicationRegistryChromatticLifeCycle;
import org.exoplatform.commons.chromattic.ChromatticLifeCycle;
import org.exoplatform.commons.chromattic.ChromatticManager;
@@ -30,11 +31,14 @@
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.container.xml.PropertiesParam;
import org.exoplatform.container.xml.ValueParam;
+import org.gatein.common.logging.Logger;
+import org.gatein.common.logging.LoggerFactory;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
+import java.util.concurrent.Callable;
/**
* @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a>
@@ -44,6 +48,9 @@
{
/** . */
+ private final Logger log = LoggerFactory.getLogger(GadgetRegistryServiceImpl.class);
+
+ /** . */
private static final String DEFAULT_DEVELOPER_GROUP = "/platform/administrators";
/** . */
@@ -120,13 +127,23 @@
return registry;
}
- public ChromatticLifeCycle getChromatticLifeCycle()
+ // ***************
+
+ public void deploy(Iterable<GadgetImporter> gadgets)
{
- return chromatticLifeCycle;
+ for (GadgetImporter importer : gadgets)
+ {
+ try
+ {
+ new DeployTask(importer).call();
+ }
+ catch (Exception e)
+ {
+ log.error("Could not process gadget file " + importer, e);
+ }
+ }
}
- // ***************
-
public Gadget getGadget(String name) throws Exception
{
GadgetRegistry registry = getRegistry();
@@ -285,4 +302,40 @@
{
return hostName;
}
+
+ private class DeployTask implements Callable<Boolean>
+ {
+
+ /** . */
+ private final GadgetImporter importer;
+
+ private DeployTask(GadgetImporter importer)
+ {
+ this.importer = importer;
+ }
+
+ public Boolean call() throws Exception
+ {
+ chromatticLifeCycle.openContext();
+ try
+ {
+ boolean done = false;
+ if (getRegistry().getGadget(importer.getGadgetName()) == null)
+ {
+ GadgetDefinition def = getRegistry().addGadget(importer.getGadgetName());
+ importer.doImport(def);
+ done = true;
+ }
+ else
+ {
+ log.debug("Will not import existing gagdet " + importer.getGadgetName());
+ }
+ return done;
+ }
+ finally
+ {
+ chromatticLifeCycle.closeContext(true);
+ }
+ }
+ }
}
Modified: portal/trunk/portlet/dashboard/src/main/java/org/exoplatform/gadget/webui/component/UIGadgetPortlet.java
===================================================================
--- portal/trunk/portlet/dashboard/src/main/java/org/exoplatform/gadget/webui/component/UIGadgetPortlet.java 2010-11-25 10:45:22 UTC (rev 5268)
+++ portal/trunk/portlet/dashboard/src/main/java/org/exoplatform/gadget/webui/component/UIGadgetPortlet.java 2010-11-25 11:13:32 UTC (rev 5269)
@@ -20,8 +20,8 @@
package org.exoplatform.gadget.webui.component;
import org.exoplatform.application.gadget.Gadget;
+import org.exoplatform.application.gadget.GadgetImporter;
import org.exoplatform.application.gadget.GadgetRegistryService;
-import org.exoplatform.application.gadget.LocalImporter;
import org.exoplatform.container.ExoContainer;
import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.portal.webui.application.GadgetUtil;
@@ -50,7 +50,7 @@
{
final static public String LOCAL_STRING = "local://";
- private static final Logger log = LoggerFactory.getLogger(LocalImporter.class);
+ private static final Logger log = LoggerFactory.getLogger(GadgetImporter.class);
public UIGadgetPortlet() throws Exception
{
14 years, 1 month
gatein SVN: r5268 - epp/portal/branches/EPP_5_1_Branch/component/application-registry/src/main/java/org/exoplatform/application/registry/impl.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-11-25 05:45:22 -0500 (Thu, 25 Nov 2010)
New Revision: 5268
Modified:
epp/portal/branches/EPP_5_1_Branch/component/application-registry/src/main/java/org/exoplatform/application/registry/impl/ApplicationRegistryServiceImpl.java
Log:
JBEPP-677: Use the complete portlet context instead of just the portlet name to avoid collisions when creating content.
Modified: epp/portal/branches/EPP_5_1_Branch/component/application-registry/src/main/java/org/exoplatform/application/registry/impl/ApplicationRegistryServiceImpl.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/application-registry/src/main/java/org/exoplatform/application/registry/impl/ApplicationRegistryServiceImpl.java 2010-11-25 10:43:28 UTC (rev 5267)
+++ epp/portal/branches/EPP_5_1_Branch/component/application-registry/src/main/java/org/exoplatform/application/registry/impl/ApplicationRegistryServiceImpl.java 2010-11-25 10:45:22 UTC (rev 5268)
@@ -428,7 +428,7 @@
{
PortletInfo info = portlet.getInfo();
String portletApplicationName = info.getApplicationName();
- String portletName = info.getName();
+ String portletName = portlet.getContext().getId();
// Need to sanitize portlet and application names in case they contain characters that would
// cause an improper Application name
14 years, 1 month
gatein SVN: r5267 - in epp/portal/branches/EPP_5_1_Branch: web/portal/src/main/webapp/WEB-INF and 1 other directory.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-11-25 05:43:28 -0500 (Thu, 25 Nov 2010)
New Revision: 5267
Modified:
epp/portal/branches/EPP_5_1_Branch/examples/portal/war/src/main/webapp/WEB-INF/web.xml
epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/web.xml
Log:
JBEPP-676: Remove session timeout configuration from GateIn war file
Modified: epp/portal/branches/EPP_5_1_Branch/examples/portal/war/src/main/webapp/WEB-INF/web.xml
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/examples/portal/war/src/main/webapp/WEB-INF/web.xml 2010-11-25 10:39:50 UTC (rev 5266)
+++ epp/portal/branches/EPP_5_1_Branch/examples/portal/war/src/main/webapp/WEB-INF/web.xml 2010-11-25 10:43:28 UTC (rev 5267)
@@ -250,10 +250,6 @@
<url-pattern>/gateinservlet</url-pattern>
</servlet-mapping>
- <session-config>
- <session-timeout>30</session-timeout>
- </session-config>
-
<!-- The Welcome File List for IBM WebSphere -->
<welcome-file-list>
Modified: epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/web.xml
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/web.xml 2010-11-25 10:39:50 UTC (rev 5266)
+++ epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/web.xml 2010-11-25 10:43:28 UTC (rev 5267)
@@ -290,10 +290,6 @@
<url-pattern>/gateinservlet</url-pattern>
</servlet-mapping>
- <session-config>
- <session-timeout>30</session-timeout>
- </session-config>
-
<!-- The Welcome File List for IBM WebSphere -->
<welcome-file-list>
14 years, 1 month
gatein SVN: r5266 - in epp/portal/branches/EPP_5_1_Branch: portlet/dashboard/src/main/webapp/WEB-INF/classes/locale/portlet/gadget and 3 other directories.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-11-25 05:39:50 -0500 (Thu, 25 Nov 2010)
New Revision: 5266
Added:
epp/portal/branches/EPP_5_1_Branch/testsuite/webuibasedsamples/src/main/webapp/WEB-INF/classes/locale/portlet/web/UISamplePortlet_it.properties
epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/custom_it.properties
epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/expression_it.xml
epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/services_it.xml
Modified:
epp/portal/branches/EPP_5_1_Branch/portlet/dashboard/src/main/webapp/WEB-INF/classes/locale/portlet/dashboard/TabbedDashboardPortlet_it.properties
epp/portal/branches/EPP_5_1_Branch/portlet/dashboard/src/main/webapp/WEB-INF/classes/locale/portlet/gadget/GadgetPortlet_it.properties
epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/webapp/WEB-INF/classes/locale/portlet/exoadmin/ApplicationRegistryPortlet_it.properties
epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/webapp/WEB-INF/classes/locale/portlet/exoadmin/OrganizationPortlet_it.properties
epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/webapp/WEB-INF/classes/locale/portlet/exoadmin/RegisterPortlet_it.properties
epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_it.properties
Log:
JBEPP-675: Italian Update
Modified: epp/portal/branches/EPP_5_1_Branch/portlet/dashboard/src/main/webapp/WEB-INF/classes/locale/portlet/dashboard/TabbedDashboardPortlet_it.properties
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/portlet/dashboard/src/main/webapp/WEB-INF/classes/locale/portlet/dashboard/TabbedDashboardPortlet_it.properties 2010-11-25 09:58:41 UTC (rev 5265)
+++ epp/portal/branches/EPP_5_1_Branch/portlet/dashboard/src/main/webapp/WEB-INF/classes/locale/portlet/dashboard/TabbedDashboardPortlet_it.properties 2010-11-25 10:39:50 UTC (rev 5266)
@@ -21,4 +21,4 @@
UITabPaneDashboard.action.switchShowRange=Cambia ordine
UITabPaneDashboard.msg.deleteTab=Vuoi davvero rimuovere questa dashboard?
UITabPaneDashboard.msg.cannotDeleteLastTab=Non posso eliminare l'ultimo tab.
-UITabPaneDashboard.msg.wrongTabName=Sono permessi soltanto caratteri alfabetici, numerici, underscore, trattino e spazio.
\ No newline at end of file
+UITabPaneDashboard.msg.wrongTabName={0}: non \u00E8 valido. Sono permessi soltanto caratteri alfabetici, numerici, underscore, trattino e spazio.
\ No newline at end of file
Modified: epp/portal/branches/EPP_5_1_Branch/portlet/dashboard/src/main/webapp/WEB-INF/classes/locale/portlet/gadget/GadgetPortlet_it.properties
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/portlet/dashboard/src/main/webapp/WEB-INF/classes/locale/portlet/gadget/GadgetPortlet_it.properties 2010-11-25 09:58:41 UTC (rev 5265)
+++ epp/portal/branches/EPP_5_1_Branch/portlet/dashboard/src/main/webapp/WEB-INF/classes/locale/portlet/gadget/GadgetPortlet_it.properties 2010-11-25 10:39:50 UTC (rev 5266)
@@ -24,4 +24,6 @@
UIGadgetEditMode.action.Save=Salva
UIGadgetEditMode.label.option.remote=Gadget remoto
-UIGadgetEditMode.label.option.local=Gadget locale
\ No newline at end of file
+UIGadgetEditMode.label.option.local=Gadget locale
+
+UIGadgetPortlet.msg.url-invalid=Il formato dell'url del gadget \u00E8 sbagliato nelle Preferenze
Modified: epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/webapp/WEB-INF/classes/locale/portlet/exoadmin/ApplicationRegistryPortlet_it.properties
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/webapp/WEB-INF/classes/locale/portlet/exoadmin/ApplicationRegistryPortlet_it.properties 2010-11-25 09:58:41 UTC (rev 5265)
+++ epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/webapp/WEB-INF/classes/locale/portlet/exoadmin/ApplicationRegistryPortlet_it.properties 2010-11-25 10:39:50 UTC (rev 5266)
@@ -56,6 +56,7 @@
UIApplicationInfo.label.displayName=#{label.displayName}
UIApplicationInfo.label.description=#{label.description}
UIApplicationInfo.label.accessPermissions=Permessi di accesso
+UIApplicationInfo.label.accessPermissionsDescription=Con questo componente, saranno usati i permessi di accesso di defaut
UIApplicationInfo.title.editApplication=Modifica l'Applicazione
##org.exoplatform.applicationregistry.webui.component.UIApplicationForm
@@ -101,6 +102,9 @@
UIPortletInfo.label.description=#{label.description}
UIPortletInfo.title.portletPreferences=Preferenze della Portlet
UIPortletInfo.msg.noPortletPreferences=Nessuna preferenza
+UIPortletInfo.label.categories=Categorie:
+UIPortletInfo.label.categories.guide=Devi assegnare la portlet a una delle categorie esposte per poterla usare nella pagina.
+UIPortletInfo.label.categories.clickHere=Clicca qui per aggiungere la portlet alla categoria
## org.exoplatform.portletregistry.webui.component.UIGadgetManagement
UIGadgetManagement.label.addRemote=Aggiungi un gadget remoto
@@ -123,7 +127,6 @@
UIGadgetInfo.label.categories.clickHere=Clicca qui per inserirlo nelle categorie
UIGadgetInfo.title.refresh=Aggiorna l'informazione
UIGadgetInfo.title.editGadget=Modifica il Gadget
-UIGadgetInfo.title.copy=Copia il Gadget nel repository locale
UIGadgetInfo.msg.gadgetNotExist=Non posso eseguire l'operazione sul Gadget non pi\u00F9 presente nel database.
UICategorySelector.header.choose=Scegli
@@ -141,9 +144,12 @@
## org.exoplatform.applicationregistry.webui.component.UIGadgetEditor
UIGadgetEditor.label.source=Sorgente:
+UIGadgetEditor.label.name=Nome:
UIGadgetEditor.action.Save=#{word.save}
UIGadgetEditor.action.Cancel=#{word.cancel}
UIGadgetEditor.msg.invalidSpec=Il sorgente non segue le specifiche del gadget.
+UIGadgetEditor.gadget.msg.gadgetIsExist=Questo nome esiste gi\u00E0, inserisci un nome diverso.
+UIGadgetEditor.msg.Invalid=The "{0}" field must not contains special characters.
##package org.exoplatform.organization.webui.component.UIListPermissionSelector
UIListPermissionSelector.header.groupId=Gruppo
UIListPermissionSelector.header.membership=Membership
Modified: epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/webapp/WEB-INF/classes/locale/portlet/exoadmin/OrganizationPortlet_it.properties
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/webapp/WEB-INF/classes/locale/portlet/exoadmin/OrganizationPortlet_it.properties 2010-11-25 09:58:41 UTC (rev 5265)
+++ epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/webapp/WEB-INF/classes/locale/portlet/exoadmin/OrganizationPortlet_it.properties 2010-11-25 10:39:50 UTC (rev 5266)
@@ -79,7 +79,8 @@
UIListUsers.label.option.lastName=#{word.lastName}
UIListUsers.label.option.email=#{word.email}
UIListUsers.msg.DeleteSuperUser={0} \u00E8 un Super Utente, non pu\u00F2 essere cancellato
-UIListUsers.deleteUser=Sicuro di voler cancellare l'utente {0}?
+UIListUsers.deleteUser=Sicuro di voler cancellare l'utente {0}?
+UIListUsers.msg.user-is-deleted=L'utente pu\u00F2 essere cancellato.
UIListMembershipType.deleteMemberShip=Sicuro di voler cancellare il membership?
Modified: epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/webapp/WEB-INF/classes/locale/portlet/exoadmin/RegisterPortlet_it.properties
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/webapp/WEB-INF/classes/locale/portlet/exoadmin/RegisterPortlet_it.properties 2010-11-25 09:58:41 UTC (rev 5265)
+++ epp/portal/branches/EPP_5_1_Branch/portlet/exoadmin/src/main/webapp/WEB-INF/classes/locale/portlet/exoadmin/RegisterPortlet_it.properties 2010-11-25 10:39:50 UTC (rev 5266)
@@ -26,4 +26,8 @@
UIRegisterForm.label.confirmPassword=Conferma Password:
UIRegisterForm.label.firstName= Nome:
UIRegisterForm.label.lastName= Cognome:
-UIRegisterForm.label.emailAddress= Indirizzo Email:
\ No newline at end of file
+UIRegisterForm.label.emailAddress= Indirizzo Email:
+UIRegisterForm.label.captcha=Verifica del testo:
+
+UIRegisterEditMode.title=Preferenze della Portlet di Registrazione
+UIRegisterEditMode.label.useCaptcha=Usa il captcha:
Copied: epp/portal/branches/EPP_5_1_Branch/testsuite/webuibasedsamples/src/main/webapp/WEB-INF/classes/locale/portlet/web/UISamplePortlet_it.properties (from rev 5111, portal/trunk/testsuite/webuibasedsamples/src/main/webapp/WEB-INF/classes/locale/portlet/web/UISamplePortlet_it.properties)
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/testsuite/webuibasedsamples/src/main/webapp/WEB-INF/classes/locale/portlet/web/UISamplePortlet_it.properties (rev 0)
+++ epp/portal/branches/EPP_5_1_Branch/testsuite/webuibasedsamples/src/main/webapp/WEB-INF/classes/locale/portlet/web/UISamplePortlet_it.properties 2010-11-25 10:39:50 UTC (rev 5266)
@@ -0,0 +1,44 @@
+#
+# Copyright (C) 2009 eXo Platform SAS.
+#
+# This is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of
+# the License, or (at your option) any later version.
+#
+# This software is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this software; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+# 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+#
+
+UISampleContent.UIPopupMessage.msg=Ciao {0}
+
+UISampleUIForm.action.Save=Salva
+UISampleUIForm.action.Reset=Azzera
+UISampleUIForm.label.userName=Nome Utente
+UISampleUIForm.label.password=Password
+UISampleUIForm.label.favoriteColor=Colore Preferito
+UISampleUIForm.label.position=Posizione
+UISampleUIForm.label.receiveEmail=Ricezione Email
+UISampleUIForm.label.gender=Sesso
+UISampleUIForm.label.dateOfBirth=Data di Nascita
+UISampleUIForm.label.description=Descrizione
+
+UISampleUIForm.title=Questo \u00E8 un esempio
+UISampleUIForm.msg.empty-input=inserisci il nome utente
+UISampleUIForm.msg.user-exist={0} \u00E8 attualmente in uso
+UISampleUIForm.msg.user-not-exist={0} \u00E8 disponibile
+UISampleUIForm.msg.user-saved={0} \u00E8 stato salvato
+
+UISampleMultiValueInputSet.title=Esempio UIFormMultivalueInputSet
+UISampleMultiValueInputSet.action.Save=Salva
+UISampleMultiValueInputSet.action.Reset=Azzera
+
+UISamplePopupMenu.event.SayHello=Dimmi Ciao
+UISamplePopupMenu.event.SayGoodBye=Esempio di arrivederci
\ No newline at end of file
Copied: epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/custom_it.properties (from rev 5111, portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/custom_it.properties)
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/custom_it.properties (rev 0)
+++ epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/custom_it.properties 2010-11-25 10:39:50 UTC (rev 5266)
@@ -0,0 +1,20 @@
+#
+# Copyright (C) 2009 eXo Platform SAS.
+#
+# This is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of
+# the License, or (at your option) any later version.
+#
+# This software is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this software; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+# 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+#
+
+test=prova
Copied: epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/expression_it.xml (from rev 5111, portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/expression_it.xml)
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/expression_it.xml (rev 0)
+++ epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/expression_it.xml 2010-11-25 10:39:50 UTC (rev 5266)
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+
+<bundle>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'A' #
+ ###################################################################
+ -->
+ <word>
+ <accessPermission>Permesso di Accesso</accessPermission>
+ <abort>Abbandona</abort>
+ <action>Azione</action>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'B' #
+ ###################################################################
+ -->
+ <back>Indietro</back>
+ <birthday>Compleanno</birthday>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'c' #
+ ###################################################################
+ -->
+ <cancel>Annulla</cancel>
+ <category>Categoria</category>
+ <change>Cambia</change>
+ <city>Citt\u00E0</city>
+ <close>Chiudi</close>
+ <comment>Commento</comment>
+ <content>Contenuto</content>
+ <country>Nazione</country>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'd' #
+ ###################################################################
+ -->
+ <date>Data</date>
+ <decorator>Decorator</decorator>
+ <department>Dipartimento</department>
+ <description>Descrizione</description>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'e' #
+ ###################################################################
+ -->
+ <editPermission>Modifica il permesso</editPermission>
+ <email>Email</email>
+ <employer>Dipendente</employer>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'f' #
+ ###################################################################
+ -->
+ <familyName>Cognome</familyName>
+ <finish>Termina</finish>
+ <firstName>Nome</firstName>
+ <format>Formato</format>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'g' #
+ ###################################################################
+ -->
+ <groupId>Id del Gruppo</groupId>
+ <gender>Sesso</gender>
+ <givenName>Nome</givenName>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'h' #
+ ###################################################################
+ -->
+ <height>Altezza</height>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'i' #
+ ###################################################################
+ -->
+ <icon>Icona</icon>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'j' #
+ ###################################################################
+ -->
+ <jobTitle>Qualifica lavorativa</jobTitle>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'l' #
+ ###################################################################
+ -->
+ <locale>Lingua</locale>
+ <label>Etichetta</label>
+ <language>Linguaggio</language>
+ <lastName>Cognome</lastName>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'm' #
+ ###################################################################
+ -->
+ <mobile>Mobile</mobile>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'n' #
+ ###################################################################
+ -->
+ <name>Nome</name>
+ <nickName>Nick Name</nickName>
+ <next>Prossimo</next>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'o' #
+ ###################################################################
+ -->
+ <owner>Proprietario</owner>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'p' #
+ ###################################################################
+ -->
+ <postalCode>Codice Postale</postalCode>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'r' #
+ ###################################################################
+ -->
+ <refresh>Aggiorna</refresh>
+ <restore>Recupera</restore>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 's' #
+ ###################################################################
+ -->
+ <save>Salva</save>
+ <stateProv>Stato/Prov</stateProv>
+ <street>Strada</street>
+ <style>Stile</style>
+ <subject>Soggetto</subject>
+ <summary>Intestazione</summary>
+ <skin>Skin</skin>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 't' #
+ ###################################################################
+ -->
+ <template>Template</template>
+ <tel>Tel</tel>
+ <title>Titolo</title>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'u' #
+ ###################################################################
+ -->
+ <uri>Uri</uri>
+ <userName>Nome Utente</userName>
+ <update>Aggiorna</update>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'v' #
+ ###################################################################
+ -->
+ <viewPermission>Visualizza il permesso</viewPermission>
+ <!--
+ ###################################################################
+ # EXPRESSION START WITH 'w' #
+ ###################################################################
+ -->
+ <width>Larghezza</width>
+ <website>Sito Web</website>
+ </word>
+
+</bundle>
+
Copied: epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/services_it.xml (from rev 5111, portal/trunk/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/services_it.xml)
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/services_it.xml (rev 0)
+++ epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/services_it.xml 2010-11-25 10:39:50 UTC (rev 5266)
@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright (C) 2009 eXo Platform SAS.
+
+ This is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This software is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this software; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+
+-->
+
+<bundle>
+ <!--
+ #############################################################################
+ # Empty String Validator #
+ #############################################################################
+ #class org.exoplatform.webui.form.Validator.EmptyFieldValidator
+ #{0}=input field name
+ -->
+ <EmptyStringValidator>
+ <msg>
+ <empty-input>Il campo "{0}" \u00E8 richiesto</empty-input>
+ </msg>
+ </EmptyStringValidator>
+ <!--
+ #############################################################################
+ # Email Address Validator #
+ #############################################################################
+ #class org.exoplatform.webui.form.validator.Validator.EmailAddressValidator
+ #{1}=input field name, {0} user input email address
+ -->
+ <EmailAddressValidator>
+ <msg>
+ <invalid-email>Hai inserito "{0}" nel campo {1}, l'indirizzo email non \u00E8 valido</invalid-email>
+ </msg>
+ </EmailAddressValidator>
+ <!--
+ #############################################################################
+ # Number Format Validator #
+ #############################################################################
+ #class org.exoplatform.webui.form.validator.Validator.NumberFormatValidator
+ #{0}=input field name, {1} user input limit access
+ -->
+ <NumberFormatValidator>
+ <msg>
+ <invalid-limitAccess>Hai inserito "{0}" nel campo {1}, l'accesso a questo campo \u00E8 limitato</invalid-limitAccess>
+ <Invalid-input>Il valore inserito nel campo {0}, dovresti inserire un numero</Invalid-input>
+ </msg>
+ </NumberFormatValidator>
+ <!--
+ #{0}=input field name
+ -->
+ <!--
+ #############################################################################
+ # Identifier String Validator #
+ #############################################################################
+ #class org.exoplatform.webui.form.validator.Validator.IdentifierValidator
+ #{0}=input field name
+ -->
+ <IdentifierValidator>
+ <msg>
+ <empty-input>Il campo "{0}" non pu\u00F2 essere vuoto</empty-input>
+ <invalid-char>Sono permessi soltanto caratteri alfabetici, numerici, trattino e underscore per il campo {0}</invalid-char>
+ </msg>
+ </IdentifierValidator>
+ <!--
+ #{0}=input field name
+ -->
+ <!--
+ #############################################################################
+ # Name String Validator #
+ #############################################################################
+ #class org.exoplatform.webui.form.validator.Validator.NameValidator
+ #{0}=input field name
+ -->
+ <NameValidator>
+ <msg>
+ <empty-input>Il campo "{0}" non pu\u00F2 essere vuoto</empty-input>
+ <invalid-char>Sono permessi soltanto caratteri alfabetici, numerici, punto, trattino e underscore per il campo {0}</invalid-char>
+ </msg>
+ </NameValidator>
+ <!--
+ #{0}=input field name
+ -->
+ <!--
+ #############################################################################
+ # Valid User Validator #
+ #############################################################################
+ #class org.exoplatform.faces.user.validator.ValidUserValidator
+ #{0}=input field name, {1} input user name
+ -->
+ <ValidUserValidator>
+ <msg>
+ <empty-input>Inserisci un valore nel campo {0}</empty-input>
+ <invalid-username>Il sistema non trova l'utente {0}</invalid-username>
+ </msg>
+ </ValidUserValidator>
+ <!--
+ #{0}=input field name, {1} input user name
+ -->
+ <!--
+ #############################################################################
+ # Valid User Validator #
+ #############################################################################
+ #class org.exoplatform.faces.user.validator.ValidGroupValidator
+ #{0}=input field name, {1} input group id
+ -->
+ <ValidGroupValidator>
+ <msg>
+ <empty-input>Inserisci un valore nel campo {0}</empty-input>
+ <invalid-group-id>Il sistema non trova il gruppo {0}</invalid-group-id>
+ </msg>
+ </ValidGroupValidator>
+ <!--
+ #{0}=input field name, {1} input group id
+ -->
+ <!--
+ #############################################################################
+ # Valid Permission Validator #
+ #############################################################################
+ -->
+ <PermissionValidator>
+ <msg>
+ <invalid-permission-input>Permesso non valido, il formato del permesso dovrebbe essere membership:/groupId.</invalid-permission-input>
+ <membership-group-not-found>Tipo di Membership o nome del Gruppo non trovato.</membership-group-not-found>
+ </msg>
+ </PermissionValidator>
+ <!--
+ #############################################################################
+ # CheckAdminOrOwnerRoleInterceptor #
+ #############################################################################
+ #class org.exoplatform.faces.core.event.CheckAdminOrOwnerRoleInterceptor
+ #{0}=action name
+ -->
+ <CheckAdminOrOwnerRoleInterceptor>
+ <msg>
+ <owner-or-admin-require>Hai bisogno di loggarti e di avere il ruolo di admin per eseguire l'operazione '{0}'</owner-or-admin-require>
+ </msg>
+ </CheckAdminOrOwnerRoleInterceptor>
+ <!--
+ #############################################################################
+ # CheckOwnerInterceptor #
+ #############################################################################
+ #class org.exoplatform.faces.core.event.CheckOwnerInterceptor
+ #{0}=action name
+ -->
+ <CheckOwnerInterceptor>
+ <msg>
+ <owner-require>Hai bisogno di loggarti per eseguire l'operazione '{0}'</owner-require>
+ </msg>
+ </CheckOwnerInterceptor>
+ <!--
+ #############################################################################
+ # ExoPermissionException #
+ #############################################################################
+ #class org.exoplatform.commons.exception.ExoPermissionException
+ #{0}=require role, {1} action name
+ -->
+ <ExoPermissionException>
+ <msg>
+ <message>Devi avere il ruolo {0} per eseguire l'operazione {1}</message>
+ </msg>
+ </ExoPermissionException>
+ <!--
+ #############################################################################
+ # Message Service properties #
+ #############################################################################
+ #this exception is throw in GroupQueryHandler class
+ -->
+ <OrganizationService>
+ <unique-group-exception>Il nome del gruppo {0} esiste gi\u00E0</unique-group-exception>
+ </OrganizationService>
+ <!--
+ #Throw in org.exoplatform.commons.utils.PageList, {0}=request page parameter, {1}=available pages parameter
+ -->
+ <PageList>
+ <page-out-of-range>Stai provando ad aprire la pagina {0}, ma ci sono soltanto {1} pagine disponibili</page-out-of-range>
+ </PageList>
+ <!--
+ #Throw in exo.services.communication.message.impl.MessageServiceImpl.
+ #{0}=account name, {1}=user name
+ -->
+ <MessageService>
+ <account-not-found>Non posso trovare l'account {0} per l'utente {1}</account-not-found>
+ <invalid-standalone-message-address>Stai usando l'account standalone con \ l'indirizzo {0} non \u00E8 valido. Il sistema si aspetta un indirizzo con il seguente formato: \ ricevente#nomeAccount</invalid-standalone-message-address>
+ <send-message-fail>Non posso mandare il messaggio. Verifica l'indirizzo email \n\ Errore: {0}</send-message-fail>
+ </MessageService>
+ <!--
+ #Throw in exo.services.communication.message.impl.StandaloneProtocolPlugin.
+ #{0}=to address
+ -->
+ <!--
+ #Throw in exo.services.communication.message.impl.MailServiceImpl
+ #{0}=The orginal error message throw by java mail library
+ -->
+ <!--
+ #############################################################################
+ # Forum Service properties #
+ #############################################################################
+ #Throw in org.exoplatform.services.communication.forum.impl.ForumServiceImpl
+ #Throw in org.exoplatform.services.indexing.Searcher
+ #{0}=The orginal error message throw by lucence
+ -->
+ <Searcher>
+ <msg>
+ <search-expression-error><![CDATA[C'\u00E8 un errore nell'espressione inserita.<br />{0}]]></search-expression-error>
+ </msg>
+ </Searcher>
+</bundle>
+
Modified: epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_it.properties
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_it.properties 2010-11-25 09:58:41 UTC (rev 5265)
+++ epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/classes/locale/portal/webui_it.properties 2010-11-25 10:39:50 UTC (rev 5266)
@@ -55,7 +55,14 @@
MandatoryValidatorIterator.msg.empty=La lista "{0}" non pu\u00F2 essere vuota.
+
#############################################################################
+ # Captcha Validator #
+ #############################################################################
+
+CaptchaValidator.msg.Invalid-input=La verifica del testo non risulta corretta
+
+ #############################################################################
# Number Format Validator #
#############################################################################
#class org.exoplatform.webui.form.validator.Validator.NumberFormatValidator
@@ -167,6 +174,7 @@
Asia.label=Asia
Language.left.title=Seleziona una lingua
+
#############################################################################
# Change Skin #
#############################################################################
@@ -215,7 +223,8 @@
#{0}=input field name
NameValidator.msg.Invalid-char=Sono permessi soltanto caratteri alfabetici ,punto, trattino e underscore per il campo "{0}".
-FirstCharacterNameValidator.msg=Il campo "{0}" deve iniziare con un carattere e non deve contenere caratteri speciali.
+FirstCharacterNameValidator.msg=Il campo "{0}" deve iniziare con un carattere.
+FirstAndSpecialCharacterNameValidator.msg=Il campo "{0}" deve iniziare con un carattere e non deve contenere caratteri speciali."
#############################################################################
# Message Info #
@@ -315,6 +324,8 @@
UIPortletForm.Theme.title.SetDefault=Ottieni il Default
UIPortletForm.Icon.title.SetDefault=Ottieni il Default
UIPortletForm.msg.InvalidWidthHeight=Devi inserire un valore in pixel nel campo "{0}".
+UIPortletForm.msg.InvalidPortletTitle=Il titolo della Portlet non \u00E8 valido, non pu\u00F2 contenere < o >.
+UIPortletForm.msg.InvalidPortletDescription=La descrizione della Portlet non \u00E8 valida, non deve contenere < o >.
#############################################################################
# org.exoplatform.portal.component.customization.UIDescription #
@@ -356,6 +367,7 @@
UIPortalForm.tab.label.PortalTemplate=Template del Portale
UIPortalForm.tab.label.PermissionSetting=Preferenze del Permesso
UIPortalForm.tab.label.FactoryId=Factory Id
+UIPortalForm.tab.label.Properties=Propriet\u00E0
PortalTemplate.title=Template del Portale
PortalTemplate.left.title=Anteprima del Template del Portale di esempio
@@ -389,6 +401,9 @@
UIGroupSelector.lable.groupId=Id del Gruppo:
UIGroupSelector.lable.description=Descrizione:
UIGroupSelector.action.done=Fatto
+UIGroupSelector.title.selectGroupMember=Seleziona il Gruppo
+UIGroupSelector.title.selectChildGroup=Seleziona un Gruppo Figlio
+UIGroupSelector.title.addGroupButton=Seleziona questo Gruppo
#############################################################################
# org.exoplatform.portal.component.customization.UIPageSelector#
@@ -470,6 +485,14 @@
UIPageEditor.action.SwitchMode=Cambia la Modalit\u00E0 di Visualizzazione
#############################################################################
+ # org.exoplatform.portal.webui.workspace.UIEditInlineWorkspace #
+ #############################################################################
+
+UIEditInlineWorkspace.confirm.close=Sono state eseguite delle modifiche. Sicuro di voler chiudere senza salvare ?
+UIEditInlineWorkspace.confirm.yes=Si
+UIEditInlineWorkspace.confirm.no=No
+
+ #############################################################################
# org.exoplatform.portal.component.customization.UIPageForm #
#############################################################################
@@ -500,6 +523,8 @@
UIPageNodeForm.msg.SameName=Il nome del nodo esiste gi\u00E0.
UIPageNodeForm.msg.selectPage=Devi selezionare una pagina.
UIPageNodeForm.msg.startDateBeforeEndDate=La data di fine deve essere superiore alla data di inizio.
+UIPageNodeForm.msg.currentDateBeforeStartDate=La data di inizio deve venire dopo la data corrente o essere vuota.
+UIPageNodeForm.msg.currentDateBeforeEndDate=La data di fine deve venire dopo la data corrente o essere vuota.
UIPageNodeForm.action.Save=#{word.save}
UIPageNodeForm.action.Back=#{word.back}
UIPageNodeForm.action.Close=#{word.cancel}
@@ -515,6 +540,7 @@
UIPageNodeForm.label.showPublicationDate=Data e tempo di Pubblicazione:
UIPageNodeForm.label.startPublicationDate=Inizio Data di pubblicazione:
UIPageNodeForm.label.endPublicationDate=Fine data di pubblicazione:
+UIPageNodeForm.label.pageName=Nome:
UIPageNodeForm.Icon.title.SetDefault=Ottieno il Default
UIPageNodeForm.tab.label.PageNodeSetting=Preferenze del Nodo della Pagina
UIPageNodeForm.tab.label.Icon=#{word.icon}
@@ -668,8 +694,6 @@
UIPageNodeWizardPreview.label.accessPermission=Permesso di Accesso
UIPageNodeWizardPreview.label.editPermission=Modifica il Permesso
UIPageNodeWizardPreview.label.pageReference=Collegamento alla Pagina
-UIPageCreateDescription.title.create=Wizard della Pagina di Creazione
-UIPageCreateDescription.title.edit=Wizard della Pagina di Modifica
UIPageTemplateOptions.UIDropDown.title=Configurazioni della Pagina
UIPageTemplateOptions.UIDropDown.label.normalPageConfigs=Configurazioni della Pagina
UIPageTemplateOptions.UIDropDown.label.columnPageConfigs=Configurazioni della Colonna della Pagina
@@ -733,6 +757,7 @@
UIPortalManagement.msg.Invalid-EditLayout-Permission=Non hai i permessi per modificare il layout.
UIPortalManagement.msg.Invalid-EditPage-Permission=Non hai i permessi per modificare la pagina.
+UIPortalManagement.msg.Invalid-CreatePage-Permission=Non hai i permessi per creare la pagina.
UIPortalManagement.title.EDIT=Modifica il Portale corrente
UIPortalManagement.title.BROWSE=Gestisci i Portali
@@ -776,7 +801,6 @@
UIFormAvailablePortlet.label.UIFormTableInputSet=Portlet
-
#############################################################################
# org.exoplatform.portal.component.customization.UIPageEditBar #
#############################################################################
@@ -824,6 +848,7 @@
SitePortal.label=Portale del Sito
ClassicPortal.label=Portale Classico
WebOSPortal.label=Portale WebOS
+BasicPortal.label=Portale di Base
############################################################################
@@ -949,6 +974,30 @@
UIContainer.tooltip.drag=Copia il Contenitore qu\u00EC
############################################################################
+ # org.exoplatform.portal.webui.container.UIColumnContainer #
+ ############################################################################
+
+UIColumnContainer.title.Container=Colonna
+UIColumnContainer.title.DragControlArea=Seleziona l'area per muovere la colonna in un altro posto
+UIColumnContainer.deleteColumnContainer=Sicuro di voler cancellare la colonna ?
+UIColumnContainer.tooltip.insertLeft=Inserisci la colonna di sinistra
+UIColumnContainer.tooltip.insertRight=Inserisci la colonna di destra
+UIColumnContainer.tooltip.insertColumn=Inserisci una nuova colonna
+UIColumnContainer.tooltip.closeContainer=Cancella la Colonna
+UIColumnContainer.tooltip.editContainer=Modifica la Colonna
+UIColumnContainer.label.insertLeft=Inserisci a sinistra
+UIColumnContainer.label.insertRight=Inserisci a destra
+
+ ############################################################################
+ # org.exoplatform.portal.webui.container.UITableColumnContainer#
+ ############################################################################
+
+UITableColumnContainer.title.Container=Contenitore della Tabella
+UITableColumnContainer.title.DragControlArea=Seleziona quest'area per copiare la tabella
+UITableColumnContainer.tooltip.closeContainer=Cancella la Tabella
+UITableColumnContainer.tooltip.editContainer=Modifica la Tabella
+
+ ############################################################################
# org.exoplatform.portal.component.view.UIPage #
############################################################################
@@ -1036,6 +1085,13 @@
UIGroupManagement.msg.DeleteMandatory=Non puoi eliminare il gruppo perch\u00E8 \u00E8 (esso o i suoi figli) obbligatorio.
###############################################################################
+ # org.exoplatform.portal.webui.navigation.UINavigationNodeSelector #
+ ###############################################################################
+UINavigationNodeSelector.msg.systemnode-delete=Non \u00E8 possibile cancellare un nodo di sistema
+UINavigationNodeSelector.msg.systemnode-move=Non \u00E8 possibile tagliare un nodo di sistema
+
+
+ ###############################################################################
# org.exoplatform.portal.webui.component.customization.UIEditCurentPage #
###############################################################################
@@ -1105,6 +1161,7 @@
UIAccountProfiles.label.lastName=Cognome :
UIAccountProfiles.label.email=Email :
UIAccountProfiles.msg.update.success=Le informazioni dell'account sono state aggiornate.
+UIAccountProfiles.msg.NotExistingAccount=Il tuo account non esiste, probabilmente cancellato da un'altro utente!
UIAccountChangePass.action.Save=Salva
UIAccountChangePass.action.Reset=Azzera
UIAccountChangePass.label.currentpass=Password Corrente :
@@ -1114,6 +1171,7 @@
UIAccountChangePass.msg.password-is-not-match=Nuova Password e Conferma Nuova Password non coincidono.
UIAccountChangePass.msg.currentpassword-is-not-match=La Password Corrente non \u00E8 corretta.
+
################################################################################
# UIDropDownControl # tungnd
################################################################################
@@ -1215,6 +1273,7 @@
UIDashboard.msg.addGadget=Trascina qu\u00EC il tuo gadget.
UIDashboard.msg.notUrl=L'url non \u00E8 valido. Inserisci l'url corretto del file xml del gadget o di un feed RSS.
UIDashboard.msg.ApplicationNotExisted=L'applicazione non esiste o non pu\u00F2 essere cancellata.
+UIDashboard.msg.StaleData=Ci sono alcuni vecchi dati nella tua dashboard, Stanno per essere aggiornati
################################################################################
# org.exoplatform.webui.organization.account.UIUserSelector
@@ -1301,6 +1360,7 @@
# org.exoplatform.navigation.webui.component.UISiteManagement #
############################################################################
+UISiteManagement.msg.delete-default-portal=Il portale di Default non pu\u00F2 essere cancellato
UISiteManagement.msg.Invalid-deletePermission=L'utente non ha i permessi per cancellare il portale
UISiteManagement.msg.portal-not-exist=Il portale non esiste o non pu\u00F2 essere cancellato
UISiteManagement.msg.Invalid-editPermission=L'utente non ha i permessi per modificare il portale
@@ -1334,7 +1394,8 @@
UIAddGroupNavigation.Action.Add=Aggiungi Navigazione
UIAddGroupNavigation.Label.NoPermission=L'utente non ha i permessi per aggiungere la navigazione
-UIAddGroupNavigation.header.Group=Group
+UIAddGroupNavigation.Label.eachGroupHasAlreadyNavigation=Tutti i gruppi dispongono ora della navigazione
+UIAddGroupNavigation.header.Group=Gruppo
############################################################################
# org.exoplatform.portal.webui.application.UIGadget #
@@ -1349,5 +1410,17 @@
UIListPermissionSelectorPopup.title.ListPermissionSelector=Seleziona il Permesso
+UIUserToolBarDashboard.page.ClickAndType=Clicca e inserisci il nome della pagina
+
+ #######################################################################
+ # org.exoplatform.webui.core.UIConfirmation #
+ #######################################################################
+
+UIConfirmation.title.exoMessages=Confirm message
+UIConfirmation.Close=Close
+
+
+ ### Locales
Locale.zh_CN=Cinese semplificato
Locale.zh_TW=Cinese tradizionale
+
14 years, 1 month
gatein SVN: r5265 - epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/conf/common.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-11-25 04:58:41 -0500 (Thu, 25 Nov 2010)
New Revision: 5265
Modified:
epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/conf/common/common-configuration.xml
Log:
JBEPP-642: Gadget proxy can serve as anonymous proxy
Change default settings
Modified: epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/conf/common/common-configuration.xml
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/conf/common/common-configuration.xml 2010-11-25 08:31:24 UTC (rev 5264)
+++ epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/conf/common/common-configuration.xml 2010-11-25 09:58:41 UTC (rev 5265)
@@ -170,12 +170,11 @@
<values-param>
<!-- The white list -->
<name>white-list</name>
- <!-- We accept anything not black listed -->
- <value>localhost</value>
+ <value></value>
</values-param>
<values-param>
<name>black-list</name>
- <value>*</value>
+ <value></value>
</values-param>
</init-params>
</component>
14 years, 1 month
gatein SVN: r5264 - portal/trunk/testsuite/selenium-snifftests/src/suite/org/exoplatform/portal/selenium.
by do-not-reply@jboss.org
Author: hangnguyen
Date: 2010-11-25 03:31:24 -0500 (Thu, 25 Nov 2010)
New Revision: 5264
Modified:
portal/trunk/testsuite/selenium-snifftests/src/suite/org/exoplatform/portal/selenium/Test_PRL_03_01_001_CheckShowingGroupManagementForm.html
Log:
TestVN-356:Clean and Improve existing Selenium for GateIn
Modified: portal/trunk/testsuite/selenium-snifftests/src/suite/org/exoplatform/portal/selenium/Test_PRL_03_01_001_CheckShowingGroupManagementForm.html
===================================================================
--- portal/trunk/testsuite/selenium-snifftests/src/suite/org/exoplatform/portal/selenium/Test_PRL_03_01_001_CheckShowingGroupManagementForm.html 2010-11-25 08:30:07 UTC (rev 5263)
+++ portal/trunk/testsuite/selenium-snifftests/src/suite/org/exoplatform/portal/selenium/Test_PRL_03_01_001_CheckShowingGroupManagementForm.html 2010-11-25 08:31:24 UTC (rev 5264)
@@ -123,13 +123,13 @@
</tr>
<tr>
<td>waitForTextPresent</td>
- <td>//div[@id='UIOrganizationPortlet']/div[2]/div[2]/div[1]/div[2]/div[1]/div[2]/div/div/div/div[3]/div[1]/a</td>
+ <td>Organization</td>
<td></td>
</tr>
<tr>
- <td>verifyText</td>
- <td>//div[@id='UIOrganizationPortlet']/div[2]/div[2]/div[1]/div[2]/div[1]/div[2]/div/div/div/div[3]/div[1]/a</td>
+ <td>verifyTextPresent</td>
<td>Organization</td>
+ <td></td>
</tr>
<tr>
<td>echo</td>
@@ -183,12 +183,12 @@
</tr>
<tr>
<td>waitForTextPresent</td>
- <td>link=Customers</td>
+ <td>Customers</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
- <td>link=Customers</td>
+ <td>Customers</td>
<td></td>
</tr>
<tr>
@@ -207,12 +207,12 @@
<td></td>
</tr>
<tr>
- <td>waitForTextPresent</td>
+ <td>waitForElementPresent</td>
<td>//div[1]/div[2]/div/div/div/div[1]/a</td>
<td></td>
</tr>
<tr>
- <td>verifyTextPresent</td>
+ <td>verifyElementPresent</td>
<td>//div[1]/div[2]/div/div/div/div[1]/a</td>
<td></td>
</tr>
14 years, 1 month
gatein SVN: r5263 - portal/trunk/testsuite/testdefinitions.
by do-not-reply@jboss.org
Author: hangnguyen
Date: 2010-11-25 03:30:07 -0500 (Thu, 25 Nov 2010)
New Revision: 5263
Modified:
portal/trunk/testsuite/testdefinitions/GateIn_v3.2.x_MainFunctions_TestDefinition.ods
Log:
TESTVN-2077 - Update testcase for GateIn 3.2.x
Modified: portal/trunk/testsuite/testdefinitions/GateIn_v3.2.x_MainFunctions_TestDefinition.ods
===================================================================
(Binary files differ)
14 years, 1 month
gatein SVN: r5262 - epp/portal/branches/EPP_5_1_Branch/component/identity/src/main/java/org/exoplatform/services/organization/idm.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-11-25 03:28:40 -0500 (Thu, 25 Nov 2010)
New Revision: 5262
Modified:
epp/portal/branches/EPP_5_1_Branch/component/identity/src/main/java/org/exoplatform/services/organization/idm/GroupDAOImpl.java
Log:
JBEPP-635: StackOverflowError if LDAP groups contain circular cross references
Modified: epp/portal/branches/EPP_5_1_Branch/component/identity/src/main/java/org/exoplatform/services/organization/idm/GroupDAOImpl.java
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/component/identity/src/main/java/org/exoplatform/services/organization/idm/GroupDAOImpl.java 2010-11-25 08:20:16 UTC (rev 5261)
+++ epp/portal/branches/EPP_5_1_Branch/component/identity/src/main/java/org/exoplatform/services/organization/idm/GroupDAOImpl.java 2010-11-25 08:28:40 UTC (rev 5262)
@@ -57,6 +57,8 @@
private PicketLinkIDMOrganizationServiceImpl orgService;
+ private static final String CYCLIC_ID = "org.gatein.portal.identity.LOOPED_GROUP_ID";
+
public GroupDAOImpl(PicketLinkIDMOrganizationServiceImpl orgService, PicketLinkIDMService service)
{
service_ = service;
@@ -557,7 +559,7 @@
}
// Resolve full ID
- String id = getGroupId(jbidGroup);
+ String id = getGroupId(jbidGroup, null);
exoGroup.setId(id);
@@ -575,13 +577,27 @@
return exoGroup;
}
- private String getGroupId(org.picketlink.idm.api.Group jbidGroup) throws Exception
+ /**
+ * Calculates group id by checking all parents up to the root group or group type mapping from the configuration.
+ *
+ * @param jbidGroup
+ * @param processed
+ * @return
+ * @throws Exception
+ */
+ private String getGroupId(org.picketlink.idm.api.Group jbidGroup,
+ List<org.picketlink.idm.api.Group> processed) throws Exception
{
if (jbidGroup.equals(getRootGroup()))
{
return "";
}
+ if (processed == null)
+ {
+ processed = new LinkedList<org.picketlink.idm.api.Group>();
+ }
+
Collection<org.picketlink.idm.api.Group> parents = new HashSet();
String gtnGroupName = getGtnGroupName(jbidGroup.getName());
@@ -596,7 +612,13 @@
log.info("Identity operation error: ", e);
}
-
+ // Check if there is cross reference so we ended in a loop and break the process.
+ if (parents.size() > 0 && processed.contains(parents.iterator().next()))
+ {
+ processed.remove(processed.size() - 1);
+ return CYCLIC_ID;
+ }
+ // If there are no parents or more then one parent
if (parents.size() == 0 || parents.size() > 1)
{
@@ -606,34 +628,64 @@
"defined by type mappings or just place it under root /");
}
+ return obtainMappedId(jbidGroup, gtnGroupName);
- String id = orgService.getConfiguration().getParentId(jbidGroup.getGroupType());
+ }
+ processed.add(jbidGroup);
+ String parentGroupId = getGroupId(((org.picketlink.idm.api.Group)parents.iterator().next()),processed);
-
- if (id != null && orgService.getConfiguration().isForceMembershipOfMappedTypes())
+ // Check if loop occured
+ if (parentGroupId.equals(CYCLIC_ID))
+ {
+ // if there are still processed groups in the list we are in nested call so remove last one and go back
+ if (processed.size() > 0)
{
- if (id.endsWith("/*"))
- {
- id = id.substring(0, id.length() - 2);
- }
-
- return id + "/" + gtnGroupName;
+ processed.remove(processed.size() - 1);
+ return parentGroupId;
}
+ // if we finally reached the first group from the looped ones then just return id calculated from
+ // mappings or connect it to the root
+ else
+ {
+ return obtainMappedId(jbidGroup, gtnGroupName);
+ }
+ }
- // All groups not connected to the root should be just below the root
- return "/" + gtnGroupName;
+ return parentGroupId + "/" + gtnGroupName;
- //TODO: make it configurable
- // throw new IllegalStateException("Group present that is not connected to the root: " + jbidGroup.getName());
+ }
+ /**
+ * Obtain group id based on groupType mapping from configuration or if this fails just place it under root /
+ *
+ * @param jbidGroup
+ * @param gtnGroupName
+ * @return
+ */
+ private String obtainMappedId(org.picketlink.idm.api.Group jbidGroup, String gtnGroupName)
+ {
+ String id = orgService.getConfiguration().getParentId(jbidGroup.getGroupType());
+
+
+
+ if (id != null && orgService.getConfiguration().isForceMembershipOfMappedTypes())
+ {
+ if (id.endsWith("/*"))
+ {
+ id = id.substring(0, id.length() - 2);
+ }
+
+ return id + "/" + gtnGroupName;
}
- String parentGroupId = getGroupId(((org.picketlink.idm.api.Group)parents.iterator().next()));
- return parentGroupId + "/" + gtnGroupName;
+ // All groups not connected to the root should be just below the root
+ return "/" + gtnGroupName;
+ //TODO: make it configurable
+ // throw new IllegalStateException("Group present that is not connected to the root: " + jbidGroup.getName());
}
private org.picketlink.idm.api.Group persistGroup(Group exoGroup) throws Exception
14 years, 1 month
gatein SVN: r5261 - epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm.
by do-not-reply@jboss.org
Author: thomas.heute(a)jboss.com
Date: 2010-11-25 03:20:16 -0500 (Thu, 25 Nov 2010)
New Revision: 5261
Modified:
epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/jboss-cache-cluster.xml
Log:
JBEPP-661: Use expiration eviction policy for picket link
Modified: epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/jboss-cache-cluster.xml
===================================================================
--- epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/jboss-cache-cluster.xml 2010-11-25 08:11:57 UTC (rev 5260)
+++ epp/portal/branches/EPP_5_1_Branch/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/jboss-cache-cluster.xml 2010-11-25 08:20:16 UTC (rev 5261)
@@ -8,10 +8,11 @@
<!-- Eviction configuration -->
<eviction wakeUpInterval="5000">
- <default algorithmClass="org.jboss.cache.eviction.LRUAlgorithm"
+ <default algorithmClass="org.jboss.cache.eviction.ExpirationAlgorithm"
eventQueueSize="1000000">
- <property name="maxNodes" value="1000000" />
+ <property name="maxNodes" value="100000" />
<property name="timeToLive" value="120000" />
+ <property name="warnNoExpirationKey" value="false" />
</default>
</eviction>
14 years, 1 month