Archive for the ‘AIR’ Category

FlexibleDashboard, FlexibleShare, FlexibleLiferay

Friday, October 2nd, 2009

FlexibleDashboard+AIR

FlexibleDashboard (new google code project)
1. Has both Flex+Browser and Flex+AIR versions
2. Based on the non doc mgt code from FlexibleShare
3. Based on esria dashboard / adobe flex devnet dashboard sample with added flexmdi cascade/tile (esria pod drag/drop in tile mode)
4. Flex+Browser pods: line, bar, pie charts, form, todo list, JasperReports viewer, Pentaho dashboard, BlazeDS samples, external Flex app SWFLoader, calendar, iframe html (iframe has not hiding issues)
5. Flex+AIR additional pods: webkit HTML, web browser, Google gadgets, Liferay portlets, local files browser

FlexibleShare
1. Now has Flex+Browser in addition to Flex+AIR
2. Adds Alfresco, Alfresco Share, LiveCycle Content Services features to FlexibleDashboard

FlexibleLiferay+AIR

FlexibleLiferay (new google code project)
(Flex+AIR based portal container application for Liferay)
1. Can display regular Liferay portlets (JSR-168, JSR-286, HTML/Ajax etc.)
2. All of Liferay backend, standards it supports can be leveraged
3. Can display Flex portlets (swfs) without html wrapper (no need for special handling of restarting when resize portlet) from within a portlet war
4. Leverage Liferay app catalog to also manage Flex portlets
5. Leverage Liferay security / authentication (ldap, sso, etc.) to also manage Flex portlets
6. Flex portlets can take advantage of AIR specific features (native desktop file drag / drop, native clipboard, local files, offline db)
7. No Flex+Browser version yet due to iframe issues

FlexibleLiferay Implementation:
1. Uses BlazeDS to remote to some Java Apis added via Liferay Ext environment (used Liferay 5.2.3)
2. Built on top of FlexibleDashboard

FlexibleLiferay Implemented:
1. Sign in (Login dialog), Sign out
2. My Places menu
3. Display of tabs for pages in selected place
4. Display of a Liferay pod (uses HTML with Liferay widget) for each portlet in selected page

Flexspaces with Adobe LiveCycle Content Services ES, Calais Integration works with ES2

Tuesday, September 22nd, 2009

FlexSpaces Easier To Use With LiveCycle Content Services ES
I finally updated FlexSpaces  (version 0.931) to not need a recompile for a server URL change with LiveCycle Content Sevices ES (changes to FlexSpacesConfig.xml and to server side services-config.xml still required).

Calais Integration

I tested with LiveCycle ContentSevices ES 8.2.1  and also with the LiveCycle ES2 M3 R3 beta. On ES2, I also tested with the Alfresco Calais Integration and it works fine via the FlexSpaces Calais UI (auto semantic tagging, tag suggestion, google map geo-tagging).  Nice thing about the ES2 installer is it allows you to include custom AMP files. I used the turnkey install, selected the custom option when the Configuration Manager ran.  I had the calaisIntegration.amp release 1.1  in c:\amps.  When the config mgr is deploying content services, check the include custom amps checkbox, and browse to choose c:\amps.

Remaining Problems
Still have two remaining problems with FlexSpaces on LC Content Services.  Get an authentication prompt on upload that can cause the first upload not work on AIR/Windows (on Mac/AIR, Windows/Mac/browser get errors on upload). Alfresco has an alf_ticket URL arg that makes it easy to authenticate with. You can’t use this with LiveCycle ContentServices. You have to use authentication headers. Flex doesn’t let you use  headers with FileReference.upload()   or navigateToURL()   (view a file given an Alfresco download URL).    For navigateToURL, it works other than getting an authentication prompt the first time using file viewing.

For uploading, I think by switching to upload to  /remoting/lcfileupload  instead directly to a webscript url will be the part of the solution. This will get files into the LiveCycle “Repository”.  Just need to get files from there to the LiveCycle Content Services repository.  Unlike this ADC article I don’t want to have to require the LC Process Mgt option. If anybody has some suggested APIs or sample code, let me know. Don’t think there is a work around for the navigateToURL issue.

Details
1. Changed to new up a ChannelSet with channel URLs coming from the FlexSpaceConfig.xml Spring ActionScript file instead of compiling in a services-config.xml.
2. See doc\livecycle\readmeLiveCycleContentServices.txt for FlexSpacesConfig.xml LC CS specific changes, and server side services-config.xml changes still required.
3. Note FlexSpaces needs its FlexSpacesConfig.xml configured with a Calais key and a Google Map api key to get UI for the Calais Integration enabled (see doc\flexspacesAir\readmeFlexSpacesForAIR.txt)
4. For instructions on adding an amp to an existing install (of 8.2.1, dir name, deploy areas different on ES2) see Dr Flex & Dr LiveCycle. (Haven’t tried the Calais Integration on LC CS 8.2.1. It should work since it works with Alfresco 2.1).

