manifoldcf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rh...@apache.org
Subject svn commit: r1791420 [1/2] - in /manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/manifoldcf/ src/main/java/org/apache/manifoldcf/au...
Date Fri, 14 Apr 2017 21:26:16 GMT
Author: rharo
Date: Fri Apr 14 21:26:16 2017
New Revision: 1791420

URL: http://svn.apache.org/viewvc?rev=1791420&view=rev
Log:
CONNECTORS-1290: Upgrading Branch to New Connector version using official Nuxeo Java Client

Added:
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/nuxeo/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/nuxeo/Messages.java   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/nuxeo/NuxeoAuthorityConnector.java   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/Messages.java   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/NuxeoConfiguration.java   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/NuxeoRepositoryConnector.java   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/exception/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/exception/NuxeoException.java   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/model/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/model/Attachment.java   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/model/DocumentManifold.java   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nuxeo/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nuxeo/common_en_US.properties   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nuxeo/common_es_ES.properties   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/nuxeo/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/nuxeo/common_en_US.properties   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/nuxeo/common_es_ES.properties   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/authorities/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/authorities/authorities/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/authorities/authorities/nuxeo/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/authorities/authorities/nuxeo/editConfiguration_conf.js   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/authorities/authorities/nuxeo/editConfiguration_conf_server.html   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/authorities/authorities/nuxeo/viewConfiguration_conf.html   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/crawler/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/nuxeo/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/nuxeo/editConfiguration_conf.js   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/nuxeo/editConfiguration_conf_server.html   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/nuxeo/editSpecification_conf.js   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/nuxeo/editSpecification_confDocuments.html   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/nuxeo/editSpecification_confDocumentsType.html   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/nuxeo/editSpecification_confDomains.html   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/nuxeo/viewConfiguration_conf.html   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/nuxeo/viewSpecification_conf.html   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/test/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/test/java/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/test/java/org/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/test/java/org/apache/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/test/java/org/apache/manifoldcf/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/test/java/org/apache/manifoldcf/authorities/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/test/java/org/apache/manifoldcf/authorities/nuxeo/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/test/java/org/apache/manifoldcf/authorities/nuxeo/tests/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/test/java/org/apache/manifoldcf/authorities/nuxeo/tests/NuxeoAuthorityTest.java   (with props)
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/test/java/org/apache/manifoldcf/crawler/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/nuxeo/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/nuxeo/tests/
    manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/nuxeo/tests/NuxeoConnectorTest.java   (with props)

Added: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/nuxeo/Messages.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/nuxeo/Messages.java?rev=1791420&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/nuxeo/Messages.java (added)
+++ manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/nuxeo/Messages.java Fri Apr 14 21:26:16 2017
@@ -0,0 +1,104 @@
+package org.apache.manifoldcf.authorities.authorities.nuxeo;
+
+import java.util.Locale;
+import java.util.Map;
+
+import org.apache.manifoldcf.core.interfaces.IHTTPOutput;
+import org.apache.manifoldcf.core.interfaces.ManifoldCFException;
+
+public class Messages extends org.apache.manifoldcf.ui.i18n.Messages {
+
+	public static final String DEFAULT_BUNDLE_NAME = "org.apache.manifoldcf.authorities.authorities.nuxeo.common";
+	public static final String DEFAULT_PATH_NAME = "org.apache.manifoldcf.authorities.authorities.nuxeo";
+
+	/** Constructor - do no instantiate
+	  */
+	  protected Messages()
+	  {
+	  }
+
+	public static String getString(Locale locale, String messageKey) {
+		return getString(DEFAULT_BUNDLE_NAME, locale, messageKey, null);
+	}
+
+	public static String getAttributeString(Locale locale, String messageKey) {
+		return getAttributeString(DEFAULT_BUNDLE_NAME, locale, messageKey, null);
+	}
+
+	public static String getBodyString(Locale locale, String messageKey) {
+		return getBodyString(DEFAULT_BUNDLE_NAME, locale, messageKey, null);
+	}
+
+	public static String getAttributeJavascriptString(Locale locale, String messageKey) {
+		return getAttributeJavascriptString(DEFAULT_BUNDLE_NAME, locale, messageKey, null);
+	}
+
+	public static String getBodyJavascriptString(Locale locale, String messageKey) {
+		return getBodyJavascriptString(DEFAULT_BUNDLE_NAME, locale, messageKey, null);
+	}
+
+	public static String getString(Locale locale, String messageKey, Object[] args) {
+		return getString(DEFAULT_BUNDLE_NAME, locale, messageKey, args);
+	}
+
+	public static String getAttributeString(Locale locale, String messageKey, Object[] args) {
+		return getAttributeString(DEFAULT_BUNDLE_NAME, locale, messageKey, args);
+	}
+
+	public static String getBodyString(Locale locale, String messageKey, Object[] args) {
+		return getBodyString(DEFAULT_BUNDLE_NAME, locale, messageKey, args);
+	}
+
+	public static String getAttributeJavascriptString(Locale locale, String messageKey, Object[] args) {
+		return getAttributeJavascriptString(DEFAULT_BUNDLE_NAME, locale, messageKey, args);
+	}
+
+	public static String getBodyJavascriptString(Locale locale, String messageKey, Object[] args) {
+		return getBodyJavascriptString(DEFAULT_BUNDLE_NAME, locale, messageKey, args);
+	}
+
+	// More general methods which allow bundlenames and class loaders to be
+	// specified.
+
+	public static String getString(String bundleName, Locale locale, String messageKey, Object[] args) {
+		return getString(Messages.class, bundleName, locale, messageKey, args);
+	}
+
+	public static String getAttributeString(String bundleName, Locale locale, String messageKey, Object[] args) {
+		return getAttributeString(Messages.class, bundleName, locale, messageKey, args);
+	}
+
+	public static String getBodyString(String bundleName, Locale locale, String messageKey, Object[] args) {
+		return getBodyString(Messages.class, bundleName, locale, messageKey, args);
+	}
+
+	public static String getAttributeJavascriptString(String bundleName, Locale locale, String messageKey,
+			Object[] args) {
+		return getAttributeJavascriptString(Messages.class, bundleName, locale, messageKey, args);
+	}
+
+	public static String getBodyJavascriptString(String bundleName, Locale locale, String messageKey, Object[] args) {
+		return getBodyJavascriptString(Messages.class, bundleName, locale, messageKey, args);
+	}
+
+	// Resource output
+
+	public static void outputResource(IHTTPOutput output, Locale locale, String resourceKey,
+			Map<String, String> substitutionParameters, boolean mapToUpperCase) throws ManifoldCFException {
+		outputResource(output, Messages.class, DEFAULT_PATH_NAME, locale, resourceKey, substitutionParameters,
+				mapToUpperCase);
+	}
+
+	public static void outputResourceWithVelocity(IHTTPOutput output, Locale locale, String resourceKey,
+			Map<String, String> substitutionParameters, boolean mapToUpperCase) throws ManifoldCFException {
+		outputResourceWithVelocity(output, Messages.class, DEFAULT_BUNDLE_NAME, DEFAULT_PATH_NAME, locale, resourceKey,
+				substitutionParameters, mapToUpperCase);
+	}
+
+	public static void outputResourceWithVelocity(IHTTPOutput output, Locale locale, String resourceKey,
+			Map<String, Object> contextObjects) throws ManifoldCFException {
+		outputResourceWithVelocity(output, Messages.class, DEFAULT_BUNDLE_NAME, DEFAULT_PATH_NAME, locale, resourceKey,
+				contextObjects);
+	}
+
+}

Propchange: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/nuxeo/Messages.java
------------------------------------------------------------------------------
    svn:executable = *

