Adobe LiveCycle Mosaic FAQ

Installation and End User Issues

General

What version of Eclipse do I use to install the Mosaic tooling plug-in?

Which versions of the Java Development Kit do I use with Mosaic?

Which platforms does the Mosaic client support, and what software is required to run it?

Are there XML schemas for the Mosaic application and catalog XML that developers can reference?

Is there a way to determine if the debugging version of Mosaic server is deployed?

Does Mosaic support accessibility?

What version of Eclipse do I use to install the Mosaic tooling plug-in?

Eclipse 3.5.0 or later (Adobe recommends Flash Builder 4.0 or later).

Which versions of the Java Development Kit do I use with Mosaic?

Java Development Kit 1.6 Update 10 and later. For more information on system requirements, see Getting Started with Mosaic.

Which platforms does the Mosaic client support, and what software is required to run it?

See the Adobe LiveCycle Mosaic ES2 - System requirements web page.

Are there XML schemas for the Mosaic application and catalog XML that developers can reference?

Yes, the W3C schema files are in the [Mosaic installation directory]/docs/schemas folder. The documentation for the schema files is available here: LiveCycle Mosaic XML Schema Reference.

Is there a way to determine if the debugging version of the Mosaic server is deployed?

When you start the Mosaic server, the console (or log messages) displays content that includes the debugging bootstrap. For example:

[SWF] /mosaic/gravity_bootstrap_flex4.1.0p10-debug-auto.swf - 8,356,841 bytes after decompression

Does Mosaic support accessibility?

In general, accessibility capabilities for Mosaic are similar to the ones offered by Flex, Adobe Flash Player, and Adobe AIR. Mosaic is limited to some extent by Flex and Flash Player. Specifically, it does not have a method for controling the tab order of subapplications that are loaded using the SWFLoader control. As a result, some applications are less accessible for users who do not use a mouse.

Samples

Is there a way to view the source code for applications, catalogs, and tiles for the samples posted online?

Is there a Mosaic sample that demonstrates how to use LiveCycle Data Services?

Is there a way to view the source code for applications, catalogs, and tiles for the samples posted online?

All of the source code for the applications, including tiles and related assets, is included in the samples-*.zip file for the sample.

Is there a Mosaic sample that demonstrates how to use LiveCycle Data Services?

A Mosaic sample that demonstrates how to use of LiveCycle Data Services is available here. Due to an issue with Flash Player, the sample currently demonstrates an approach that is not optimal.

Error Messages

Why do I receive the message "ERROR - The resource RetrieveData was not found in catalog sample_catalog" when I open the Basic sample?

Why do I receive the error Error:object Error at flash.external::ExternalInterface$/_toAS() ... each time I log in to my Mosaic application using Internet Explorer?

Why is http Error (500) displayed when I launch samples?

Why is the error "StylesheetReference is not a legal element of tag Shell" displayed each time I load the sample using the desktop client?

Why is http Error (403) displayed when I upload applications to the LiveCycle ES2.5 server?

Why do I receive the message "ERROR - The resource RetrieveData was not found in catalog sample_catalog" when I open the Basic sample?

This error is expected behavior. The Basic sample uses a resource called RetrieveData to save user-entered data. The first time the tile loads, this resource does not exist, and the server logs the message that this resource could not be found.

In general, ensure that tiles and related assets are referenced in the catalog of the application. In addition, ensure that the corresponding files are included in the correct folders of your project. For more information, see Developing Applications for Mosaic.

Why do I receive the error "Error:object Error at flash.external::ExternalInterface$/_toAS() ..." each time I log in to my Mosaic application using Internet Explorer?

The complete error message is Error:object Error at flash.external::ExternalInterface$/_toAS() at flash.external::ExternalInterface$/call() at mx.automation.qtp::QTPAdapter()[C:\work\flex\dmv_automation\projects\qtp\src\mx\automation\qtp\QTPAdapter.as:488]

This error occurs if you deploy the debug versions of the mosaic.war, but do not have QTP installed. Do one of the following:

  • Ignore the error.
  • Deploy the release version of the mosaic.war file to the server.

The Flex SDK ships several SWCs (the filenames use the format automation*.swc) that have QTP dependencies. When tiles link to those SWCs, a dependency on QTP forms. When the runtime environment uses the debug version of the Mosaic server, exceptions are thrown if QTP is not installed.

Why is http Error (500) displayed when I launch samples?

