How to test load a web application? - jsf

I am working on a web app which uses JSF. I would like to know that What are best practices and available tools for performing a load test on it.
Application is hosted on glassfish server 3.1.2.2

Depends somewhat on the site you want to test. At work we have a complex RIA, and to test it we have to reproduce user interaction. We use jMeter for this.
It's kind of messy to set up (look at the guides they have) but once this is done it's very flexible and allows you to configure and tweak many things. I particularly like its "proxy" feature where you can proxy your app through jMeter and it records everything so you can play it back later on. Note that for JSF you have to do some tricks with the ViewStateId, so google a "jmeter JSF" guide for how to set this up.

In a previous project I have used RadView WebLOAD to test a JSF site, it enable recording the user scenario and handles correlating the dynamic values.

Related

How do I create transferable dll's for a specific website functionality?

VS2013 update 5, MVC5 using Areas
I have a stand-alone function programmed for a website. The functionality is a specific user interface to collect survey responses in a particular way. It has several controllers, a model and a group of views. The functionality is completely contained in an Area of the project, except for the Shared _Layout file that provides the main menu for consistency.
'Is it possible for me to' / 'how do I' compile this Area into a single or set of .dll file(s) that I could then add conveniently to other websites? I'm assuming creating something for transfer/download is very standard functionality. For example, I used Elmah.MVC for this site. What I want to do is pretty much create a package that can be downloaded in a similar way to how we integrate Elmah.MVC into a site. (Be certain I'm not talking about creating error logging software, I'm only using Elmah.MVC as an example of software that is easily integrated into other website applications.)
I've never compiled any website functionality into a .dll(s) for use elsewhere and would appreciate either some specific guidance, or perhaps what would be easier is to provide a link with a good step by step tutorial or explanation for how to do this. Most of what I've found on the web describes bits and pieces of doing this, but it's not enough for me to feel confident with it.
It seems to me there are a lot of 'moving parts' to taking a particular piece of an MVC application and turning it into something that is easily added to other projects.
A particular issue I don't quite grasp is the difference in downloaded packages between getting code and getting just the .dll(s). For instance, when I download an MVC5 site, I get controllers, models and views, but when I download Elmah I get a .dll and no code files. Also, I do understand the concept of transforms, but I'm just struggling right now with even getting from my programmed application into a 'package' regardless of the transforms that make it easy to integrate into another website.
These are just some of my questions I have about how to perform this particular process in developing deliverable and/or shareable software.
What you are looking to do is create a portable MVC Area project. A Portable Area is a set of reusable multi page functionality can be dropped into an application to provide rich functionality without having to custom build functionality that is literally the same in every application. An MVC Portable Area is really just a dll that contains the views, controllers, scripts, etc… needed to use in a website that is either a Web Forms website or an MVC website. A developer can use them for a reusable widget or a complete engine. I have actually used them for both. Here is a link with some basic info to get started. http://elegantcode.com/2012/04/06/mvc-portable-areas/

Minimal portlet environment for developing?

