Add draft import of user via JXL
authorbsinou <bsinou@argeo.org>
Thu, 6 Apr 2017 07:24:01 +0000 (09:24 +0200)
committerbsinou <bsinou@argeo.org>
Thu, 6 Apr 2017 07:24:01 +0000 (09:24 +0200)
org.argeo.suite.workbench.rap/src/org/argeo/suite/workbench/commands/ImportEntities.java

index 769e807075b16b5e963fa2e1b2bee13fda338ba4..931e53e74a67047d37c27c6c5bbcb46a398876aa 100644 (file)
@@ -9,8 +9,10 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
 import java.util.Map;
 import java.util.UUID;
 
@@ -21,6 +23,9 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
 import org.apache.commons.io.IOUtils;
 import javax.jcr.Session;
 
 import org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.argeo.activities.ActivitiesNames;
 import org.argeo.connect.ConnectConstants;
 import org.argeo.connect.ConnectNames;
 import org.argeo.connect.resources.ResourcesNames;
 import org.argeo.connect.ConnectConstants;
 import org.argeo.connect.ConnectNames;
 import org.argeo.connect.resources.ResourcesNames;
@@ -70,6 +75,7 @@ import jxl.Workbook;
 
 /** Open a one page wizard to import an EXCEL 2003 legacy organisation file */
 public class ImportEntities extends AbstractHandler implements PeopleNames {
 
 /** Open a one page wizard to import an EXCEL 2003 legacy organisation file */
 public class ImportEntities extends AbstractHandler implements PeopleNames {
+       private final static Log log = LogFactory.getLog(ImportEntities.class);
 
        public final static String ID = AsUiPlugin.PLUGIN_ID + ".importEntities";
 
 
        public final static String ID = AsUiPlugin.PLUGIN_ID + ".importEntities";
 
@@ -79,6 +85,7 @@ public class ImportEntities extends AbstractHandler implements PeopleNames {
        static {
                Map<String, String> tmpMap = new HashMap<String, String>();
                tmpMap.put("Organisations", PeopleTypes.PEOPLE_ORG);
        static {
                Map<String, String> tmpMap = new HashMap<String, String>();
                tmpMap.put("Organisations", PeopleTypes.PEOPLE_ORG);
+               tmpMap.put("Persons", PeopleTypes.PEOPLE_PERSON);
                KNOWN_TEMPLATES = Collections.unmodifiableMap(tmpMap);
        }
 
                KNOWN_TEMPLATES = Collections.unmodifiableMap(tmpMap);
        }
 
@@ -130,11 +137,20 @@ public class ImportEntities extends AbstractHandler implements PeopleNames {
                /** Performs the real import. */
                @Override
                public boolean performFinish() {
                /** Performs the real import. */
                @Override
                public boolean performFinish() {
-                       // Session session = null;
-                       // String templateName =
-                       // resourceTypeCombo.getItem(resourceTypeCombo.getSelectionIndex());
-                       // String type = KNOWN_TEMPLATES.get(templateName);
-                       importDefaultOrgFile(file);
+                       String templateName = resourceTypeCombo.getItem(resourceTypeCombo.getSelectionIndex());
+                       String type = KNOWN_TEMPLATES.get(templateName);
+                       InputStream in = null;
+                       try {
+                               in = new FileInputStream(file);
+                               if (PeopleTypes.PEOPLE_ORG.equals(type))
+                                       importDefaultOrgFile(in);
+                               else if (PeopleTypes.PEOPLE_PERSON.equals(type))
+                                       importDefaultPersonFile(in);
+                       } catch (IOException e) {
+                               throw new SuiteException("Cannot import mapping file", e);
+                       } finally {
+                               IOUtils.closeQuietly(in);
+                       }
                        return true;
                }
 
                        return true;
                }
 
@@ -295,17 +311,271 @@ public class ImportEntities extends AbstractHandler implements PeopleNames {
                }
        }
 
                }
        }
 
-       // Legacy Organisations
-       private Node importDefaultOrgFile(File file) {
-               InputStream in = null;
+       private Node importDefaultOrgFile(InputStream in) throws IOException {
+               // TODO make this configurable
+               int displayNameIndex = 0;
+               int legalNameIndex = 1;
+               int legalFormIndex = 2;
+               int urlsIndex = 3;
+               int streetIndex = 4;
+               int postalCodeIndex = 5;
+               int lIndex = 6;
+               int stIndex = 7;
+               int cIndex = 8;
+               int mobileIndex = 9;
+               int telephoneNumberIndex = 10;
+               int mailIndex = 11;
+               int contactsIndex = 12;
+               int descriptionIndex = 13;
+               int tagsIndex = 14;
+
+               Session session = null;
+               int i = 0;
                try {
                try {
-                       in = new FileInputStream(file);
-                       return importDefaultOrgFile(in);
-               } catch (IOException e) {
-                       throw new SuiteException("Cannot import mapping file", e);
+                       Workbook wb = JxlUtils.toWorkbook(in, IMPORT_ENCODING);
+                       session = repository.login();
+                       String basePath = "/" + peopleService.getBaseRelPath(PeopleTypes.PEOPLE_ORG);
+                       Node targetParent = session.getNode(basePath);
+                       Sheet sheet = wb.getSheet(0);
+
+                       Node tmpParent = peopleService.getDraftParent(session);
+
+                       int rowNb = sheet.getRows();
+                       for (i = 1; i < rowNb - 1; i++) {
+
+                               Node tmpOrg = createDraftNode(tmpParent, PeopleTypes.PEOPLE_ORG);
+
+                               String dName = JxlUtils.getStringValue(sheet, displayNameIndex, i);
+                               if (notEmpty(dName))
+                                       tmpOrg.setProperty(PeopleNames.PEOPLE_DISPLAY_NAME, dName);
+                               String lName = getStringValue(sheet, legalNameIndex, i);
+                               if (notEmpty(lName))
+                                       tmpOrg.setProperty(PeopleNames.PEOPLE_LEGAL_NAME, lName);
+                               String lForm = getStringValue(sheet, legalFormIndex, i);
+                               if (notEmpty(lForm))
+                                       tmpOrg.setProperty(PeopleNames.PEOPLE_LEGAL_FORM, lForm);
+                               String urlStr = getStringValue(sheet, urlsIndex, i);
+                               if (notEmpty(urlStr))
+                                       importUrls(tmpOrg, urlStr);
+                               String mailStr = getStringValue(sheet, mailIndex, i);
+                               if (notEmpty(mailStr))
+                                       importMails(tmpOrg, mailStr);
+                               String streetStr = getStringValue(sheet, streetIndex, i);
+                               String pcStr = getStringValue(sheet, postalCodeIndex, i);
+                               String lStr = getStringValue(sheet, lIndex, i);
+                               String stStr = getStringValue(sheet, stIndex, i);
+                               String cStr = getStringValue(sheet, cIndex, i);
+                               if (notEmpty(streetStr) || notEmpty(pcStr) || notEmpty(lStr) || notEmpty(stStr) || notEmpty(cStr))
+                                       PeopleJcrUtils.createAddress(resourcesService, peopleService, tmpOrg, streetStr, null, pcStr, lStr,
+                                                       stStr, cStr, true, ContactValueCatalogs.CONTACT_CAT_MAIN, null);
+                               String mobileStr = getStringValue(sheet, mobileIndex, i);
+                               if (notEmpty(mobileStr))
+                                       PeopleJcrUtils.createPhone(resourcesService, peopleService, tmpOrg, mobileStr, true, null, null);
+                               String phoneStr = getStringValue(sheet, telephoneNumberIndex, i);
+                               if (notEmpty(phoneStr))
+                                       PeopleJcrUtils.createPhone(resourcesService, peopleService, tmpOrg, phoneStr, true,
+                                                       ContactValueCatalogs.CONTACT_CAT_DIRECT, null);
+                               String descStr = getStringValue(sheet, descriptionIndex, i);
+                               if (notEmpty(descStr))
+                                       tmpOrg.setProperty(Property.JCR_DESCRIPTION, descStr);
+                               String tagsStr = getStringValue(sheet, tagsIndex, i);
+                               if (notEmpty(tagsStr))
+                                       tmpOrg.setProperty(ResourcesNames.CONNECT_TAGS, ConnectJcrUtils.parseAndClean(tagsStr, ",", true));
+
+                               Node newOrgNode = peopleService.publishEntity(targetParent, PeopleTypes.PEOPLE_ORG, tmpOrg);
+                               // Save the newly created entity without creating a base version
+                               newOrgNode = peopleService.saveEntity(newOrgNode, false);
+
+                               String contactsStr = getStringValue(sheet, contactsIndex, i);
+                               if (notEmpty(contactsStr))
+                                       importOrgEmployees(tmpParent, targetParent, newOrgNode, contactsStr);
+                       }
+
+                       // Refresh tags and mailing list
+                       Node tagParent = resourcesService.getTagLikeResourceParent(session, ConnectConstants.RESOURCE_TAG);
+                       resourcesService.refreshKnownTags(tagParent);
+
+                       // Create Mailing lists
+                       Node mlParent = resourcesService.getTagLikeResourceParent(session, PeopleTypes.PEOPLE_MAILING_LIST);
+                       resourcesService.refreshKnownTags(mlParent);
+
+               } catch (PeopleException | RepositoryException e) {
+                       throw new SuiteException("Cannot import mapping file, error at line: " + (i + 1), e);
+               } finally {
+                       JcrUtils.logoutQuietly(session);
+               }
+
+               return null;
+       }
+
+       private Map<String, Integer> initialiseHeaders(Sheet sheet, List<String> validHeaders) {
+               Map<String, Integer> headers = new HashMap<>();
+               int length = sheet.getColumns();
+               for (int i = 0; i < length; i++) {
+                       String value = JxlUtils.getStringValue(sheet, i, 0);
+                       if (validHeaders.contains(value))
+                               headers.put(value, i);
+                       else
+                               log.warn(value + " (column [" + i + "]) is not a valid header");
+               }
+               return headers;
+       }
+
+       private Node importDefaultPersonFile(InputStream in) throws IOException {
+               // Local shortcut
+               String JCR_DESC = ConnectJcrUtils.getLocalJcrItemName(Property.JCR_DESCRIPTION);
+
+               // Map<String, Integer> headers = new HashMap<>();
+               // headers.put(PeopleNames.PEOPLE_FIRST_NAME, 0);
+               // headers.put(PEOPLE_LAST_NAME, 1);
+               // headers.put(PEOPLE_SALUTATION, 2);
+               // headers.put(PEOPLE_HONORIFIC_TITLE, 3);
+               // headers.put(PEOPLE_NICKNAME, 4);
+               // headers.put(PEOPLE_NAME_SUFFIX, 5);
+               // headers.put(PEOPLE_MAIDEN_NAME, 6);
+               // headers.put(PEOPLE_PMOBILE, 7);
+               // headers.put(PEOPLE_PTELEPHONE_NUMBER, 8);
+               // headers.put(PEOPLE_SPOKEN_LANGUAGES, 9);
+               // headers.put(ResourcesNames.CONNECT_TAGS, 10);
+               // headers.put(PEOPLE_MAILING_LISTS, 11);
+               // headers.put(PEOPLE_BIRTH_DATE, 12);
+               // headers.put(PEOPLE_PMAIL, 13);
+               // headers.put("people:emailAddressOther", 14);
+               // headers.put("people:org", 15);
+               // headers.put(PEOPLE_ROLE, 16);
+               // headers.put(PEOPLE_DEPARTMENT, 17);
+               // headers.put("people:facebook", 18);
+               // headers.put(JCR_DESC, 19);
+               // headers.put(ActivitiesNames.ACTIVITIES_FROM_IP, 20);
+
+               List<String> validHeaders = Arrays.asList(PeopleNames.PEOPLE_FIRST_NAME, PEOPLE_LAST_NAME, PEOPLE_SALUTATION,
+                               PEOPLE_HONORIFIC_TITLE, PEOPLE_NICKNAME, PEOPLE_NAME_SUFFIX, PEOPLE_MAIDEN_NAME, PEOPLE_PMOBILE,
+                               PEOPLE_PTELEPHONE_NUMBER, PEOPLE_SPOKEN_LANGUAGES, ResourcesNames.CONNECT_TAGS, PEOPLE_MAILING_LISTS,
+                               PEOPLE_BIRTH_DATE, PEOPLE_PMAIL, "people:emailAddressOther", "people:org", PEOPLE_ROLE,
+                               PEOPLE_DEPARTMENT, "people:facebook", JCR_DESC, ActivitiesNames.ACTIVITIES_FROM_IP, PEOPLE_STREET,
+                               PEOPLE_ZIP_CODE, PEOPLE_CITY, PEOPLE_STATE, PEOPLE_COUNTRY);
+
+               String[] basicInfo = { PEOPLE_FIRST_NAME, PEOPLE_LAST_NAME, PEOPLE_SALUTATION, PEOPLE_HONORIFIC_TITLE,
+                               PEOPLE_NICKNAME, PEOPLE_NAME_SUFFIX, PEOPLE_MAIDEN_NAME, PEOPLE_BIRTH_DATE, JCR_DESC };
+
+               Map<String, String> primaryContacts = new HashMap<>();
+               primaryContacts.put(PEOPLE_PMOBILE, PeopleTypes.PEOPLE_MOBILE);
+               primaryContacts.put(PEOPLE_PTELEPHONE_NUMBER, PeopleTypes.PEOPLE_TELEPHONE_NUMBER);
+               primaryContacts.put(PEOPLE_PURL, PeopleTypes.PEOPLE_URL);
+               primaryContacts.put(PEOPLE_PMAIL, PeopleTypes.PEOPLE_MAIL);
+
+               String[] multiProps = { PEOPLE_SPOKEN_LANGUAGES, ResourcesNames.CONNECT_TAGS, PEOPLE_MAILING_LISTS, };
+
+               Session session = null;
+               int i = 0;
+               try {
+                       Workbook wb = JxlUtils.toWorkbook(in, IMPORT_ENCODING);
+                       session = repository.login();
+                       String basePath = "/" + peopleService.getBaseRelPath(PeopleTypes.PEOPLE_PERSON);
+                       Node targetParent = session.getNode(basePath);
+                       Sheet sheet = wb.getSheet(0);
+
+                       Map<String, Integer> headers = initialiseHeaders(sheet, validHeaders);
+
+                       Node tmpParent = peopleService.getDraftParent(session);
+
+                       int rowNb = sheet.getRows();
+                       for (i = 1; i < rowNb; i++) {
+                               Node tmpPerson = createDraftNode(tmpParent, PeopleTypes.PEOPLE_PERSON);
+
+                               for (String propName : basicInfo) {
+                                       if (headers.containsKey(propName)) {
+                                               String value = JxlUtils.getStringValue(sheet, headers.get(propName), i);
+                                               if (notEmpty(value))
+                                                       tmpPerson.setProperty(propName, value);
+                                       }
+                               }
+
+                               for (String propName : multiProps) {
+                                       if (headers.containsKey(propName)) {
+                                               String value = JxlUtils.getStringValue(sheet, headers.get(propName), i);
+                                               if (notEmpty(value))
+                                                       tmpPerson.setProperty(propName, ConnectJcrUtils.parseAndClean(value, ",", true));
+                                       }
+                               }
+
+                               for (String propName : primaryContacts.keySet()) {
+                                       if (headers.containsKey(propName)) {
+                                               String value = JxlUtils.getStringValue(sheet, headers.get(propName), i);
+                                               if (notEmpty(value)) {
+                                                       PeopleJcrUtils.createContact(resourcesService, peopleService, tmpPerson,
+                                                                       primaryContacts.get(propName), value, true,
+                                                                       ContactValueCatalogs.CONTACT_CAT_MAIN, null);
+                                               }
+                                       }
+                               }
+
+                               // Specific values
+                               String propName = "people:emailAddressOther";
+                               if (headers.containsKey(propName)) {
+                                       String value = JxlUtils.getStringValue(sheet, headers.get(propName), i);
+                                       if (notEmpty(value)) {
+                                               PeopleJcrUtils.createContact(resourcesService, peopleService, tmpPerson,
+                                                               PeopleTypes.PEOPLE_MAIL, value, false, ContactValueCatalogs.CONTACT_CAT_MAIN,
+                                                               null);
+
+                                       }
+                               }
+
+                               propName = "people:facebook";
+                               if (headers.containsKey(propName)) {
+                                       String value = JxlUtils.getStringValue(sheet, headers.get(propName), i);
+                                       if (notEmpty(value)) {
+                                               PeopleJcrUtils.createContact(resourcesService, peopleService, tmpPerson,
+                                                               PeopleTypes.PEOPLE_SOCIAL_MEDIA, value, false,
+                                                               ContactValueCatalogs.CONTACT_CAT_FACEBOOK, null);
+                                       }
+                               }
+
+                               String street = null, zip = null, city = null, state = null, country = null;
+                               if (headers.containsKey(PEOPLE_STREET))
+                                       street = JxlUtils.getStringValue(sheet, headers.get(PEOPLE_STREET), i);
+                               if (headers.containsKey(PEOPLE_ZIP_CODE))
+                                       zip = JxlUtils.getStringValue(sheet, headers.get(PEOPLE_ZIP_CODE), i);
+                               if (headers.containsKey(PEOPLE_CITY))
+                                       city = JxlUtils.getStringValue(sheet, headers.get(PEOPLE_CITY), i);
+                               if (headers.containsKey(PEOPLE_STATE))
+                                       state = JxlUtils.getStringValue(sheet, headers.get(PEOPLE_STATE), i);
+                               if (headers.containsKey(PEOPLE_COUNTRY))
+                                       country = JxlUtils.getStringValue(sheet, headers.get(PEOPLE_COUNTRY), i);
+
+                               if (notEmpty(street) || notEmpty(zip) || notEmpty(city) || notEmpty(state) || notEmpty(country)) {
+                                       PeopleJcrUtils.createAddress(resourcesService, peopleService, tmpPerson, street, null, zip, city,
+                                                       state, country, true, ContactValueCatalogs.CONTACT_CAT_MAIN, null);
+                               }
+
+                               // TODO Experimental connection activity to store info about the
+                               // IP from where a person has registered himself in the system
+                               // propName = ActivitiesNames.ACTIVITIES_FROM_IP;
+
+                               // TODO create a job and possibly the related organisation
+
+                               Node newPersonNode = peopleService.publishEntity(targetParent, PeopleTypes.PEOPLE_PERSON, tmpPerson);
+                               // Save the newly created entity without creating a base version
+                               newPersonNode = peopleService.saveEntity(newPersonNode, false);
+                       }
+
+                       // Refresh tags and mailing list
+                       Node tagParent = resourcesService.getTagLikeResourceParent(session, ConnectConstants.RESOURCE_TAG);
+                       resourcesService.refreshKnownTags(tagParent);
+
+                       // Create Mailing lists
+                       Node mlParent = resourcesService.getTagLikeResourceParent(session, PeopleTypes.PEOPLE_MAILING_LIST);
+                       resourcesService.refreshKnownTags(mlParent);
+               } catch (PeopleException | RepositoryException e) {
+                       String message = "Cannot import mapping file, error at line: " + (i + 1);
+                       // TODO Check why the error is swallowed.
+                       log.error(message, e);
+                       throw new SuiteException(message, e);
                } finally {
                } finally {
-                       IOUtils.closeQuietly(in);
+                       JcrUtils.logoutQuietly(session);
                }
                }
+               return null;
        }
 
        private Node createDraftNode(Node parent, String mainMixin) throws RepositoryException {
        }
 
        private Node createDraftNode(Node parent, String mainMixin) throws RepositoryException {
@@ -387,103 +657,6 @@ public class ImportEntities extends AbstractHandler implements PeopleNames {
                }
        }
 
                }
        }
 