This problem is likely because the Mosaic server was not properly deployed. Redeploy the mosaic.war file to the application server. For example, if you are using JBoss included with LiveCycle ES2.5 with Service Pack 1 installed as the application server, do the following:

  1. Stop JBoss.
  2. Delete the jboss/server/lc_turnkey/work folder where LiveCycle ES2.5 SP1 is installed (by default, C:\Adobe\Adobe LiveCycle ES2.5\jboss\server\lc_turnkey\work).
  3. Delete mosaic.war from the jboss/server/lc_turnkey/deploy folder where LiveCycle ES2.5 SP1 is installed (by default, C:\Adobe\Adobe LiveCycle ES2.5\jboss\server\lc_turnkey\deploy).
  4. Restart JBoss.
  5. Deploy the mosaic.war file to JBoss.

For more information on deploying the Mosaic server, see Getting Started with LiveCycle Mosaic.

Why is the error "StylesheetReference is not a legal element of tag Shell" displayed each time I load the sample using the desktop client?

The Mosaic client and server versions are not identical. Ensure that the version of Mosaic server you deployed is identical to the version of the desktop client you are using to view the samples.

Why is http Error (403) displayed when I upload applications to the LiveCycle ES2.5 server?

The 403 error occurs when the user credentials in the Ant task are valid, but the user does not have the appropriate permissions. Ensure that the user specified in the Ant task is assigned the role ROLE_MOSAIC_DESIGNER. For information on assigning user roles, see Getting Started with LiveCycle Mosaic.

Why do I receive the "Invalid catalog format detected" error when deploying a catalog?

The complete error message is:

[mosaic-catalog] <crx:Error code="CAT_E41002"> [mosaic-catalog] <crx:Message>Invalid catalog format detected. Offending file: {}</crx:Message> [mosaic-catalog] <crx:Key position="0">Tiles/Header.swf</crx:Key>

The error is displayed because you are using an unsupported catalog structure. In Mosaic, the catalog structure requires you to store tiles in subfolders named after the compiled SWF file of the tile. For example, /Tiles/HelloWorld/HelloWorld.swf.

Server

Can I integrate Mosaic with SiteMinder?

What is Single Sign-On (SSO) in Mosaic?

Is it possible to customize the Mosaic login to accept LDAP credentials?

Can I integrate Mosaic with SiteMinder?