Added: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/nuxeo/NuxeoAuthorityConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/nuxeo/NuxeoAuthorityConnector.java?rev=1791420&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/nuxeo/NuxeoAuthorityConnector.java (added)
+++ manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/nuxeo/NuxeoAuthorityConnector.java Fri Apr 14 21:26:16 2017
@@ -0,0 +1,340 @@
+package org.apache.manifoldcf.authorities.authorities.nuxeo;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.manifoldcf.authorities.authorities.BaseAuthorityConnector;
+import org.apache.manifoldcf.authorities.interfaces.AuthorizationResponse;
+import org.apache.manifoldcf.core.interfaces.ConfigParams;
+import org.apache.manifoldcf.core.interfaces.IHTTPOutput;
+import org.apache.manifoldcf.core.interfaces.IPasswordMapperActivity;
+import org.apache.manifoldcf.core.interfaces.IPostParameters;
+import org.apache.manifoldcf.core.interfaces.IThreadContext;
+import org.apache.manifoldcf.core.interfaces.ManifoldCFException;
+import org.apache.manifoldcf.crawler.connectors.nuxeo.NuxeoConfiguration;
+import org.nuxeo.client.api.NuxeoClient;
+import org.nuxeo.client.api.objects.user.User;
+import org.nuxeo.client.internals.spi.NuxeoClientException;
+
+/**
+ *
+ * Nuxeo Authority Connector class
+ * 
+ * @author David Arroyo Escobar <arroyoescobardavid@gmail.com>
+ *
+ */
+public class NuxeoAuthorityConnector extends BaseAuthorityConnector {
+
+	// Configuration tabs
+	private static final String CONF_SERVER_TAB_PROPERTY = "NuxeoAuthorityConnector.Server";
+
+	// Prefix for nuxeo configuration and specification parameters
+	private static final String PARAMETER_PREFIX = "nuxeo_";
+
+	// Templates
+	/**
+	 * Javascript to check the configuration parameters
+	 */
+	private static final String EDIT_CONFIG_HEADER_FORWARD = "editConfiguration_conf.js";
+
+	/**
+	 * Server edit tab template
+	 */
+	private static final String EDIT_CONFIG_FORWARD_SERVER = "editConfiguration_conf_server.html";
+
+	/**
+	 * Server view tab template
+	 */
+	private static final String VIEW_CONFIG_FORWARD = "viewConfiguration_conf.html";
+
+	/* Nuxeo instance parameters */
+	protected String protocol = null;
+	protected String host = null;
+	protected String port = null;
+	protected String path = null;
+	protected String username = null;
+	protected String password = null;
+
+	protected NuxeoClient nuxeoClient = null;
+
+	// Constructor
+	public NuxeoAuthorityConnector() {
+		super();
+	}
+
+	public void setNuxeoClient(NuxeoClient nuxeoClient) {
+		this.nuxeoClient = nuxeoClient;
+	}
+
+	// Close the connection.
+	public void disconenct() throws ManifoldCFException {
+		if (nuxeoClient != null)
+			nuxeoClient = null;
+
+		protocol = null;
+		host = null;
+		port = null;
+		path = null;
+		username = null;
+		password = null;
+	}
+
+	/** CONNECTION **/
+
+	// Makes connection to server
+	@Override
+	public void connect(ConfigParams configParams) {
+		super.connect(configParams);
+
+		protocol = params.getParameter(NuxeoConfiguration.Server.PROTOCOL);
+		host = params.getParameter(NuxeoConfiguration.Server.HOST);
+		port = params.getParameter(NuxeoConfiguration.Server.PORT);
+		path = params.getParameter(NuxeoConfiguration.Server.PATH);
+		username = params.getParameter(NuxeoConfiguration.Server.USERNAME);
+		password = params.getObfuscatedParameter(NuxeoConfiguration.Server.PASSWORD);
+
+		try {
+			initNuxeoClient();
+		} catch (ManifoldCFException manifoldCFException) {
+			manifoldCFException.printStackTrace();
+		}
+	}
+
+	/**
+	 * Check the connection
+	 */
+	@Override
+	public String check() throws ManifoldCFException {
+		try {
+			if (!isConnected()) {
+				initNuxeoClient();
+			}
+
+			Boolean result = null;
+			try {
+				getGroupsByUser("Administrator");
+				result = true;
+			} catch (Exception ex) {
+				result = false;
+			}
+
+			if (result)
+				return super.check();
+			else
+				throw new ManifoldCFException("Nuxeo instance could not be reached");
+
+		} catch (ManifoldCFException manifoldCFException) {
+			return "Connection failed: " + manifoldCFException.getMessage();
+		} catch (Exception e) {
+			return "Connection failed: " + e.getMessage();
+		}
+	}
+
+	/**
+	 * Initialize Nuxeo client using the configured parameters.
+	 * 
+	 * @throws ManifoldCFException
+	 */
+	private void initNuxeoClient() throws ManifoldCFException {
+		if (nuxeoClient == null) {
+
+			if (StringUtils.isEmpty(protocol)) {
+				throw new ManifoldCFException(
+						"Parameter " + NuxeoConfiguration.Server.PROTOCOL + " required but not set");
+			}
+
+			if (StringUtils.isEmpty(host)) {
+				throw new ManifoldCFException("Parameter " + NuxeoConfiguration.Server.HOST + " required but not set");
+			}
+
+			String url = getUrl();
+			nuxeoClient = new NuxeoClient(url, username, password);
+
+		}
+
+	}
+
+	/**
+	 * Formatter URL
+	 * 
+	 * @throws ManifoldCFException
+	 */
+	public String getUrl() throws ManifoldCFException {
+		int portInt;
+		if (port != null && port.length() > 0) {
+			try {
+				portInt = Integer.parseInt(port);
+			} catch (NumberFormatException formatException) {
+				throw new ManifoldCFException("Bad number: " + formatException.getMessage(), formatException);
+			}
+		} else {
+			if (protocol.toLowerCase(Locale.ROOT).equals("http")) {
+				portInt = 80;
+			} else {
+				portInt = 443;
+			}
+		}
+
+		String url = protocol + "://" + host + ":" + portInt + "/" + path;
+
+		return url;
+	}
+
+	/**
+	 * @return true if the connector instance is connected.
+	 */
+	@Override
+	public boolean isConnected() {
+		return nuxeoClient != null;
+	}
+
+	/** VIEW CONFIGURATION **/
+	@Override
+	public void viewConfiguration(IThreadContext threadContext, IHTTPOutput out, Locale locale, ConfigParams parameters)
+			throws ManifoldCFException, IOException {
+
+		Map<String, String> paramMap = new HashMap<String, String>();
+
+		fillInServerConfigurationMap(paramMap, out, parameters);
+
+		Messages.outputResourceWithVelocity(out, locale, VIEW_CONFIG_FORWARD, paramMap, true);
+	}
+
+	private static void fillInServerConfigurationMap(Map<String, String> serverMap, IPasswordMapperActivity mapper,
+			ConfigParams parameters) {
+
+		String nuxeoProtocol = parameters.getParameter(NuxeoConfiguration.Server.PROTOCOL);
+		String nuxeoHost = parameters.getParameter(NuxeoConfiguration.Server.HOST);
+		String nuxeoPort = parameters.getParameter(NuxeoConfiguration.Server.PORT);
+		String nuxeoPath = parameters.getParameter(NuxeoConfiguration.Server.PATH);
+		String nuxeoUsername = parameters.getParameter(NuxeoConfiguration.Server.USERNAME);
+		String nuxeoPassword = parameters.getParameter(NuxeoConfiguration.Server.PASSWORD);
+
+		if (nuxeoProtocol == null)
+			nuxeoProtocol = NuxeoConfiguration.Server.PROTOCOL_DEFAULT_VALUE;
+		if (nuxeoHost == null)
+			nuxeoHost = NuxeoConfiguration.Server.HOST_DEFAULT_VALUE;
+		if (nuxeoPort == null)
+			nuxeoPort = NuxeoConfiguration.Server.PORT_DEFAULT_VALUE;
+		if (nuxeoPath == null)
+			nuxeoPath = NuxeoConfiguration.Server.PATH_DEFAULT_VALUE;
+		if (nuxeoUsername == null)
+			nuxeoUsername = NuxeoConfiguration.Server.USERNAME_DEFAULT_VALUE;
+		if (nuxeoPassword == null)
+			nuxeoPassword = NuxeoConfiguration.Server.PASSWORD_DEFAULT_VALUE;
+		else
+			nuxeoPassword = mapper.mapKeyToPassword(nuxeoPassword);
+
+		serverMap.put(PARAMETER_PREFIX + NuxeoConfiguration.Server.PROTOCOL, nuxeoProtocol);
+		serverMap.put(PARAMETER_PREFIX + NuxeoConfiguration.Server.HOST, nuxeoHost);
+		serverMap.put(PARAMETER_PREFIX + NuxeoConfiguration.Server.PORT, nuxeoPort);
+		serverMap.put(PARAMETER_PREFIX + NuxeoConfiguration.Server.PATH, nuxeoPath);
+		serverMap.put(PARAMETER_PREFIX + NuxeoConfiguration.Server.USERNAME, nuxeoUsername);
+		serverMap.put(PARAMETER_PREFIX + NuxeoConfiguration.Server.PASSWORD, nuxeoPassword);
+	}
+
+	/** CONFIGURATION CONNECTOR **/
+	@Override
+	public void outputConfigurationHeader(IThreadContext threadContext, IHTTPOutput out, Locale locale,
+			ConfigParams parameters, List<String> tabsArray) throws ManifoldCFException, IOException {
+
+		// Server tab
+		tabsArray.add(Messages.getString(locale, CONF_SERVER_TAB_PROPERTY));
+
+		Map<String, String> paramMap = new HashMap<String, String>();
+
+		// Fill in the parameters form each tab
+		fillInServerConfigurationMap(paramMap, out, parameters);
+
+		Messages.outputResourceWithVelocity(out, locale, EDIT_CONFIG_HEADER_FORWARD, paramMap, true);
+	}
+
+	@Override
+	public void outputConfigurationBody(IThreadContext threadContext, IHTTPOutput out, Locale locale,
+			ConfigParams parameters, String tabName) throws ManifoldCFException, IOException {
+
+		// Call the Velocity tempaltes for each tab
+		Map<String, String> paramMap = new HashMap<String, String>();
+
+		// Set the tab name
+		paramMap.put("TabName", tabName);
+
+		// Fill in the parameters
+		fillInServerConfigurationMap(paramMap, out, parameters);
+
+		// Server tab
+		Messages.outputResourceWithVelocity(out, locale, EDIT_CONFIG_FORWARD_SERVER, paramMap, true);
+	}
+
+	@Override
+	public String processConfigurationPost(IThreadContext thredContext, IPostParameters variableContext,
+			ConfigParams parameters) {
+
+		String nuxeoProtocol = variableContext.getParameter(PARAMETER_PREFIX + NuxeoConfiguration.Server.PROTOCOL);
+		if (nuxeoProtocol != null)
+			parameters.setParameter(NuxeoConfiguration.Server.PROTOCOL, nuxeoProtocol);
+
+		String nuxeoHost = variableContext.getParameter(PARAMETER_PREFIX + NuxeoConfiguration.Server.HOST);
+		if (nuxeoHost != null)
+			parameters.setParameter(NuxeoConfiguration.Server.HOST, nuxeoHost);
+
+		String nuxeoPort = variableContext.getParameter(PARAMETER_PREFIX + NuxeoConfiguration.Server.PORT);
+		if (nuxeoPort != null)
+			parameters.setParameter(NuxeoConfiguration.Server.PORT, nuxeoPort);
+
+		String nuxeoPath = variableContext.getParameter(PARAMETER_PREFIX + NuxeoConfiguration.Server.PATH);
+		if (nuxeoPath != null)
+			parameters.setParameter(NuxeoConfiguration.Server.PATH, nuxeoPath);
+
+		String nuxeoUsername = variableContext.getParameter(PARAMETER_PREFIX + NuxeoConfiguration.Server.USERNAME);
+		if (nuxeoUsername != null)
+			parameters.setParameter(NuxeoConfiguration.Server.USERNAME, nuxeoUsername);
+
+		String nuxeoPassword = variableContext.getParameter(PARAMETER_PREFIX + NuxeoConfiguration.Server.PASSWORD);
+		if (nuxeoPassword != null)
+			parameters.setObfuscatedParameter(NuxeoConfiguration.Server.PASSWORD,
+					variableContext.mapKeyToPassword(nuxeoPassword));
+
+		return null; // It returns null if the configuration has been successful
+	}
+
+	/** AUTHORITY **/
+	@Override
+	public AuthorizationResponse getDefaultAuthorizationResponse(String userName) {
+		return RESPONSE_UNREACHABLE;
+	}
+
+	@Override
+	public AuthorizationResponse getAuthorizationResponse(String username) {
+		try {
+			List<String> authorities = getGroupsByUser(username);
+			if (authorities == null || authorities.isEmpty()) {
+				return RESPONSE_USERNOTFOUND;
+			} else {
+				return new AuthorizationResponse(authorities.toArray(new String[0]), AuthorizationResponse.RESPONSE_OK);
+			}
+
+		} catch (NuxeoClientException e) {
+			return RESPONSE_USERNOTFOUND;
+		} catch (Exception e) {
+			return RESPONSE_UNREACHABLE;
+		}
+	}
+
+	public List<String> getGroupsByUser(String username) {
+
+		List<String> authorities = null;
+
+		User user = nuxeoClient.getUserManager().fetchUser(username);
+		if (user != null) {
+			authorities = user.getGroups();
+			authorities.add(user.getUserName());
+		}
+
+		return authorities;
+	}
+}