-       // TODO make this configurable
-       int displayNameIndex = 0;
-       int legalNameIndex = 1;
-       int legalFormIndex = 2;
-       int urlsIndex = 3;
-       int streetIndex = 4;
-       int postalCodeIndex = 5;
-       int lIndex = 6;
-       int stIndex = 7;
-       int cIndex = 8;
-       int mobileIndex = 9;
-       int telephoneNumberIndex = 10;
-       int mailIndex = 11;
-       int contactsIndex = 12;
-       int descriptionIndex = 13;
-       int tagsIndex = 14;
-
-       private Node importDefaultOrgFile(InputStream in) throws IOException {
-               Session session = null;
-               int i = 0;
-               try {
-                       Workbook wb = JxlUtils.toWorkbook(in, IMPORT_ENCODING);
-                       session = repository.login();
-                       String basePath = "/" + peopleService.getBaseRelPath(PeopleTypes.PEOPLE_ORG);
-                       Node targetParent = session.getNode(basePath);
-                       Sheet sheet = wb.getSheet(0);
-
-                       Node tmpParent = peopleService.getDraftParent(session);
-
-                       int rowNb = sheet.getRows();
-                       for (i = 1; i < rowNb - 1; i++) {
-
-                               Node tmpOrg = createDraftNode(tmpParent, PeopleTypes.PEOPLE_ORG);
-
-                               String dName = JxlUtils.getStringValue(sheet, displayNameIndex, i);
-                               if (notEmpty(dName))
-                                       tmpOrg.setProperty(PeopleNames.PEOPLE_DISPLAY_NAME, dName);
-                               String lName = getStringValue(sheet, legalNameIndex, i);
-                               if (notEmpty(lName))
-                                       tmpOrg.setProperty(PeopleNames.PEOPLE_LEGAL_NAME, lName);
-                               String lForm = getStringValue(sheet, legalFormIndex, i);
-                               if (notEmpty(lForm))
-                                       tmpOrg.setProperty(PeopleNames.PEOPLE_LEGAL_FORM, lForm);
-                               String urlStr = getStringValue(sheet, urlsIndex, i);
-                               if (notEmpty(urlStr))
-                                       importUrls(tmpOrg, urlStr);
-                               String mailStr = getStringValue(sheet, mailIndex, i);
-                               if (notEmpty(mailStr))
-                                       importMails(tmpOrg, mailStr);
-                               String streetStr = getStringValue(sheet, streetIndex, i);
-                               String pcStr = getStringValue(sheet, postalCodeIndex, i);
-                               String lStr = getStringValue(sheet, lIndex, i);
-                               String stStr = getStringValue(sheet, stIndex, i);
-                               String cStr = getStringValue(sheet, cIndex, i);
-                               if (notEmpty(streetStr) || notEmpty(pcStr) || notEmpty(lStr) || notEmpty(stStr) || notEmpty(cStr))
-                                       PeopleJcrUtils.createAddress(resourcesService, peopleService, tmpOrg, streetStr, null, pcStr, lStr,
-                                                       stStr, cStr, true, ContactValueCatalogs.CONTACT_CAT_MAIN, null);
-                               String mobileStr = getStringValue(sheet, mobileIndex, i);
-                               if (notEmpty(mobileStr))
-                                       PeopleJcrUtils.createPhone(resourcesService, peopleService, tmpOrg, mobileStr, true, null, null);
-                               String phoneStr = getStringValue(sheet, telephoneNumberIndex, i);
-                               if (notEmpty(phoneStr))
-                                       PeopleJcrUtils.createPhone(resourcesService, peopleService, tmpOrg, phoneStr, true,
-                                                       ContactValueCatalogs.CONTACT_CAT_DIRECT, null);
-                               String descStr = getStringValue(sheet, descriptionIndex, i);
-                               if (notEmpty(descStr))
-                                       tmpOrg.setProperty(Property.JCR_DESCRIPTION, descStr);
-                               String tagsStr = getStringValue(sheet, tagsIndex, i);
-                               if (notEmpty(tagsStr))
-                                       tmpOrg.setProperty(ResourcesNames.CONNECT_TAGS, ConnectJcrUtils.parseAndClean(tagsStr, ",", true));
-
-                               Node newOrgNode = peopleService.publishEntity(targetParent, PeopleTypes.PEOPLE_ORG, tmpOrg);
-                               // Save the newly created entity without creating a base version
-                               newOrgNode = peopleService.saveEntity(newOrgNode, false);
-
-                               String contactsStr = getStringValue(sheet, contactsIndex, i);
-                               if (notEmpty(contactsStr))
-                                       importOrgEmployees(tmpParent, targetParent, newOrgNode, contactsStr);
-                       }
-
-                       // Refresh tags and mailing list
-                       Node tagParent = resourcesService.getTagLikeResourceParent(session, ConnectConstants.RESOURCE_TAG);
-                       resourcesService.refreshKnownTags(tagParent);
-
-                       // Create Mailing lists
-                       Node mlParent = resourcesService.getTagLikeResourceParent(session, PeopleTypes.PEOPLE_MAILING_LIST);
-                       resourcesService.refreshKnownTags(mlParent);
-
-               } catch (PeopleException | RepositoryException e) {
-                       throw new SuiteException("Cannot import mapping file, error at line: " + (i + 1), e);
-               } finally {
-                       JcrUtils.logoutQuietly(session);
-               }
-
-               return null;
-       }
-
        /* DEPENDENCY INJECTION */
        public void setRepository(Repository repository) {
                this.repository = repository;
        /* DEPENDENCY INJECTION */
        public void setRepository(Repository repository) {
                this.repository = repository;