Yes. The best way to integrate Mosaic with SiteMinder is to use the Spring security configuration. Since Mosaic uses Spring security for all of the authentication and authorization infrastructure, there is no application-specific configuration to complete. Once SiteMinder is installed and working correctly (see the documentation provided by Spring security: http://static.springsource.org/spring-security/site/docs/3.0.x/reference/preauth.html), Mosaic uses it transparently.

For more information on Spring security in Mosaic, see Administering LiveCycle Mosaic.

What is Single Sign-On (SSO) in Mosaic?

Mosaic is designed so that once you have logged in to Mosaic, a Mosaic application tile can access other server applications without repeating the login process. This process assumes that the same credentials are valid for the subsequent server applications. For example, a Mosaic Tile can access LiveCycle Data Services ES2.5 or a utility (for example, Assembler Service) that accepts the same credentials as Mosaic. This methodology is not the same as trying to enter a new URL from the same browser session. The Mosaic Tile SDK API provides a means to obtain the credentials used for login, which are then used for subsequent server access.

For more information, see Administering LiveCycle Mosaic.

Is it possible to customize the Mosaic login to accept LDAP credentials?

Yes. Mosaic uses Spring security for user authentication and role determination. To enable Mosaic to access LDAP credentials, Mosaic server administrators configure their existing security system to work with Spring security.

For more information on Spring security in Mosaic, see Administering LiveCycle Mosaic.

Application Development Issues

General

Why does my HTML tile look or behave differently in the browser client than it does in the desktop client?

Is there a way to define context values with a default setting, such that when a Mosaic application is deployed, certain values could be preset?

Are session timeouts supported for Mosaic applications?

How are Mosaic artifacts stored when using the LiveCycle ES2.5 server environment?

How does the Mosaic persistence mechanism work?

Why does my HTML tile look or behave differently in the browser client than it does in the desktop client?



The browser client and desktop client use different mechanisms to render HTML tiles. The browser client uses the rendering capability of the browser (that is, using inline frames or iframes). The desktop client renders using Adobe AIR (that is, WebKit). The results and issues you encounter depend on the level of standards compliance of the page you are using as an HTML tile. 

Is there a way to define context values with a default setting, such that when a Mosaic application is deployed, certain values could be preset?

You can define View context values in your application xml that are available on initialization. For application Context, there isn't a way yet to do that in 9.0.0, but that is a feature that is requested for the next release.

Are session timeouts supported for Mosaic applications?

Mosaic sessions do not time out. The Mosaic client-server protocol uses a background thread that causes the session to remain valid as long as the server is available.

How are Mosaic artifacts stored when using the LiveCycle ES2.5 server environment?

When it is running in a LiveCycle ES2.5 server environment, Mosaic detects the presence of the LiveCycle ES2.5 repository. It uses that repository as the default content storage mechanism. All assets (for example, XML and SWF files) are stored directly in the LiveCycle ES2.5 repository in a tree. This tree is a peer to the application tree.

Starting with Mosaic 9.5 SP1, you can also configure Mosaic to use a simple file system repository or a custom implementation of the repository. For information, see Administering LiveCycle Mosaic 9.5.

How does the Mosaic persistence mechanism work?

Views and the application XML are saved in a content storage system configured in the application server. Views are associated with the particular application that created them. There is a User object available through the Tile SDK APIs. That object is designed to provide what is required for user attributes. However, Mosaic is a new product and it is possible that things you need are not yet present. Report any missing requirements to the development team, which prioritizes new requirements as it receives them. Any values that your tile needs and are stored in the view's IContext interface are persisted in the content store as part of the view. Your tile can also use its own persistence mechanisms external to Mosaic. If you are using LiveCycle ES2.5 for persistence, review the LiveCycle ES2.5 samples.

Debugging

Is there a way to load Mosaic applications in Flash Builder for debugging?

Yes. Within a Flex project that compiles a Flex-based tile, change the debugging configuration launch url property to the Mosaic application URL. For example, set the launch url value to http://localhost:8080/mosaic/#/applications/Brokerage. For more information on debugging, see Developing Applications for LiveCycle Mosaic.

Tiles

Why do my module tiles not display in my application?

Why are my Flex-based tiles blank at runtime?

Is there any way to move tiles around when using the absolute layout?

Is there a way to dynamically retrieve tile names from a catalog?

Why do I receive this HTML tile error: 'The reference to the entity "source" must end with the ; (semi-colon) delimiter'?

Is it possible to lock a tile so that an end user cannot move or delete it?

Can Mosaic tiles that are accessed via the browser client be indexed for searches (for example, using something like a Google appliance)?

I have a view that includes a session-aware HTML tile (for example, on that uses cookies). If I save that view, is the cookie managed so that it is available when the HTML session is restored?

I have replicated a view that includes a session-aware HTML tile. Is there any mechanism to keep the original view's cookie from overwriting the cookies of subsequent views (such as creating an HTML control)?

Can tiles be loaded as Flex modules either into the current or child application domain of a shell application?

Why does a tile appear to be squished (grid is shown but no cell content) on some servers but is displayed normally on other servers?

Is there a way to retrieve a list of the tiles and some of their attributes from the API?

Can you display a video in a Mosaic application tile? For example, a SWF file of a demo that is available on a remote http server and does not play unless the user starts it?

Why is embedded content displayed in the browser client but not in the desktop (AIR-based) client?

Why do the Flex charting dataTips not show up in the correct place when used in a tile and accessed using the browser client?

Can the application domain for a modular tile be specified when it is loaded to allow it to inherit class definitions?

Is it possible to create a background image that covers the entire Mosaic application?

How do I set the backgroundColor property for a module tile at runtime?

Why do HTML tiles display correctly in the desktop client, but not Flash Player?

Is it possible to deploy tiles directly from an Eclipse or Flash Builder project?

When launching a Mosaic sample application using the desktop client, can tiles be launched in separate native windows?

Why do my module tiles not display in my application?

In the catalog entry for your module tiles, set the loadAs property to "module":

<tile:Content loadAs="module"  ... />

Why are my Flex-based tiles blank at runtime?

This problem occurs if the version of Mosaic that was used to compile the tiles is different from the version of Mosaic on the server. For example, you used a prerelease version to create tiles, but deployed the release version of the Mosaic server to your application server. Versions must match exactly.

Is there any way to move tiles around when using the absolute layout?

The absolute layout is not dynamic, so it does not allow movement of tiles. Only dynamic layouts allow the user to move tiles. Due to technical restrictions, tiles cannot overlap, so dynamic layouts always arrange themselves automatically. For more information on layouts, see Developing Applications for LiveCycle Mosaic.

Is there a way to dynamically retrieve tile names from a catalog?

Not explicitly. A workaround is to load the catalog descriptor.xml file and parse it using an XML object in Flex to retrieve the tile names.

Why do I receive this HTML tile error: 'The reference to the entity "source" must end with the ; (semi-colon) delimiter'?

Ensure that you use escape sequences for special characters, such as ampersands, in links. That is, replace "&" with "&amp;").