At our company we are using Liferay for portals. My biggest issue with developing for such a huge framework is that the restart takes a lot of time even on a decent PC. We're trying to use hot deploying were it's possible but this sometimes just doesn't work (dependencies require restart, PermGen space errors occurs sometimes and Liferay have to be killed, etc.)
What i'm thinking about is that with most of our portlet's we are not really using any Liferay specific services just the JSR 168 provided things which is a standard. So i'm wondering if there's any minimal portlet environments available for Jetty or Tomcat which we can use for quicker portlet development? Of course i know that once i encounter a Liferay specific service call this is not an option.
I was testing Apache Pluto earlier which is a full blown but still lightweight portlet container however it works differently the way the portlet wars are assembled (web.xml should be modified) and it breaks compatibility in our build environment with Liferay. So it's not an option but i'm looking for something similar.
I've never used life ray portal, but too much played with GateIn portal because IBM Portal is heay, mostly for quick development on JSR-286 i used gatein
Currently used for visioneo.org, very flexible for every kind of use, large community.
Here is short summary
Liferay Currently used for visioneo.org, very flexible for every kind of use, large community.
eXo Platform Awesome look and set of web applications embedded. Last generation portal, very impressive! Based on Gatein
JBoss EPP Based on gatein, and designed to work with JBoss middleware architecture
Gatein A great portlet container. Light weight, easy to use. But unlike Liferay and eXo, it does not ship with collaborative portlets (Forum, Wiki etc.)
uPortal Beautiful portal, though its CSS are very intrusive: some BIRT styles are broken by uPortal's css.
Pluto Not really a portal, Apache Pluto can be used as a development / test platform. Often considered as a reference for portlet specifications.
Jahia Great look however not based on standards: portlets are supported but not really highlighted, a specific module technology is used instead
You might want to try the JRebel integration for Liferay. There's an introduction Webinar available, I don't know if it fully applies to the current implementation (the webinar is a bit aged) but it will give you an idea of the product/project.

Pre-generating a JSF based web app for better performance and offline mode

I have a JSF web application, where the dynamic content is based on data taken from a database.
Since all the data is available in advance, I would like to see if there is a way to pre-generate all the pages into their final HTML format on the server, so that the user experiences much better performance and doesn't have to wait for the page generation.
Moreover - my app is running on mobile devices and I want to have the option of using it offline, by downloading everything to the device in advance (assume I don't need any business logic to work at real time).
So, I'm not talking here about the built-in caching of JSF - I'm looking for a kind of method that converts a JSF app into some static website that works much faster and can run offline as well.
Thanks.
You can use HTML5 for offline cache.
See a few articles about it here:
Tutorial
Tutorial
There are more examples on the internet for HTML5 and working offline

Examples of Struts2 applications

I am working on a static analysis for detecting security vulnerabilities in web applications, and I am looking for some web applications to run my analysis on.
More specifically I am right now looking for open-source web applications that use the Struts2 framework, but I have a hard time finding such applications.
Does anyone know of some more or less complete and open-source web applications written using Struts2 (or possibly just plain JSP)?
The very complete and stable Struts2 application i use for log file analysis is KonaKart. The advantage is that you can set it up on your server, including demo data and configure it and use it as you wish.
In terms of openness:
"Only the customizable parts of KonaKart are open source. These include the Struts action classes and
forms, the JSPs, the payment modules, order total modules, shipping modules and the GWT One Page
Checkout code. They are shipped under the GNU Lesser General Public License."
If you need 100% open source it is not for you.
Projects Using WebWork or Struts2
https://cwiki.apache.org/S2WIKI/projects-using-webwork-or-struts2.html
Others
http://api.cnn.com/
http://www.allhomes.com.au/
Check these tutorials. there downloads are available. link1, link2

Is JSF2 usable in concert with the "Snaps" web UI framework based on Eclipse Virgo?

Snaps is a (rather new) web framework growing out of the Eclipse Virgo community that (will) allow dynamic, componentized web UIs by exploiting the OSGi infrastructure. Apparently it is the heir of "Slices", the previous attempt at this.
What I am wondering is whether there is any work ongoing in looking at how JSF (2) can be combined with such an approach? Is this at all possible? If so, is there any concrete work ongoing?
There is no work going on looking at JSF specifically or any other Web framework for that matter. Snaps aims to give you the dynamic runtime ability to compose your web app without restricting your choice of web framework in any way. It definitely doesn't aim to be another web framework.
I know some people have had JSF running on Virgo so I don't see any reason that you can't use it with snaps although I haven't tried it so I can't say for certain. If you do find a problem raise a bug on the Virgo project :)
Chris.
In case you're still interested:
At the Virgo formus I know there is some guy who does have it running with FancyFaces.
If you might have found another solution, would be glad to hear.
Grts

Resources