Propchange: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/nuxeo/NuxeoAuthorityConnector.java
------------------------------------------------------------------------------
    svn:executable = *

Added: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/Messages.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/Messages.java?rev=1791420&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/Messages.java (added)
+++ manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/Messages.java Fri Apr 14 21:26:16 2017
@@ -0,0 +1,105 @@
+package org.apache.manifoldcf.crawler.connectors.nuxeo;
+
+import java.util.Locale;
+import java.util.Map;
+
+import org.apache.manifoldcf.core.interfaces.IHTTPOutput;
+import org.apache.manifoldcf.core.interfaces.ManifoldCFException;
+
+public class Messages extends org.apache.manifoldcf.ui.i18n.Messages {
+
+	public static final String DEFAULT_BUNDLE_NAME = "org.apache.manifoldcf.crawler.connectors.nuxeo.common";
+	public static final String DEFAULT_PATH_NAME = "org.apache.manifoldcf.crawler.connectors.nuxeo";
+
+	/** Constructor - do no instantiate
+	 * @
+	  */
+	  protected Messages()
+	  {
+	  }
+
+	public static String getString(Locale locale, String messageKey) {
+		return getString(DEFAULT_BUNDLE_NAME, locale, messageKey, null);
+	}
+
+	public static String getAttributeString(Locale locale, String messageKey) {
+		return getAttributeString(DEFAULT_BUNDLE_NAME, locale, messageKey, null);
+	}
+
+	public static String getBodyString(Locale locale, String messageKey) {
+		return getBodyString(DEFAULT_BUNDLE_NAME, locale, messageKey, null);
+	}
+
+	public static String getAttributeJavascriptString(Locale locale, String messageKey) {
+		return getAttributeJavascriptString(DEFAULT_BUNDLE_NAME, locale, messageKey, null);
+	}
+
+	public static String getBodyJavascriptString(Locale locale, String messageKey) {
+		return getBodyJavascriptString(DEFAULT_BUNDLE_NAME, locale, messageKey, null);
+	}
+
+	public static String getString(Locale locale, String messageKey, Object[] args) {
+		return getString(DEFAULT_BUNDLE_NAME, locale, messageKey, args);
+	}
+
+	public static String getAttributeString(Locale locale, String messageKey, Object[] args) {
+		return getAttributeString(DEFAULT_BUNDLE_NAME, locale, messageKey, args);
+	}
+
+	public static String getBodyString(Locale locale, String messageKey, Object[] args) {
+		return getBodyString(DEFAULT_BUNDLE_NAME, locale, messageKey, args);
+	}
+
+	public static String getAttributeJavascriptString(Locale locale, String messageKey, Object[] args) {
+		return getAttributeJavascriptString(DEFAULT_BUNDLE_NAME, locale, messageKey, args);
+	}
+
+	public static String getBodyJavascriptString(Locale locale, String messageKey, Object[] args) {
+		return getBodyJavascriptString(DEFAULT_BUNDLE_NAME, locale, messageKey, args);
+	}
+
+	// More general methods which allow bundlenames and class loaders to be
+	// specified.
+
+	public static String getString(String bundleName, Locale locale, String messageKey, Object[] args) {
+		return getString(Messages.class, bundleName, locale, messageKey, args);
+	}
+
+	public static String getAttributeString(String bundleName, Locale locale, String messageKey, Object[] args) {
+		return getAttributeString(Messages.class, bundleName, locale, messageKey, args);
+	}
+
+	public static String getBodyString(String bundleName, Locale locale, String messageKey, Object[] args) {
+		return getBodyString(Messages.class, bundleName, locale, messageKey, args);
+	}
+
+	public static String getAttributeJavascriptString(String bundleName, Locale locale, String messageKey,
+			Object[] args) {
+		return getAttributeJavascriptString(Messages.class, bundleName, locale, messageKey, args);
+	}
+
+	public static String getBodyJavascriptString(String bundleName, Locale locale, String messageKey, Object[] args) {
+		return getBodyJavascriptString(Messages.class, bundleName, locale, messageKey, args);
+	}
+
+	// Resource output
+
+	public static void outputResource(IHTTPOutput output, Locale locale, String resourceKey,
+			Map<String, String> substitutionParameters, boolean mapToUpperCase) throws ManifoldCFException {
+		outputResource(output, Messages.class, DEFAULT_PATH_NAME, locale, resourceKey, substitutionParameters,
+				mapToUpperCase);
+	}
+
+	public static void outputResourceWithVelocity(IHTTPOutput output, Locale locale, String resourceKey,
+			Map<String, String> substitutionParameters, boolean mapToUpperCase) throws ManifoldCFException {
+		outputResourceWithVelocity(output, Messages.class, DEFAULT_BUNDLE_NAME, DEFAULT_PATH_NAME, locale, resourceKey,
+				substitutionParameters, mapToUpperCase);
+	}
+
+	public static void outputResourceWithVelocity(IHTTPOutput output, Locale locale, String resourceKey,
+			Map<String, Object> contextObjects) throws ManifoldCFException {
+		outputResourceWithVelocity(output, Messages.class, DEFAULT_BUNDLE_NAME, DEFAULT_PATH_NAME, locale, resourceKey,
+				contextObjects);
+	}
+
+}

Propchange: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/Messages.java
------------------------------------------------------------------------------
    svn:executable = *

Added: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/NuxeoConfiguration.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/NuxeoConfiguration.java?rev=1791420&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/NuxeoConfiguration.java (added)
+++ manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/NuxeoConfiguration.java Fri Apr 14 21:26:16 2017
@@ -0,0 +1,45 @@
+package org.apache.manifoldcf.crawler.connectors.nuxeo;
+
+/**
+ * 
+ * NuxeoConfiguration class
+ * 
+ * Class to keep the server configuration and specification paramenters.
+ * 
+ * @author David Arroyo Escobar <arroyoescobardavid@gmail.com>
+ *
+ */
+public class NuxeoConfiguration {
+
+	public static interface Server {
+
+		public static final String USERNAME = "username";
+		public static final String PASSWORD = "password";
+		public static final String PROTOCOL = "protocol";
+		public static final String HOST = "host";
+		public static final String PORT = "port";
+		public static final String PATH = "path";
+
+		public static final String PROTOCOL_DEFAULT_VALUE = "http";
+		public static final String HOST_DEFAULT_VALUE = "";
+		public static final String PORT_DEFAULT_VALUE = "8080";
+		public static final String PATH_DEFAULT_VALUE = "/nuxeo";
+		public static final String USERNAME_DEFAULT_VALUE = "";
+		public static final String PASSWORD_DEFAULT_VALUE = "";
+
+	}
+
+	public static interface Specification {
+
+		public static final String DOMAINS = "domains";
+		public static final String DOMAIN = "domain";
+		public static final String DOMAIN_KEY = "key";
+		public static final String DOCUMENTS = "documents";
+		public static final String PROCESS_TAGS = "process_tags";
+		public static final String PROCESS_ATTACHMENTS = "process_attachments";
+		public static final String DOCUMENTS_TYPE = "documentsType";
+		public static final String DOCUMENT_TYPE = "documentType";
+		public static final String DOCUMENT_TYPE_KEY = "key";
+
+	}
+}

Propchange: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/NuxeoConfiguration.java
------------------------------------------------------------------------------
    svn:executable = *