Is it possible to lock a tile so that an end user cannot move or delete it?

In terms of removing content, you can set the allowContentDelete attribute of a view or panel to "false" to prevent content from being deleted. Alternatively for a tile, set the allowDelete attribute of the tileReference element in the corresponding catalog to "false".

Note: Tiles can only be moved in any of the dynamic layouts. So another solution to this issue is to use a non-dynamic layout. If you require part of a tile layout to be dynamic, one option is to nest panels. By nesting panels, you can create a fixed space for the fixed tile and a subpanel for one or more dynamic tiles. For more information on layouts, see Developing Applications for LiveCycle Mosaic

Can Mosaic tiles that are accessed via the browser client be indexed for searches (for example, using something like a Google appliance)?

Except for HTML tiles, the answer is no. HTML is searchable as long as there is another link to that same tile somewhere the crawler can reach. Strictly speaking, the application XML files are not available to be crawled and hence, the search engine spider does not follow their pointers. HTML tiles can be indexed if the spider can get to the HTML tile without having to use the application xml file.

I have a view that includes a session-aware HTML tile (for example, one that uses cookies). If I save that view, is that cookie managed so that it is available when the HTML session is restored?

HTML sessions are not persisted. To create this functionality, the session needs to be re-established when the view is restored. When you author the HTML tile, you can use the Mosaic JavaScript APIs to put information into the view context that is persisted. This configuration helps to re-establish the session the next time the HTML tile is loaded.

I have replicated a view that includes a session-aware HTML tile. Is there any mechanism to keep the original view's cookie from overwriting the cookies of subsequent views (such as creating an HTML control)?

Each HTML tile has its own control, so no cross-clobbering should occur. If it does occur, report it to the development team as a bug.

Can tiles be loaded as Flex modules either into the current or child application domain of a shell application?

You compile module tiles with the same version of Flex that was used for Mosaic. Subclassing the MXML to ModuleTile also requires changing the loadAs attribute to "mod" in the catalog xml file for the tile.

Why does a tile appear to be squished (grid is shown but no cell content) on some servers but is displayed normally on other servers?

The fix is to set the parameter fitContent="true" on the TileClass tag within the descriptor.xml file for the grid to show properly.

Is there a way to retrieve a list of the tiles and some of their attributes from the API?

There is a "get tiles()" method on IPanel. For example:

var t:Array = parentPanel.tiles

This method provides an array of ITile interfaces for each tile in the panel. Then, you can cast each element in the array to IMosaicNode to get the nodeName or nodeLabel. If you want all the tiles in the application, first use the IApplication get views() method, then the get panels() method on each IView, and so on. Currently, you cannot get a list of tiles from the catalog.

Can you display a video in a Mosaic application tile? For example, a SWF file of a demo that is available on a remote http server and does not play unless the user starts it?

Yes. If the video is just a SWF file and not an application built using Flex, host the SWF file on a web server. Then, register the URL as an HTML tile in Mosaic.

Why is embedded content displayed in the browser client but not in the desktop (AIR-based) client?

It is recommended that you put resources in the catalog and load them via the URL, as illustrated in some of the Mosaic samples. Embedding assets creates the runtime problem.

Why do the Flex charting dataTips not show up in the correct place when used in a tile and accessed using the browser client?

When the code is executed as an app, the dataTip shows up in the chart. But when it is executed as a tile, the dataTip appears a few inches under the chart. This problem with charting dataTips in Mosaic 9.5.0.0 is known and has to do with the inherited coordinate space. The libraries involved with the charting do not use the correct method to determine where/how to display the dataTip text. This problem occurs for data tips only. Tool tips work correctly.

