Vista combinada Visión Plana Vista de árbol
Discusiones [ Anterior | Siguiente ]
toggle
What Framework should I use to replace the Icefaces in Liferay? Stanley Kurtz Matias de Lima 4 de noviembre de 2009 2:37
RE: What Framework should I use to replace the Icefaces in Liferay? Victor Zorin 4 de noviembre de 2009 18:07
RE: What Framework should I use to replace the Icefaces in Liferay? Gordon Augat 4 de noviembre de 2009 19:05
RE: What Framework should I use to replace the Icefaces in Liferay? Victor Zorin 4 de noviembre de 2009 19:59
RE: What Framework should I use to replace the Icefaces in Liferay? Stanley Kurtz Matias de Lima 5 de noviembre de 2009 1:53
RE: What Framework should I use to replace the Icefaces in Liferay? Chicon Samu 5 de noviembre de 2009 2:22
RE: What Framework should I use to replace the Icefaces in Liferay? Alex Wallace 5 de noviembre de 2009 7:44
RE: What Framework should I use to replace the Icefaces in Liferay? Stanley Kurtz Matias de Lima 5 de noviembre de 2009 10:19
RE: What Framework should I use to replace the Icefaces in Liferay? Alex Wallace 5 de noviembre de 2009 10:33
RE: What Framework should I use to replace the Icefaces in Liferay? Stanley Kurtz Matias de Lima 5 de noviembre de 2009 17:10
RE: What Framework should I use to replace the Icefaces in Liferay? Deryk Sinotte 5 de noviembre de 2009 12:11
RE: What Framework should I use to replace the Icefaces in Liferay? Stanley Kurtz Matias de Lima 5 de noviembre de 2009 17:14
RE: What Framework should I use to replace the Icefaces in Liferay? Alex Wallace 5 de noviembre de 2009 18:26
RE: What Framework should I use to replace the Icefaces in Liferay? Victor Zorin 5 de noviembre de 2009 18:51
RE: What Framework should I use to replace the Icefaces in Liferay? Alex Wallace 6 de noviembre de 2009 7:28
RE: What Framework should I use to replace the Icefaces in Liferay? Victor Zorin 10 de noviembre de 2009 12:51
Stanley Kurtz Matias de Lima
What Framework should I use to replace the Icefaces in Liferay?
4 de noviembre de 2009 2:37
Respuesta

Stanley Kurtz Matias de Lima

Ranking: New Member

Mensajes: 17

Fecha de incorporación: 8 de octubre de 2009

Mensajes recientes

Hi everybody!

I'm have problems to build portlets using Icefaces in Liferay.
The problem is 'User Session Expired' message. For more details see the link:

http://www.liferay.com/web/guest/community/forums/-/message_boards/message/4168285

Unfortunately seems that this problem wasn't solved yet.

Does anyone have any suggestions for other Framework that I can use?
That is as efficient as Icefaces.

Thank you!
Victor Zorin
RE: What Framework should I use to replace the Icefaces in Liferay?
4 de noviembre de 2009 18:07
Respuesta

Victor Zorin

Ranking: Liferay Legend

Mensajes: 1178

Fecha de incorporación: 14 de abril de 2008

Mensajes recientes

Have a look at groovy grails, it seems to have much tighter integration with Liferay.
Gordon Augat
RE: What Framework should I use to replace the Icefaces in Liferay?
4 de noviembre de 2009 19:05
Respuesta

Gordon Augat

Ranking: Junior Member

Mensajes: 99

Fecha de incorporación: 16 de agosto de 2006

Mensajes recientes

The Vaadin Framework looks promising and will be included in Liferay 5.3.
Victor Zorin
RE: What Framework should I use to replace the Icefaces in Liferay?
4 de noviembre de 2009 19:59
Respuesta

Victor Zorin

Ranking: Liferay Legend

Mensajes: 1178

Fecha de incorporación: 14 de abril de 2008

Mensajes recientes

Just another note, selection of a framework should probably depend on intended lifespan of your project.
- If it is a quick Proof-of-Concept for a small company, any framework can be used because speed and cost of development are the major factor in decision making
- If this is to produce your own product which is going to be maintained for a very long run (>3 years), apply extreme caution here.
Utilization of core/classic frameworks that comply with established Java-specs such as JSRs could a more cost effective option here, even if slightly bigger code-cutting effort is required.
In the past 4-5 years, several bleeding-edge and cool front-and-backend code generation frameworks and 3rd party commercials&OS products have come to Liferay and disappeared. The only framework which has survived is liferay struts (core system), the rest were gone, together with those open-source enthusiasts that have kindly ported them across.
Stanley Kurtz Matias de Lima
RE: What Framework should I use to replace the Icefaces in Liferay?
5 de noviembre de 2009 1:53
Respuesta

Stanley Kurtz Matias de Lima

Ranking: New Member

Mensajes: 17

Fecha de incorporación: 8 de octubre de 2009

Mensajes recientes

OK!
Thanks for the alert.
Chicon Samu
RE: What Framework should I use to replace the Icefaces in Liferay?
5 de noviembre de 2009 2:22
Respuesta