Added: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/NuxeoRepositoryConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/NuxeoRepositoryConnector.java?rev=1791420&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/NuxeoRepositoryConnector.java (added)
+++ manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/NuxeoRepositoryConnector.java Fri Apr 14 21:26:16 2017
@@ -0,0 +1,894 @@
+package org.apache.manifoldcf.crawler.connectors.nuxeo;
+
+import java.io.IOException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.TimeZone;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.manifoldcf.agents.interfaces.RepositoryDocument;
+import org.apache.manifoldcf.agents.interfaces.ServiceInterruption;
+import org.apache.manifoldcf.core.interfaces.ConfigParams;
+import org.apache.manifoldcf.core.interfaces.IHTTPOutput;
+import org.apache.manifoldcf.core.interfaces.IPasswordMapperActivity;
+import org.apache.manifoldcf.core.interfaces.IPostParameters;
+import org.apache.manifoldcf.core.interfaces.IThreadContext;
+import org.apache.manifoldcf.core.interfaces.ManifoldCFException;
+import org.apache.manifoldcf.core.interfaces.Specification;
+import org.apache.manifoldcf.core.interfaces.SpecificationNode;
+import org.apache.manifoldcf.crawler.connectors.BaseRepositoryConnector;
+import org.apache.manifoldcf.crawler.connectors.nuxeo.model.Attachment;
+import org.apache.manifoldcf.crawler.connectors.nuxeo.model.DocumentManifold;
+import org.apache.manifoldcf.crawler.interfaces.IExistingVersions;
+import org.apache.manifoldcf.crawler.interfaces.IProcessActivity;
+import org.apache.manifoldcf.crawler.interfaces.IRepositoryConnector;
+import org.apache.manifoldcf.crawler.interfaces.ISeedingActivity;
+import org.nuxeo.client.api.NuxeoClient;
+import org.nuxeo.client.api.objects.Document;
+import org.nuxeo.client.api.objects.Documents;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+/**
+ * 
+ * Nuxeo Repository Connector class
+ * 
+ * @author David Arroyo Escobar <arroyoescobardavid@gmail.com>
+ *
+ */
+public class NuxeoRepositoryConnector extends BaseRepositoryConnector {
+
+	private static final String URI_DOCUMENT = "SELECT * FROM Document";
+
+	protected final static String ACTIVITY_READ = "read document";
+
+	// Configuration tabs
+	private static final String NUXEO_SERVER_TAB_PROPERTY = "NuxeoRepositoryConnector.Server";
+
+	// Specification tabs
+	private static final String CONF_DOMAINS_TAB_PROPERTY = "NuxeoRepositoryConnector.Domains";
+	private static final String CONF_DOCUMENTS_TYPE_TAB_PROPERTY = "NuxeoRepositoryConnector.DocumentsType";
+	private static final String CONF_DOCUMENT_PROPERTY = "NuxeoRepositoryConnector.Documents";
+
+	// Prefix for nuxeo configuration and specification parameters
+	private static final String PARAMETER_PREFIX = "nuxeo_";
+
+	// Templates for Nuxeo configuration
+	/**
+	 * Javascript to check the configuration parameters
+	 */
+	private static final String EDIT_CONFIG_HEADER_FORWARD = "editConfiguration_conf.js";
+
+	/**
+	 * Server edit tab template
+	 */
+	private static final String EDIT_CONFIG_FORWARD_SERVER = "editConfiguration_conf_server.html";
+
+	/**
+	 * Server view tab template
+	 */
+	private static final String VIEW_CONFIG_FORWARD = "viewConfiguration_conf.html";
+
+	// Templates for Nuxeo specification
+	/**
+	 * Forward to the javascript to check the specification parameters for the
+	 * job
+	 */
+	private static final String EDIT_SPEC_HEADER_FORWARD = "editSpecification_conf.js";
+
+	/**
+	 * Forward to the template to edit domains for the job
+	 */
+	private static final String EDIT_SPEC_FORWARD_CONF_DOMAINS = "editSpecification_confDomains.html";
+
+	/**
+	 * Forward to the template to edit documents type for the job
+	 */
+	private static final String EDIT_SPEC_FORWARD_CONF_DOCUMENTS_TYPE = "editSpecification_confDocumentsType.html";
+
+	/**
+	 * Forward to the template to edit document properties for the job
+	 */
+	private static final String EDIT_SPEC_FORWARD_CONF_DOCUMENTS = "editSpecification_confDocuments.html";
+
+	/**
+	 * Forward to the template to view the specification parameters for the job
+	 */
+	private static final String VIEW_SPEC_FORWARD = "viewSpecification_conf.html";
+
+	protected long lastSessionFetch = -1L;
+	protected static final long timeToRelease = 300000L;
+
+	private Logger logger = LoggerFactory.getLogger(NuxeoRepositoryConnector.class);
+
+	/* Nuxeo instance parameters */
+	protected String protocol = null;
+	protected String host = null;
+	protected String port = null;
+	protected String path = null;
+	protected String username = null;
+	protected String password = null;
+
+	protected NuxeoClient nuxeoClient = null;
+
+	// Constructor
+	public NuxeoRepositoryConnector() {
+		super();
+	}
+
+	public void setNuxeoClient(NuxeoClient nuxeoClient) {
+		this.nuxeoClient = nuxeoClient;
+	}
+
+	@Override
+	public String[] getActivitiesList() {
+		return new String[] { ACTIVITY_READ };
+	}
+
+	@Override
+	public String[] getBinNames(String documentIdenfitier) {
+		return new String[] { host };
+	}
+
+	/** CONFIGURATION CONNECTOR **/
+	@Override
+	public void outputConfigurationHeader(IThreadContext threadContext, IHTTPOutput out, Locale locale,
+			ConfigParams parameters, List<String> tabsArray) throws ManifoldCFException, IOException {
+
+		// Server tab
+		tabsArray.add(Messages.getString(locale, NUXEO_SERVER_TAB_PROPERTY));
+
+		Map<String, String> paramMap = new HashMap<String, String>();
+
+		// Fill in the parameters form each tab
+		fillInServerConfigurationMap(paramMap, out, parameters);
+
+		Messages.outputResourceWithVelocity(out, locale, EDIT_CONFIG_HEADER_FORWARD, paramMap, true);
+	}
+
+	@Override
+	public void outputConfigurationBody(IThreadContext threadContext, IHTTPOutput out, Locale locale,
+			ConfigParams parameters, String tabName) throws ManifoldCFException, IOException {
+
+		// Call the Velocity tempaltes for each tab
+		Map<String, String> paramMap = new HashMap<String, String>();
+
+		// Set the tab name
+		paramMap.put("TabName", tabName);
+
+		// Fill in the parameters
+		fillInServerConfigurationMap(paramMap, out, parameters);
+
+		// Server tab
+		Messages.outputResourceWithVelocity(out, locale, EDIT_CONFIG_FORWARD_SERVER, paramMap, true);
+
+	}
+
+	private static void fillInServerConfigurationMap(Map<String, String> serverMap, IPasswordMapperActivity mapper,
+			ConfigParams parameters) {
+
+		String nuxeoProtocol = parameters.getParameter(NuxeoConfiguration.Server.PROTOCOL);
+		String nuxeoHost = parameters.getParameter(NuxeoConfiguration.Server.HOST);
+		String nuxeoPort = parameters.getParameter(NuxeoConfiguration.Server.PORT);
+		String nuxeoPath = parameters.getParameter(NuxeoConfiguration.Server.PATH);
+		String nuxeoUsername = parameters.getParameter(NuxeoConfiguration.Server.USERNAME);
+		String nuxeoPassword = parameters.getParameter(NuxeoConfiguration.Server.PASSWORD);
+
+		if (nuxeoProtocol == null)
+			nuxeoProtocol = NuxeoConfiguration.Server.PROTOCOL_DEFAULT_VALUE;
+		if (nuxeoHost == null)
+			nuxeoHost = NuxeoConfiguration.Server.HOST_DEFAULT_VALUE;
+		if (nuxeoPort == null)
+			nuxeoPort = NuxeoConfiguration.Server.PORT_DEFAULT_VALUE;
+		if (nuxeoPath == null)
+			nuxeoPath = NuxeoConfiguration.Server.PATH_DEFAULT_VALUE;
+		if (nuxeoUsername == null)
+			nuxeoUsername = NuxeoConfiguration.Server.USERNAME_DEFAULT_VALUE;
+		if (nuxeoPassword == null)
+			nuxeoPassword = NuxeoConfiguration.Server.PASSWORD_DEFAULT_VALUE;
+		else
+			nuxeoPassword = mapper.mapKeyToPassword(nuxeoPassword);
+
+		serverMap.put(PARAMETER_PREFIX + NuxeoConfiguration.Server.PROTOCOL, nuxeoProtocol);
+		serverMap.put(PARAMETER_PREFIX + NuxeoConfiguration.Server.HOST, nuxeoHost);
+		serverMap.put(PARAMETER_PREFIX + NuxeoConfiguration.Server.PORT, nuxeoPort);
+		serverMap.put(PARAMETER_PREFIX + NuxeoConfiguration.Server.PATH, nuxeoPath);
+		serverMap.put(PARAMETER_PREFIX + NuxeoConfiguration.Server.USERNAME, nuxeoUsername);
+		serverMap.put(PARAMETER_PREFIX + NuxeoConfiguration.Server.PASSWORD, nuxeoPassword);
+
+	}
+
+	@Override
+	public String processConfigurationPost(IThreadContext thredContext, IPostParameters variableContext,
+			ConfigParams parameters) {
+
+		String nuxeoProtocol = variableContext.getParameter(PARAMETER_PREFIX + NuxeoConfiguration.Server.PROTOCOL);
+		if (nuxeoProtocol != null)
+			parameters.setParameter(NuxeoConfiguration.Server.PROTOCOL, nuxeoProtocol);
+
+		String nuxeoHost = variableContext.getParameter(PARAMETER_PREFIX + NuxeoConfiguration.Server.HOST);
+		if (nuxeoHost != null)
+			parameters.setParameter(NuxeoConfiguration.Server.HOST, nuxeoHost);
+
+		String nuxeoPort = variableContext.getParameter(PARAMETER_PREFIX + NuxeoConfiguration.Server.PORT);
+		if (nuxeoPort != null)
+			parameters.setParameter(NuxeoConfiguration.Server.PORT, nuxeoPort);
+
+		String nuxeoPath = variableContext.getParameter(PARAMETER_PREFIX + NuxeoConfiguration.Server.PATH);
+		if (nuxeoPath != null)
+			parameters.setParameter(NuxeoConfiguration.Server.PATH, nuxeoPath);
+
+		String nuxeoUsername = variableContext.getParameter(PARAMETER_PREFIX + NuxeoConfiguration.Server.USERNAME);
+		if (nuxeoUsername != null)
+			parameters.setParameter(NuxeoConfiguration.Server.USERNAME, nuxeoUsername);
+
+		String nuxeoPassword = variableContext.getParameter(PARAMETER_PREFIX + NuxeoConfiguration.Server.PASSWORD);
+		if (nuxeoPassword != null)
+			parameters.setObfuscatedParameter(NuxeoConfiguration.Server.PASSWORD,
+					variableContext.mapKeyToPassword(nuxeoPassword));
+
+		return null;
+	}
+
+	@Override
+	public void viewConfiguration(IThreadContext threadContext, IHTTPOutput out, Locale locale, ConfigParams parameters)
+			throws ManifoldCFException, IOException {
+
+		Map<String, String> paramMap = new HashMap<String, String>();
+
+		fillInServerConfigurationMap(paramMap, out, parameters);
+
+		Messages.outputResourceWithVelocity(out, locale, VIEW_CONFIG_FORWARD, paramMap, true);
+	}
+
+	/** CONNECTION **/
+	@Override
+	public void connect(ConfigParams configParams) {
+		super.connect(configParams);
+
+		protocol = params.getParameter(NuxeoConfiguration.Server.PROTOCOL);
+		host = params.getParameter(NuxeoConfiguration.Server.HOST);
+		port = params.getParameter(NuxeoConfiguration.Server.PORT);
+		path = params.getParameter(NuxeoConfiguration.Server.PATH);
+		username = params.getParameter(NuxeoConfiguration.Server.USERNAME);
+		password = params.getObfuscatedParameter(NuxeoConfiguration.Server.PASSWORD);
+
+		try {
+			initNuxeoClient();
+		} catch (ManifoldCFException manifoldCFException) {
+			logger.debug("Not possible to initialize Nuxeo client. Reason: {}", manifoldCFException.getMessage());
+			manifoldCFException.printStackTrace();
+		}
+	}
+
+	// Check the connection
+	@Override
+	public String check() throws ManifoldCFException {
+		try {
+			if (!isConnected()) {
+				initNuxeoClient();
+			}
+
+			Boolean result = true;
+			try {
+				nuxeoClient.repository().getDocumentRoot();
+			} catch (Exception ex) {
+				result = false;
+			}
+
+			if (result)
+				return super.check();
+			else
+				throw new ManifoldCFException("Nuxeo instance could not be reached");
+
+		} catch (ManifoldCFException manifoldCFException) {
+			return "Connection failed: " + manifoldCFException.getMessage();
+		} catch (Exception e) {
+			return "Connection failed: " + e.getMessage();
+		}
+	}
+
+	/**
+	 * Initialize Nuxeo client using the configured parameters.
+	 * 
+	 * @throws ManifoldCFException
+	 */
+	private void initNuxeoClient() throws ManifoldCFException {
+		if (nuxeoClient == null) {
+
+			if (StringUtils.isEmpty(protocol)) {
+				throw new ManifoldCFException(
+						"Parameter " + NuxeoConfiguration.Server.PROTOCOL + " required but not set");
+			}
+
+			if (StringUtils.isEmpty(host)) {
+				throw new ManifoldCFException("Parameter " + NuxeoConfiguration.Server.HOST + " required but not set");
+			}
+
+			String url = getUrl();
+			nuxeoClient = new NuxeoClient(url, username, password);
+
+			lastSessionFetch = System.currentTimeMillis();
+
+		}
+
+	}
+
+	/**
+	 * Formatter URL
+	 * 
+	 * @throws ManifoldCFException
+	 */
+	public String getUrl() throws ManifoldCFException {
+		int portInt;
+		if (port != null && port.length() > 0) {
+			try {
+				portInt = Integer.parseInt(port);
+			} catch (NumberFormatException formatException) {
+				throw new ManifoldCFException("Bad number: " + formatException.getMessage(), formatException);
+			}
+		} else {
+			if (protocol.toLowerCase(Locale.ROOT).equals("http")) {
+				portInt = 80;
+			} else {
+				portInt = 443;
+			}
+		}
+
+		String url = protocol + "://" + host + ":" + portInt + "/" + path;
+
+		return url;
+	}
+
+	@Override
+	public boolean isConnected() {
+		return nuxeoClient != null;
+	}
+
+	@Override
+	public void poll() throws ManifoldCFException {
+		if (lastSessionFetch == -1L) {
+			return;
+		}
+
+		long currentTime = System.currentTimeMillis();
+
+		if (currentTime > lastSessionFetch + timeToRelease) {
+			nuxeoClient.shutdown();
+			nuxeoClient = null;
+			lastSessionFetch = -1;
+		}
+	}
+
+	/** SEEDING **/
+	@Override
+	public String addSeedDocuments(ISeedingActivity activities, Specification spec, String lastSeedVersion,
+			long seedTime, int jobMode) throws ManifoldCFException, ServiceInterruption {
+
+		if (!isConnected())
+			initNuxeoClient();
+
+		try {
+
+			int lastStart = 0;
+			int defaultSize = 50;
+			Boolean isLast = true;
+			NuxeoSpecification ns = NuxeoSpecification.from(spec);
+			List<String> domains = ns.getDomains();
+			List<String> documentsType = ns.getDocumentsType();
+
+			do {
+
+				Documents docs = getDocsByDate(nuxeoClient, lastSeedVersion, domains, documentsType,
+						defaultSize, lastStart);
+
+				for (Document doc : docs.getDocuments()) {
+					activities.addSeedDocument(doc.getUid());
+				}
+
+				lastStart++;
+				isLast = docs.getIsNextPageAvailable();
+
+			} while (isLast);
+
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
+			sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
+
+			lastSeedVersion = sdf.format(new Date());
+
+			return lastSeedVersion;
+		} catch (Exception exception) {
+			long interruptionRetryTime = 5L * 60L * 1000L;
+			String message = "Server appears down during seeding: " + exception.getMessage();
+			throw new ServiceInterruption(message, exception, System.currentTimeMillis() + interruptionRetryTime, -1L,
+					3, true);
+		}
+	}
+	
+	/**
+	 * 
+	 * @param nuxeoClient
+	 * @param date
+	 * @param domains
+	 * @param documentsType
+	 * @param limit
+	 * @param start
+	 * @return Documents
+	 */
+	public Documents getDocsByDate(NuxeoClient nuxeoClient, String date, List<String> domains,
+			List<String> documentsType, int limit, int start) {
+
+		String query = "";
+
+		if (date == null || date.isEmpty()) {
+			SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
+			date = DATE_FORMAT.format(new Date(0));
+		}
+		query = "dc:modified > '" + date + "'";
+
+		if (!domains.isEmpty()) {
+			Iterator<String> itdom = domains.iterator();
+
+			query = String.format(" %s AND ( ecm:path STARTSWITH '/%s'", query, itdom.next());
+
+			while (itdom.hasNext()) {
+				query = String.format("%s OR ecm:path STARTSWITH '/%s'", query, itdom.next());
+			}
+
+			query = String.format("%s )", query);
+		}
+
+		if (!documentsType.isEmpty()) {
+			Iterator<String> itDocTy = documentsType.iterator();
+
+			query = String.format(" %s AND ( ecm:primaryType = '%s'", query, itDocTy.next());
+
+			while (itDocTy.hasNext()) {
+				query = String.format("%s OR ecm:primaryType = '%s'", query, itDocTy.next());
+			}
+
+			query = String.format("%s )", query);
+		}
+
+		query = String.format(URI_DOCUMENT + " where %s ", query);
+
+		nuxeoClient.header("X-NXDocumentProperties", "*");
+		Documents docs = nuxeoClient.repository().query(query, String.valueOf(limit), String.valueOf(start), null, null,
+				null, null);
+
+		return docs;
+	}
+
+	/** PROCESS DOCUMENTS **/
+
+	@Override
+	public void processDocuments(String[] documentsIdentifieres, IExistingVersions statuses, Specification spec,
+			IProcessActivity activities, int jobMode, boolean usesDefaultAuthority)
+			throws ManifoldCFException, ServiceInterruption {
+
+		for (int i = 0; i < documentsIdentifieres.length; i++) {
+
+			String documentId = documentsIdentifieres[i];
+			String version = statuses.getIndexedVersionString(documentId);
+
+			long startTime = System.currentTimeMillis();
+			ProcessResult pResult = null;
+			boolean doLog = true;
+
+			try {
+
+				if (!isConnected()) {
+					initNuxeoClient();
+				}
+
+				pResult = processDocument(documentId, spec, version, activities, doLog,
+						Maps.<String, String> newHashMap());
+			} catch (Exception exception) {
+				long interruptionRetryTime = 5L * 60L * 1000L;
+				String message = "Server appears down during seeding: " + exception.getMessage();
+				throw new ServiceInterruption(message, exception, System.currentTimeMillis() + interruptionRetryTime,
+						-1L, 3, true);
+			} finally {
+				if (doLog)
+					if (pResult != null && pResult.errorCode != null && !pResult.errorCode.isEmpty())
+						activities.recordActivity(new Long(startTime), ACTIVITY_READ, pResult.fileSize, documentId,
+								pResult.errorCode, pResult.errorDecription, null);
+			}
+
+		}
+	}
+
+	/**
+	 * @param documentId
+	 * @param version
+	 * @param activities
+	 * @param doLog
+	 * @param newHashMap
+	 * @return
+	 */
+
+	private ProcessResult processDocument(String documentId, Specification spec, String version,
+			IProcessActivity activities, boolean doLog, HashMap<String, String> extraProperties)
+			throws ManifoldCFException, ServiceInterruption, IOException {
+
+		DocumentManifold doc = new DocumentManifold(nuxeoClient.repository().fetchDocumentById(documentId));
+
+		return processDocumentInternal(doc, documentId, spec, version, activities, doLog, extraProperties);
+	}
+
+	/**
+	 * @param doc
+	 * @param documentId
+	 * @param version
+	 * @param activities
+	 * @param doLog
+	 * @param extraProperties
+	 * @return
+	 */
+
+	private ProcessResult processDocumentInternal(DocumentManifold doc, String manifoldDocumentIdentifier,
+			Specification spec, String version, IProcessActivity activities, boolean doLog,
+			HashMap<String, String> extraProperties) throws ManifoldCFException, ServiceInterruption, IOException {
+
+		RepositoryDocument rd = new RepositoryDocument();
+		NuxeoSpecification ns = NuxeoSpecification.from(spec);
+
+		String lastModified = doc.getDocument().getLastModified();
+		Date lastModifiedDate = null;
+
+		if (lastModified != null) {
+			DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
+			try {
+				lastModifiedDate = formatter.parse(lastModified);
+			} catch (Exception ex) {
+				lastModifiedDate = new Date(0);
+			}
+		}
+
+		int lenght = doc.getLenght();
+		if (doc.getDocument().getState() != null
+				&& doc.getDocument().getState().equalsIgnoreCase(DocumentManifold.DELETED)) {
+			activities.deleteDocument(manifoldDocumentIdentifier);
+			return new ProcessResult(lenght, "DELETED", "");
+		}
+
+		if (!activities.checkDocumentNeedsReindexing(manifoldDocumentIdentifier, lastModified)) {
+			return new ProcessResult(lenght, "RETAINED", "");
+		}
+
+		if (doc.getDocument().getUid() == null) {
+			activities.deleteDocument(manifoldDocumentIdentifier);
+			return new ProcessResult(lenght, "DELETED", "");
+		}
+
+		// Add respository document information
+		rd.setMimeType(doc.getMimeType());
+		rd.setModifiedDate(lastModifiedDate);
+		rd.setIndexingDate(new Date());
+
+		// Adding Document metadata
+		Map<String, Object> docMetadata = doc.getMetadata();
+
+		for (Entry<String, Object> entry : docMetadata.entrySet()) {
+			if (entry.getValue() instanceof List) {
+				List<?> list = (List<?>) entry.getValue();
+				rd.addField(entry.getKey(), list.toArray(new String[list.size()]));
+			} else {
+				rd.addField(entry.getKey(), entry.getValue().toString());
+			}
+		}
+
+		if (ns.isProcessTags())
+			rd.addField("Tags", doc.getTags(nuxeoClient));
+
+		String documentUri = null;
+		try {
+			documentUri = getUrl() + "/nxpath/" + doc.getDocument().getRepositoryName() + doc.getDocument().getPath()
+					+ "@view_documents";
+		} catch (Exception ex) {
+			documentUri = doc.getDocument().getUid();
+		}
+
+		// Set repository ACLs
+		String[] permissions = doc.getPermissions(nuxeoClient);
+		rd.setSecurityACL(RepositoryDocument.SECURITY_TYPE_DOCUMENT, permissions);
+		rd.setSecurityDenyACL(RepositoryDocument.SECURITY_TYPE_DOCUMENT, new String[] { GLOBAL_DENY_TOKEN });
+		rd.setBinary(doc.getContent(), lenght);
+
+		// Action
+		activities.ingestDocumentWithException(manifoldDocumentIdentifier, lastModified, documentUri, rd);
+
+		if (ns.isProcessAttachments()) {
+			for (Attachment att : doc.getAttachments(nuxeoClient)) {
+				RepositoryDocument att_rd = new RepositoryDocument();
+				String attDocumentUri = att.getUrl();
+
+				att_rd.setMimeType(att.getMime_type());
+				att_rd.setBinary(att.getData(), att.getLength());
+
+				if (lastModified != null)
+					att_rd.setModifiedDate(lastModifiedDate);
+				att_rd.setIndexingDate(new Date());
+
+				att_rd.addField(Attachment.ATT_KEY_NAME, att.getName());
+				att_rd.addField(Attachment.ATT_KEY_LENGTH, String.valueOf(att.getLength()));
+				att_rd.addField(Attachment.ATT_KEY_DIGEST, att.getDigest());
+				att_rd.addField(Attachment.ATT_KEY_DIGEST_ALGORITHM, att.getDigestAlgorithm());
+				att_rd.addField(Attachment.ATT_KEY_ENCODING, att.getEncoding());
+				// Set repository ACLs
+				att_rd.setSecurityACL(RepositoryDocument.SECURITY_TYPE_DOCUMENT, permissions);
+				att_rd.setSecurityDenyACL(RepositoryDocument.SECURITY_TYPE_DOCUMENT,
+						new String[] { GLOBAL_DENY_TOKEN });
+
+				activities.ingestDocumentWithException(manifoldDocumentIdentifier, attDocumentUri, lastModified,
+						attDocumentUri, att_rd);
+			}
+		}
+
+		return new ProcessResult(lenght, "OK", StringUtils.EMPTY);
+	}
+
+	private class ProcessResult {
+		private long fileSize;
+		private String errorCode;
+		private String errorDecription;
+
+		private ProcessResult(long fileSize, String errorCode, String errorDescription) {
+			this.fileSize = fileSize;
+			this.errorCode = errorCode;
+			this.errorDecription = errorDescription;
+		}
+
+	}
+
+	@Override
+	public int getConnectorModel() {
+		return IRepositoryConnector.MODEL_ADD_CHANGE_DELETE;
+	}
+
+	/** Specifications **/
+
+	@Override
+	public void viewSpecification(IHTTPOutput out, Locale locale, Specification spec, int connectionSequenceNumber)
+			throws ManifoldCFException, IOException {
+
+		Map<String, Object> paramMap = new HashMap<String, Object>();
+		paramMap.put("SeqNum", Integer.toString(connectionSequenceNumber));
+
+		NuxeoSpecification ns = NuxeoSpecification.from(spec);
+
+		paramMap.put(NuxeoConfiguration.Specification.DOMAINS.toUpperCase(), ns.getDomains());
+		paramMap.put(NuxeoConfiguration.Specification.DOCUMENTS_TYPE.toUpperCase(), ns.documentsType);
+		paramMap.put(NuxeoConfiguration.Specification.PROCESS_TAGS.toUpperCase(), ns.isProcessTags().toString());
+		paramMap.put(NuxeoConfiguration.Specification.PROCESS_ATTACHMENTS.toUpperCase(),
+				ns.isProcessAttachments().toString());
+
+		Messages.outputResourceWithVelocity(out, locale, VIEW_SPEC_FORWARD, paramMap);
+	}
+
+	@Override
+	public String processSpecificationPost(IPostParameters variableContext, Locale locale, Specification ds,
+			int connectionSequenceNumber) throws ManifoldCFException {
+
+		String seqPrefix = "s" + connectionSequenceNumber + "_";
+
+		// DOMAINS
+		String xc = variableContext.getParameter(seqPrefix + "domainscount");
+
+		if (xc != null) {
+			// Delete all preconfigured domains
+			int i = 0;
+			while (i < ds.getChildCount()) {
+				SpecificationNode sn = ds.getChild(i);
+				if (sn.getType().equals(NuxeoConfiguration.Specification.DOMAINS)) {
+					ds.removeChild(i);
+				} else {
+					i++;
+				}
+			}
+
+			SpecificationNode domains = new SpecificationNode(NuxeoConfiguration.Specification.DOMAINS);
+			ds.addChild(ds.getChildCount(), domains);
+			int domainsCount = Integer.parseInt(xc);
+			i = 0;
+			while (i < domainsCount) {
+				String domainDescription = "_" + Integer.toString(i);
+				String domainOpName = seqPrefix + "domainop" + domainDescription;
+				xc = variableContext.getParameter(domainOpName);
+				if (xc != null && xc.equals("Delete")) {
+					i++;
+					continue;
+				}
+
+				String domainKey = variableContext.getParameter(seqPrefix + "domain" + domainDescription);
+				SpecificationNode node = new SpecificationNode(NuxeoConfiguration.Specification.DOMAIN);
+				node.setAttribute(NuxeoConfiguration.Specification.DOMAIN_KEY, domainKey);
+				domains.addChild(domains.getChildCount(), node);
+				i++;
+			}
+
+			String op = variableContext.getParameter(seqPrefix + "domainop");
+			if (op != null && op.equals("Add")) {
+				String domainSpec = variableContext.getParameter(seqPrefix + "domain");
+				SpecificationNode node = new SpecificationNode(NuxeoConfiguration.Specification.DOMAIN);
+				node.setAttribute(NuxeoConfiguration.Specification.DOMAIN_KEY, domainSpec);
+				domains.addChild(domains.getChildCount(), node);
+			}
+		}
+
+		// TYPE OF DOCUMENTS
+		String xt = variableContext.getParameter(seqPrefix + "documentsTypecount");
+
+		if (xt != null) {
+			// Delete all preconfigured type of documents
+			int i = 0;
+			while (i < ds.getChildCount()) {
+				SpecificationNode sn = ds.getChild(i);
+				if (sn.getType().equals(NuxeoConfiguration.Specification.DOCUMENTS_TYPE)) {
+					ds.removeChild(i);
+				} else {
+					i++;
+				}
+			}
+
+			SpecificationNode documentsType = new SpecificationNode(NuxeoConfiguration.Specification.DOCUMENTS_TYPE);
+			ds.addChild(ds.getChildCount(), documentsType);
+			int documentsTypeCount = Integer.parseInt(xt);
+			i = 0;
+			while (i < documentsTypeCount) {
+				String documentTypeDescription = "_" + Integer.toString(i);
+				String documentTypeOpName = seqPrefix + "documentTypeop" + documentTypeDescription;
+				xt = variableContext.getParameter(documentTypeOpName);
+				if (xt != null && xt.equals("Delete")) {
+					i++;
+					continue;
+				}
+
+				String documentTypeKey = variableContext
+						.getParameter(seqPrefix + "documentType" + documentTypeDescription);
+				SpecificationNode node = new SpecificationNode(NuxeoConfiguration.Specification.DOCUMENT_TYPE);
+				node.setAttribute(NuxeoConfiguration.Specification.DOCUMENT_TYPE_KEY, documentTypeKey);
+				documentsType.addChild(documentsType.getChildCount(), node);
+				i++;
+			}
+
+			String op = variableContext.getParameter(seqPrefix + "documentTypeop");
+			if (op != null && op.equals("Add")) {
+				String documentTypeSpec = variableContext.getParameter(seqPrefix + "documentType");
+				SpecificationNode node = new SpecificationNode(NuxeoConfiguration.Specification.DOCUMENT_TYPE);
+				node.setAttribute(NuxeoConfiguration.Specification.DOCUMENT_TYPE_KEY, documentTypeSpec);
+				documentsType.addChild(documentsType.getChildCount(), node);
+			}
+
+		}
+
+		// TAGS
+		SpecificationNode documents = new SpecificationNode(NuxeoConfiguration.Specification.DOCUMENTS);
+		ds.addChild(ds.getChildCount(), documents);
+
+		String processTags = variableContext.getParameter(seqPrefix + NuxeoConfiguration.Specification.PROCESS_TAGS);
+		String processAttachments = variableContext
+				.getParameter(seqPrefix + NuxeoConfiguration.Specification.PROCESS_ATTACHMENTS);
+
+		if (processTags != null && !processTags.isEmpty()) {
+			documents.setAttribute(NuxeoConfiguration.Specification.PROCESS_TAGS, String.valueOf(processTags));
+		}
+		if (processAttachments != null && !processAttachments.isEmpty()) {
+			documents.setAttribute(NuxeoConfiguration.Specification.PROCESS_ATTACHMENTS,
+					String.valueOf(processAttachments));
+		}
+
+		return null;
+	}
+
+	@Override
+	public void outputSpecificationBody(IHTTPOutput out, Locale locale, Specification spec,
+			int connectionSequenceNumber, int actualSequenceNumber, String tabName)
+			throws ManifoldCFException, IOException {
+
+		Map<String, Object> paramMap = new HashMap<String, Object>();
+		paramMap.put("TabName", tabName);
+		paramMap.put("SeqNum", Integer.toString(connectionSequenceNumber));
+		paramMap.put("SelectedNum", Integer.toString(actualSequenceNumber));
+
+		NuxeoSpecification ns = NuxeoSpecification.from(spec);
+
+		paramMap.put(NuxeoConfiguration.Specification.DOMAINS.toUpperCase(), ns.getDomains());
+		paramMap.put(NuxeoConfiguration.Specification.DOCUMENTS_TYPE.toUpperCase(), ns.getDocumentsType());
+		paramMap.put(NuxeoConfiguration.Specification.PROCESS_TAGS.toUpperCase(), ns.isProcessTags());
+		paramMap.put(NuxeoConfiguration.Specification.PROCESS_ATTACHMENTS.toUpperCase(), ns.isProcessAttachments());
+
+		Messages.outputResourceWithVelocity(out, locale, EDIT_SPEC_FORWARD_CONF_DOMAINS, paramMap);
+		Messages.outputResourceWithVelocity(out, locale, EDIT_SPEC_FORWARD_CONF_DOCUMENTS_TYPE, paramMap);
+		Messages.outputResourceWithVelocity(out, locale, EDIT_SPEC_FORWARD_CONF_DOCUMENTS, paramMap);
+
+	}
+
+	@Override
+	public void outputSpecificationHeader(IHTTPOutput out, Locale locale, Specification spec,
+			int connectionSequenceNumber, List<String> tabsArray) throws ManifoldCFException, IOException {
+
+		tabsArray.add(Messages.getString(locale, CONF_DOMAINS_TAB_PROPERTY));
+		tabsArray.add(Messages.getString(locale, CONF_DOCUMENTS_TYPE_TAB_PROPERTY));
+		tabsArray.add(Messages.getString(locale, CONF_DOCUMENT_PROPERTY));
+
+		Map<String, Object> paramMap = new HashMap<String, Object>();
+		paramMap.put("SeqNum", Integer.toString(connectionSequenceNumber));
+
+		Messages.outputResourceWithVelocity(out, locale, EDIT_SPEC_HEADER_FORWARD, paramMap);
+	}
+
+	public static class NuxeoSpecification {
+
+		private List<String> domains;
+		private List<String> documentsType;
+		private Boolean processTags = false;
+		private Boolean processAttahcments = false;
+
+		public List<String> getDomains() {
+			return this.domains;
+		}
+
+		public List<String> getDocumentsType() {
+			return this.documentsType;
+		}
+
+		public Boolean isProcessTags() {
+			return this.processTags;
+		}
+
+		public Boolean isProcessAttachments() {
+			return this.processAttahcments;
+		}
+
+		/**
+		 * @param spec
+		 * @return
+		 */
+		public static NuxeoSpecification from(Specification spec) {
+			NuxeoSpecification ns = new NuxeoSpecification();
+
+			ns.domains = Lists.newArrayList();
+			ns.documentsType = Lists.newArrayList();
+
+			for (int i = 0, len = spec.getChildCount(); i < len; i++) {
+				SpecificationNode sn = spec.getChild(i);
+
+				if (sn.getType().equals(NuxeoConfiguration.Specification.DOMAINS)) {
+					for (int j = 0, sLen = sn.getChildCount(); j < sLen; j++) {
+						SpecificationNode spectNode = sn.getChild(j);
+						if (spectNode.getType().equals(NuxeoConfiguration.Specification.DOMAIN)) {
+							ns.domains.add(spectNode.getAttributeValue(NuxeoConfiguration.Specification.DOMAIN_KEY));
+						}
+					}
+				} else if (sn.getType().equals(NuxeoConfiguration.Specification.DOCUMENTS_TYPE)) {
+					for (int j = 0, sLen = sn.getChildCount(); j < sLen; j++) {
+						SpecificationNode spectNode = sn.getChild(j);
+						if (spectNode.getType().equals(NuxeoConfiguration.Specification.DOCUMENT_TYPE)) {
+							ns.documentsType.add(
+									spectNode.getAttributeValue(NuxeoConfiguration.Specification.DOCUMENT_TYPE_KEY));
+						}
+					}
+				} else if (sn.getType().equals(NuxeoConfiguration.Specification.DOCUMENTS)) {
+					String procTags = sn.getAttributeValue(NuxeoConfiguration.Specification.PROCESS_TAGS);
+					ns.processTags = Boolean.valueOf(procTags);
+					String procAtt = sn.getAttributeValue(NuxeoConfiguration.Specification.PROCESS_ATTACHMENTS);
+					ns.processAttahcments = Boolean.valueOf(procAtt);
+				}
+			}
+
+			return ns;
+		}
+
+	}
+}

