Everything Java Apache Geospatial Open Source. Hello Shinning Stars!!! Vincent Massol, Raphael Luta, Santiago Gala, Carsten Z.

Tuesday, September 19, 2006

I am trademarking right now YouML! The idea is to create a yahoo google interface implemented in j2. Features are building applications from any ML.

Sqeezing Andromda 3 into Jetspeed 2 will help this effort.

What is a MDA?

An engine that enterprets the Universal Modeling Language (UML) and exposes a java datamodel to meta facades and templates.

What are meta facades?

Objects generated from a UML model describing a framework such as struts, ojb, jsf portlet, xml schema with xmlbeans, data backup and restore with ddlutils, etc. The meta facades describe aspects of the framework such as it's capabilities to display complex web interfaces.

This is one of the grey areas of Andromda. The default Cartriges don't generate jsf or struts only. But rather an Andromda developers framework or best practice for using such technologies. Anyway what's interesting is that the framework is yours to choose. But the reality is you have to write or modify Cartriges to achieve your MDA generated framework.

What is an object model?

An object model is a java model view to the framework.

What is an Repository?

The Repository is the underlying UML implementation. Eclipse Modeling Framework and Netbeans UML implementation are two examples of Repositories.

Getting familiar?

So the contents of the repository is the bizness inteligence, or process modeled in UML.

What is all this about?

It's about working fast! No, that's not true!

It's about thinking graphically. Developing in a graphic environment. Building bug free boiler plate code. You code the logic if you want. Configuration is achieved in the meta facades and object models. The user works with UML objects by assigning them stereotypes and tagged values which determine the framework implementation. That's enough for now. Try it www.andromda.org

Friday, September 01, 2006

Profiling, profiling, profiling. When a user connects to the Apache Portals Jetspeed enterprise portal the profiler will decide what he or she gets. The profiler uses rules and criteria in order to find a match based on user, group, role, language, media type, country, language.

The Profiler Valve invokes this process. First the criteria object is build defined by the keys: page, user, group, role, media-type.

There are only two default rule objects used by J2 out of the box. The StandardProfilingRule and the RoleFallbackProfilingRule. Both set up keys for the criteria stored in the database.

The database implements two tables, PROFILING_RULE and RULE_CRITERION. When applied the rules build a ProfileLocator which is used in the content negociation logic of the ProfilerValve. Implemenation to be verified.

The ProfileLocator object is like a super map full of keys and values. The key is the Criterion object. Currently reading implementation...

Administrators can see all the rules available but one has to know the keys, 'page', and 'menu' are the most common and are setup out of the box. Both users 'user' and 'jetspeed' are setup with the 'role-group' rule set to the key 'menu'. Their 'page' rules are different. 'role-fallback' and 'j2' respectfully. Their roles are set to 'user'.

The Profiler in conjunction with the Page Manager converts location keys into file system paths. Example,

path:/search/search-engine.psml:role:user:group:user:mediatype:html:language:fr

Is converted to,

WEB-INF/pages/_role/user/_group/user/_mediatype/html/_language/fr/search/search-engine.psml

A fallback mechanism is used to search for alternatives. The first file found is used to render the page,

WEB-INF/pages/_role/user/_group/user/_mediatype/html/_language/fr/search/search-engine.psmlWEB-INF/pages/_role/user/_group/user/_mediatype/html/search/search-engine.psmlWEB-INF/pages/_role/user/_group/user/search/search-engine.psmlWEB-INF/pages/_role/user/search/search-engine.psmlWEB-INF/pages/search/search-engine.psml

See the Profiler - Page Manager design documentation for a more detailed description.

What is Fallback? People say things like a Jetspeed Profile Rule fallback, meaning the rule will fallback if it does not find an exact match. This means that the rule will loop through a sequence of paths until it finds a file that meets the Criteria. See the above example.