Apis

  1. portlet api
  2. liferay api
  3. liferay forums
  4. MySql notes
  5. template

Docs

  1. basic 168 pdf
  2. template

satya - Wednesday, October 04, 2006 4:04:36 PM

home page

http://www.liferay.com/web/guest/devzone

satya - Wednesday, October 04, 2006 4:09:12 PM

Developers guide

http://content.liferay.com/4.0.0/docs/developers/index.html

satya - Wednesday, October 04, 2006 4:09:52 PM

Docs

http://www.liferay.com/web/guest/devzone/documentation

satya - Wednesday, October 04, 2006 4:50:43 PM

ibms docs on portlets

see if I can find how to write jsr 168 portlets

satya - Wednesday, October 04, 2006 4:57:23 PM

jsr 168 from sun site

jsr 168 spec

satya - Wednesday, October 04, 2006 4:59:04 PM

Documentation from sun

sun docs

satya - Friday, October 06, 2006 3:27:36 PM

liferay downloads

download page

satya - Friday, October 06, 2006 4:27:59 PM

After downloading...

. Comes with a version that is pre bundled with tomcat 1.5

. Un zip it

. Set java_home to your jdk 15

. Run the startup.bat in the bin directory

. There is no separate installation program that I could find out.

satya - Friday, October 06, 2006 4:28:53 PM

The initial url

http://localhost:8080

satya - Friday, October 06, 2006 4:30:13 PM

First userid/password

test@liferay.com/test

satya - Friday, October 06, 2006 7:35:42 PM

Understand liferay's extension enviornment

Understand liferay's extension enviornment

satya - Friday, October 06, 2006 7:36:13 PM

Understand ant

Understand ant

satya - Friday, October 06, 2006 7:36:36 PM

Understand the interaction between ant and eclipse

Understand the interaction between ant and eclipse

satya - Saturday, October 07, 2006 7:02:25 AM

Details of the jsr 168 spec

http://www.jcp.org/en/jsr/detail?id=168

satya - Saturday, October 07, 2006 7:07:37 AM

Overview of jsr 168 specification

find the following here

-  JSR 168 
-  Build JSR 168-Compliant Portlets Now! 
-  Sample Portlet Code 
-  Related Content 
-  Introductory pdf article on how to write jsr 168 portlets

satya - Saturday, October 07, 2006 8:00:13 AM

Understand pluto architecture...

Might be key to understanding portlet architecture. Especially how they are deployed etc.

satya - Saturday, October 07, 2006 8:02:56 AM

How are portlets deployed?

They seem to encourage deployment as war files. How are these wars different from servlet wars? Can you manually copy the war files? Can they share session?

satya - Saturday, October 07, 2006 9:35:10 AM

liferay wiki

article, architecture etc.

Hoping I can find out what the architecture for groups is

satya - Saturday, October 07, 2006 10:20:18 AM

Are groups part of portlet spec?

Are groups part of portlet spec?

satya - Saturday, October 07, 2006 10:20:36 AM

What is the data model for Liferay groups?

What is the data model for Liferay groups?

satya - Saturday, October 07, 2006 12:33:15 PM

Search liferay discussion forums

http://www.liferay.com/web/guest/devzone/forums

satya - Saturday, October 07, 2006 12:41:07 PM

Data model for liferay

http://wiki.liferay.com/index.php/Entity_model

satya - Saturday, October 07, 2006 2:05:44 PM

How do I undeploy or uninstall a portlet war?

How do I undeploy or uninstall a portlet war?

satya - Saturday, October 07, 2006 2:12:09 PM

What is auto deploy scanner?

What is auto deploy scanner? What is the hot deploy directory?

satya - Sunday, October 08, 2006 9:09:01 AM

Can I add a portlet twice? if so how?

Can I add a portlet twice? if so how?

satya - Sunday, October 08, 2006 9:09:23 AM

Can preferences be automatically edited?

Can preferences be automatically edited?

satya - Sunday, October 08, 2006 9:15:42 AM

Do some research on portal-ext.properties

Do some research on portal-ext.properties

satya - Sunday, October 08, 2006 9:20:09 AM

Also have to figure out how the security works

Also have to figure out how the security works

satya - Sunday, October 08, 2006 10:29:25 AM

How can you isolate the portal for portlets completely?

How can you isolate the portal for portlets completely? Or how can you abstract the portal information into a java api and then provide an implementation for each portatl.

satya - Sunday, October 08, 2006 1:19:11 PM

How can I find the currently logged in user

Here is a nice thread from liferay discussion

satya - Sunday, October 08, 2006 1:28:22 PM

How does request/response objects differ on the jsp page?

When a request and response are transferred to the jsp page, how do they differ? What additional objects are there on the page?

satya - Sunday, October 08, 2006 3:49:36 PM

How to remove a portlet?

it seem to cache stuff.

satya - Monday, October 09, 2006 8:02:49 AM

Nature of a portlet session