Propchange: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/NuxeoRepositoryConnector.java
------------------------------------------------------------------------------
    svn:executable = *

Added: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/exception/NuxeoException.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/exception/NuxeoException.java?rev=1791420&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/exception/NuxeoException.java (added)
+++ manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/exception/NuxeoException.java Fri Apr 14 21:26:16 2017
@@ -0,0 +1,17 @@
+package org.apache.manifoldcf.crawler.connectors.nuxeo.exception;
+
+public class NuxeoException extends Exception {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -7504820888917970500L;
+
+	public NuxeoException(String message) {
+		super(message);
+	}
+
+	public NuxeoException(String message, Throwable throwable) {
+		super(message, throwable);
+	}
+}

Propchange: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/exception/NuxeoException.java
------------------------------------------------------------------------------
    svn:executable = *

Added: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/model/Attachment.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/model/Attachment.java?rev=1791420&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/model/Attachment.java (added)
+++ manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/model/Attachment.java Fri Apr 14 21:26:16 2017
@@ -0,0 +1,68 @@
+/**
+ * 
+ */
+package org.apache.manifoldcf.crawler.connectors.nuxeo.model;
+
+import java.io.InputStream;
+
+/**
+ * @author David Arroyo Escobar <arroyoescobardavid@gmail.com>
+ *
+ */
+public class Attachment{
+
+	public static final String ATT_KEY_FILES = "files:files";
+	public static final String ATT_KEY_FILE = "file";
+	
+	public static final String ATT_KEY_NAME = "name";
+	public static final String ATT_KEY_MIME_TYPE = "mime-type";
+	public static final String ATT_KEY_ENCODING = "encoding";
+	public static final String ATT_KEY_DIGEST = "digest";
+	public static final String ATT_KEY_DIGEST_ALGORITHM = "digestAlgorithm";
+	public static final String ATT_KEY_URL = "data";
+	public static final String ATT_KEY_LENGTH = "length";
+	
+	//Properties
+	protected String name;
+	protected String mime_type;
+	protected String url;
+	protected String encoding;
+	protected String digest;
+	protected String digestAlgorithm;
+	protected long length;
+	protected InputStream data;
+	
+	//Getters
+	public String getName() {
+		return name;
+	}
+
+	public String getMime_type() {
+		return mime_type;
+	}
+
+	public String getUrl() {
+		return url;
+	}
+	
+	public long getLength() {
+		return length;
+	}
+
+	public String getEncoding() {
+		return encoding;
+	}
+
+	public String getDigest() {
+		return digest;
+	}
+
+	public String getDigestAlgorithm() {
+		return digestAlgorithm;
+	}
+
+	public InputStream getData() {
+		return data;
+	}
+
+}
\ No newline at end of file