Updated the look of FlexSpaces, CMIS Spaces, and FlexibleShare

Sunday, August 9th, 2009

I released new builds of FlexSpaces, CMIS Spaces,  and FlexibleShare. These have a new ‘look” (with added skinning of menus/tabs,  and expanded/changed style files):

FlexSpaces 0.92

FlexSpaces+AIR 0.92 ( Alfresco Forge , Google Code )  (Tested with Alfresco 3.2, Adobe LiveCycle Content Services ES 8.2.1)

CMIS Spaces build 8

CMIS Spaces +AIR build 8 ( Alfresco Forge , Google Code ) (Tested with Alfresco 3.2)
Note: CMIS Spaces build 8 is for the CMIS 0.61 spec. I will do a new build soon for the CMIS 0.62 spec.

FlexibleShare build 2

FlexibleShare +AIR build 2 ( Alfresco Forge , Google Code ) (Tested with Alfresco 3.2, Adobe LiveCycle Content Services ES 8.2.1)

FlexSpaces and LiveCycle Workspace integrated UI

Tuesday, June 2nd, 2009

I was able to get FlexSpaces UI for document management with Adobe LiveCycle Content Services ES integrated with LiveCycle Workspace UI for  starting processes/forms/task-lists.  The workspace start process, to-do, and tracking are in tabs. The workspace preferences, messages, help are available from menus.  It works on Flex+Browser.   Also will SSO from/to other LC apps. (I can’t make this available as open source).

For an integration of FlexSpaces+AIR with Workspace, getting PDF Form controlling code to work in Flex+AIR looks challenging.  I could also create some Workspace pods for FlexibleShare (although FlexibleShare is Flex+AIR currently, could also do a +Browser version)

Document Library Tab (click image twice for larger):

FlexSpaces for LiveCycle doc library

Workspace Tab / start process (click image twice for larger):

FlexSpaces for LiveCycle start process

FlexibleShare+AIR (dashboard/portal for Alfresco, LiveCycle): build1 available

Tuesday, May 19th, 2009

A first build and source for FlexibleShare+AIR, an open source, Flex based dashboard/portal container focused on document management (Alfresco, Adobe LiveCycle Content Services ES), collaboration (Alfresco Share),  and BI/charting/reporting, is now available on the Alfresco Forge and on Google Code.

As a Flex based dashboard for FlexSpaces view pods (doc mgt, wcm, search, workflow tasks), its further along. (Note that the WCM pod is commented out in data/pods.xml).

The Flex based pods (blog, wiki, discussions, doclib, calendar) for Share back-end are prototypes. No commenting/reply feature yet. The calendar doesn’t hook into the Share backend yet. The Share dashboard html pod runs the Share overall dashboard (no pods for individual Surf dashlets yet).  (Note that you need to confgure Share pods with the correct site short url name in the siteUrlName attributes in pods.xml)

The Charting, Pentaho charting, JasperReports report viewer pods are samples only (additional BI/reporting capabilities to come). Liferay html pod runs the full Liferay portal (no pods for individual Liferay portlets yet).

FlexibleShare uses the Esria dashboard sample. I still need to look into leveraging the  Anvil project to provide more modular support for loading Flex portlets. (Note see previous blog post with more details on FlexibleShare)

Do to use of AIR, you can drag desktop files into FlexibleShare folder views. Regular AIR drag / drop also allows you to drag files from the local files pod to folder view pods and between folder view pods. Calais semantic auto-tagging, tag suggesting can be used in Doclib pods and in the search pod (switch from having the “simplesearch” pod to the “search” pod in pods.xml), and setup the Calais key / set enableCalais in FlexSpacesConfig.xml