public interface PortletSessionThe PortletSession interface provides a way to identify a user across more than one request and to store transient information about that user.

A PortletSession is created per user client per portlet application.

A portlet can bind an object attribute into a PortletSession by name. The PortletSession interface defines two scopes for storing objects:

APPLICATION_SCOPE 
PORTLET_SCOPE 

All objects stored in the session using the APPLICATION_SCOPE must be available to all the portlets, servlets and JSPs that belongs to the same portlet application and that handles a request identified as being a part of the same session. Objects stored in the session using the PORTLET_SCOPE must be available to the portlet during requests for the same portlet window that the objects where stored from. Attributes stored in the PORTLET_SCOPE are not protected from other web components of the portlet application. They are just conveniently namespaced.

The portlet session is based on the HttpSession. Therefore all HttpSession listeners do apply to the portlet session and attributes set in the portlet session are visible in the HttpSession and vice versa.

Read more here

http://portals.apache.org/pluto/multiproject/portlet-api/apidocs/

satya - Friday, October 13, 2006 12:52:07 PM

Problem with portlet preferences (reloading of them especially)

Problem with portlet preferences (reloading of them especially)

satya - Friday, October 13, 2006 12:54:37 PM

Anothe interesting discussion on adding a portlet multiple times

http://www.liferay.com/web/guest/devzone/forums/message_boards/message/4628

satya - Friday, October 13, 2006 1:00:21 PM

liferay copies stuff from portlet.xml into a data base

This means the preferences are cached. You can change the portlet.xml. But to no avail.

Apparently you can delete the portlet preferences table and restart liferay to have the changes take affect.

Apparently you can not add multiple instances. A future version is expected to do this.

satya - Friday, October 13, 2006 1:06:27 PM

A note on undeploying portlets

A note on undeploying portlets

satya - Friday, October 13, 2006 1:21:21 PM

Will reset work for resetting the preferences?

Will reset work for resetting the preferences?

satya - Friday, October 13, 2006 1:25:01 PM

Viewing hypersonic database of liferay

Viewing hypersonic database of liferay

satya - Friday, October 13, 2006 1:43:12 PM

What is the nature of hypesonic database?

Is it in memory?

satya - Friday, October 13, 2006 2:26:24 PM

How do you enable edit preferences?

How do you enable edit preferences?

satya - Wednesday, October 18, 2006 11:06:29 AM

Name conflicts in request parameters and attributes?

Name conflicts in request parameters and attributes?

satya - Thursday, October 19, 2006 11:33:19 AM

Namespace..will this work

URIs, HTML element name attributes, and JavaScript resources must be namespace-encoded. Since portlets can exist on a page, and it is possible that more than one portlet will produce content with likenamed elements, there is a risk of namespace collision between elements, causing functional problems the page. Use the portlet:namespace tag to encode such resources with the portlet instance name.

But what about url parameters into the portlet? Why is that not mentioned?

satya - Thursday, October 19, 2006 11:49:01 AM

More on namespace stuff...

The Java Portlet Specification introduces the term Portlet Window. It is defined as a means to include more than one portlet, maybe even the same, multiple times on a page. The window is the view into the portlet. More information on portal pages and portlet windows can be found in Section 2.2. Technically, the portlet windows allow us to scope all available data of a portlet and ultimately assign it to one specific window. This allows the user to put the same portlet more than once on her pages without the portlet window A overwriting the state of portlet window B. The data scoped by the portlet window are:

PortletSession
Navigational state

You can find a more detailed discussion about the different portlet states and data in Section 2.4.1. In addition, a portlet can access a request scoping via the PortletResponse.getNamespace() method. This is supposed to be used from a portlet to guarantee that returned markup will be unique on a page. For example, you could access a namespace to prefix a JavaScript method, but if you have the same portlet twice on a page, JavaScript would generate a duplicate method name. For all cases, you can use the ExternalContext from JSF to get to the respective objects such as PortletSession or PortletResponse, which then in turn automatically scope your data. The following listing shows how this is achieved when you have a FacesContext at hand. If you do not have a faces context you can use the static getCurrentInstance() method to get a handle of it.

ExternalContext extCtx = facesContext.getExternalContext();
RenderRequest request = (RenderRequest)extCtx.getRequest();
RenderResponse response = (RenderResponse)extCtx.getResponse();
PortletSession session = Request.getPortletSession();
String prefix = response.getNamespace();

Please note, that there is a slight misalignment between the Java Portlet Specification and JSF in this regard. In a lot of cases JSF tags write JavaScript methods into the output stream but will not leverage the getNamespace() method in the portlet scenario. As a result a JSF portlet cannot be displayed more than once on a page. To overcome this problem, it might be possible to namespace the id attributes of all JSF tags that write JavaScript into the response stream. This is possible because JSF uses the id of the actual UI element to namespace the JavaScript method.

satya - Thursday, October 19, 2006 11:56:18 AM

The nature of getParameter...

