<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-501148542412643007</id><updated>2012-02-16T05:19:05.462-08:00</updated><title type='text'>ilikeflex</title><subtitle type='html'>A Journey Of A Thousand Miles Began With A Single Step</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ilikeflex.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ilikeflex.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>ilikeflex</name><uri>http://www.blogger.com/profile/05029429020732083824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-501148542412643007.post-4086322281243242330</id><published>2012-01-29T12:13:00.000-08:00</published><updated>2012-01-29T12:29:33.504-08:00</updated><title type='text'>Unix Alias</title><content type='html'>Create Unix Alias to get rid of entering long paths every time.&lt;br /&gt;&lt;br /&gt;Login into su&lt;br /&gt;prompt&gt;cd&lt;br /&gt;prompt&gt;vi .bash_profile&lt;br /&gt;&lt;br /&gt;alias tcb2='cd /local/apps/tomcat/apache-tomcat-7.0.23-2/bin'&lt;br /&gt;alias logs2='cd /local/apps/tomcat/apache-tomcat-7.0.23-2/logs'&lt;br /&gt;alias tclogs2='tail -f /local/apps/tomcat/apache-tomcat-7.0.23-2/logs/catalina.out'&lt;br /&gt;&lt;br /&gt;prompt&gt;. .bash_profile&lt;br /&gt;&lt;br /&gt;Next time, you do not need to enter complete path like cd /local/apps/tomcat/apache-tomcat-7.0.23-2/bin just type "tcb2" and will be in directory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/501148542412643007-4086322281243242330?l=ilikeflex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilikeflex.blogspot.com/feeds/4086322281243242330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ilikeflex.blogspot.com/2012/01/unix-alias.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/4086322281243242330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/4086322281243242330'/><link rel='alternate' type='text/html' href='http://ilikeflex.blogspot.com/2012/01/unix-alias.html' title='Unix Alias'/><author><name>ilikeflex</name><uri>http://www.blogger.com/profile/05029429020732083824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-501148542412643007.post-700888435222513200</id><published>2012-01-08T21:55:00.000-08:00</published><updated>2012-01-08T22:13:29.287-08:00</updated><title type='text'>RAP (Rich Ajax Platform) and JMeter</title><content type='html'>The purpose of this article is to share my experience with JMeter tool when recording the test cases for RAP application using URL Rewriting. This is in continuation with http://wiki.eclipse.org/RAP/LoadTesting&lt;br /&gt;&lt;br /&gt;Env:&lt;br /&gt;Tomcat 7.0.23&lt;br /&gt;Java 1.6.0_06-b02&lt;br /&gt;&lt;br /&gt;RAP(Rich Ajax Platform):&lt;br /&gt;RAP 1.5M4&lt;br /&gt;&lt;br /&gt;File to Deploy:&lt;br /&gt;app.war&lt;br /&gt;&lt;br /&gt;Set Up:&lt;br /&gt;Deploy the war file in Tomcat.It creates folder app(name of the war) inside webapps folder. Inside the plugins, we need to add the org.eclipse.rap.widgetidgenerator plugin.You can do this manully. Open the buldles.info (app\WEB-INF\configuration\org.eclipse.equinox.simpleconfigurator) add the org.eclipse.rap.widgetidgenerator,1.0.0.201112291625,plugins/org.eclipse.rap.widgetidgenerator_1.0.0.201112291625.jar,4,true. Copy the org.eclipse.rap.widgetidgenerator_1.0.0.201112291625.jar in plugins folder. This plugin need to be build from the source code and does not come in the rap tool.It will be good to test if the plugin is in active state when the war is installed using the ss command of the osgi framework.&lt;br /&gt;&lt;br /&gt;In RAP application the session id is passed from server to client in the result of the first request. Session id can be viewed in the result &lt;br /&gt;&lt;br /&gt;Sample Portion of Response Data:&lt;br /&gt;&lt;br /&gt;"target": "w1",&lt;br /&gt;"action": "call",&lt;br /&gt;"method": "init",&lt;br /&gt;"properties": {&lt;br /&gt;"rootId": "w1",&lt;br /&gt;"entrypoint": "sapphire",&lt;br /&gt;"url": "rap;jsessionid=7F829865016AD6D0634595306844108A.sapphire01"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;It can be anywhere in the response from server but it will be having the same format.&lt;br /&gt;&lt;br /&gt;Our purpose is to use the session id and pass it into every request to server. Create a regular expression extractor which will extract the jsession id. See the attached image. This should be attached to the first request to server or HTTP Sampler.Store it in a variable.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-eE_SvokG0vI/TwqB4a9LI4I/AAAAAAAAAAQ/C1hCBN4UZqI/s1600/RegularExpressionExtractor.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://1.bp.blogspot.com/-eE_SvokG0vI/TwqB4a9LI4I/AAAAAAAAAAQ/C1hCBN4UZqI/s320/RegularExpressionExtractor.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5695507485071975298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now we need to pass this session id in each and every request to sever.In the second HTTP Sample add a pre bean shell processor.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-BPzo4arqRNU/TwqCPThm3BI/AAAAAAAAAAc/coJUTbEUkoI/s1600/BeanShellExtractor.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://4.bp.blogspot.com/-BPzo4arqRNU/TwqCPThm3BI/AAAAAAAAAAc/coJUTbEUkoI/s320/BeanShellExtractor.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5695507878214294546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Recording the test case:&lt;br /&gt;Hit the first request on the browser.&lt;br /&gt;Stop to make the below changes.&lt;br /&gt;In Jmeter, If you notice that we have session id in the request. Now we store this in the User Defined Variable. When we further keep recording the test case, session id is replaced by ${snum}&lt;br /&gt;&lt;br /&gt;So the actual request&lt;br /&gt;/sever5/rap;jsessionid=AD08983085AB2DA747EC6B6E158E6EC8?nocache=1326086526260&lt;br /&gt;will be presented as&lt;br /&gt;/server5/rap;jsessionid=${snum}?nocache=1326086526260&lt;br /&gt;&lt;br /&gt;Now when we run testcase, ${snum} will be replaced with actual session id.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-NaeIWBJ24SE/TwqCcrpC_iI/AAAAAAAAAAo/wzmXE-c_ugU/s1600/ChangeSessionID.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://1.bp.blogspot.com/-NaeIWBJ24SE/TwqCcrpC_iI/AAAAAAAAAAo/wzmXE-c_ugU/s320/ChangeSessionID.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5695508108026248738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Our Final Test Case will  look like&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-ZuQ3vSxFjj4/TwqFctacXrI/AAAAAAAAAA0/Uma7PAbMMyg/s1600/FinalTestCase.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://3.bp.blogspot.com/-ZuQ3vSxFjj4/TwqFctacXrI/AAAAAAAAAA0/Uma7PAbMMyg/s320/FinalTestCase.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5695511407036751538" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/501148542412643007-700888435222513200?l=ilikeflex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilikeflex.blogspot.com/feeds/700888435222513200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ilikeflex.blogspot.com/2012/01/rap-rich-ajax-platform-and-jmeter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/700888435222513200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/700888435222513200'/><link rel='alternate' type='text/html' href='http://ilikeflex.blogspot.com/2012/01/rap-rich-ajax-platform-and-jmeter.html' title='RAP (Rich Ajax Platform) and JMeter'/><author><name>ilikeflex</name><uri>http://www.blogger.com/profile/05029429020732083824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-eE_SvokG0vI/TwqB4a9LI4I/AAAAAAAAAAQ/C1hCBN4UZqI/s72-c/RegularExpressionExtractor.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-501148542412643007.post-4289951106836405159</id><published>2010-07-22T06:50:00.001-07:00</published><updated>2012-01-28T20:46:02.371-08:00</updated><title type='text'>Code for PopUp</title><content type='html'>&lt;blockquote&gt;&lt;br /&gt;package com&lt;br /&gt;{&lt;br /&gt; import com.adobe.cairngorm.control.CairngormEventDispatcher;&lt;br /&gt; import com.vzw.mpi.rss.events.DataReceiveEvent;&lt;br /&gt; import com.vzw.mpi.rss.model.RdsModelLocator;&lt;br /&gt; import com.vzw.mpi.rss.serverEvents.RdsEvent;&lt;br /&gt; import com.vzw.mpi.rss.utils.RDSConstants;&lt;br /&gt; import com.vzw.mpi.rss.utils.RssConstants;&lt;br /&gt; &lt;br /&gt; import customComponents.ImageFocus;&lt;br /&gt; import customComponents.datagrid.CheckBoxDataGrid;&lt;br /&gt; import customComponents.popups.SingleSelectCustomPopup;&lt;br /&gt; &lt;br /&gt; import flash.events.Event;&lt;br /&gt; import flash.events.FocusEvent;&lt;br /&gt; &lt;br /&gt; import mx.controls.TextInput;&lt;br /&gt; import mx.controls.dataGridClasses.DataGridListData;&lt;br /&gt; import mx.controls.listClasses.BaseListData;&lt;br /&gt; import mx.controls.listClasses.IDropInListItemRenderer;&lt;br /&gt; import mx.controls.listClasses.IListItemRenderer;&lt;br /&gt; import mx.core.UIComponent;&lt;br /&gt; import mx.managers.IFocusManagerComponent;&lt;br /&gt; import mx.managers.PopUpManager;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; public class SpyGlassFieldEditor extends UIComponent implements IListItemRenderer, IDropInListItemRenderer, IFocusManagerComponent&lt;br /&gt; {&lt;br /&gt;&lt;br /&gt;  public function SpyGlassFieldEditor()&lt;br /&gt;  {&lt;br /&gt;   super();&lt;br /&gt;   addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private var txtInputByUser:TextInput;&lt;br /&gt;  private var spyGlassImage:ImageFocus;&lt;br /&gt;  private var maxInputCharacters:int=20;&lt;br /&gt;&lt;br /&gt;  private var _data:Object;&lt;br /&gt;&lt;br /&gt;  public function get data():Object&lt;br /&gt;  {&lt;br /&gt;   return _data;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public function set data(value:Object):void&lt;br /&gt;  {&lt;br /&gt;   _data=value;&lt;br /&gt;   invalidateProperties();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  private var _listData:BaseListData;&lt;br /&gt;  private var _dataGrid:CheckBoxDataGrid;&lt;br /&gt;  private var _dataField:String;&lt;br /&gt;  private var win:SingleSelectCustomPopup;&lt;br /&gt;&lt;br /&gt;  [Bindable]&lt;br /&gt;  protected var rdsModel:RdsModelLocator=RdsModelLocator.getInstance();&lt;br /&gt;&lt;br /&gt;  public function get listData():BaseListData&lt;br /&gt;  {&lt;br /&gt;   return _listData;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public function set listData(value:BaseListData):void&lt;br /&gt;  {&lt;br /&gt;   _listData=value;&lt;br /&gt;   _dataGrid=value.owner as CheckBoxDataGrid;&lt;br /&gt;   _dataField=(value as DataGridListData).dataField;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  override public function setFocus():void&lt;br /&gt;  {&lt;br /&gt;   if (dgOwner.shiftKey)&lt;br /&gt;   {&lt;br /&gt;    spyGlassImage.setFocus(); &lt;br /&gt;   }&lt;br /&gt;   &lt;br /&gt;   else&lt;br /&gt;   txtInputByUser.setFocus();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private function onTextChange(event:Event):void&lt;br /&gt;  {&lt;br /&gt;   var textInput:TextInput=event.currentTarget as TextInput;&lt;br /&gt;&lt;br /&gt;   if(_dataField)&lt;br /&gt;   {&lt;br /&gt;    var properties:Array=_dataField.split(".");&lt;br /&gt;   &lt;br /&gt;    if (properties.length &gt;= 2)&lt;br /&gt;    {&lt;br /&gt;     var object:Object=data[properties[0]];&lt;br /&gt;     object[properties[1]]=textInput.text;&lt;br /&gt;    }&lt;br /&gt;    else&lt;br /&gt;    {&lt;br /&gt;     data[_dataField]=textInput.text;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    _dataGrid.dataProvider.itemUpdated(data);&lt;br /&gt;    invalidateProperties();&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  override protected function createChildren():void&lt;br /&gt;  {&lt;br /&gt;   super.createChildren();&lt;br /&gt;&lt;br /&gt;   txtInputByUser=new TextInput();&lt;br /&gt;   txtInputByUser.maxChars=maxCharacters;&lt;br /&gt;   txtInputByUser.addEventListener("change", onTextChange, false, 0, true);&lt;br /&gt;   addChild(txtInputByUser);&lt;br /&gt;   spyGlassImage=new ImageFocus();&lt;br /&gt;   spyGlassImage.source="assets/images/spyglass.gif";&lt;br /&gt;   spyGlassImage.buttonMode = true;&lt;br /&gt;   spyGlassImage.addEventListener("click", onImageClick, false, 0, true);&lt;br /&gt;   addChild(spyGlassImage);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  protected function onImageClick(evt:Event):void&lt;br /&gt;  {&lt;br /&gt;   &lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public function get editValue():String&lt;br /&gt;  {&lt;br /&gt;   return txtInputByUser.text;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private var dgOwner:CheckBoxDataGrid;&lt;br /&gt;&lt;br /&gt;  override protected function commitProperties():void&lt;br /&gt;  {&lt;br /&gt;   dgOwner=owner as CheckBoxDataGrid;&lt;br /&gt;   super.commitProperties();&lt;br /&gt;&lt;br /&gt;   if (_dataField)&lt;br /&gt;   {&lt;br /&gt;    var properties:Array=_dataField.split(".");&lt;br /&gt;    if (properties.length &gt;= 2)&lt;br /&gt;    {&lt;br /&gt;     var object:Object=data[properties[0]];&lt;br /&gt;     txtInputByUser.text=object[properties[1]];&lt;br /&gt;    }&lt;br /&gt;    else&lt;br /&gt;    {&lt;br /&gt;     txtInputByUser.text=data[_dataField];&lt;br /&gt;    }&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;  public function onPopUpClose():void&lt;br /&gt;  {&lt;br /&gt;   var properties:Array=_dataField.split(".");&lt;br /&gt;   if (properties.length &gt;= 2)&lt;br /&gt;   {&lt;br /&gt;    var object:Object=data[properties[0]];&lt;br /&gt;    object[properties[1]]=win.idSelected.text;&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;   {&lt;br /&gt;    data[_dataField]=win.idSelected.text;&lt;br /&gt;   }&lt;br /&gt;   _dataGrid.dataProvider.itemUpdated(data);&lt;br /&gt;   invalidateProperties();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  override protected function updateDisplayList(w:Number, h:Number):void&lt;br /&gt;  {&lt;br /&gt;   super.updateDisplayList(w, h);&lt;br /&gt;   txtInputByUser.move(0, 0);&lt;br /&gt;   txtInputByUser.setActualSize(w - 25, h);&lt;br /&gt;   spyGlassImage.move(w - 11, 0);&lt;br /&gt;   spyGlassImage.setActualSize(11, 11);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private function keyFocusChangeHandler(event:FocusEvent):void&lt;br /&gt;  {&lt;br /&gt;   //trace("Focus Manager " + focusManager.focusPane);&lt;br /&gt;   if (event.shiftKey)&lt;br /&gt;   {&lt;br /&gt;    //trace("Inside Shift Key");&lt;br /&gt;    if (spyGlassImage.contains(getFocus()))&lt;br /&gt;    {&lt;br /&gt;     event.preventDefault();&lt;br /&gt;     txtInputByUser.setFocus();&lt;br /&gt;    }&lt;br /&gt;   }&lt;br /&gt;   else&lt;br /&gt;   {&lt;br /&gt;    if (txtInputByUser.contains(getFocus()))&lt;br /&gt;    {&lt;br /&gt;     event.preventDefault();&lt;br /&gt;     spyGlassImage.setFocus();&lt;br /&gt;    }&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public function set maxCharacters(max:int):void&lt;br /&gt;  {&lt;br /&gt;   maxInputCharacters=max;&lt;br /&gt;   if (txtInputByUser)&lt;br /&gt;    txtInputByUser.maxChars=max;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public function get maxCharacters():int&lt;br /&gt;  {&lt;br /&gt;   return maxInputCharacters;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/501148542412643007-4289951106836405159?l=ilikeflex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilikeflex.blogspot.com/feeds/4289951106836405159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ilikeflex.blogspot.com/2010/07/code-for-popup.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/4289951106836405159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/4289951106836405159'/><link rel='alternate' type='text/html' href='http://ilikeflex.blogspot.com/2010/07/code-for-popup.html' title='Code for PopUp'/><author><name>ilikeflex</name><uri>http://www.blogger.com/profile/05029429020732083824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-501148542412643007.post-5521605062552043740</id><published>2009-05-22T06:12:00.001-07:00</published><updated>2009-05-22T06:12:50.071-07:00</updated><title type='text'>Event Demo</title><content type='html'>http://learn.adobe.com/wiki/display/Flex/Event+Demo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/501148542412643007-5521605062552043740?l=ilikeflex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilikeflex.blogspot.com/feeds/5521605062552043740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ilikeflex.blogspot.com/2009/05/event-demo.html#comment-form' title='28 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/5521605062552043740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/5521605062552043740'/><link rel='alternate' type='text/html' href='http://ilikeflex.blogspot.com/2009/05/event-demo.html' title='Event Demo'/><author><name>ilikeflex</name><uri>http://www.blogger.com/profile/05029429020732083824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>28</thr:total></entry><entry><id>tag:blogger.com,1999:blog-501148542412643007.post-7246388574461963341</id><published>2009-01-30T09:03:00.000-08:00</published><updated>2009-01-30T09:09:32.362-08:00</updated><title type='text'>Logging</title><content type='html'>&lt;![CDATA[&lt;br /&gt;&lt;mx:Application&lt;br /&gt;    xmlns:mx="http://www.adobe.com/2006/mxml"&lt;br /&gt;    layout="absolute"&lt;br /&gt;    initialize="init()"&gt;&lt;br /&gt;    &lt;mx:Script&gt;&lt;br /&gt;        &lt;![CDATA[&lt;br /&gt;        	import mx.logging.LogEventLevel;&lt;br /&gt;        	import mx.logging.targets.TraceTarget;&lt;br /&gt;            import mx.logging.ILogger;&lt;br /&gt;            import mx.logging.Log;&lt;br /&gt;            import mx.logging.LogLogger;&lt;br /&gt;            &lt;br /&gt;            /*&lt;br /&gt;            * This is a sample application that uses a simple logger. There are 4 simple&lt;br /&gt;            * steps to using it:&lt;br /&gt;            * 1. Get an Instance of ILogger, with the appropriate category&lt;br /&gt;            *   (Done in each class)&lt;br /&gt;            *&lt;br /&gt;            * 2. Define a Target and set it's properties &lt;br /&gt;            *   (Done only once when initializing the logging API)&lt;br /&gt;            *&lt;br /&gt;            * 3. Add the target to Logging runtime&lt;br /&gt;            *   (Done only once when initializing the logging API)&lt;br /&gt;            *&lt;br /&gt;            * 4. Use the instance of ILogger to log messages&lt;br /&gt;            */&lt;br /&gt;            &lt;br /&gt;            // 1. Get an Instance of ILogger, with the appropriate category&lt;br /&gt;            private var _log:ILogger = Log.getLogger("mx.com.yahoo.com");&lt;br /&gt;            &lt;br /&gt;            // Initialize the remote logger&lt;br /&gt;            // import to do this on the application's initialize callback if you want to log &lt;br /&gt;            // the construction of your application's child component's &lt;br /&gt;            private function init():void {&lt;br /&gt;               // 2. Define a Target and set it's properties&lt;br /&gt;               var target:TraceTarget = new TraceTarget();&lt;br /&gt;               target.includeCategory=true;&lt;br /&gt;               target.includeDate=true;&lt;br /&gt;               target.includeLevel=true;&lt;br /&gt;               target.includeTime=true;&lt;br /&gt;               target.level=LogEventLevel.INFO;&lt;br /&gt;               &lt;br /&gt;               // 3. Add the target to Logging runtime&lt;br /&gt;               Log.addTarget(target);&lt;br /&gt;               trace("Hello World");&lt;br /&gt;               &lt;br /&gt;            }&lt;br /&gt;            //4. Use the instance of ILogger to log messages&lt;br /&gt;            private function sendDebugMessage():void {&lt;br /&gt;                _log.debug("This is a test debug level log message");&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            private function sendInfoMessage():void {&lt;br /&gt;                _log.info("This is a test info level log message");&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            private function sendWarnMessage():void {&lt;br /&gt;                _log.warn("This is a test warn level log message");&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            private function sendErrorMessage():void {&lt;br /&gt;                _log.error("This is a  test error level log message");&lt;br /&gt;            }&lt;br /&gt;        ]]&gt;&lt;br /&gt;    &lt;/mx:Script&gt;&lt;br /&gt;    &lt;/mx:Application&gt;&lt;br /&gt;    ]]&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/501148542412643007-7246388574461963341?l=ilikeflex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilikeflex.blogspot.com/feeds/7246388574461963341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ilikeflex.blogspot.com/2009/01/logging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/7246388574461963341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/7246388574461963341'/><link rel='alternate' type='text/html' href='http://ilikeflex.blogspot.com/2009/01/logging.html' title='Logging'/><author><name>ilikeflex</name><uri>http://www.blogger.com/profile/05029429020732083824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-501148542412643007.post-564462033039349195</id><published>2009-01-30T07:27:00.000-08:00</published><updated>2009-01-30T08:11:44.386-08:00</updated><title type='text'>CorssDomain in Flash Player 10 and 9</title><content type='html'>The cross domain works differently in flash player 10 and 9.&lt;br /&gt;&lt;br /&gt;Sceanrio:&lt;br /&gt;A swf file at location http://url2/Sow.swf make a request to the http://url1:9085/SOW_DSVServices/. As both the files are in different domain, crossdomain.xml file is required.&lt;br /&gt;&lt;br /&gt;Flash Player 10.&lt;br /&gt;In flash player 10, crossdomain is required at two location.&lt;br /&gt;1.&lt;br /&gt;http://url1:9085/SOW_DSVServices/crossdomain.xml&lt;br /&gt;&lt;pre&gt;&amp;lt;?xml version="1.0"?&gt;&lt;br /&gt;&amp;lt;!DOCTYPE cross-domain-policy&lt;br /&gt;  SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"&gt;&lt;br /&gt;&amp;lt;cross-domain-policy&gt;&lt;br /&gt;  &amp;lt;allow-access-from domain="*" /&gt;&lt;br /&gt;&amp;lt;/cross-domain-policy&gt;&lt;/pre&gt;2.&lt;br /&gt;http://url1:9085/crossdomain.xml&lt;pre&gt;&amp;lt;?xml version="1.0"?&gt;&lt;br /&gt;&amp;lt;!DOCTYPE cross-domain-policy&lt;br /&gt;  SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"&gt;&lt;br /&gt;&amp;lt;cross-domain-policy&gt;&lt;br /&gt;  &amp;lt;site-control permitted-cross-domain-policies="all"/&gt;&lt;br /&gt;&amp;lt;/cross-domain-policy&gt;&lt;/pre&gt;&lt;br /&gt;3.&lt;br /&gt;In swf file code you have to loadPolicyFile&lt;br /&gt;Security.loadPolicyFile("http://url1:9085/SOW_DSVServices/crossdomain.xml");&lt;br /&gt;&lt;br /&gt;While in the case of Flash Player 9, crossdomain.xml file is required at only one location&lt;br /&gt;1.&lt;br /&gt;http://url1:9085/SOW_DSVServices/crossdomain.xml&lt;br /&gt;&lt;pre&gt;&amp;lt;?xml version="1.0"?&gt;&lt;br /&gt;&amp;lt;!DOCTYPE cross-domain-policy&lt;br /&gt;  SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"&gt;&lt;br /&gt;&amp;lt;cross-domain-policy&gt;&lt;br /&gt;  &amp;lt;allow-access-from domain="*" /&gt;&lt;br /&gt;&amp;lt;/cross-domain-policy&gt;&lt;/pre&gt;&lt;br /&gt;2.&lt;br /&gt;In swf file code you have to loadPolicyFile&lt;br /&gt;Security.loadPolicyFile("http://url1:9085/SOW_DSVServices/crossdomain.xml");&lt;br /&gt;3.&lt;br /&gt;CrossDomain.xml file is not required at location&lt;br /&gt;http://url1:9085/crossdomain.xml&lt;br /&gt;&lt;br /&gt;This is due to the more security enchancement in flash player 10.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/501148542412643007-564462033039349195?l=ilikeflex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilikeflex.blogspot.com/feeds/564462033039349195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ilikeflex.blogspot.com/2009/01/corssdomain-in-flash-player-10-and-9.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/564462033039349195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/564462033039349195'/><link rel='alternate' type='text/html' href='http://ilikeflex.blogspot.com/2009/01/corssdomain-in-flash-player-10-and-9.html' title='CorssDomain in Flash Player 10 and 9'/><author><name>ilikeflex</name><uri>http://www.blogger.com/profile/05029429020732083824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-501148542412643007.post-704741456968548733</id><published>2009-01-26T06:57:00.000-08:00</published><updated>2009-01-26T07:17:06.259-08:00</updated><title type='text'>Force Browser to get new version of cached swf file</title><content type='html'>How to make the request to server &lt;font color="red"&gt;only&lt;/font&gt; if new version of swf file?&lt;br /&gt;&lt;br /&gt;It is very common opportunity, that whenever any new changes are made to the swf file it does not load into the browser as swf is already in browser &lt;br /&gt;cache. At the sametime, you do not want to make the request every time to the server when swf file is accessed. You want to make the request to server &lt;font color="red"&gt;only&lt;/font&gt; if new version of file is on server. To get rid of the issue, follow the steps.&lt;br /&gt;&lt;br /&gt;In the file AC_OETags.js, inside function AC_GetArgs&lt;br /&gt;&lt;br /&gt;1.&lt;br /&gt;modify the statement : args[i+1] = AC_AddExtension(args[i+1], ext);&lt;br /&gt;to                   : args[i+1] = AC_AddExtension(args[i+1], ext+"?v="+appVersion);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.&lt;br /&gt;add case statement&lt;br /&gt;&lt;br /&gt;case "appversion":&lt;br /&gt;       appVersion = args[i+1];&lt;br /&gt;       break;&lt;br /&gt;       &lt;br /&gt;3.add global variable in the AC_OETags.js&lt;br /&gt;//Application Version&lt;br /&gt;var appVersion = '1';&lt;br /&gt;&lt;br /&gt;Now changes in the .html file where flex swf is embedded&lt;br /&gt;4. Modify the function in the &lt;br /&gt;&lt;br /&gt;AC_FL_RunContent(&lt;br /&gt;  "appversion", applicationVersion,&lt;br /&gt;  "src", "Sow",&lt;br /&gt;  "width", "100%",&lt;br /&gt;  "height", "100%",&lt;br /&gt;  "align", "middle",&lt;br /&gt;  "id", "Sow",&lt;br /&gt;  "quality", "high",&lt;br /&gt;  "bgcolor", "#869ca7",&lt;br /&gt;  "name", "Sow",&lt;br /&gt;  "allowScriptAccess","sameDomain",&lt;br /&gt;  "type", "application/x-shockwave-flash",&lt;br /&gt;  "pluginspage", "http://www.adobe.com/go/getflashplayer"&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. Declare the&lt;br /&gt;//Application Version  &lt;br /&gt;var applicationVersion = &lt;this number can be used to change the version if the client &gt;&lt;br /&gt;&lt;br /&gt;Conclusion:&lt;br /&gt;Every time a new version of swf comes , change the "applicationVersion". In the below request there will always be new version value which will force browser to make request to the webserver&lt;br /&gt;If you see the request it will be &lt;br /&gt;http://&lt;url&gt;/SOW/Sow.swf?v=2.0.0&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/501148542412643007-704741456968548733?l=ilikeflex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilikeflex.blogspot.com/feeds/704741456968548733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ilikeflex.blogspot.com/2009/01/force-browser-to-get-new-version-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/704741456968548733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/704741456968548733'/><link rel='alternate' type='text/html' href='http://ilikeflex.blogspot.com/2009/01/force-browser-to-get-new-version-of.html' title='Force Browser to get new version of cached swf file'/><author><name>ilikeflex</name><uri>http://www.blogger.com/profile/05029429020732083824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-501148542412643007.post-496579466301629321</id><published>2009-01-24T18:01:00.000-08:00</published><updated>2009-01-26T17:55:09.990-08:00</updated><title type='text'>Links</title><content type='html'>&lt;a href="http://tech.groups.yahoo.com/group/flexcoders/"&gt;Flex Coders yahoo group&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://commons.wikimedia.org/wiki/Crystal_Clear"&gt;Icons&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://demo.quietlyscheming.com/ChartSampler/app.html"&gt;Charts Sample&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://examples.adobe.com/flex3/consulting/styleexplorer/Flex3StyleExplorer.html"&gt;Flex Styles Explorer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ryanswanson.com/regexp/#start"&gt;Flex Regular Expression Explorer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.diaztorres.com/2007/06/customeasingfunctionexplorer/customeasingexplorer.html#app=91e1&amp;amp;6eb1-selectedIndex=0"&gt;Easing Function Calculator&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://flex.sys-con.com/category/75/"&gt;Flex Developer General&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://scalenine.com/"&gt;Styles Website&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tips for Style Manager&lt;br /&gt;&lt;br /&gt;In the style sheet(.css file) declare&lt;br /&gt;.icons&lt;br /&gt;{&lt;br /&gt; add: Embed('images/add.png')&lt;br /&gt; mul: Embed('images/mul.png')&lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;&lt;mx:Buton &lt;br /&gt;  icon="{StyleManager.getStyleDeclarations('.icons').getStyle('add')}"&lt;br /&gt;  label="Customize" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/501148542412643007-496579466301629321?l=ilikeflex.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilikeflex.blogspot.com/feeds/496579466301629321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://ilikeflex.blogspot.com/2009/01/icons-httpcommons.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/496579466301629321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/501148542412643007/posts/default/496579466301629321'/><link rel='alternate' type='text/html' href='http://ilikeflex.blogspot.com/2009/01/icons-httpcommons.html' title='Links'/><author><name>ilikeflex</name><uri>http://www.blogger.com/profile/05029429020732083824</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