Propchange: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/model/Attachment.java
------------------------------------------------------------------------------
    svn:executable = *

Added: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/model/DocumentManifold.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/model/DocumentManifold.java?rev=1791420&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/model/DocumentManifold.java (added)
+++ manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/model/DocumentManifold.java Fri Apr 14 21:26:16 2017
@@ -0,0 +1,189 @@
+package org.apache.manifoldcf.crawler.connectors.nuxeo.model;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import org.nuxeo.client.api.NuxeoClient;
+import org.nuxeo.client.api.objects.Document;
+import org.nuxeo.client.api.objects.Documents;
+import org.nuxeo.client.api.objects.Operation;
+import org.nuxeo.client.api.objects.acl.ACE;
+import org.nuxeo.client.api.objects.acl.ACL;
+import org.nuxeo.client.api.objects.blob.Blob;
+
+import com.google.common.collect.Maps;
+
+public class DocumentManifold {
+
+	private static final String URI_TAGGING = "SELECT * FROM Tagging";
+
+	private static final String DEFAULT_MIMETYPE = "text/html; charset=utf-8";
+	private static final String[] avoid_properties = { "file:filename", "file:content", "files:files" };
+
+	public Document document;
+	public InputStream content;
+	protected String mimetype;
+
+	public static final String DELETED = "deleted";
+
+	public static final String DOC_UID = "uid";
+	public static final String DOC_ENTITY_TYPE = "entity-type";
+	public static final String DOC_LAST_MODIFIED = "last-modified";
+	public static final String DOC_STATE = "state";
+
+	// Constructor
+	public DocumentManifold(Document document) {
+		this.document = document;
+		processDocument();
+	}
+
+
+	/**
+	 * 
+	 * 
+	 * @return Map<String, Object>
+	 */
+	public Map<String, Object> getMetadata() {
+		Map<String, Object> docMetadata = Maps.newHashMap();
+
+		for (Entry<String, Object> property : this.document.getProperties().entrySet()) {
+			if (!Arrays.asList(avoid_properties).contains(property.getKey())) {
+				addIfNotEmpty(docMetadata, property.getKey(), property.getValue());
+			}
+		}
+		addIfNotEmpty(docMetadata, DOC_UID, this.document.getUid());
+		addIfNotEmpty(docMetadata, DOC_ENTITY_TYPE, this.document.getEntityType());
+		addIfNotEmpty(docMetadata, DOC_LAST_MODIFIED, this.document.getLastModified());
+		addIfNotEmpty(docMetadata, DOC_STATE, this.document.getState());
+
+		return docMetadata;
+	}
+
+	public void addIfNotEmpty(Map<String, Object> docMetadata, String key, Object obj) {
+		if (obj != null && ((obj instanceof String && !((String) obj).isEmpty()) || !(obj instanceof String))) {
+			docMetadata.put(key, obj);
+		}
+	}
+
+	private void processDocument() {
+
+		// Content
+		InputStream is = null;
+		String mimetype = null;
+		try {
+			is = document.fetchBlob().getStream();
+			this.mimetype = (String) ((LinkedHashMap<?, ?>) this.getDocument().get("file:content")).get("mime-type");
+		} catch (Exception ex) {
+			is = new ByteArrayInputStream("".getBytes());
+			mimetype = DEFAULT_MIMETYPE;
+		}
+		this.content = is;
+		this.mimetype = mimetype;
+	}
+
+	// GETTERS AND SETERS
+	public Document getDocument() {
+		return this.document;
+	}
+
+	public String getMimeType() {
+		return this.mimetype;
+	}
+
+	public int getLenght() {
+		int size;
+		try {
+			size = this.getContent().available();
+		} catch (IOException ex) {
+			size = 0;
+		}
+		return size;
+	}
+
+	public InputStream getContent() {
+		return this.content;
+	}
+
+	public String[] getPermissions(NuxeoClient nuxeoClient) {
+
+		List<String> permissions = new ArrayList<String>();
+		try {
+			for (ACL acl : this.getDocument().fetchPermissions().getAcls()) {
+				for (ACE ace : acl.getAces()) {
+					if (ace.getStatus().equalsIgnoreCase("effective") && ace.getGranted().equalsIgnoreCase("true")) {
+						permissions.add(ace.getUsername());
+					}
+				}
+			}
+
+			return permissions.toArray(new String[permissions.size()]);
+		} catch (Exception e) {
+			return new String[] {};
+		}
+	}
+
+	public List<Attachment> getAttachments(NuxeoClient nuxeoClient) {
+		List<Attachment> attachments = new ArrayList<Attachment>();
+		List<?> arrayList = (List<?>) this.document.get(Attachment.ATT_KEY_FILES);
+
+		for (Object object : arrayList) {
+			Attachment attach = new Attachment();
+			LinkedHashMap<?, ?> file = (LinkedHashMap<?, ?>) ((LinkedHashMap<?, ?>) object)
+					.get(Attachment.ATT_KEY_FILE);
+
+			attach.name = (String) file.get("name");
+			attach.encoding = (String) file.get("encoding");
+			attach.mime_type = (String) file.get("mime-type");
+			attach.digestAlgorithm = (String) file.get("digestAlgorithm");
+			attach.digest = (String) file.get("digest");
+			attach.length = Long.valueOf((String) file.get("length"));
+			attach.url = (String) file.get("data");
+
+			try {
+				Blob blob = nuxeoClient.repository().fetchBlobById(this.document.getUid(), 
+						getAttachPath(attach.url));
+				
+				attach.data = blob.getStream();
+
+			} catch (Exception ex) {
+				attach.data = new ByteArrayInputStream("".getBytes());
+			}
+
+			attachments.add(attach);
+
+		}
+
+		return attachments;
+	}
+
+	public String getAttachPath(String absolutePath) {
+		String[] splitPath = absolutePath.split("/");
+		int size = splitPath.length;
+		String path = String.join("/", splitPath[size - 4], splitPath[size - 3], splitPath[size - 2]);
+
+		return path;
+	}
+
+	public String[] getTags(NuxeoClient nuxeoClient) {
+		try {
+			Operation op = nuxeoClient.automation("Repository.Query").param("query",
+					URI_TAGGING + " where relation:source='" + this.document.getUid() + "'");
+			Documents tags = op.execute();
+			List<String> ls = new ArrayList<String>();
+
+			for (Document tag : tags.getDocuments()) {
+				ls.add(tag.getTitle());
+			}
+			return ls.toArray(new String[tags.size()]);
+		} catch (Exception e) {
+			return new String[] {};
+		}
+	}
+
+}