getParameter api

satya - Thursday, October 19, 2006 11:56:52 AM

See what this api says...

Only parameters targeted to the current portlet are accessible.

satya - Thursday, October 19, 2006 12:03:48 PM

PLT.11.1.1 Request Parameter s

If a portlet receives a request from a client request targeted to the portlet itself, the 10 parameters must be the string parameters encoded in the URL (added when creating the PortletURL) and the string parameters sent by the client to the portlet as part of the client request.xlviii The parameters the request object returns must be "x-www-formurlencoded" decoded.xlix

The portlet-container must not propagate parameters received in an action request to 15 subsequent render requests of the portlet.l If a portlet wants to do that, it can use render URLs or it must use the setRenderParameter or setRenderParameters methods of the ActionResponse object within the processAction call. If a portlet receives a render request that is the result of a client request targeted to another portlet in the portal page, the parameters must be the same parameters as of the 20 previous render request.li

If a portlet receives a render request following an action request as part of the same client request, the parameters received with render request must be the render parameters set during the action request.lii

Commonly, portals provide controls to change the portlet mode and the window state of 25 portlets. The URLs these controls use are generated by the portal. Client requests triggered by those URLs must be treated as render URLs and the existing render parameters must be preserved.liii

A portlet must not see any parameter targeted to other portlets.liv

See on page 44 of the spec

satya - Saturday, October 21, 2006 11:55:37 AM

Are the init parameters cached as well?

Are the init parameters cached as well?

satya - Saturday, October 21, 2006 12:30:43 PM

How to check liferay log files?

How to check liferay log files?

satya - Saturday, October 21, 2006 2:15:04 PM

How could I use portlet urls from plain html?

How could I use portlet urls from plain html?

satya - Sunday, October 22, 2006 7:49:45 AM

Are there any javascript routines that can construct these urls?

Are there any javascript routines that can construct these urls?

satya - Sunday, October 22, 2006 8:21:58 AM

Some more notes on render urls

some notes on render urls

satya - Sunday, October 22, 2006 8:23:17 AM

url parameters on a render url are prefixed or encoded for uniqueness

As can be seen from the above link the url parameters are uniquely encoded with the portlet instance id.

This answers the parameter question raised above.

satya - Sunday, October 22, 2006 9:09:00 AM

See how to get the user_info from portlet request

See how to get the user_info from portlet request

satya - Sunday, October 22, 2006 8:37:33 PM

what are liferay jar files to compile with?

what are liferay jar files to compile with?

satya - Monday, October 23, 2006 9:04:42 PM

Can a jar file say it depends on something else inside the jar file?

Can a jar file say it depends on something else inside the jar file?

satya - Monday, October 23, 2006 9:06:35 PM

Looks like as a result you will also need the commons lang.jar

Looks like as a result you will also need the commons lang.jar

satya - Monday, October 23, 2006 9:06:47 PM

What is the commons lang used for?

What is the commons lang used for?

satya - Wednesday, October 25, 2006 11:58:08 AM

The form needs to be a

The form needs to be a "post" to call actionURL

satya - Wednesday, October 25, 2006 11:59:09 AM

An ActionRequest could be a RenderRequest as well

An ActionRequest could be a RenderRequest as well. See if you are assuming that an "actionRequest" can not be a "renderRequest" underneath. More on this later.

satya - Monday, October 30, 2006 10:09:38 PM

Extending liferay tables

Extending liferay tables

One of the most common needs of users of Liferay is to extend certain functionality for their needs. this article will cover extending the user table to accept their hometown newspaper. Clearly this is just an example, and could be changed to include the name of their spouse, dog, cat, or whatever is wanted.

satya - Monday, October 30, 2006 10:10:25 PM

Overview above

The idea here is to create a new table which has your custom field(s) for the user table. If you are adding hometown newspaper for example, you would create a new table in the Liferay database that has a unique id column, your hometown newspaper column, and a reference to the user that is associated with this data.

You can do this by running our service builder to create the extended user class, and then in the LocalServiceImpl file you would add the data you needed to the extra table.

satya - Monday, October 30, 2006 11:06:13 PM

liferay support

liferay support

skomatineni/simple

satya - Thursday, November 02, 2006 6:42:00 AM

understand xdoclet technology

understand xdoclet technology

satya - Thursday, November 02, 2006 6:44:29 AM

Read the architecture and document their generated classes in your own terms

Read the architecture and document their generated classes in your own terms

satya - Thursday, November 02, 2006 6:47:36 AM

Running multiple portals

Running multiple portals

satya - Thursday, November 02, 2006 6:50:08 AM

Installing liferay on mysql

Installing liferay on mysql

satya - Friday, November 10, 2006 2:16:43 PM

why does this happen?

19:14:33,715 ERROR [velocity:143] Method processColumn threw exception for ref ence $processor in template com.liferay.portlet.layoutconfiguration.util.Runti PortletUtil at [15,65]