Can the application domain for a modular tile be specified when it is loaded to allow it to inherit class definitions?

Currently, you cannot specify the application domain when loading a module. The only way to load tiles into Mosaic is through the application's catalog using the Tile SDK API (ActionScript or Javascript). For more information, see the ICatalog "getTile" method.

Is it possible to create a background image that covers the entire Mosaic application?

If you're using HTML tiles, it is not possible to have a background image. The background image interferes with the HTML tile itself. This problem is a known Flash Player limitation. If you're using Flex-based tiles, then do the following:

  1. Create a module tile at the shell level of your application.xml. For example:
  2. In the tile "MyMenuTile", set the following attributes in your module tile definition:

How do I set thebackgroundColor property for a module tile at runtime?

Module tiles inherit the default backgroundAlpha = 0 from the container style in the runtime itself. To ensure that the background color you set displays properly, set backgroundAlpha to "1.0".

Why do HTML tiles display correctly in the desktop client, but not Flash Player?

The reason is because the style sheets in the desktop (AIR-based) client runtime and the browser client runtime are different. Specifically, they each set a different value of the backgroundAlpha attribute. The result is that there is no need to override the background alpha for items in the desktop client runtime, so HTML tiles display correctly.

Is it possible to deploy tiles directly from an Eclipse or Flash Builder project?

No. For deployment instructions, see Getting Started with Mosaic.

When launching a Mosaic sample application using the desktop client, can tiles be launched in separate native windows?

No. However, in the desktop client, you can set a tile to open native windows that can "float" - that is, they are detached from the shell window.

Panels 

Why am I having problems adding tiles to, and closing, panels that I create dynamically?

Can I programmatically set panel focus?

Can I programmatically change the name of a panel?

Why do nodes have both names and labels?

Why am I having problems adding tiles to, and closing, panels that I create dynamically?

To avoid this problem, set the nodeLabel property for the panel. For example:

var pPanel:IPanel = this.mosaicApp.createBlankPanel();
    pPanel.nodeLabel = pLabel;  // which is some String
    this.mosaicApp.activeView.addPanel(pPanel);

Views

What does it mean that a view can be "saved"?

Why is my clientName attribute undefined when I open a saved view?

Is it possible to persist an array object for a view?

What does it mean that a view can be "saved"?

When a view is saved, the list of tiles, the respective tile layouts, and the view's context are all saved to the Mosaic server.

Why is my clientName attribute undefined when I open a saved view?

You are using a value of "activeView" in the init method when attempting to retrieve the context. The active view is not necessarily the view that is running during initialization. An alternative would be to use a value of "parentView" instead. For example:

ClientID.text = parentView.context.getAttribute("clientName");

Is it possible to persist an array object for a view?

No. Persistence only exists for objects of type string, date, number, a Boolean value, and null.

Organizers

Is it possible to automatically minimize the organizer, or minimize it dynamically if there are no current saved views?
Can I change the colors displayed on an organizer?

Is it possible to automatically minimize the organizer, or minimize it dynamically if there are no current saved views?

No.

Can I change the colors displayed on an organizer?

In Mosaic, you can change the color of aspects of an organizer. There are several parts to an organizer that are defined in the application XML. For more information, see LiveCycle Mosaic XML Schema Reference. In addition, the Adobe Spark Page Client Dashboard sample included with Mosaic demonstrates customizing the appearance of aspects of an organizer (see SlateOrganizerSkin.mxml).

Layouts

Is there a way to set default panel layouts?

Can I create a tile layout that does not display any user interface ("chrome")? 

Is there a way to set default panel layouts?

Yes. In Mosaic, you can define (pre-configure) views and panels using application defaults. For information on setting defaults, see Developing Applications for LiveCycle Mosaic.

Can I create a tile layout that does not display any user interface ("chrome")?

Use the tileChrome attribute defined in the application XML to turn the visible user interface (or "chrome") for a tile off and on. For more information on the tileChrome attribute, see LiveCycle Mosaic XML Schema Reference.

Style Sheets

How do I associate a Mosaic tile with a Spark skin?

Your only choice for skinning a tile is to set the HostComponent property for your tile to an instance of com.adobe.mosaic.core.IMosaicComponent. This mechanism is deliberately generic, and deliberately exposed through an interface. For example, see the com.adobe.mosaic.skins.aqua.TileSkin class available here: ActionScript 3.0 Reference for the Adobe Flash Platform.