|
As part of the the WebSpace Server 10 release, Ed Ort (from java.sun.com) and I sat down to do a deep dive webcast for GlassFish WebSpace Server. Parts 1 and 2 were originally published a few weeks ago. Now, parts 3 and 4 are now available and cover development tooling, and end user social collaboration techniques. Enjoy! |
The user-oriented site webspace.dev.java.net has had download links for a while for our Community and Milestone builds. Now available are CDDL-based downloads of the 10.0 Final Release, which means you can download without having to have an SDN account or accept the Sun License Agreement. The binaries are licensed under CDDL. So easy to use!
The
WSRP 2.0 FCS binary is now available for download from the OpenPortal WSRP project download
page and
has implemented all the WSRP 2.0 mandatory and most of the optional
features. This project binary is being shipped into the below
release
vehicles apart from the above standalone install which the project
provides as a wsrp-configurator.jar
Glassfish Web Space Server comes with its own out of the box Content Management Sytem(CMS). The WebSpace CMS comprises of the following features :
1. Document Management.
2. Image Management.
3. Web Content Management.
To know more about CMS in Web Space Server, read the following article :
http://blogs.sun.com/prakashKLV/entry/content_management_system_in_glassfish
To start adding web content using CMS in Web Space Server, read the following articles :
http://blogs.sun.com/prakashKLV/entry/adding_content_to_portal_page
http://blogs.sun.com/prakashKLV/entry/structures_templates_and_web_content
Stay tuned and visit this blog for latest articles on CMS in glassfish Web Space Server.

