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 <[email protected]>
+ *
+ */
+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 <[email protected]>
+ *
+ */
+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 <[email protected]>
+ *
+ */
+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 <[email protected]>
+ *
+ */
+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 = *


Reply via email to