Friday, April 15, 2011

New look for mobile portal

The demo of jAPS 2.0 entando, PortalExample, has a new look for its mobile version.
What's new is the use of jQuery Mobile, the framework for mobile web apps with an aim to provide a unified user interface system across many mobile device platforms such iPhone, BlackBerry, Android and Windows Mobile.

The framework is built on top of one of the most popular Javascript frameworks, jQuery.
Test it with your smartphone or your tablet!
Come to see the commit details, an update to the online demos will follow soon as well.

bye bye

Friday, April 8, 2011

What is that API thing everybody is chattering about?

Don't know very well, but in the meantime Eugenio and me are going up to the edge of the hill just to see if we can manage to give some hApPIness to the amazing world of jAPS 2.0 entando.
Seriously, look what I discovered seconds ago in my hard drive...
Evidence A:

Strange kind of message from the outer space
Evidence B:
Strangest kind of message from the outer space ever 
No. Seriously. Look at what Eugenio forced me to write.
Anyone able to understand the language down there, out there?
Classified TOP SECRET

API, REST, and stuff 

Sample GET calls
Anatomy of a GET call


We have:
    The basic URL of a portal we know it's eager to receive such a call
    The root, the starting point of the API ''domain''
    ''entando'' is multilingual by design, thus we specify the language for the result
    The method we want to call  

Sample Results


If the requested method has been disabled by the administrator

  • the root element services is named after the method getServices, chomping away the get and then making the remaining part all lowercase.
  • the result is empty because an error occurred ''and'' because there's nothing to return as a result.
  • we'd like to use the element item every time we have a collection of ''things'' in a result (but of course there might be just one item in a result, so this explanation about collections seems a bit confusing).
If the requested language is not available for that ''entando'' instance

  • The default language, the system one, is English. Thus in this very case the message is always returned in English.
If all is going well, and the system can answer the request

More sample results


sid=CNTS_NWS - If all is going well, and the system can answer the request

sid=JPWEBMAIL_INBOX_INTRO - If all is going well, and the system can answer the request
Because of JPWEBMAIL_INBOX_INTRO being a badass and smart service well crafted by the mighty hand of a developer, thus not configured in the back-office by the administrator as the News above, the developer's bat-companion had hopefully his chance to score a point in crafting a proper velocity model for the description in


  • we still need to conquer the ''multi-language by design'' thing here
  • you will choose the informations ( $item.unread ) wisely amongst the ones in the ''Serialized Object'' part of the result
  • in ''entando'' there will be some routine able to cycle on items and apply that velocity model to each and every item
Concerning description
  • a smart and proper summary, almost never complete with all the data available
  • it have to worthily respond to the needs of who made the request (Example: I want the weather forecast. You'll not include millibars and small details in the description
  • it must be easily placeable, with a few or no constraints: no headings ( h1, h3) and the like; maybe also no paragraphs when applicable

Tuesday, April 5, 2011

Detailed Changelog of jAPS 2.0 entando version 2.2.0

The new release of jAPS 2.0 entando version 2.2.0 presents a lot of new features and performance improvements.
Look at the huge changelog for more information.


New Features

Application engine
- "view-only" extra page groups
- Extra page title (additional parameter in the context of the request)
- Management of initial language of navigation
- Added: values used to filter entities can be grouped (just like an enumeration)
- Added: Roles attribute in entity
- Management of loading entity roles and codes of disabling (with validation xsd)
- Function of controls forcing case sensitive / insensitive filter on entities
- Added: Advanced attribute Validation; by value/range (on a fixed value or another attribute for attributes "Number" and "Data") and OGNL Validation
- Added: new "Parameter" tag for setting parameter of other tags ("wp:url", "wp:action" and "wp:pageInfo")
- Interceptors Stack for special features in "InternalServlet" based on Struts2
- Added: a method ("release") to release a service at shutdown

Administration Interface
- Two clients for the backoffice (chose one at login): "Normal" or "Advanced"
- Added: shortcuts for the start page.
- Showlets placement details
- Addition of functions to create new User Showlet
- Advanced search contents
- Advanced search resources
- Content Inspect on work and public area
- New tags in apsadmin-core.tld: "page", "showletType", "entity", "entityType"
- New tags in jacms-apsadmin-core.tld: "content", "contentType"
- Setting up ways of using tree pages - classic | request
- Setting up ways of using tree categories - classic | request
- Aid functions in the Content Models management interface
- Added: hookpoints


Application engine
- Update: switched Cache engine from OsCache to EhCache
- Update: Full-Text search engine Libraries (Lucene 3.0)
- Update: Struts2 Libraries (
- Update: Spring libraries (3.0.5)
- Introduction of imagemagick

Administration Interface
- Update: Page Info
- Function of normalization resource file name
- Homogenization key error messages