Chicon Samu

Ranking: Regular Member

Mensajes: 120

Fecha de incorporación: 30 de agosto de 2007

Mensajes recientes

We are using richfaces instead of icefaces and it works fine!
Alex Wallace
RE: What Framework should I use to replace the Icefaces in Liferay?
5 de noviembre de 2009 7:44
Respuesta

Alex Wallace

Ranking: Liferay Master

Mensajes: 640

Fecha de incorporación: 4 de noviembre de 2007

Mensajes recientes

We have a few IceFaces portlets in production. We use a the connection monitor and have a lifecycle listener to extend the session when the portlet is being used...

Its not perfect, but reasonable to some extent... We try to switch screen modes frequently in the portlet (to maximize and down back to normal) to prevent issues further..

I'd really like icefaces to mature in Liferay, because it is a great framework... Asside from this connection keep alive that flakes sometimes, it works great.

I would really like to know what is Liferay's and IceFaces posture about these issues because I read a lot of discouraging things in the forum and see no reply from, say Niel regarding that...
Stanley Kurtz Matias de Lima
RE: What Framework should I use to replace the Icefaces in Liferay?
5 de noviembre de 2009 10:19
Respuesta

Stanley Kurtz Matias de Lima

Ranking: New Member

Mensajes: 17

Fecha de incorporación: 8 de octubre de 2009

Mensajes recientes

I'd really like icefaces to mature in Liferay, because it is a great framework... Asside from this connection keep alive that flakes sometimes, it works great.

I would really like to know what is Liferay's and IceFaces posture about these issues because I read a lot of discouraging things in the forum and see no reply from, say Niel regarding that...


I fully.
I think Icefaces is a great framework, but I read a lot things of discouraging in the Liferay's forum too.
I would like to know the opinion of Neil Griffin about this issue. I sent an e-mail recently to him, but not getting answer yet.

Thank you for your opinion Alex Wallace.
I will try to use your suggestion to solve my problem.
Do you have any example how can I do it?

Thanks a lot!
Alex Wallace
RE: What Framework should I use to replace the Icefaces in Liferay?
5 de noviembre de 2009 10:33
Respuesta

Alex Wallace

Ranking: Liferay Master

Mensajes: 640

Fecha de incorporación: 4 de noviembre de 2007

Mensajes recientes

To use the connection monitor, which suppresses the 'Session Expired' popup, all you need to do is include the following in your jspx/xhtml:

<ice:outputConnectionStatus />

You can set style for the different states it has...

As far as a lifecycle listener to keep the session alive with every click, the JavaScript code you execute from it depends on your version of liferay... A lifecycle listener is registerd in faces-config.xml which references a class that implements a certain interface... The info on how to do this is readily available on the net... I can still provide my examples if this is what you are after.

This doesn't completly remove the issue completly, but it helps us to a point that we have fortunately not heard complains so far. (fingers crossed)

Hope this helps!
Deryk Sinotte
RE: What Framework should I use to replace the Icefaces in Liferay?
5 de noviembre de 2009 12:11
Respuesta

Deryk Sinotte

Ranking: New Member

Mensajes: 18

Fecha de incorporación: 7 de agosto de 2007

Mensajes recientes

Thanks for opening a JIRA in our tracking system:

Liferay and Icefaces - User Session Expired

I've responded and made some suggestions in that case.
Stanley Kurtz Matias de Lima
RE: What Framework should I use to replace the Icefaces in Liferay?
5 de noviembre de 2009 17:10
Respuesta

Stanley Kurtz Matias de Lima

Ranking: New Member

Mensajes: 17

Fecha de incorporación: 8 de octubre de 2009

Mensajes recientes

Thanks for your help Alex Wallace!

I'll try to do what you said. But, if you can send me your examples I'll be grateful.

Thanks a lot! emoticon
Stanley Kurtz Matias de Lima
RE: What Framework should I use to replace the Icefaces in Liferay?
5 de noviembre de 2009 17:14
Respuesta

Stanley Kurtz Matias de Lima

Ranking: New Member

Mensajes: 17

Fecha de incorporación: 8 de octubre de 2009

Mensajes recientes

Thanks for your attention Deryk!

I will try to follow their suggestions as well.

Thank you! emoticon
Alex Wallace
RE: What Framework should I use to replace the Icefaces in Liferay?
5 de noviembre de 2009 18:26
Respuesta

Alex Wallace

Ranking: Liferay Master

Mensajes: 640

Fecha de incorporación: 4 de noviembre de 2007

Mensajes recientes

A phase listener is registered in faces-config.xml like this:

1
2    <lifecycle>
3        <phase-listener>com.whatever.icefaces.lifecycle.LiferaySessionKeepAlive</phase-listener>
4    </lifecycle>