Propchange: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/nuxeo/model/DocumentManifold.java
------------------------------------------------------------------------------
    svn:executable = *

Added: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nuxeo/common_en_US.properties
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nuxeo/common_en_US.properties?rev=1791420&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nuxeo/common_en_US.properties (added)
+++ manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nuxeo/common_en_US.properties Fri Apr 14 21:26:16 2017
@@ -0,0 +1,23 @@
+
+
+#Tabs
+NuxeoAuthorityConnector.Server = Server
+
+#Properties
+NuxeoAuthorityConnector.Protocol	= Protocol
+NuxeoAuthorityConnector.Host		= Host
+NuxeoAuthorityConnector.Port		= Port
+NuxeoAuthorityConnector.Path		= Path
+NuxeoAuthorityConnector.Username	= Username
+NuxeoAuthorityConnector.Password	= Password
+
+#Errors
+NuxeoAuthorityConnector.HostMustNotBeNull = Nuxeo host must not be null
+NuxeoAuthorityConnector.PasswordMustNotBeNull = Nuxeo password must not be null
+NuxeoAuthorityConnector.HostMustNotIncludeSlash = Nuxeo host must not include a '/' character
+NuxeoAuthorityConnector.PortMustBeAnInteger = Nuxeo port must be an integer
+NuxeoAuthorityConnector.PathMustNotBeNull = Nuxeo path must not be null
+NuxeoAuthorityConnector.PathMustBeginWithASlash = Nuxeo path must begin with '/' character
+
+#Buttons
+NuxeoAuthorityConnector.Add		= Add
\ No newline at end of file