Web Space Server coverage links during the GlassFish Portfolio launch!
Web Space Server Basic Intro
Integrating WebSpace server with OpenSSO/Access Ma...
Adding content to portal page : The easy way
Web Space Server - Localization (Part Deux)
GlassFish Portfolioが正式リリース
Web Space Server - Localization
Web Space Server 10 Adopts Update Center
Content Management System in Glassfish Web Space S...
Sun GlassFish Web Space Server 10.0: Now Available...
Keep up the buzz! Also, be sure to visit webspace.dev.java.net for more information.
Web Space Server has out-of-box localization for 22 languages , out
of which Sun provides localization support for Japanese (ja) and
Simplified Chinese (zh_CN). Remaining languages are community
driven.Also it has been Internationalized which allow localization in
new languages which does not shipped out of box.
For further details on Localization (L10n) , Refer my personal blog entry : Web Space Server - Localization
Chris Reemts has found that relocating a WebSynergy-on-GlassFish installation is possible by following a few simple steps:
Moving a WebSynergy+GlassFish installation from one directory to another on OpenSolaris
The following are the actions I took to move an install of the MileStone 4 build of WebSynergy on OpenSolaris.
- The installed location was: IL ==
/export/home/demo/Desktop/ - The new location is: NL ==
/export/home/demo/
- Move the entire web* folder from IL to NL – I used the file browser to do this
- Modify NL/web*/glass*/bin/asadmin
- 1.Open in a text editor
- 2.Line 7 contains a path --- correct this path to the new location
- 3.Save
- Modify NL/web*/glass*/config/asenv.conf
- 1.Almost every line has a path that you need to change to the new locations path
- 2.Save
- Modify NL/web*/glass*/domains/domain1/config/sun-acc.xml
- 1.You may have a domain name different from domain1
- 2.Line 26 value is a path --- correct this path to the new location
- 3.Save
- Modify NL/web*/glass*/domains/domain1/jbi/config/jbi-registry.xml
- 1.You may have a domain name different from domain1
- 2.Lines 19, 20, 25, 26, and 30 need the path corrected to the new location
This allows, for example, one to relocate a full install from one server to another (if using GlassFish V2, the destination machine must be the same OS/architecture). Nice work Chris!
The OpenPortal WSRP Project consumer is now integrated into Liferay Portal. The next stable release of Liferay Portal is expected to have both the OpenPortal WSRP producer and consumer integrated in it.
Checkout the following posts for detailed information on this integration.
Stay tuned on the OpenPortal WSRP Project mailing list for more information w.r.t to this integration.
I would like to welcome Sytze van Koningsveld who has become an active contributor to the Eclipse Portalpack project. I was tied up with a lot of projects that I am involved in, and was not getting enough time to work on the Eclipse Portalpack. Sytze has shown keen interest in working with the Eclipse Portal Pack and we will be working together to take things forward. So please welcome him aboard the project.
A small bit of information about Sytze in his own words :
"Sytze van Koningsveld was born in the Netherlands and has an MSc.
degree in physics, works for over 10 years as a software developer
mainly using Java.
His programming experience ranges from Linux, COM and Corba to MDA, Jini,
Eclipse plugins to portal web development with Spring and Hibernate.
His current employer is Royal Dutch KLM in the Netherlands. You can
reach him at sytzevk [AT] netscape [DOT] net."
Portal Server 7.2 is now available [download]. Based on the OpenPortal project, this release has several new features such as Delegated Administration, Google Gadget support, and JSR 286 / Portlet 2.0 support.
Looking ahead, Project WebSynergy [earlier post, info, download] is combining the efforts of Sun Portal and Liferay, and producing a lightweight, modular framework for developing and deploying next-gen webapps targeting the web 2.0 crowd. Looking forward to seeing this partnership in action!
For more information, visit the Sun/Liferay Community Page.
We had recently started work on semantic enabling Project WebSynergy's community feature.
Read my blog on that.
For doing this we had to extend the existing table structure by adding new columns
and also creating new tables.
In this blog I will show how easy it is do this using
Project WebSynergy's ServiceBuilder framework
The use case for this example will be to add an ontologyId column
to the existing BlogsEntry table.
We would also create a new BlogsEntryOntologyMapping Table.
Open the
<synergy-workspace>\e2demo\synergy\liferay\patch\portal-impl\src\com\liferay
\portlet\blogs\service.xml
in your favorite IDE (we would recommend NetBeans)
Each <entity> tag corresponds to a table in the DB.
To add "OntologyId" column to the BlogsEntry table
add the following in <entity name="BlogsEntry"> </entity> tag
<column name="ontologyId" type="String" />
We can also add a finder method corresponding to the column that we have just added.
Using this the callers can get the blog entries corresponding to an ontologyId.
<finder name="OntologyId" return-type="Collection">
<finder-column name="ontologyId" />
</finder>
This would generate a findByOntologyId() in the BlogsEntryPersistence
and BlogsEntryPersistenceImpl.
To add a new BlogsEntryOntlogyMapping table add the following
<entity name="BlogsEntryOntlogyMapping" local-service="true" remote-service="true">
<column name="entryId" type="long" primary="true" />
<column name="ontologyId" type="long" />
</entity>
Next we need to add getBlogEntriesByOntologyId() to the BlogsEntryLocalServiceImpl class.
public List getBlogEntriesByOntologyId(String ontologyId) throws SystemException{
List blogtnriesList = blogsEntryPersistence.findByOntologyId(ontologyId);
return blogtnriesList;
}
You will get a compilation error on the blogsEntryPersistence.findByOntologyId(ontologyId) line.
This is because the method is still not added to the BlogsEntryPersistence interface.
But dont mind that as of now :)
After making these changes,
cd to <synergy-workspace>\e2demo\synergy\liferay\portal\portal-impl
in the command prompt and run the following ant script.
ant build-service-portlet-blogs
This generates all the service, util, persistence and factory classes that are relevant to Blogs.
Open the <synergy-workspace>\e2demo\synergy\liferay\portal\portal-service\src\com\liferay\portlet\blogs \service\persistence\BlogsEntryPersistence, you will find that the findByOntologyId() is newly generated.
Open the <synergy-workspace>\e2demo\synergy\liferay\portal\portal-service\src\com\liferay\portlet\blogs\ service\BlogsEntryLocalService and BlogsEntryLocalServiceUtil, you will find that the getBlogEntriesByOntologyId() is newly generated.
Now you can call the BlogsEntryLocalServiceUtil .getBlogEntriesByOntologyId() from any portlet class or jsp,
you will get the blog entries that the specific ontologyId applied to that.
Next the changes have to be made in the db scripts.
For this run ant build-db in the command prompt that you opened before.
Open the <synergy-workspace>\e2demo\synergy\liferay\portal\sql\portal-tables.sql and <synergy-workspace>\e2demo\synergy\liferay\portal\sql\create-*.sql.
You will find that the scripts have been suitably modifled.
For the changes to be reflected on the DB (could be MySQL, HSQL, etc),
drop the existing tables under lPortal database if any, and re-start the server.
The ontologyId column would be added to the BlogsEntry Table and BlogsEntryOntologyMapping table would have been created.
Extending Project WebSynergy's tables is as simple as this. You can extend this example to any other feature like wiki, bookmarks, etc.
The SAW feature in OpenPortal is
intended to offer a generic workflow API, to perform human workflow
interaction with various workflow engines. This generic workflow API
will ship with a default implementation for Java Composite
Application Platform Suite. Currently, the
Workflow API, Workflow Tag Library, Sample portlets, and Tooling
Plugins for developer IDE's are provided in the SAW home page.In this screencast, you will learn how to:
- Perform human workflow interaction with Java Composite Application Platform Suite workflow engine
- Add SAW plug-in in NetBeans IDE,
- Create a simple web application using the drag and drop features in SAW plug-in
- Create a simple a simple SAW portlet, which lists tasks based on task ID
![]()
The community feature of Project WebSynergy
has been semantically
enabled. This is a preview version of that.
This is taking the first step towards Web3.0 enablement.
So whats the Semantic Web ??
The semantic web is an evolving extension of the world wide web, in
which web content can be expressed not only in a natural language but
also in a format that can be read and used by machines for processing
the information. It is w3c recommendation.
As a human when we write and read a blob of text, we know what it means but a machine reading a bunch of characters has no idea as to what it means.
For the machine to be as intelligent as humans to decipher similar information from the text, there has to be some kind of information that the machine has to be provided with. This "extra" information is traditionally provided as meta-data in the form of tags, microformats or some other means. A much more structured and scientific way of applying metadata to a blurb of text is via what is called an ontology.
The community feature of Project WebSynergy allows you to add blog entries, wiki pages and message boards.
Refer to my blog on how to create a community in Project WebSynergy.
For an idea of what a Semantic Community Portal is, see here.
In a Project WebSynergy community,
when the user creates a blog entry or a wiki page, he/she can optionally
associate it with an ontology element (which acts as the metadata).
When the user views the blog entry, the other semantically
related blog entries and wiki pages are displayed. The search for the related entires
is not a key word search, but a semantic search done by the reasoner.
The semantic reasoner infers the related ontology elements and we can
see the blog entries and wiki pages for which the related ontology
elements have been applied to.
An example of the Semantic Community Portal is shown in the screen-casts.
This blog describes the steps to create a community in Project WebSynergy.
- Login as admin@example.com/admin into Project WebSynergy
Move your mouse over the "Welcome Admin User" message and click on Add Application - In the Add Application window that shows up, select the Communities under Community Section. You can also type "communities" in the search content text box. Click on "Add" or drag and drop the portlet into one of your tabs. The communitiy portlet is now added to your tab.
- Click on Add Community button.
- Enter name (say Synergy) and click on Save. The community is created with the name that you specified.
Click on "Available Communities" sub-tab. - For the community that you just created, click on the "Actions" button
and select "Manage Pages".
Enter name for the community page (say MySynergyPage ) and click on "Add Page". - Click on View Pages.
To this community page, you can add the any portlets. For eg.
Blog Portlet
Blogs Aggregator Portlet
Wiki Portlet
Message Boards Portlet - All these portlets are available under the Colloboration section in Add Application window

There is a preview version of the WebSynergy plug-in available at Portal Pack project site. This NetBeans plug-in supports portlet development and deployment on the new WebSynergy and also works with Liferay. For more details read here...