To get FlexibleShare to run on LiveCycle Content Services (8.2.1), FlexSpacesConfig.xml needs to be changed following its LiveCycle comments (different setting for alfresoUrlPart, set isLiveCycleContentService value to true, and set serverVersion to 2.1 to reflect its embedded Alfreso. Also in data/pods.xml comment out the tasks pod, and remove the pods in Share section. Note: for FlexibleShare on LiveCycle on non localhost, currently need to recompile with service-config.xml changed.

FlexibleShare Document Management (WCM pod not shown) screenshot (click on for larger):

FlexibleShare+AIR  document management

FlexibleShare Collaboration screenshot (click on for larger):

FlexibleShare+AIR Alfresco Share Collaboration

FlexSpaces 0.9 released, CMIS Spaces preview build 6 released

Monday, May 4th, 2009

FlexSpaces 0.9 screenshot
FlexSpaces 0.9 (Flex+AIR, Flex+Browser) RIA Clients for Alfresco  (and Adobe LiveCycle Content Services)
Refactored to use Presentation Model pattern, added SampleApp1, severside paging in webscripts (doclib, search results), favorites/shortcuts, now 6 languages, preview now more usable and uses same content model REST api as Alfresco Share, Spring ActionScript XML config of: what views to show (doclib, search, tasks, wcm, share),  whether to have coverflow view mode,  default view page sizes, page size picklist, thumbnail info (id/name, size). Menu config more usable now that all menu enable/disable code is position independent, thumbnails fixed, bug fixes.  FlexSpaces on Google Code FlexSpaces on Alfresco Forge (Update: note in FlexSpacesConfig.xml, for LiveCycle, the alfrescoUrlPart should be “/contentspace/service” not “/contentspace/servicee” in the comment. )

CMIS Spaces screenshot
CMIS Spaces RIA clients (Flex+AIR, Flex+Browser) preview build 6
CMIS Spaces clients are for ECM / CMS servers supporting the Content Management Interoperability Services (CMIS) standard. CMIS Spaces supports CMIS on both REST Atom and SOAP. Changed to keep in sync with FlexSpaces 0.9 code, performance fix to remove overhead of undisplayed coverflow, CMIS Spaces specifc menu XML config file, Spring ActionScript XML config of: what views to show (doclib, search, checked out), default view page sizes, page size picklist. CMIS Spaces on Google Code CMIS Spaces on Alfresco Forge

CMIS Spaces source code checked in, CMIS / AtomPub ActionScript API notes

Wednesday, March 4th, 2009

The source code for CMIS Spaces (both Flex+AIR and Flex+Browser) is now checked into
http://code.google.com/p/cmisspaces/

(2191 files, including 6 language translations, although some of the files for FlexSpaces parts (workflow, wcm) are not used in CMIS Spaces)

Previous blog post covers what is working at this point and some setup info http://integratedsemantics.org/2009/03/02/cmis-spaces-flexair-early-preview-download-available/

There are 4 Flex Builder projects:
1. CMISSpaces (for CMIS Spaces Flex+Browser)
2. CMISSpacesAir (for CMIS Spaces Flex+AIR)
3. FlexSpaces (some modifications to FlexSpaces base code for CMIS, don’t need to build, dir is just used by CMISSpaces, CMISSpacesAir)
4. FlexSpacesAir (some modifications to FlexSpaces AIR base code for CMIS, don’t need to build, dir is just used by CMISSpacesAir)

Notes on the CMIS “client api” (client side service/data api) used in the code:
1. main part is in CMISSpaces/src/org/integratedsemantics/cmisspaces/cmis/atom
This consists of CMISAtomClient, extended cmis entry and feed classes, port of Alfresco’s Abdera extension classes CMISObject, CMISProperty, etc. to ActionScript
2. CMISAtomClient extends AtompubClient from as3atompub. The modified code from as3atompub is in CMISSpaces/src/org/coderepos (modified to work with newer version of as3httpclientlib
/sockets HttpClient (in org/httpclient) and to work without sockets using HttpClient2 in org/integratedsemantics/util)
3. CMIS Spaces also has Cairngorm events/commands/delegates api in org/integratedsemantics/cmisspaces/control that uses CMISAtomClient / AtompubClient

Also there are two other Atom related ActionScript libs out there
1. as3syndicationlib
2. NoteTag Kiwi AtomProtocol Library

Also a CMIS Atom Flex library project has started

Drupal + CMIS, Alfresco, CMIS Spaces Flex+AIR

Tuesday, March 3rd, 2009

Drupal CMIS Alfresco CMIS Spaces Flex+AIR CMIS Spaces Create HTML Content Dialog

Just for fun I tried out this chain of software working together for Drupal in a RIA client:

  1. Drupal 6.10 (used Acquia Drupal 1.2.3)
  2. CMIS and CMIS Alfresco Drupal modules (joint effort Optaros, Acquia, and Alfresco)
  3. Alfresco Labs 3
  4. CMIS Spaces Flex+AIR client early preview

Got it working by
1. Installing and enabling the Drupal modules
2. Configuring the CMIS, CMIS Alfresco, and CMIS Sync module settings in Drupal

(Although now only stories, pages created in Drupal get created in the Alfresco folder setup in the CMIS sync config in Drupal. I thought I had seen files created in the Alfresco folder get synced back)
Update: 2 way sync on creation
“Yes, currently Alfresco -> Drupal sync works via cron, so you’ll need to have cron running at reasonable intervals (or run it manually). This will likely be improved in future versions.”

Steve

Twitter Page

CMIS Spaces Flex+AIR early preview download available

Monday, March 2nd, 2009

CMIS Spaces screenshot

A early first build/AIR installer  of CMIS Spaces Flex+Air is now available on Google Code: http://code.google.com/p/cmisspaces/
Consider it like a prototype (some stuff works).  Update: source code is in Google Code,  a non AIR CMIS Spaces Flex+Browser is available in the source too, and a preview build 5 of Flex+AIR  is available.

Working Features (pretty much FlexSpaces minus WorkFlow, minus WCM)
(Tested with a download of Alfresco Labs 3 final with a draft CMIS implementation.)
1. Uses CMIS REST Atom binding API (or CMIS Web Services binding API) instead of Alfresco web scripts
2. Doclib with Tree, Folder view (both icon and grid views), breadcrumb nav
3. One box basic search and advanced search dialog (advanced just does basic now)
4. Version List Panel (show with View / Version History)
5. Checkout, Checkin, Cancel Checkout (may be issues with repeated use on same file)
6. Checked Out Files List View (checkin, cancel checkout from here)
7. Create Folder (File/Create Space menu)
8. Upload Files dialog (works on Flex+AIR, Flex+Browser needs multipart form post in cmis)
9. Download File dialog (works, will get auth prompt first time)
10. Viewing files on files in doc lib and checked out list views (not in search results since cmis didn’t return content stream urls)
11. Multi select Delete with confirm dialog
12. Play video file (”Play Video” menu on files in the repo)
13. AIR: Drag in from desktop into repo (multiple select) with progress bars (need to add drag out)
14. AIR: native clipboard copy / paste from desktop into repo
15. AIR:Local files pane (View / Local Files Browser menu) with drag into repo
16. AIR: Create Content dialogs (HTML, text, xml) (xml has problems)
17. Language translations for FlexSpaces will work with it (currently: English, Spanish, German, French, Japanese, Greek)
18. Application UI component library using presentation model pattern, Cairngorm based “non UI” api (also will have an extension of as3atompub lib for CMIS)

Setup:
1. CMIS Spaces Flex+AIR needs AIR 1.5 or greater installed before double clicking on the CMISSpacesAir.air file to install it.
2. In CMISSpacesConfig.xml (Spring ActionScript file) in Program Files/CMISSpacesAir
a. Set CMIS service URL for your vendor / host in the cmisUrl property
b. useSockets property set whether non sockets mode (URLLoader,HTTPServer) or sockets/as3httpclientlib mode
(some CMIS rest things that will work in AIR won’t work in non-AIR without using sockets) (also as3httpclientlib supports HTTPS using AS3Crypto TLS , in addition to HTTP,   headers, all http methods)
(delete and cancel checkout delay a long time in socket mode, update fixed this 3/3/09 on my side)
c. the crossDomainFileUrl property can be used to specify a location of a cross domain file URL to check
A sample crossdomain.xml file is included with wild cards that should be changed (use of http headers in CMIS, use of sockets mode may require this (more so with Flex+Browser than with Flex+AIR)
3. Note: patched  C:\Alfresco\install\labs\3final\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\templates\webscripts\org\alfresco\repository\store changed pwc.get.atomentry.ftl to have syntax like pwc.put.atomentry.ftl to avoid server syntax error with checked out / private working copies
changed [@entryLib.pwc node ns=[@nsLib.entryNS/]/]
to [#assign namespace][@nsLib.entryNS/][/#assign]
[@entryLib.pwc node=node ns=namespace/]
4. Update 3/12/09: For Web Services mode instead of CMIS Atom REST, set useWebServices value to “true” and set url in cmisWebServicesUrl in config file.

Steve

Twitter Page

CMIS, Alfresco, Flex, AIR

Thursday, February 12th, 2009

CMIS is the new Content Management Interoperability Services standard being developed by the by the OASIS CMIS TC. CMIS has both Web Services and REST/ATOM APIs.

Shane Johnson has a new blog post with screenshots, install download, for his CMIS explorer (Flex/AIR).

David Caruana has a blog post with an update on Alfresco’s Draft CMIS Implementation. This includes screenshots of a bunch of community projects using Alfresco’s Draft CMIS implementation.

I am starting to work on CMISspaces (Flex+AIR, Flex+Browser) RIA clients for CMIS. These are based on FlexSpaces. Hopefully the use of Cairngorm in FlexSpaces will allow CMIS delegates to be swapped in. CMISspaces will also work as a pod in FlexibleShare. (Also plan to have CMISspaces work as a tile in Adobe Genesis).

Steve