Propchange: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nuxeo/common_en_US.properties
------------------------------------------------------------------------------
    svn:executable = *

Added: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nuxeo/common_es_ES.properties
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nuxeo/common_es_ES.properties?rev=1791420&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nuxeo/common_es_ES.properties (added)
+++ manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nuxeo/common_es_ES.properties Fri Apr 14 21:26:16 2017
@@ -0,0 +1,24 @@
+
+
+#Tabs
+NuxeoAuthorityConnector.Server 	= Servidor
+
+#Properties
+NuxeoAuthorityConnector.Protocol	= Protocolo
+NuxeoAuthorityConnector.Host		= Host
+NuxeoAuthorityConnector.Port		= Puerto
+NuxeoAuthorityConnector.Path		= Ruta
+NuxeoAuthorityConnector.Username	= Nombre de usuario
+NuxeoAuthorityConnector.Password	= Contraseña
+
+#Errors
+NuxeoAuthorityConnector.HostMustNotBeNull = El host de Nuxeo no debe ser nulo
+NuxeoAuthorityConnector.PasswordMustNotBeNull = La contraseña de nuxeo no debe ser nula.
+NuxeoAuthorityConnector.HostMustNotIncludeSlash = El host de Nuxeo no debe incluir el carácter '/'
+NuxeoAuthorityConnector.PortMustBeAnInteger = El puerto de Nuxeo debe ser un entero
+NuxeoAuthorityConnector.PathMustNotBeNull = La ruta de Nuxeo no debe ser nula
+NuxeoAuthorityConnector.PathMustBeginWithASlash = La ruta de Nuxeo debe comenzar por el carácter '/'
+
+#Buttons
+NuxeoAuthorityConnector.Add		= Añadir
+

Propchange: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/authorities/authorities/nuxeo/common_es_ES.properties
------------------------------------------------------------------------------
    svn:executable = *

Added: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/nuxeo/common_en_US.properties
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/nuxeo/common_en_US.properties?rev=1791420&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/nuxeo/common_en_US.properties (added)
+++ manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/nuxeo/common_en_US.properties Fri Apr 14 21:26:16 2017
@@ -0,0 +1,44 @@
+
+
+#Configuration tabs
+NuxeoRepositoryConnector.Server	= Server
+
+#Specifications tabs
+NuxeoRepositoryConnector.Domains 	=	Domains
+NuxeoRepositoryConnector.DocumentsType = Documents type
+NuxeoRepositoryConnector.Documents = Documents
+
+
+#Properties
+NuxeoRepositoryConnector.Protocol	= Protocol
+NuxeoRepositoryConnector.Host		= Host
+NuxeoRepositoryConnector.Port		= Port
+NuxeoRepositoryConnector.Path		= Path
+NuxeoRepositoryConnector.Username	= Username
+NuxeoRepositoryConnector.Password	= Password
+
+#Errors
+NuxeoRepositoryConnector.HostMustNotBeNull 		 = Nuxeo host must not be null
+NuxeoRepositoryConnector.PasswordMustNotBeNull   = Nuxeo password must not be null
+NuxeoRepositoryConnector.HostMustNotIncludeSlash = Nuxeo host must not include a '/' character
+NuxeoRepositoryConnector.PortMustBeAnInteger 	 = Nuxeo port must be an integer
+NuxeoRepositoryConnector.PathMustNotBeNull 		 = Nuxeo path must not be null
+NuxeoRepositoryConnector.PathMustBeginWithASlash = Nuxeo path must begin with '/' character
+
+#Buttons
+NuxeoRepositoryConnector.Add			=	Add
+NuxeoRepositoryConnector.AddDomain  	=	Add domain
+NuxeoRepositoryConnector.AddDocumentType  	=	Add document type
+NuxeoRepositoryConnector.Delete			=	Delete
+NuxeoRepositoryConnector.DeleteDomain	=	Delete domain
+NuxeoRepositoryConnector.DeleteDocumentType	=	Delete document type
+
+
+NuxeoRepositoryConnector.NoDomainsConfigured	=	No domains configured. All domains will be crawled
+NuxeoRepositoryConnector.TypeInADomain			=	Type in a domain
+
+NuxeoRepositoryConnector.NoDocumentsTypeConfigured	=	No documents type configured. All documents type will be crawled
+NuxeoRepositoryConnector.TypeInADocumentType		=	Type in a document type
+
+NuxeoRepositoryConnector.ProcessTags= Process tags
+NuxeoRepositoryConnector.ProcessAttachments= Process attachments

Propchange: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/nuxeo/common_en_US.properties
------------------------------------------------------------------------------
    svn:executable = *

Added: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/nuxeo/common_es_ES.properties
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/nuxeo/common_es_ES.properties?rev=1791420&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/nuxeo/common_es_ES.properties (added)
+++ manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/nuxeo/common_es_ES.properties Fri Apr 14 21:26:16 2017
@@ -0,0 +1,47 @@
+
+
+#Configuration tabs
+NuxeoRepositoryConnector.Server 	= Servidor
+NuxeoRepositoryConnector.DocumentsType = Tipos de documentos
+NuxeoRepositoryConnector.Documents = Documentos
+
+
+#Specifications tabs
+NuxeoRepositoryConnector.Domains 	= Dominios
+
+#Properties
+NuxeoRepositoryConnector.Protocol	= Protocolo
+NuxeoRepositoryConnector.Host		= Host
+NuxeoRepositoryConnector.Port		= Puerto
+NuxeoRepositoryConnector.Path		= Ruta
+NuxeoRepositoryConnector.Username	= Nombre de usuario
+NuxeoRepositoryConnector.Password	= Contraseña
+
+#Errors
+NuxeoRepositoryConnector.HostMustNotBeNull 		 = El host de Nuxeo no debe ser nulo
+NuxeoRepositoryConnector.PasswordMustNotBeNull 	 = La contraseña de nuxeo no debe ser nula.
+NuxeoRepositoryConnector.HostMustNotIncludeSlash = El host de Nuxeo no debe incluir el carácter '/'
+NuxeoRepositoryConnector.PortMustBeAnInteger 	 = El puerto de Nuxeo debe ser un entero
+NuxeoRepositoryConnector.PathMustNotBeNull 		 = La ruta de Nuxeo no debe ser nula
+NuxeoRepositoryConnector.PathMustBeginWithASlash = La ruta de Nuxeo debe comenzar por el carácter '/'
+
+#Buttons
+NuxeoRepositoryConnector.Add			=	Añadir
+NuxeoRepositoryConnector.AddDomain  	=	Añadir dominio
+NuxeoRepositoryConnector.AddDocumentType  	=	Añadir tipo de documento
+NuxeoRepositoryConnector.Delete			=	Borrar
+NuxeoRepositoryConnector.DeleteDomain	=	Borrar dominio
+NuxeoRepositoryConnector.DeleteDocumentType	=	Borrar tipo de documento
+
+
+NuxeoRepositoryConnector.NoDomainsConfigured	=	Sin dominios configurados. Todos los dominios se rastrearán.
+NuxeoRepositoryConnector.TypeInADomain			=	Escriba un dominio
+
+NuxeoRepositoryConnector.NoDocumentsTypeConfigured	=	Sin tipo de documentos configurados. Todos los tipos de documentos se rastrearán.
+NuxeoRepositoryConnector.TypeInADocumentType		=	Escriba un tipo de documento
+
+NuxeoRepositoryConnector.ProcessTags= Procesar etiquetas
+NuxeoRepositoryConnector.ProcessAttachments = Procesar archivos adjuntos
+
+
+

Propchange: manifoldcf/branches/CONNECTORS-1290-2/connectors/nuxeo/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/nuxeo/common_es_ES.properties
------------------------------------------------------------------------------
    svn:executable = *



Mime
View raw message