<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Creasis Developer Community Blog</title>
	<atom:link href="http://blog.creasis.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.creasis.com</link>
	<description>Developer Community Blog</description>
	<lastBuildDate>Thu, 24 Feb 2011 14:06:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Monitoring business data with Adobe LiveCycle BAM ES2</title>
		<link>http://blog.creasis.com/348/monitoring-business-data-with-adobe-livecycle-bam-es2/</link>
		<comments>http://blog.creasis.com/348/monitoring-business-data-with-adobe-livecycle-bam-es2/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 14:01:04 +0000</pubDate>
		<dc:creator>Gokhan Yildiz</dc:creator>
				<category><![CDATA[Adobe LiveCycle]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[BAM]]></category>
		<category><![CDATA[BAM Wizard]]></category>
		<category><![CDATA[BPM]]></category>
		<category><![CDATA[Cognos Now]]></category>
		<category><![CDATA[livecycle]]></category>

		<guid isPermaLink="false">http://blog.creasis.com/?p=348</guid>
		<description><![CDATA[The BAM wizard was introduced with LiveCycle ES2. By default BAM monitors only the metrics of the processes running on a LiveCycle server not the actual data generated by business transactions. Before this fancy wizard, if you wanted to monitor the data (variables etc.) circulating in your processes with BAM as well, you had to [...]]]></description>
			<content:encoded><![CDATA[<p>The BAM wizard was introduced with LiveCycle ES2. By default BAM monitors only the metrics of the processes running on a LiveCycle server not the actual data generated by business transactions. Before this fancy wizard, if you wanted to monitor the data (variables etc.) circulating in your processes with BAM as well, you had to go through a time-consuming procedure to create the required data objects in the BAM workbench and dashboard. With the new BAM wizard, the process of monitoring business data gets much easier and less painful. Basically, it allows you to create a service in your process diagram to monitor your process data metrics. With this easy to use wizard, you don’t have to be a Cognos BI expert in order to create dashboards that show how your business is doing at a particular point in time. This LC component stores the business data in LiveCycle’s own database, so you don’t need to install and use another database for just monitoring business data metrics. BTW if you want to use BAM to collect data from a database other than the one that is used by LiveCycle ES for its operations then you will need a special license called &#8220;BAM ES Extended&#8221;. Standard license does not cover external database connections outside the LiveCycle environment.</p>
<p>The BAM Wizard helps you monitor your data by creating a separate table in your LiveCycle’s database for each process that has the component. The wizard consists of 5 sections, 4 of which require you to input some data in order to create the table and appropriate fields in the database.</p>
<div id="attachment_349" class="wp-caption alignleft" style="width: 511px"><a rel="attachment wp-att-349" href="http://blog.creasis.com/348/monitoring-business-data-with-adobe-livecycle-bam-es2/conn/"><img class="size-full wp-image-349" title="Bam Wizard" src="http://blog.creasis.com/wp-content/uploads/2011/02/conn.png" alt="Bam Wizard" width="501" height="402" /></a><p class="wp-caption-text">Adobe BAM Wizard</p></div>
<p><strong><em>Connection</em></strong>:  Needs to be filled once (the first time the  wizard is used). On this page you set the data source, BAM Server URL,  BAM Server Username, and the BAM Server Password.</p>
<p><strong><em>Data:</em></strong> This is the page on which you specify what needs to be monitored by the BAM wizard through XPath expressions. You can also delete or modify previously added XPath expressions here in this section.</p>
<p><strong><em>Type:</em></strong> This is the section where you need to define the data types of those process variables you added in the previous section.</p>
<p><strong><em>Views:</em></strong> In this page you can add functions such as SUM, Average etc. (depending on the data types you have)</p>
<p><strong><em>Parameters:</em></strong> This is the section in which the wizard shows you the XML string that tells what will be sent to the BAM server by the component in order to interact with the data.</p>
<p>You won’t get to use this component unless you install SP1 or SP2. Even then, LC Workbench requires you to install the component manually. After installing one of the service packs, you will see a folder named “LavaActivitySuite” under the “Adobe LiveCycle ES2\LiveCycle_ES_SDK\misc\” folder.  In that folder, you’ll find a document that contains instructions on how to install the BAM Wizard.</p>
<p>In conclusion, the BAM wizard is worth a look if you are looking for a fast and easy way to create dashboards which present business data in an easy-to-read format.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creasis.com/348/monitoring-business-data-with-adobe-livecycle-bam-es2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Working with AMP files in LiveCycle Content Services</title>
		<link>http://blog.creasis.com/325/working-with-amp-files-in-livecycle-content-services/</link>
		<comments>http://blog.creasis.com/325/working-with-amp-files-in-livecycle-content-services/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 08:33:24 +0000</pubDate>
		<dc:creator>Gokhan Yildiz</dc:creator>
				<category><![CDATA[Adobe LiveCycle]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[AMP]]></category>
		<category><![CDATA[Application Module Package]]></category>
		<category><![CDATA[Content Services]]></category>
		<category><![CDATA[Content Space]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[livecycle]]></category>

		<guid isPermaLink="false">http://blog.creasis.com/?p=325</guid>
		<description><![CDATA[I needed to create a data model for a client who wanted to use LC Content Services for storing documents and some meta-data attached to those documents. It took me awhile to figure out my way around LC Content Services Module so I decided to share what I learned with those who are about to [...]]]></description>
			<content:encoded><![CDATA[<p>I needed to create a data model for a client who wanted to use LC Content Services for storing documents and some meta-data attached to those documents. It took me awhile to figure out my way around LC Content Services Module so I decided to share what I learned with those who are about to pull their hair out trying to find clear documentation on how to create a custom data model and use it in LiveCycle.</p>
<p>Well, in my case, I had to create a custom model with a bunch of properties that can be retrieved within LiveCycle.  I found out that Alfresco Module Package (AMP) files are used in order to extend repository in LC Content Services.</p>
<p>I have attached a <a title="Sample AMP File" href="http://www.gokhan.com/creasishrAspect.amp" target="_self">sample AMP file</a> which you can modify and use in your own applications by following the steps given below;</p>
<p><strong>1. </strong><strong>module.properties</strong></p>
<p>This is the first file that you will see after extracting the content of the AMP package. Locate the line where you put &#8220;moduleid&#8221; and then replace it with the name of the folder within \config\alfresco\module\ folder.</p>
<p><strong>2. </strong><strong>yourmodelnameModel.xml</strong></p>
<p>The XML file that ends with the word “model”, located in config\alfresco\extension should be named same as the &#8220;moduleid&#8221; which we defined in the previous step.</p>
<p>First, set the moduleid in the <em>namespace</em> node and then replace the prefix value with your own.</p>
<p>Also, don’t forget to change all the prefix values used in name attributes within the whole XML file.</p>
<p><strong>3. </strong><strong>custom-metadata-extractors-context.xml</strong></p>
<p>Replace the model filename with the one you used in your xml model file; and then replace the prefix definitions and keywords located in the “mappingProperties” section.</p>
<p><strong>4. </strong><strong>yourmodulename_strings.properties</strong></p>
<p>You’ll find this file in the “\config\alfresco\messages\” folder. This is a simple text file which allows you to set the label values of your properties displayed in LC Content Space.</p>
<p><strong>5. </strong><strong>module-context.xml</strong></p>
<p>This xml file is located in the \config\alfresco\module\yourmodulename\ folder. Change the name of the xml file in the  section that has the “resource” configuration.</p>
<p><strong>6. </strong><strong>yourmodelname-service-context.xml</strong></p>
<p>This file can be found in the \config\alfresco\module\yourmodulename\context folder.</p>
<p>Change the list values of “configs”, “resourcebundles” and “model” properties accordingly.</p>
<p><strong>7. </strong><strong>web-client-config-yourmodulename.xml</strong></p>
<p>This is the xml file in which you define what to be shown in the “More Options” panel in your content space. You can also match properties defined earlier in Step 2 with the “display-label-ids” that will be used when the aspect is applied.</p>
<p>The format of an AMP file is similar to that of a ZIP file. Basically, an AMP file is a collection of XML, image, CSS etc. You can extract the content of an AMP package using WinRAR. However, I couldn’t create a brand new AMP file just by compressing the content files using WinRAR. LiveCycle fails to deploy AMP packages created by WinRAR. I was in a little bit of a hurry so I found a sample AMP package, opened it with WinRAR and replaced the files with the ones I created. It worked like a charm! Once your AMP package is deployed successfully, you can see your model from workbench in the aspects list.</p>
<div id="attachment_329" class="wp-caption aligncenter" style="width: 387px"><a rel="attachment wp-att-329" href="http://blog.creasis.com/325/working-with-amp-files-in-livecycle-content-services/custommodel/"><img class="size-full wp-image-329" title="Working with custom aspects in LC Content Services" src="http://blog.creasis.com/wp-content/uploads/2010/12/customModel.png" alt="Working with custom aspects in LC Content Services" width="377" height="530" /></a><p class="wp-caption-text">Working with custom aspects in LC Content Services</p></div>
<p>Deploying AMP packages to LC Content Services is a whole another subject matter which will take more than one post to explain, so I’m not going to touch on it here.</p>
<p>Below is the link which contains all the steps to deploy an AMP file to LiveCycle Content Services;</p>
<p><a href="http://www.drflex.eu/2008/10/extending-adobe-document-management-with-even-more-functionality/">http://www.drflex.eu/2008/10/extending-adobe-document-management-with-even-more-functionality/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creasis.com/325/working-with-amp-files-in-livecycle-content-services/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Content Services client</title>
		<link>http://blog.creasis.com/294/content-services-client/</link>
		<comments>http://blog.creasis.com/294/content-services-client/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 13:22:13 +0000</pubDate>
		<dc:creator>Rudi Açıkgöz</dc:creator>
				<category><![CDATA[Adobe LiveCycle]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Remoting]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Content Services]]></category>
		<category><![CDATA[Content Space]]></category>
		<category><![CDATA[Flex Builder 4]]></category>
		<category><![CDATA[Flex Client]]></category>
		<category><![CDATA[livecycle]]></category>

		<guid isPermaLink="false">http://blog.creasis.com/?p=294</guid>
		<description><![CDATA[Sample client application, which interacts with Adobe LiveCycle Content Services module]]></description>
			<content:encoded><![CDATA[<p>Adobe LiveCycle Content Services software lets building content-rich engagement applications rapidly with running on Adobe LiveCycle Enterprise Suite (ES) platform. As LiveCycle ES provides efficient solutions for media-centric domains, Content Services is a one of the most important modules with the reason that it has management capabilities for document based contents. The main advantage of using Adobe LiveCycle platform is that accelarating solution’s time to market. So, the motivation of this work is to see that how easy and fast is that developing a client application to interact with Adobe LiveCycle Content Services module.</p>
<p>The performance concept is also another issue that should be taken into accout at client application side. Flex is one of the best option with the reason of using AMF (Action Messaging Format), which offers fast and efficient communication  with help of binary format. There is another important reason that LiveCycle Service Discovery Plug-in is available to find and generate any service resource at the client application. Let’s take a look at Flex solution provided below for the scenario that retrieving the contents stored and managed by Content Services software.</p>
<p>-          <strong>Install LiveCycle Service Discovery Plug-in for Flash Builder</strong></p>
<p>You can find the details <a href=”http://help.adobe.com/en_US/livecycle/9.0/sd_releasenotes.htm" target=”_blank>here</a></p>
<p>-          <strong>Find and define DocumentManagementService in the LiveCycle services list</strong></p>
<p>Once connecting to LiveCycle ES data services, then you will be able to search service list</p>
<pre class="brush: as3; light: true;">
&lt;fx:Declarations&gt;
    &lt;services:DocumentManagementService fault=&quot;documentService_faultHandler(event)&quot; result=&quot;documentService_resultHandler(event)&quot;/&gt;
&lt;/fx:Declarations&gt;
</pre>
<p>-          <strong>Test and call getSpaceContents method</strong></p>
<p>The method is available under DocumentManagementService definition, and it can be tested via Test Operation tool inside Flash Builder</p>
<pre class="brush: as3; light: true;">
private function retrieveContentsAction():void {
	documentService.getSpaceContents(storeLoc.text,spaceLoc.text, false);
}
</pre>
<div id="attachment_304" class="wp-caption aligncenter" style="width: 560px"><a href="http://blog.creasis.com/294/content-services-client/b1/" rel="attachment wp-att-304"><img src="http://blog.creasis.com/wp-content/uploads/2010/12/b1.png" alt="Testing getSpaceContents method with Test Operation Tool" title="Testing getSpaceContents method with Test Operation Tool" width="550" height="250" class="size-full wp-image-304" /></a><p class="wp-caption-text">Testing getSpaceContents method with Test Operation Tool</p></div>
<p>-          <strong>Bind result to a datagrid component</strong></p>
<p>The result is returned as a list of retrieved contents and a datagrid component can be used to visualize those contents. In the example, I have created an auxiliary class named ContentInstance to format the result list.</p>
<pre class="brush: as3; light: true;">
protected function documentService_faultHandler(event:FaultEvent):void{
	Alert.show(event.fault.toString());
}

protected function documentService_resultHandler(event:ResultEvent):void{
   var returnObj:ArrayCollection = event.result as ArrayCollection;
   productList = new ArrayCollection();
   for(var i:int=0; i&lt;returnObj.length; i++){
	   var atmapObj:Object = returnObj[i][&quot;attributeMap&quot;] as Object;
	   var docObj:Object = returnObj[i][&quot;document&quot;] as Object;
	   var ci:ContentInstance = new ContentInstance();
	   ci.guid = atmapObj[&quot;{http://www.alfresco.org/model/system/1.0}node-uuid&quot;] as String;
	   ci.documentName = atmapObj[&quot;{http://www.alfresco.org/model/content/1.0}name&quot;] as String;
	   ci.documentCreator = atmapObj[&quot;{http://www.alfresco.org/model/content/1.0}creator&quot;] as String;
	   //ci.documentLink = atmapObj[&quot;{http://www.alfresco.org/model/content/1.0}browse-link&quot;] as String;
	   ci.documentLink = docObj[&quot;url&quot;] as String;
	   productList.addItem(ci);

	}
}</pre>
<div id="attachment_307" class="wp-caption aligncenter" style="width: 560px"><a href="http://blog.creasis.com/294/content-services-client/b2/" rel="attachment wp-att-307"><img src="http://blog.creasis.com/wp-content/uploads/2010/12/b2.png" alt="Display contents in Datagrid component" title="Display contents in Datagrid component" width="550" height="161" class="size-full wp-image-307" /></a><p class="wp-caption-text">Display contents in Datagrid component</p></div>
<p>I think anybody tries to develop the same will aggree with me on that it is very easy and fast to develop an application running on LiveCycle ES platform by using Flex. Especially, testing and defining a service with help of service discovery plug-in makes application development and unit testing of LiveCycle’s services really exciting.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creasis.com/294/content-services-client/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Display PDF in Flex client</title>
		<link>http://blog.creasis.com/239/display-pdf-in-flex-client/</link>
		<comments>http://blog.creasis.com/239/display-pdf-in-flex-client/#comments</comments>
		<pubDate>Sat, 04 Dec 2010 14:01:20 +0000</pubDate>
		<dc:creator>Rudi Açıkgöz</dc:creator>
				<category><![CDATA[Adobe LiveCycle]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Remoting]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[AMP]]></category>
		<category><![CDATA[Application Module Package]]></category>
		<category><![CDATA[Content Services]]></category>
		<category><![CDATA[Content Space]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Flex Builder 4]]></category>
		<category><![CDATA[Flex Client]]></category>
		<category><![CDATA[IFrame]]></category>
		<category><![CDATA[livecycle]]></category>
		<category><![CDATA[Spark]]></category>

		<guid isPermaLink="false">http://blog.creasis.com/?p=239</guid>
		<description><![CDATA[Flex 4 client application develop for Adobe LiveCycle Content Services module. Solution of displaying PDF in Flex problem is mentioned...]]></description>
			<content:encoded><![CDATA[<p>LiveCycle Enterprise Suite provides capabilites and services for developing easily a client application especially by using Flex. In our case, LiveCycle Content Services module has been installed and then contents, each of which is a PDF document, are needed to be uploaded to the content space. Briefly the usage scenario is that an user is only responsible for uploading original document and the another user is responsible to view the document content and add metadata information for it. At Content Services module side, we have developed a custom content model and alfresco application module package(AMP) for handling domain specific metadata information. At user side, we have developed a client application with Flex 4 by using remote services of LiveCycle server.</p>
<div id="attachment_269" class="wp-caption center" style="width: 560px"><a href="http://blog.creasis.com/239/display-pdf-in-flex-client/screenshot/" rel="attachment wp-att-269"><img src="http://blog.creasis.com/wp-content/uploads/2010/12/screenshot.png" alt="Rendering PDF in Flex Client" title="Rendering PDF in Flex Client" width="550" height="250" class="size-full wp-image-269" /></a><p class="wp-caption-text">Rendering PDF in Flex Client</p></div>
<p>The main problem with Flex client application was that displaying PDF document in a popup window. I have read almost every articles about displaying PDF in Flex application and then I realized that the best way to achieve the same is using google’s iframe component. But, the problem about iframe was that it crashes once direct URL of PDF document is assigned as its source. So as required in the usage scenario, PDF documents are the contents stored in the system and they should be viewed directly. Generally, the solution is that using a temprorary HTML, which gets rendered to initialize Iframe instance, and then the direct URL of PDF can be provided as its source. Please find the solution’s detail below.</p>
<p>- <strong>Define an IFrame instance in Flex by making it disabled. </strong></p>
<pre class="brush: xml; light: true;">
&lt;flexiframe:IFrame id=&quot;iframe&quot; source=&quot;docViewer.html&quot; backgroundColor=&quot;gray&quot; width=&quot;100%&quot; height=&quot;100%&quot; visible=&quot;false&quot;/&gt;
</pre>
<p>- <strong>Generate an HTML resource by including only a couple of mandatory HTML tags</strong></p>
<pre class="brush: xml; light: true;">
&lt;html&gt;
    &lt;body&gt;
    &lt;h1&gt;Creasis - HTML Test&lt;/h1&gt;
   &lt;/body&gt;
&lt;/html&gt;
</pre>
<p>- <strong>Develop a popup window function to display IFrame instance</strong></p>
<pre class="brush: as3; light: true;">
private function showDocumentAction(doclink:String):void {
	var showContDoc:DocumentViewer=DocumentViewer(PopUpManager.createPopUp(
		this, DocumentViewer , true) as spark.components.TitleWindow);
	showContDoc.addElement(outerDocument.iframe);
	outerDocument.iframe.visible = true;
	outerDocument.iframe.source = doclink
}

&lt;s:Button label=&quot;Show Doc&quot; width=&quot;75&quot; click=&quot;showDocumentAction(data.documentLink)&quot;/&gt;
</pre>
<p>As you can easily see that, temprorary HTML resource is just used to help rendering IFrame instance. So the solution can be thought as ineffecient one and it will be invalid once the IFrame is improved for displaying PDF’s URL directly. I also aggree with the idea that IFrame should not be used for displaying a document within Flex application. To overcome such problems, AIR based client application should be considered seriously.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creasis.com/239/display-pdf-in-flex-client/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Event Driven SOA with LiveCycle ES</title>
		<link>http://blog.creasis.com/51/event-driven-soa-with-livecycle-es/</link>
		<comments>http://blog.creasis.com/51/event-driven-soa-with-livecycle-es/#comments</comments>
		<pubDate>Sat, 11 Sep 2010 18:14:54 +0000</pubDate>
		<dc:creator>Rudi Açıkgöz</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Java EE]]></category>
		<category><![CDATA[Pattern]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[driven]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[livecycle]]></category>
		<category><![CDATA[observer]]></category>
		<category><![CDATA[suite]]></category>

		<guid isPermaLink="false">http://blog.creasis.com/?p=51</guid>
		<description><![CDATA[the post shares the information about SOA, Business Event Structruce and how to implement a sample business event processing with Adobe LiveCycle Enterprise Suite.]]></description>
			<content:encoded><![CDATA[<p>I was researching Event structure in SOA and the idea behind it. Then I found that Observer pattern is the origin of the solution. Briefly, Observer pattern stands for that there are partners interact with a same unit involved in overall structure and that&#8217;s why they are registered for any event relevant to that unit. To make the problem clearer, I think it would be better using a real-life case. Assume that you want to travel to a destination. It means that potentially you will buy flight tickets and accommodation. So, once the teller in the agency registers you for a traveling, the flight ticket system and accommodation system should suggest you the best option regarding the specified traveling information. In this case the registration system, flight ticket system and accommodation system are the partners; traveling registration is the event. By applying Observer patterns, you need to implement this workflow manually that at the end of the traveling registration process, you need to interact with partners one by one to suggest the best options. The disadvantage of this implementation is that once new partners join to the system, you will need to add them to the registration process manually as well.</p>
<p>From SOA viewpoint, such coupling between partners is unacceptable. To overcome this problem there is Event structure in SOA, and Event is a data type defined in Data Model which is presented in overall architecture. Processes share Data Model including particular events and publish-subscribe mechanism is handled by the system automatically. It means that any process can publish any event to inform its subscribers without knowing them; similarly, any process can be subscribed to an event without knowing its producer. It also means that there is no need to change any implementation once a new partner joins to that event no matter that it is a producer or subscriber.</p>
<p>There are many SOA solution environments including business event structure as well. For discovering the product, I tried to implement publish-subscribe event scenario in Adobe’s LiveCycle Enterprise Suite. Firstly, I created publisher process named as Translation Process that gets the inputs from the user and throws an event about translation. Then I created subscriber process named as Subscriber Process that is got started once it receives an event produced for translation. Briefly the scenario is that once the user enters inputs for translation, which are input text, source language, target language; and then a human task created for reviewing the inputs. CreasisBA user group is assigned to execute review task; and once the task gets approved by them, then the Task Completed event is thrown otherwise the process is halted. Task Completed event is a built-in event definition in LiveCycle ES2; and Subscriber Process has a start point that listens that type of events. Once any of such an event is received, then another human task is created by assigning to Creasis Developer user group. That’s why I wanted to keep the implementation as basic one, after the human task is completed in the subscriber process then it gets finished. I mean it will be an external web service call to complete translation process.</p>
<div id="attachment_171" class="wp-caption aligncenter" style="width: 560px"><a href="http://blog.creasis.com/wp-content/uploads/2010/09/event_figure11-e1284228334105.png"><img src="http://blog.creasis.com/wp-content/uploads/2010/09/event_figure11-e1284228471967.png" alt="Figure 1 : TranslationProcess in EventPublisherApp" title="Figure 1 : TranslationProcess in EventPublisherApp" width="550" height="255" class="size-full wp-image-171" /></a><p class="wp-caption-text">Figure 1 : TranslationProcess in EventPublisherApp</p></div>
<pre class="brush: xml; light: true;">
&lt;xsd:schema xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
	&lt;xsd:annotation&gt;
		&lt;xsd:documentation xml:lang=&quot;en&quot;&gt;
			Adobe LiveCycle Workbench ES2 Translation XSD
       &lt;/xsd:documentation&gt;
	&lt;/xsd:annotation&gt;
	&lt;xsd:element name=&quot;Translation&quot;&gt;
		&lt;xsd:complexType name=&quot;TranslationInfo&quot;&gt;
			&lt;xsd:sequence&gt;
				&lt;xsd:element name=&quot;SourceLanguage&quot; type=&quot;xsd:string&quot; /&gt;
				&lt;xsd:element name=&quot;TargetLanguage&quot; type=&quot;xsd:string&quot; /&gt;
				&lt;xsd:element name=&quot;TranslationText&quot; type=&quot;xsd:string&quot; /&gt;
				&lt;xsd:element name=&quot;TranslationResult&quot; type=&quot;xsd:string&quot; /&gt;
				&lt;xsd:element name=&quot;TaskStatus&quot; type=&quot;xsd:string&quot; /&gt;
			&lt;/xsd:sequence&gt;
		&lt;/xsd:complexType&gt;
	&lt;/xsd:element&gt;
&lt;/xsd:schema&gt;
</pre>
<div id="attachment_172" class="wp-caption aligncenter" style="width: 560px"><a href="http://blog.creasis.com/wp-content/uploads/2010/09/event_figure2-e1284228552269.png"><img src="http://blog.creasis.com/wp-content/uploads/2010/09/event_figure2-e1284228765668.png" alt="Figure 2 : SubscriberProcess in SubscriberApp" title="Figure 2 : SubscriberProcess in SubscriberApp" width="550" height="242" class="size-full wp-image-172" /></a><p class="wp-caption-text">Figure 2 : SubscriberProcess in SubscriberApp</p></div>
<p>Figure 1 shows the resources of EventPublisherApp and graphical representation of TranslationProcess. I started development with generating data model presented in translation.xsd, which is given above. Then I created user form named as TranslationForm by binding to XSD resource. Finally, I develop the process by binding the form as a variable. Figure2 shows shows the resources of EventSubscriberApp and graphical representation of SubscriberProcess. I reused form and XSD assets generated at EventPublisherApp, which help development of process very easy.</p>
<p>As it can be easily seen from the figures above that Adobe’s LiveCycle ES provides creative and easy-to-manage environment for enterprise-level business process development. First of all, it takes almost only 2 hours to install the product, which has too many useful built-in features. The most important ones are that Adobe LiveCycle ES2 Designer can use data model to generate a user form, which is converted to an editable PDF document during the execution; Adobe LiveCycle ES2 Workbench can deploy, undeploy the applications and check-in, check-out the resources during the development. Once comparing with other SOA environment during the exploration the product, I felt that it brings effective solutions to improve development of complex systems and it has built-in functionalities, which are mostly required even in medium-scale systems. I think it can make complex-system development exciting, and I hope the product will get rightful attention in the market.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creasis.com/51/event-driven-soa-with-livecycle-es/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Adobe&#8217;s Reply on: Spark Form Components and Android Keyboard Problem</title>
		<link>http://blog.creasis.com/131/adobes-reply-on-spark-form-components-and-android-keyboard-problem/</link>
		<comments>http://blog.creasis.com/131/adobes-reply-on-spark-form-components-and-android-keyboard-problem/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 21:01:10 +0000</pubDate>
		<dc:creator>Mehmet Tekin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[android 2.2]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Flex Builder 4]]></category>
		<category><![CDATA[HTC]]></category>
		<category><![CDATA[MX]]></category>
		<category><![CDATA[Nexus One]]></category>
		<category><![CDATA[Spark]]></category>

		<guid isPermaLink="false">http://blog.creasis.com/?p=131</guid>
		<description><![CDATA[As I have finished writing my previous post on Spark Form Components and Android Keyboard Problem, I started making a number of inquiries to both Adobe and Google evangelists about the subject. Chet Haase from Google, working on Android SDK and previously on Flex SDK at Adobe, was kind enough to take issue as &#8220;big [...]]]></description>
			<content:encoded><![CDATA[<p>As I have finished writing my previous post on <a class="wp-caption" title="My previous post" href="http://blog.creasis.com/post/103/spark-form-components-and-android-keyboard-problem/">Spark Form Components and Android Keyboard Problem</a>, I started making a number of inquiries to both Adobe and Google evangelists about the subject.</p>
<p><a class="wp-caption" title="Chet's Blogspot profile" href="http://www.blogger.com/profile/03250991041464602854" target="_blank">Chet Haase</a> from Google, working on Android SDK and previously on Flex SDK at Adobe, was kind enough to take issue as &#8220;big enough&#8221; to forward to his folks at Adobe. Again thank you Chet for your prompt response to my mail.</p>
<p>A soothing answer to our surprising discovery during our development efforts came from <a class="wp-caption" title="Ryan's Blogspot profile" href="http://www.blogger.com/profile/03770870265023271903" target="_blank">Ryan Frishberg</a> of Adobe&#8217;s Flex SDK development team.</p>
<p>Apparently, and as expected, Adobe is aware of the issue with Spark components. Adobe has a plan in place to address this issue in their next release, of which is concentrated on mobile development.</p>
<blockquote>
<p style="padding-left: 30px;"><em>&#8220;The underlying issue is what text component we use from the Flash Player (TextField vs. Flash Text Engine/Text Layout Framework). </em></p>
<p style="padding-left: 30px;"><em>The most up-to-date info I can share is what&#8217;s on our website about Hero development.  <a class="wp-caption" style="color: #222222;" title="Hero Development Site" href="http://opensource.adobe.com/wiki/display/flexsdk/Hero" target="_blank">http://opensource.adobe.com/wiki/display/flexsdk/Hero</a>&#8220;</em></p>
</blockquote>
<p>So there it is&#8230; Glad if this may be of any help to whom are in the development area of flex applications on current SDK release to work on mobile devices.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creasis.com/131/adobes-reply-on-spark-form-components-and-android-keyboard-problem/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Spark Form Components and Android Keyboard Problem</title>
		<link>http://blog.creasis.com/103/spark-form-components-and-android-keyboard-problem/</link>
		<comments>http://blog.creasis.com/103/spark-form-components-and-android-keyboard-problem/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 14:42:47 +0000</pubDate>
		<dc:creator>Mehmet Tekin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[android 2.2]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[Flex Builder 4]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[HTC]]></category>
		<category><![CDATA[MX]]></category>
		<category><![CDATA[Nexus One]]></category>
		<category><![CDATA[Spark]]></category>

		<guid isPermaLink="false">http://blog.creasis.com/?p=103</guid>
		<description><![CDATA[We  have been testing our Flex SDK 4 based projects that are under development on Flash Player for mobile Android operating system. I must say, with Flash Player support, Android OS has filled a huge hole for our increased, yet un-answered expectations of smart-phone experience. As Flash support is in its primitive stages for mobile [...]]]></description>
			<content:encoded><![CDATA[<p>We  have been testing our Flex SDK 4 based projects that are under development on Flash Player for mobile Android operating system. I must say, with Flash Player support, Android OS has filled a huge hole for our increased, yet un-answered expectations of smart-phone experience.</p>
<p>As Flash support is in its primitive stages for mobile devices, we know that Adobe is going to enhance the user experience of both standard and lite version support for mobile devices.</p>
<p>Since we have upgraded our SDK&#8217;s to version 4 of Adobe Flex (Adobe Flash Builder), we have been using Spark components, with a sense of joy, I might add. Spark&#8217;s development is an on-going effort by Adobe. One of the major reasons of its existence is told to be the support for mobile devices with its light-weight nature and natively better look and feel.</p>
<h2>Problem at Hand:</h2>
<p>Our shiny applications, upon focus of related form input components are failing to invoke the native keyboard on HTC brand Google Nexus One phones. But this problem is not limited to this brand.</p>
<p>If you access this page via your Android Browser (w/ Flash Player support, of course), you will see that the input areas do not invoke the Android keyboard. Since the browsers do not have support of opening the keyboard with functional button, your users will not be able to login to or fill out a form on your application. This is unfortunately due to Spark component.</p>
<p><object id="FlashID2" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="220" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="wmode" value="opaque" /><param name="swfversion" value="6.0.65.0" /><param name="expressinstall" value="Scripts/expressInstall.swf" /><param name="src" value="http://blog.creasis.com/wp-content/uploads/2010/09/spark_form_components.swf" /><embed id="FlashID2" type="application/x-shockwave-flash" width="100%" height="220" src="http://blog.creasis.com/wp-content/uploads/2010/09/spark_form_components.swf" expressinstall="Scripts/expressInstall.swf" swfversion="6.0.65.0" wmode="opaque" quality="high"></embed></object></p>
<p><script type="text/javascript">// <![CDATA[
         swfobject.registerObject("FlashID2");
// ]]&gt;</script></p>
<p>The application code of the above example is:</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s:Application xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
			   xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
			   xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot;
			   width=&quot;100%&quot;
			   height=&quot;100%&quot;&gt;
	&lt;fx:Declarations&gt;
		&lt;!-- Place non-visual elements (e.g., services, value objects) here --&gt;
	&lt;/fx:Declarations&gt;
	&lt;s:VGroup id=&quot;myHorizontalGroup&quot;
			  verticalAlign=&quot;middle&quot;
			  horizontalAlign=&quot;center&quot;&gt;

		&lt;mx:Form id=&quot;mxForm&quot;&gt;
			&lt;s:Label text=&quot;Spark Components on MX Form&quot;
					 fontWeight=&quot;bold&quot;/&gt;
			&lt;s:Label text=&quot;Text Input Label:&quot;/&gt;
			&lt;s:TextInput id=&quot;myTextInput&quot;
						 width=&quot;200&quot;/&gt;
			&lt;mx:Spacer height=&quot;2&quot;/&gt;
			&lt;s:Label text=&quot;Text Area Label:&quot;/&gt;
			&lt;s:TextArea id=&quot;myTextArea&quot;
						width=&quot;200&quot;
						heightInLines=&quot;3&quot;/&gt;
			&lt;s:Button id=&quot;myButton&quot;
					  label=&quot;Submit&quot;/&gt;
		&lt;/mx:Form&gt;
	&lt;/s:VGroup&gt;
&lt;/s:Application&gt;
</pre>
<p>The below example is pure of MX components. As you may see, unlike Spark components, MX input components can invoke the native keyboard on Android.</p>
<p><object id="FlashID" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="220" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="wmode" value="opaque" /><param name="swfversion" value="6.0.65.0" /><param name="expressinstall" value="Scripts/expressInstall.swf" /><param name="src" value="http://blog.creasis.com/wp-content/uploads/2010/09/mx_form_components.swf" /><embed id="FlashID" type="application/x-shockwave-flash" width="100%" height="220" src="http://blog.creasis.com/wp-content/uploads/2010/09/mx_form_components.swf" expressinstall="Scripts/expressInstall.swf" swfversion="6.0.65.0" wmode="opaque" quality="high"></embed></object></p>
<p>You may find the code for MX component usage below. The reason I am adding these codes is to show that both of the applications are bare and none of the properties that may effect the experience of the users are implemented. So feel free to experiment on your own.</p>
<pre class="brush: xml;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s:Application xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
			   xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
			   xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot;
			   width=&quot;100%&quot;
			   height=&quot;100%&quot;&gt;
	&lt;fx:Declarations&gt;
		&lt;!-- Place non-visual elements (e.g., services, value objects) here --&gt;
	&lt;/fx:Declarations&gt;
	&lt;s:VGroup id=&quot;myHorizontalGroup&quot;
			  verticalAlign=&quot;middle&quot;
			  horizontalAlign=&quot;center&quot;&gt;
		&lt;mx:Form id=&quot;mxForm&quot;&gt;
			&lt;mx:Label text=&quot;MX Components on MX Form&quot;
					  fontWeight=&quot;bold&quot;/&gt;
			&lt;mx:Label text=&quot;Text Input Label:&quot;/&gt;
			&lt;mx:TextInput id=&quot;myTextInput&quot;
						  width=&quot;200&quot;/&gt;
			&lt;mx:Spacer height=&quot;2&quot;/&gt;
			&lt;mx:Label text=&quot;Text Area Label:&quot;/&gt;
			&lt;mx:TextArea id=&quot;myTextArea&quot;
						 width=&quot;200&quot;
						 height=&quot;40&quot;/&gt;
			&lt;mx:Button id=&quot;myButton&quot;
					   label=&quot;Submit&quot;/&gt;
		&lt;/mx:Form&gt;
	&lt;/s:VGroup&gt;
&lt;/s:Application&gt;
</pre>
<h2>Is there a solution?</h2>
<p>Hopefully yes, but we could not yet figure it out. All I can suggest is that if you plan to span your application use to Android users, you may want to consider sticking to MX components for your text input interactivity that actually requires keyboard inputs. One other solution may be to use virtual keyboards, but I am sure that Adobe is going to come up with a fix sooner or later with their Flex 4 and Spark component enhancements.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creasis.com/103/spark-form-components-and-android-keyboard-problem/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adobe LiveCycle DS</title>
		<link>http://blog.creasis.com/48/adobe-livecycle-ds/</link>
		<comments>http://blog.creasis.com/48/adobe-livecycle-ds/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 08:29:53 +0000</pubDate>
		<dc:creator>Rudi Açıkgöz</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Java EE]]></category>
		<category><![CDATA[Remoting]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[ESB]]></category>
		<category><![CDATA[Flex Builder 4]]></category>
		<category><![CDATA[LiveCycle DS 3.1]]></category>

		<guid isPermaLink="false">http://blog.creasis.com/?p=48</guid>
		<description><![CDATA[There is no argue with the fact that SOA is still the most popular concept at information systems nowadays. Once comparing with other alternatives, I think Adobe&#8217;s LiveCycle Enterprise Suite is richer and more creative. From SOA viewpoint, I tried to explore LiveCycle Data Services (LCDS) product which is a module involved in LiveCycle Enterprise [...]]]></description>
			<content:encoded><![CDATA[<p>There is no argue with the fact that SOA is still the most popular concept at information systems nowadays. Once comparing with other alternatives, I think Adobe&#8217;s LiveCycle Enterprise Suite is richer and more creative. From SOA viewpoint, I tried to explore LiveCycle Data Services (LCDS) product which is a module involved in LiveCycle Enterprise Suite and it can be used as a standalone solution as well. </p>
<p>LCDS is defined as powerful messaging and data management capabilities. LCDS environment is supported by a model-driven development tool. The tool helps the developer can connect to a data source by creating services for entities defined in that data source. In other words LCDS handles operations on defined data sources by itself, the developer only responsible to bind that data services, which are generated automatically, to user interfaces. This capability makes LCDS the solution which is beyond the data management.</p>
<p>From the messaging viewpoint, LCDS is similar to Enterprise Service Bus (ESB). As a SOA basic, ESB handles messaging between services defined in SAO architecture. ESB is critical in SOA by managing proxy and business related services with providing messaging bus between the partners. It means that ESB can implement any logic between the services, but LCDS does not support an logic at messaging layer. The most important concept LDCS brings to messaging approach is that LCDS supports real-time messaging by pushing particular data. In other words, real-time messsaging protocol is supported by LCDS.</p>
<p>For exploring purposes, I installed Adobe LiveCycle Data Services 3.1 and Flash Builder 4 with Data Modeler plug-in. Then I tried <a href="http://www.cflex.net/showFileDetails.cfm?ObjectID=582">a simple example</a> using a public web service named Wheather Forecasting shown at figure below. It demonsrates how an external data source, which is a web service in the example, is called and how such service can be bind to the user interface. The idea behind implementing such an example with LCDS is that I need to be sure that each service should be able to defined at LCDS side. From SOA viewpoint, the services can be discovered easily by different project teams in SOA which is the base for Enterprise Inventory pattern. To achieve this, there should be resources to give chance on that once a new requirement raises then any team member can make a decision about particuler service whether it is required to develop from the scratch or combination of available service can satisfy the requirement.</p>
<div id="attachment_61" class="wp-caption alignnone" style="width: 429px"><img class="size-full wp-image-61 " title="Calling external web service via LCDS" src="http://blog.creasis.com/wp-content/uploads/2010/08/lcds-webservice.png" alt="Calling external web service via LCDS" width="419" height="453" /><p class="wp-caption-text">Calling external web service via LCDS</p></div>
<p>At first I tried to run the example with original code in BlazeDS; there was nothing wrong with the application and it ran properly. It made me thinking of that the web service definition is given at Flex application which is at UI side. Then I tried the same example at LCDS, then the application did not run properly by showing the message &#8216;Security error acessing url&#8217;. Then I realized that service definition should be stored at LCDS which is at middleware side. To overcome the problem, destination definitions should be declared in proxy-config.xml file. the file is located in LCDS_install_root\tomcat\webapps\lcds\WEB-INF\flex directory and the definition I made is given below. Finally, Flex application should use that destination once consuming particular web service, the detail of which also given below.</p>
<pre class="brush: xml; light: true;">
&lt;destination id=&quot;myDest&quot;&gt;
	&lt;properties&gt;
            &lt;url&gt;http://www.webservicex.net/WeatherForecast.asmx&lt;/url&gt;
            &lt;dynamic-url&gt;http://www.webservicex.net/*&lt;/dynamic-url&gt;
        &lt;/properties&gt;
    &lt;/destination&gt;
</pre>
<pre class="brush: as3; light: true;">
&lt;mx:WebService id=&quot;WS&quot; wsdl=&quot;http://www.webservicex.net/WeatherForecast.asmx?WSDL&quot;
				   useProxy=&quot;false&quot; destination=&quot;myDest&quot;
				   fault=&quot;Alert.show(event.fault.faultDetail), 'Error'&quot;
				   result=&quot;onResult(event)&quot; &gt;
                  &lt;mx:operation name=&quot;GetWeatherByZipCode&quot; resultFormat=&quot;e4x&quot; &gt;
			&lt;mx:request&gt;
				&lt;ZipCode&gt;{zipcode.text}&lt;/ZipCode&gt;
			&lt;/mx:request&gt;
		&lt;/mx:operation&gt;
	&lt;/mx:WebService&gt;
</pre>
<p>During the exploration of LCDS, I always thought that nobody can place it in the SOA architecture properly. Despite LCDS is not totally ESB or data management services, it brings fresh ideas to middleware by implementing model-driven approach and real-time messaging. Once combining them with SOA architecture, fully event driven application development will become easy-to-develop.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creasis.com/48/adobe-livecycle-ds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex 4 Spark and MX Font-Face Problem, Not!</title>
		<link>http://blog.creasis.com/83/flex-4-spark-and-mx-font-face-problem-not/</link>
		<comments>http://blog.creasis.com/83/flex-4-spark-and-mx-font-face-problem-not/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 17:08:10 +0000</pubDate>
		<dc:creator>Mehmet Tekin</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[MX]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Spark]]></category>

		<guid isPermaLink="false">http://blog.creasis.com/?p=83</guid>
		<description><![CDATA[With the introduction of all new and nicer Spark components, the developers are now both using Spark and the MX components together. Since Spark lacks the functionality of critical MX components, one of the issues we ran into was using embedded fonts. Below you may find an easy approach, whilst to some this may seem [...]]]></description>
			<content:encoded><![CDATA[<p>With the introduction of all new and nicer Spark components, the developers are now both using Spark and the MX components together.</p>
<p>Since Spark lacks the functionality of critical MX components, one of the issues we ran into was using embedded fonts. Below you may find an easy approach, whilst to some this may seem controversial. But here is our problem and solution:</p>
<p>Using a CSS file, when you define your fonts as below, only the Spark components are able to embed them, but the MX components fail to do so.</p>
<pre class="brush: css;">
/* Your Applications Default CSS file */
@namespace s &quot;library://ns.adobe.com/flex/spark&quot;;
@namespace mx &quot;library://ns.adobe.com/flex/mx&quot;;
@namespace &quot;library://ns.adobe.com/flex/mx&quot;;

@font-face
{
	src: url(&quot;assets/fonts/yourFontName.ttf&quot;); /* font asset location */
	font-family: main;    /* this defines the fontFamily as main for referencing */
	font-style: normal;   /* the rest of the styling */
	font-weight: normal;
}
</pre>
<p>The above is a typical definition for embedding a font using CSS. The problem with the above example is actually what you do not see. By default the font is embedded with the following property:</p>
<pre class="brush: css; light: true;">
embedAsCFF: true;
</pre>
<p>The problem is that the MX components do not like that. At first one may think that two definitions under different font family names can work, but come to find not:</p>
<pre class="brush: css;">
@font-face
{
	src: url(&quot;assets/fonts/yourFontName.ttf&quot;);
	font-family: main;
	font-style: normal;
	font-weight: normal;
}

@font-face
{
	src: url(&quot;assets/fonts/yourFontName.ttf&quot;);
	font-family: mainMX;   /* different naming for the same font. */
	font-style: normal;
	font-weight: normal;
    embedAsCFF: false;      /* required for MX components */
}
</pre>
<p><strong>So here is the solution:</strong><br />
Dublicate your fonts under different name and define them separately for both Spark and MX:</p>
<pre class="brush: css;">
/* Your Applications Default CSS file */
@namespace s &quot;library://ns.adobe.com/flex/spark&quot;;
@namespace mx &quot;library://ns.adobe.com/flex/mx&quot;;
@namespace &quot;library://ns.adobe.com/flex/mx&quot;;

/* For Spark Components */
@font-face
{
	src: url(&quot;assets/fonts/yourFontName.ttf&quot;);
	font-family: main;
	font-style: normal;
	font-weight: normal;
}

/* For MX Components */
@font-face
{
	src: url(&quot;assets/fonts/yourFontName_MX.ttf&quot;);  /* Dublicate of the same font */
	font-family: mainMX;
	font-style: normal;
	font-weight: normal;
	embedAsCFF: false;
}
</pre>
<p>This took some looking into to work around. So I hope it helps&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creasis.com/83/flex-4-spark-and-mx-font-face-problem-not/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenSolaris 10 &amp; VMware tools</title>
		<link>http://blog.creasis.com/36/opensolaris-10-vmware-tools/</link>
		<comments>http://blog.creasis.com/36/opensolaris-10-vmware-tools/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 21:02:45 +0000</pubDate>
		<dc:creator>Mehmet Tekin</dc:creator>
				<category><![CDATA[OS]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[opensolaris]]></category>
		<category><![CDATA[wmware]]></category>

		<guid isPermaLink="false">http://blog.creasis.com/?p=36</guid>
		<description><![CDATA[We have been implementing a lot of virtualization lateley. This is just a quick reference for those who had a little trouble installing VMware Tools for OpenSolaris 10. First of all, you may choose a Solaris 10 x64 template for your OpenSolaris 10 image. After installing the operating system and rebooting it, go to &#8220;Virtual [...]]]></description>
			<content:encoded><![CDATA[<p>We have been implementing a lot of virtualization lateley. This is just a quick reference for those who had a little trouble installing VMware Tools for OpenSolaris 10.</p>
<p>First of all, you may choose a Solaris 10 x64 template for your OpenSolaris 10 image.</p>
<p>After installing the operating system and rebooting it, go to <strong>&#8220;Virtual Machine&#8221;</strong> menu on your VMware Fusion/Worksation and choose <strong>&#8220;Install VMware Tools&#8221;</strong> and copy the tar.gz file on to your Desktop or where ever you may wish, and extract it. Please make sure that you are using VMware Tools for Solaris 10 OS.</p>
<p>Open a terminal window and do a su command and get your root privileges by entering your root password.</p>
<p>If you do not do the following you will fail to complete installing VMware tools with an error:</p>
<pre class="brush: bash; light: true;">
unable to copy the source file
/usr/lib/vmware-tools/configurator/autostart-vmware-user.sh
to the destination file
/usr/dt/config/Xsession.d/9999.autostart-vmware-user.sh.
</pre>
<p>There is an easy but often missed way to fix this. Please do the following on your terminal:</p>
<pre class="brush: bash; light: true;">
pfexec mkdir -p /usr/dt/config/Xsession.d
</pre>
<p>Then proceed installing the VMware Tools as instructed per prompt. Voila!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.creasis.com/36/opensolaris-10-vmware-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

