Difference between revisions of "Building your gCube Portlet in ETICS"
Line 1: | Line 1: | ||
= Build Scripts = | = Build Scripts = | ||
− | + | In order to build a portlet (either in ETICS or in development machine), following two template files are provided (hosted in D4Science-II's svn repository): | |
− | * build.xml [[ | + | * '''build.xml''': download from [[http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portal/portal-framework/MyGCubePortlet/build.xml here]] |
− | * build.properties [[ | + | * '''build.properties''': download from [[http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portal/portal-framework/MyGCubePortlet/build.properties here]] |
− | + | ||
− | |||
+ | These files must be copied in portlet's root directory and ''build.properites'' must be partially customized with actual values for the portlet (see below). | ||
− | == build.xml == | + | |
+ | '''INFO''': Please consider those files as a template that can be adapted/modified/extended if a portlet has specific needs. | ||
+ | |||
+ | |||
+ | == build.xml details == | ||
Targets provided by build.xml are: | Targets provided by build.xml are: | ||
* '''setenv''': sets classpath. All other targets depend on it; | * '''setenv''': sets classpath. All other targets depend on it; | ||
Line 15: | Line 18: | ||
* '''war''': creates war package | * '''war''': creates war package | ||
* '''javadoc''': runs javadoc compiler | * '''javadoc''': runs javadoc compiler | ||
− | * '''d4s-deploy''': used for automatic portlet's deploy | + | * '''d4s-deploy''': used for automatic portlet's deploy in D4Science's infrastructure |
+ | |||
+ | |||
+ | |||
+ | == build.properties details == | ||
+ | Following properties, at least, must be customized: for all portlets | ||
+ | * '''war.filename''': name given to the final ''war'' package. Note: without extension (e.g. "myportlet" instead of "myportlet.war") | ||
+ | * '''gwt-module''': name of GWT module to pass to the gwt compiler. If portlet does not use GWT, it will be ignored | ||
+ | * '''javadoc.doctitle''': title for documentation pages generated by javadoc compiler | ||
+ | * '''javadoc.windowtitle''': value for <title> tag of HTML pages generated by javadoc compiler | ||
+ | |||
+ | |||
+ | = Deploy Scripts = | ||
+ | In order to enable automatic deploy for D4Science portlets, following script must be included in each portlet. It will be included in portlet's servicearchive and executed at deploy-time. | ||
− | |||
− | + | Download installPortlet.sh from [[http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portal/portal-framework/MyGCubePortlet/installPortlet.sh here]] and copy it in portlet's root directory. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |||
− | + | ''NOTE'': This script is very standard and should not be customized at all. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
= Portlet's ETICS Configuration = | = Portlet's ETICS Configuration = | ||
Line 99: | Line 86: | ||
=== Dependencies === | === Dependencies === | ||
Servicearchive's configuration must express a configuration on portlet | Servicearchive's configuration must express a configuration on portlet | ||
+ | <math>Insert formula here</math> |
Revision as of 15:16, 8 July 2010
Contents
Build Scripts
In order to build a portlet (either in ETICS or in development machine), following two template files are provided (hosted in D4Science-II's svn repository):
These files must be copied in portlet's root directory and build.properites must be partially customized with actual values for the portlet (see below).
INFO: Please consider those files as a template that can be adapted/modified/extended if a portlet has specific needs.
build.xml details
Targets provided by build.xml are:
- setenv: sets classpath. All other targets depend on it;
- compile: compiles java soruces
- gwt-compile: runs gwt compiler
- war: creates war package
- javadoc: runs javadoc compiler
- d4s-deploy: used for automatic portlet's deploy in D4Science's infrastructure
build.properties details
Following properties, at least, must be customized: for all portlets
- war.filename: name given to the final war package. Note: without extension (e.g. "myportlet" instead of "myportlet.war")
- gwt-module: name of GWT module to pass to the gwt compiler. If portlet does not use GWT, it will be ignored
- javadoc.doctitle: title for documentation pages generated by javadoc compiler
- javadoc.windowtitle: value for <title> tag of HTML pages generated by javadoc compiler
Deploy Scripts
In order to enable automatic deploy for D4Science portlets, following script must be included in each portlet. It will be included in portlet's servicearchive and executed at deploy-time.
Download installPortlet.sh from [here] and copy it in portlet's root directory.
NOTE: This script is very standard and should not be customized at all.
Portlet's ETICS Configuration
In this page a guide to create an ETICS configuration for a D4Science-II portlet is provided.
Build Commands
Build commands specification is quite straightforward: you can refer to following screenshot.
clean: ant clean
compile: ant compile gwt-compile war
doc: ant javadoc
install: mkdir -p ${prefix}/lib; cp build/*.war ${prefix}/lib; cp -r doc/ ${prefix}
Dependencies
In order to simplify portlet's dependencies management a special component has been created: org.gcube.portal.portal-framework. This component aims to:
- decouple portlets from the specific portal implementation (e.g.: gridsphere, liferay,...);
- provide a common environment to compile portlets;
All portlets should express a dependency on org.gcube.portal.portal-framework.
portal-framework details
At the moment, org.gcube.portal.portal-framework provide portlets that express it as dependency with:
- a PORTAL_HOME env variable that point to actual location on filesystem of portal libraries;
- a GWT_HOME anv variable that point to actual location of gwt installation directory;
- gwt dependency;
- liferay dependency;
ServiceArchive's ETICS configuration
Build Commands
Please in following example replace QuickSearchPortlet and org.gcube.portlets-user.quick-search-portlet with actual portlet's name and component's name
- init: mkdir -p ${prefix}/QuickSearchPortlet/lib;
- install: cp ${org.gcube.portlets-user.quick-search-portlet.moduleDir}/etc/profile.xml ${org.gcube.portlets-user.quick-search-portlet.moduleDir}/README ${org.gcube.portlets-user.quick-search-portlet.moduleDir}/LICENSE ${org.gcube.portlets-user.quick-search-portlet.moduleDir}/INSTALL ${org.gcube.portlets-user.quick-search-portlet.moduleDir}/CHANGELOG ${org.gcube.portlets-user.quick-search-portlet.moduleDir}/MAINTAINERS ${prefix}; cp ${org.gcube.portlets-user.quick-search-portlet.moduleDir}/installPortlet.sh ${org.gcube.portlets-user.quick-search-portlet.moduleDir}/build.xml ${org.gcube.portlets-user.quick-search-portlet.moduleDir}/build.properties ${prefix}/QuickSearchPortlet; cp `find ${org.gcube.portlets-user.quick-search-portlet.moduleDir} -name "*.war" -print` ${prefix}/QuickSearchPortlet/lib; echo ${org.gcube.portlets-user.quick-search-portlet.vcsroot}/${org.gcube.portlets-user.quick-search-portlet.tag} > ${prefix}/QuickSearchPortlet/svnpath.txt;
Dependencies
Servicearchive's configuration must express a configuration on portlet <math>Insert formula here</math>