From 35e2bd452e1670e136d2da84a3876c46b283ab5f Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Wed, 18 May 2016 22:15:16 +0000 Subject: [PATCH] Initial import. git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portal/liferay62-plugins/mail-reader-lr62@128673 82a268e6-3cf1-43bd-a215-b396298e98cf --- .classpath | 32 +++++ .project | 42 +++++++ .settings/.jsdtscope | 13 ++ .settings/org.eclipse.core.resources.prefs | 4 + .settings/org.eclipse.jdt.core.prefs | 8 ++ .settings/org.eclipse.m2e.core.prefs | 4 + .settings/org.eclipse.wst.common.component | 10 ++ ....eclipse.wst.common.project.facet.core.xml | 8 ++ ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .settings/org.eclipse.wst.validation.prefs | 2 + pom.xml | 117 ++++++++++++++++++ src/main/java/org/gcube/portal/GetCaller.java | 60 +++++++++ .../java/org/gcube/portal/ServletTrigger.java | 65 ++++++++++ src/main/java/portal.properties | 3 + src/main/webapp/WEB-INF/liferay-hook.xml | 6 + .../WEB-INF/liferay-plugin-package.properties | 9 ++ src/main/webapp/WEB-INF/web.xml | 4 + 18 files changed, 389 insertions(+) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/.jsdtscope create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 .settings/org.eclipse.wst.common.component create mode 100644 .settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 .settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 .settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 .settings/org.eclipse.wst.validation.prefs create mode 100644 pom.xml create mode 100644 src/main/java/org/gcube/portal/GetCaller.java create mode 100644 src/main/java/org/gcube/portal/ServletTrigger.java create mode 100644 src/main/java/portal.properties create mode 100644 src/main/webapp/WEB-INF/liferay-hook.xml create mode 100644 src/main/webapp/WEB-INF/liferay-plugin-package.properties create mode 100644 src/main/webapp/WEB-INF/web.xml diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..0f4a4c2 --- /dev/null +++ b/.classpath @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..fa6bc59 --- /dev/null +++ b/.project @@ -0,0 +1,42 @@ + + + mail-reader-lr62 + + + + + + org.eclipse.wst.jsdt.core.javascriptValidator + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + + diff --git a/.settings/.jsdtscope b/.settings/.jsdtscope new file mode 100644 index 0000000..b72a6a4 --- /dev/null +++ b/.settings/.jsdtscope @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..abdea9a --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..69c31cd --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..e6f7678 --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles=Liferay-v6.2-CE-(Tomcat-7)-(2) +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component new file mode 100644 index 0000000..3886be4 --- /dev/null +++ b/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..1e1fabd --- /dev/null +++ b/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.container b/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 0000000..3bd5d0a --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.name b/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 0000000..05bd71b --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/.settings/org.eclipse.wst.validation.prefs b/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 0000000..04cad8c --- /dev/null +++ b/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,2 @@ +disabled=06target +eclipse.preferences.version=1 diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..8e255b8 --- /dev/null +++ b/pom.xml @@ -0,0 +1,117 @@ + + + + 4.0.0 + + maven-parent + org.gcube.tools + 1.0.0 + + + org.gcube.portal.liferay + mail-reader-lr62 + war + mail-reader-lr62 Hook + 1.0.0-SNAPSHOT + + + + com.liferay.maven.plugins + liferay-maven-plugin + ${liferay.maven.plugin.version} + + ${liferay.auto.deploy.dir} + ${liferay.app.server.deploy.dir} + ${liferay.app.server.lib.global.dir} + ${liferay.app.server.portal.dir} + ${liferay.version} + hook + + + + maven-compiler-plugin + 2.5 + + UTF-8 + 1.6 + 1.6 + + + + maven-resources-plugin + 2.5 + + UTF-8 + + + + + + + + org.gcube.distribution + maven-portal-bom + LATEST + pom + import + + + + + + com.liferay.portal + portal-service + ${liferay.version} + provided + + + com.liferay.portal + util-java + ${liferay.version} + provided + + + javax.portlet + portlet-api + 2.0 + provided + + + javax.servlet + servlet-api + 2.4 + provided + + + javax.servlet.jsp + jsp-api + 2.0 + provided + + + org.gcube.dvos + usermanagement-core + + + org.slf4j + slf4j-log4j12 + + + org.slf4j + slf4j-api + + + + + Liferay-v6.2-CE-(Tomcat-7)-(2) + + 6.2.5 + 6.2.5 + /Users/massi/portal/liferay-portal-6.2-ce-ga6/deploy + /Users/massi/portal/liferay-portal-6.2-ce-ga6/tomcat-7.0.62/webapps + /Users/massi/portal/liferay-portal-6.2-ce-ga6/tomcat-7.0.62/lib/ext + /Users/massi/portal/liferay-portal-6.2-ce-ga6/tomcat-7.0.62/webapps/ROOT + + + + \ No newline at end of file diff --git a/src/main/java/org/gcube/portal/GetCaller.java b/src/main/java/org/gcube/portal/GetCaller.java new file mode 100644 index 0000000..c98c6e6 --- /dev/null +++ b/src/main/java/org/gcube/portal/GetCaller.java @@ -0,0 +1,60 @@ +package org.gcube.portal; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.List; + +public class GetCaller extends Thread { + private final int MINUTES_4_MILLISECONDS = 240000; + + private final static String USER_AGENT = "Mozilla/5.0"; + + private List urlsToContact; + + public GetCaller(List urlsToContact) { + super(); + this.urlsToContact = urlsToContact; + } + + + + @Override + public void run() { + try { + System.out.println("********** READING MAILS THREAD Waiting ... starting in " + MINUTES_4_MILLISECONDS/60000 + " minutes"); + System.out.println("********** LDAP EXPORT THREAD Waiting ... starting in " + MINUTES_4_MILLISECONDS/60000 + " minutes"); + Thread.sleep(MINUTES_4_MILLISECONDS); + for (String url : urlsToContact) { + String response = sendGet(url); + System.out.println("**********\n\n"+ "Called URL=" + url + " correctly, response:" + response); + } + String response_ldap = sendGet(ServletTrigger.SERVLET_URL_LDAP); + System.out.println("**********\n\n"+ "Called URL=" + ServletTrigger.SERVLET_URL_LDAP + " correctly, response: " + response_ldap); + } catch (Exception e) { + e.printStackTrace(); + } + + } + + private String sendGet(String url) throws Exception { + URL obj = new URL(url); + HttpURLConnection con = (HttpURLConnection) obj.openConnection(); + con.setRequestProperty("User-Agent", USER_AGENT); + int responseCode = con.getResponseCode(); + System.out.println("\nSending 'GET' request to URL : " + url); + System.out.println("Response Code : " + responseCode); + + BufferedReader in = new BufferedReader( + new InputStreamReader(con.getInputStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + in.close(); + return response.toString(); + } +} diff --git a/src/main/java/org/gcube/portal/ServletTrigger.java b/src/main/java/org/gcube/portal/ServletTrigger.java new file mode 100644 index 0000000..e2e38a9 --- /dev/null +++ b/src/main/java/org/gcube/portal/ServletTrigger.java @@ -0,0 +1,65 @@ +package org.gcube.portal; + +import java.util.ArrayList; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.liferay.portal.kernel.events.ActionException; +import com.liferay.portal.kernel.events.SimpleAction; +import com.liferay.portal.model.VirtualHost; +import com.liferay.portal.service.VirtualHostLocalServiceUtil; + +public class ServletTrigger extends SimpleAction { + private static final Logger _log = LoggerFactory.getLogger(ServletTrigger.class); + + protected static final String SERVLET_CONTEXT_MAIL = "/social-mail-servlet/start-email-reader"; + protected static final String SERVLET_URL_LDAP = "http://localhost:9090/ldap-export-servlet/start-ldap-export"; + + private final String PROTOCOL = "http://"; + private final String PORT = "9090"; + + /* (non-Java-doc) + * @see com.liferay.portal.kernel.events.SimpleAction#SimpleAction() + */ + public ServletTrigger() { + super(); + } + + /* (non-Java-doc) + * @see com.liferay.portal.kernel.events.SimpleAction#run(String[] arg0) + */ + public void run(String[] arg0) throws ActionException { + try { + List urlsToContact = getVirtualHostURLs(); + GetCaller gc = new GetCaller(urlsToContact); + gc.start(); + + } catch (Exception e) { + e.printStackTrace(); + } + } + /** + * I am containg the same servlet for each vHost + * @return + */ + private List getVirtualHostURLs() { + List toReturn = new ArrayList(); + List vHosts = null; + try { + vHosts = VirtualHostLocalServiceUtil.getVirtualHosts(0, VirtualHostLocalServiceUtil.getVirtualHostsCount()); + for (VirtualHost virtualHost : vHosts) { + if (virtualHost.getHostname().compareTo("localhost") != 0 && virtualHost.getLayoutSetId() != 0) { + String hostToContact = PROTOCOL+virtualHost.getHostname()+":"+PORT; + toReturn.add(hostToContact+SERVLET_CONTEXT_MAIL); + _log.debug("Added host to contact: " + hostToContact); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return toReturn; + } + +} \ No newline at end of file diff --git a/src/main/java/portal.properties b/src/main/java/portal.properties new file mode 100644 index 0000000..4016151 --- /dev/null +++ b/src/main/java/portal.properties @@ -0,0 +1,3 @@ +# +#Wed May 18 17:18:08 CEST 2016 +application.startup.events=org.gcube.portal.ServletTrigger diff --git a/src/main/webapp/WEB-INF/liferay-hook.xml b/src/main/webapp/WEB-INF/liferay-hook.xml new file mode 100644 index 0000000..944195a --- /dev/null +++ b/src/main/webapp/WEB-INF/liferay-hook.xml @@ -0,0 +1,6 @@ + + + + + portal.properties + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/liferay-plugin-package.properties b/src/main/webapp/WEB-INF/liferay-plugin-package.properties new file mode 100644 index 0000000..72fbb5f --- /dev/null +++ b/src/main/webapp/WEB-INF/liferay-plugin-package.properties @@ -0,0 +1,9 @@ +name=mail-reader-lr62 +module-group-id=liferay +module-incremental-version=1 +tags= +short-description= +change-log= +page-url=http://www.liferay.com +author=Liferay, Inc. +licenses=LGPL \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..7d8c082 --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file