My class looks like this:

 1
 2public class LiferaySessionKeepAlive implements PhaseListener {
 3
 4    /**                                                                                                                                                                      
 5     * Script to keep the liferay session alive while only ajax requests are being performed                                                                                 
 6     * closes the warning box if necessary.                                                                                                                                  
 7     */
 8    private final static String KEEP_ALIVE_SCRIPT = new StringBuffer().append(" try { if ('noWarning' == sessionRenewAtWarning()) { sessionRenew(); } } catch(e) {} ").toString();
 9
10    @Override
11    public void afterPhase(PhaseEvent event) {
12        JavascriptContext.addJavascriptCall(FacesContext.getCurrentInstance(), KEEP_ALIVE_SCRIPT);
13    }
14
15    @Override
16    public void beforePhase(PhaseEvent event) {
17    }
18
19    @Override
20    public PhaseId getPhaseId() {
21        return PhaseId.RENDER_RESPONSE;
22    }
23}


the KEEP_ALIVE_SCRIPT calls a function that I have defined in an override in ext/ext-web/docroot/html/common/themes/session_timeout.jsp, but you can put it elsewhere :

 1
 2
 3                                // Renews the session only if the session expiring warning is shown.
 4                                // By finding the warning box, and clicking it's Extend button
 5                                // Returns true if an Extend was issued, false otherwise.
 6                                function sessionRenewAtWarning(){
 7                                    var jqryWarn = new jQuery;
 8                                    var warnElm = jqryWarn.find('.popup-alert-notice');
 9                                    if (warnElm.length > 0) {
10                                        // Match content of warning with session expiration warning language
11                                        if (Liferay.Language.get('warning-your-session-will-expire').indexOf(warnElm[0].firstChild.nodeValue) == 0) {
12                                            // click the extend button
13                                            warnElm.find('.popup-alert-close').click();
14                                            return true;
15                                        }
16                                    }
17                                    return "noWarning";
18                                }
19
20
21                                // Renews the session and resets the client timer
22                                function sessionRenew() {
23                                    if (Liferay.Session._stateCheck) {
24                                        window.clearTimeout(Liferay.Session._stateCheck);
25                                        Liferay.Session._stateCheck = null;
26                                    }
27                                    Liferay.Session.init(
28                                    {
29                                        autoExtend: <%= PropsValues.SESSION_TIMEOUT_AUTO_EXTEND %>,
30                                        timeout: <%= sessionTimeout %>,
31                                        timeoutWarning: <%= sessionTimeoutWarning %>,
32                                        redirectOnExpiration: <%= PropsValues.SESSION_TIMEOUT_REDIRECT_ON_EXPIRE %>
33                                    }
34                                    );
35                                    jQuery.ajax(
36                                    {
37                                        url: Liferay.Session._sessionUrls.extend
38                                    }
39                                    );
40                                }


There it is... Hope it helps...
Victor Zorin
RE: What Framework should I use to replace the Icefaces in Liferay?
5 de noviembre de 2009 18:51
Respuesta

Victor Zorin

Ranking: Liferay Legend

Mensajes: 1178

Fecha de incorporación: 14 de abril de 2008

Mensajes recientes

Thanks Deryk
Would be also great to learn about possible security implications when using Icefaces within Liferay portal specifically.

Looking into html code produced by Icefaces portlet and seeing iframe html tags is very discouraging. From our point of view, session timeout is not really an issue, as it can be easily hidden from user, it is an indication of very loose bridging, that produces several sessions with own non-correlated lifespans and unrelated processing action chains. Iframes and security around them are also implemented differently by browsers. May be someone with fundamental Icefaces knowledge can come up with a different, much tighter, way of integration with the portal container.

Does IceFaces Portlet pass all requests through Liferay authentication/authorization framework?; or it is better, for the time being, to consider this framework as a stand-alone web application running on the same webapp server? This way developers will be implicitly made aware about the need to allocate additional effort and money towards cross-app integration and security.
Alex Wallace
RE: What Framework should I use to replace the Icefaces in Liferay?
6 de noviembre de 2009 7:28
Respuesta

Alex Wallace

Ranking: Liferay Master

Mensajes: 640

Fecha de incorporación: 4 de noviembre de 2007

Mensajes recientes

Hi Victor!

I would not say that IceFaces is a stand alone app because I can use all the Liferay Services, and I can get a handle on ThemeDisplay and PortletDisplay and everything else they provide. My portlet presence and decorations are controlled by the poral permissions.

I know who is logged and can check their roles, permissions, etc. I know who owns the portlet and the layout and thus can make decisions at the UI and code level, in the bean and in the services, on who can do what...

Now, I know I'm not talking to a newbie, so I'm sure I could be missing something... Could you elaborate a bit on a use case in which the above mentioned artifacts don't work security wise?

Thanks!
Victor Zorin
RE: What Framework should I use to replace the Icefaces in Liferay?
10 de noviembre de 2009 12:51
Respuesta

Victor Zorin

Ranking: Liferay Legend

Mensajes: 1178

Fecha de incorporación: 14 de abril de 2008

Mensajes recientes

Hi Alex
It is very comforting to hear that someone is successfully using these portlets in a commercial environment.
No, I do not have IceFaces experience, had to get into it due to issues experienced by several clients. We still have to make a detailed analysis of code including session handling, will report in a forum if any critical issues are found.