Installing Aspire to work with Jetspeed

This involves the following.

Placing the Aspire jar file

To be done

Placing the aspire.properties file

To be done

Defining the init servlet that initializes aspire

To be done

Registering the AspirePortlet with js

Defining an AspirePortlet to Jetspeed is like defining any other portlet to Jetspeed. This means creating a portlet-entry in an xreg file. Xreg files reside in \jetspeed\web-inf\conf sub directory


(!--
**********************************************************************
* SamplePortlet
**********************************************************************
--)
    (portlet-entry name="MyAspirePortlet" hidden="false" type="instance" application="false")
        (meta-info)
            (title)SamplePortlet title(/title)
            (description)SamplePortlet Description(/description)
        (/meta-info)
        (classname)com.indent.actions.portlets.AspirePortlet(/classname)
        (media-type ref="html"/)
        (url cachedOnURL="true"/)
    (/portlet-entry)

Defining the first page for AspirePortlet

In one of your aspire related properties files create the following entry


Portlet-entry.MyAspirePortlet.firstURL=your-first-aspire-url-name

See below for what 'your-first-aspire-url-name' could look like and what it defines

Aspire properties for "aspire template page display url"

See Aspire documentation to see the general structure of an aspire url. What follows is an example


###################################
# ShowFiledReportsViewJSPURL
###################################
ShowFiledReportsViewJSPURL=/reports/report-filing/reports-summary-view.html
ShowFiledReportsViewJSPURL.transformType=JSP
request.ShowFiledReportsViewJSPURL.transform.className=com.ai.jsp.JSPTransform
ShowFiledReportsViewJSPURL.formHandlerName=ShowFiledReportsViewURLFormHandler

#
#Data definition
#
request.ShowFiledReportsViewURLFormHandler.form_handler.class_request.className=com.ai.htmlgen.DBHashTableFormHandler1
ShowFiledReportsViewURLFormHandler.loopNames=FoldersLoop1

#
#Maindata request
#
request.ShowFiledReportsViewURLFormHandler.maindataRequest.classname=com.ai.db.DBRequestExecutor2
request.ShowFiledReportsViewURLFormHandler.maindataRequest.db=reportsDB
request.ShowFiledReportsViewURLFormHandler.maindataRequest.stmt=\
\
select first_name as user_first_name \
	,last_name as user_last_name \
	,email as user_email \
from users \
where user_id = {ownerUserId.quote}


#first primary loop
request.ShowFiledReportsViewURLFormHandler.FoldersLoop1.class_request.className=com.ai.htmlgen.GenericTableHandler6
request.ShowFiledReportsViewURLFormHandler.FoldersLoop1.loopNames=itemsLoop
request.ShowFiledReportsViewURLFormHandler.FoldersLoop1.query_request.className=com.ai.db.DBRequestExecutor2
request.ShowFiledReportsViewURLFormHandler.FoldersLoop1.query_request.db=reportsDB
request.ShowFiledReportsViewURLFormHandler.FoldersLoop1.query_request.stmt=\
	select * from folders  \
	where 1=1 \
		and parent_folder_id is null \
		and public = 'Y' \
		and owner_user_id = {ownerUserId.quote} \
	order by folder_name 

Aspire properties for "jsp display url"


###################################
# ShowFiledReportsViewJSPURL
###################################
ShowFiledReportsViewJSPURL=/reports/report-filing/reports-summary-view.html
ShowFiledReportsViewJSPURL.transformType=JSP
ShowFiledReportsViewJSPURL.formHandlerName=ShowFiledReportsViewURLFormHandler

#
#Data definition
#
request.ShowFiledReportsViewURLFormHandler.form_handler.class_request.className=com.ai.htmlgen.DBHashTableFormHandler1
ShowFiledReportsViewURLFormHandler.loopNames=FoldersLoop1

#
#Maindata request
#
request.ShowFiledReportsViewURLFormHandler.maindataRequest.classname=com.ai.db.DBRequestExecutor2
request.ShowFiledReportsViewURLFormHandler.maindataRequest.db=reportsDB
request.ShowFiledReportsViewURLFormHandler.maindataRequest.stmt=\
\
select first_name as user_first_name \
	,last_name as user_last_name \
	,email as user_email \
from users \
where user_id = {ownerUserId.quote}


#first primary loop
request.ShowFiledReportsViewURLFormHandler.FoldersLoop1.class_request.className=com.ai.htmlgen.GenericTableHandler6
request.ShowFiledReportsViewURLFormHandler.FoldersLoop1.loopNames=itemsLoop
request.ShowFiledReportsViewURLFormHandler.FoldersLoop1.query_request.className=com.ai.db.DBRequestExecutor2
request.ShowFiledReportsViewURLFormHandler.FoldersLoop1.query_request.db=reportsDB
request.ShowFiledReportsViewURLFormHandler.FoldersLoop1.query_request.stmt=\
	select * from folders  \
	where 1=1 \
		and parent_folder_id is null \
		and public = 'Y' \
		and owner_user_id = {ownerUserId.quote} \
	order by folder_name 

Aspire properties for "xslt display url"

To be done

Aspire properties for "update url". Covers all updates

################################### # SetFolderAccess ###################################

request.SetFolderAccess.classname=com.ai.db.DBRequestExecutor2
request.SetFolderAccess.query_type=update
request.SetFolderAccess.db=reportsDB
request.SetFolderAccess.stmt=\
	update folders \
	set public = {access.quote} \
	where folder_id = {folderId}

request.SetFolderAccess.redirectURL=any-display-url-including-jsp
request.SetFolderAccess.failureRedirectURL=any-display-url-including-jsp

Dealing with JSP caching

The following attribute is available in the request object


      // Allow access to portlet from .jsp template
      request.setAttribute("aspire_jsp_deliver_cache", "true");

Additional parameters available in the hashtable

The param "aspire_jetspeed_selflink" is in the hashtable for access

The param "aspire_turbine_rundata" in the hash table points to the turbine rundata

Additional parameters in the request object


      //Get the action object from aspire
      Object dataObj = FormUtils.getDataObjectFor(url,params);


      HttpServletRequest request = rundata.getRequest();

      //Set it in the rundata or request
      request.setAttribute("AspireDataSet",dataObj);

      // Allow access to portlet from .jsp template
      request.setAttribute("portlet", this);

      // Add js_peid out of convenience
      request.setAttribute("js_peid", getID());

      // Add rundata out of convenience (JspService.RUNDATA differs from GenericMVCPortlet.RUNDATA)
      request.setAttribute(JspService.RUNDATA, rundata);

AspirePortlet's caching strategy

To be done

References

To be done

for any questions email me at 'satya at activeintellect dot com'