Thanks for the explanation Alex, much more clear now :)

El vie., 5 oct. 2018 a las 0:32, Alex Harui (<aha...@adobe.com.invalid>)
escribió:

> It does not work yet.  That's what I'm working on now.
>
> Most of the simpler, fundamental UI widgets have lots of flash
> dependencies so it was better to produce a new platform-independent
> implementation in Basic and re-use those beads in the migration set.  As we
> find out what APIs folks need that Basic doesn't have, we will be busy
> creating new implementation code in Basic and using it in emulations.  The
> emulations of these components copy in as little code from Flex as possible
> to avoid bringing in Flash-dependent code, then we fill in the
> implementations as needed.
>
> But some large chunks of code, like container layout actually had
> relatively few Flash dependencies so it and aren't very browser dependent
> either.  Container layout does not use CSS since percentWidth/Height in
> Flex did not conform to CSS width %.  So I was able to copy in lots of code
> from Flex, change a few places and get it to run in I think fewer days than
> starting from as little code as possible and working upward.
>
> My bet is that the same is true for RemoteObject.  In copying the code and
> making the required changes, I think it will really boil down to an
> emulation of NetConnection which will call into the existing Royale AMF
> code.  And if I'm right, lots of other RemoteObject features might just
> start to work.  Consumer, Producer, ChannelSets, Operations, AsyncToken and
> more were all copied over and now compile and don't really depend on Flash,
> just Result and Fault events from NetConnection.
>
> I think the same is true for ResourceManager, although I need the compiler
> to handle bundles in some way for JS.
>
> And I think the same is true for Charts.  There are Basic Charts, but not
> as many as in Flex and instead of working from little code upward for
> Charts, I want to try copying all of Flex Charts.  I think Charts will boil
> down to drawing on Graphics.
>
> Hope that makes it more clear,
> -Alex
>
> On 10/4/18, 3:19 PM, "Carlos Rovira" <carlosrov...@apache.org> wrote:
>
>     Hi Alex,
>
>     full compile of this classes means as well that works? This kind of
> code
>     since is about 80% not flash dependent, could be working? Just curious
>
>     thanks
>
>     Carlos
>
>
>
>     El jue., 4 oct. 2018 a las 20:51, <aha...@apache.org> escribió:
>
>     > This is an automated email from the ASF dual-hosted git repository.
>     >
>     > aharui pushed a commit to branch develop
>     > in repository
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitbox.apache.org%2Frepos%2Fasf%2Froyale-asjs.git&amp;data=02%7C01%7Caharui%40adobe.com%7Cf808264cf16a47daae8708d62a476d95%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636742883608520259&amp;sdata=sHQ3FYHCJbXwLPCk6nPg3uq4HfYYyVBV89a2CRREMoE%3D&amp;reserved=0
>     >
>     >
>     > The following commit(s) were added to refs/heads/develop by this
> push:
>     >      new 16e9336  clean compile of 'full' Flex mx:RemoteObject
>     > 16e9336 is described below
>     >
>     > commit 16e9336a55cfaca4c042a9e33949d1eef32b309b
>     > Author: Alex Harui <aha...@apache.org>
>     > AuthorDate: Thu Oct 4 11:51:17 2018 -0700
>     >
>     >     clean compile of 'full' Flex mx:RemoteObject
>     > ---
>     >  .../src/main/resources/mx-royale-manifest.xml      |    2 +
>     >  .../MXRoyale/src/main/royale/MXRoyaleClasses.as    |    1 -
>     >  .../LogEventLevel.as => core/IMXMLObject.as}       |   34 +-
>     >  .../IllegalOperationError.as}                      |   68 +-
>     >  .../events/{IOErrorEvent.as => AsyncErrorEvent.as} |   12 +-
>     >  .../mx/events/{IOErrorEvent.as => ErrorEvent.as}   |   16 +-
>     >  .../src/main/royale/mx/events/IOErrorEvent.as      |    2 +-
>     >  .../events/{IOErrorEvent.as => NetStatusEvent.as}  |   14 +-
>     >  .../main/royale/mx/events/SecurityErrorEvent.as    |    2 +-
>     >  .../MXRoyale/src/main/royale/mx/logging/ILogger.as |  303 +-
>     >  .../src/main/royale/mx/logging/ILoggingTarget.as   |  166 +
>     >  .../MXRoyale/src/main/royale/mx/logging/Log.as     |   96 +-
>     >  .../src/main/royale/mx/logging/LogEvent.as         |  230 ++
>     >  .../src/main/royale/mx/logging/LogEventLevel.as    |   64 +-
>     >  .../src/main/royale/mx/logging/LogLogger.as        |  258 ++
>     >  .../InvalidCategoryError.as}                       |   58 +-
>     >  .../main/royale/mx/messaging/AbstractConsumer.as   |  997 +++++
>     >  .../main/royale/mx/messaging/AbstractProducer.as   |  760 ++++
>     >  .../src/main/royale/mx/messaging/Channel.as        | 1743 ++++++++
>     >  .../src/main/royale/mx/messaging/ChannelSet.as     | 4312
>     > ++++++++++----------
>     >  .../src/main/royale/mx/messaging/Consumer.as       |  273 ++
>     >  .../mx/messaging/ConsumerMessageDispatcher.as      |  326 ++
>     >  .../src/main/royale/mx/messaging/MessageAgent.as   | 1391 +++++++
>     >  .../main/royale/mx/messaging/MessageResponder.as   |  386 ++
>     >  .../src/main/royale/mx/messaging/Producer.as       |  214 +
>     >  .../src/main/royale/mx/messaging/RoyaleClient.as   |  167 +
>     >  .../royale/mx/messaging/channels/AMFChannel.as     |  123 +-
>     >  .../mx/messaging/channels/NetConnectionChannel.as  |  764 ++++
>     >  .../royale/mx/messaging/channels/PollingChannel.as |  991 +++++
>     >  .../mx/messaging/channels/SecureAMFChannel.as      |   80 +
>     >  .../main/royale/mx/messaging/config/ConfigMap.as   |  339 ++
>     >  .../royale/mx/messaging/config/LoaderConfig.as     |  174 +
>     >  .../royale/mx/messaging/config/ServerConfig.as     |  768 ++++
>     >  .../errors/ArgumentError.as}                       |   57 +-
>     >  .../errors/ChannelError.as}                        |   32 +-
>     >  .../errors/InvalidChannelError.as}                 |   45 +-
>     >  .../mx/messaging/errors/InvalidDestinationError.as |   68 +
>     >  .../errors/MessagingError.as}                      |   57 +-
>     >  .../errors/NoChannelAvailableError.as}             |   42 +-
>     >  .../royale/mx/messaging/events/ChannelEvent.as     |  325 ++
>     >  .../mx/messaging/events/ChannelFaultEvent.as       |  328 ++
>     >  .../royale/mx/messaging/events/MessageAckEvent.as  |  238 ++
>     >  .../royale/mx/messaging/events/MessageEvent.as     |  255 ++
>     >  .../mx/messaging/events/MessageFaultEvent.as       |  309 ++
>     >  .../mx/messaging/messages/AbstractMessage.as       |  757 ++++
>     >  .../mx/messaging/messages/AcknowledgeMessage.as    |  139 +
>     >  .../mx/messaging/messages/AcknowledgeMessageExt.as |   74 +
>     >  .../royale/mx/messaging/messages/AsyncMessage.as   |  254 ++
>     >  .../mx/messaging/messages/AsyncMessageExt.as       |   79 +
>     >  .../royale/mx/messaging/messages/CommandMessage.as |  567 +++
>     >  .../mx/messaging/messages/CommandMessageExt.as     |   79 +
>     >  .../royale/mx/messaging/messages/ErrorMessage.as   |  173 +
>     >  .../messages/ISmallMessage.as}                     |   43 +-
>     >  .../messaging/messages/MessagePerformanceInfo.as   |  282 ++
>     >  .../messaging/messages/MessagePerformanceUtils.as  |  553 +++
>     >  .../mx/messaging/messages/RemotingMessage.as       |   95 +
>     >  .../src/main/royale/mx/net/NetConnection.as        |  130 +
>     >  .../LogEventLevel.as => net/ObjectEncoding.as}     |   57 +-
>     >  .../{logging/LogEventLevel.as => net/Responder.as} |   51 +-
>     >  .../src/main/royale/mx/netmon/NetworkMonitor.as    |  275 ++
>     >  .../src/main/royale/mx/rpc/AbstractInvoker.as      |  540 +++
>     >  .../src/main/royale/mx/rpc/AbstractOperation.as    |  278 ++
>     >  .../src/main/royale/mx/rpc/AbstractService.as      |  706 ++++
>     >  .../MXRoyale/src/main/royale/mx/rpc/ActiveCalls.as |   95 +
>     >  .../src/main/royale/mx/rpc/AsyncDispatcher.as      |   71 +
>     >  .../src/main/royale/mx/rpc/AsyncRequest.as         |  181 +
>     >  .../MXRoyale/src/main/royale/mx/rpc/Fault.as       |   28 +-
>     >  .../LogEventLevel.as => rpc/IResponder.as}         |   50 +-
>     >  .../MXRoyale/src/main/royale/mx/rpc/Responder.as   |  181 +-
>     >  .../events/AbstractEvent.as}                       |   63 +-
>     >  .../src/main/royale/mx/rpc/events/FaultEvent.as    |  549 ++-
>     >  .../src/main/royale/mx/rpc/events/InvokeEvent.as   |   27 +-
>     >  .../src/main/royale/mx/rpc/events/ResultEvent.as   |  512 ++-
>     >  .../src/main/royale/mx/rpc/mxml/Concurrency.as     |   71 +
>     >  .../src/main/royale/mx/rpc/mxml/IMXMLSupport.as    |   83 +
>     >  .../src/main/royale/mx/rpc/remoting/Operation.as   |  345 ++
>     >  .../main/royale/mx/rpc/remoting/RemoteObject.as    |  692 ++--
>     >  .../main/royale/mx/rpc/remoting/mxml/Operation.as  |   95 +
>     >  .../royale/mx/rpc/remoting/mxml/RemoteObject.as    |  424 +-
>     >  .../src/main/royale/mx/utils/Base64Encoder.as      |    7 +-
>     >  .../src/main/royale/mx/utils/RPCObjectUtil.as      |  790 ++++
>     >  .../src/main/royale/mx/utils/RPCStringUtil.as      |  152 +
>     >  .../src/main/royale/mx/utils/RPCUIDUtil.as         |  131 +
>     >  .../MXRoyale/src/main/royale/mx/utils/URLUtil.as   | 1544 +++----
>     >  84 files changed, 23661 insertions(+), 4452 deletions(-)
>     >
>     > diff --git
>     >
> a/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
>     >
> b/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
>     > index 8ee5b7e..c90ce35 100644
>     > ---
>     >
> a/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
>     > +++
>     >
> b/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
>     > @@ -140,8 +140,10 @@
>     >         <component id="AdvancedDataGridItemRenderer"
>     >
> class="mx.controls.advancedDataGridClasses.AdvancedDataGridItemRenderer" />
>     >         <component id="LineSeries"
> class="mx.charts.series.LineSeries" />
>     >         <component id="Tree" class="mx.controls.Tree"/>
>     > +
>     >         <component id="AMFChannel"
>     > class="mx.messaging.channels.AMFChannel" />
>     >         <component id="ChannelSet" class="mx.messaging.ChannelSet" />
>     > +
>     >         <component id="ListCollectionView"
>     > class="mx.collections.ListCollectionView"/>
>     >         <component id="ArrayCollection"
>     > class="mx.collections.ArrayCollection"/>
>     >         <component id="Alert" class="mx.controls.Alert" />
>     > diff --git
>     > a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
>     > b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
>     > index a4ea11c..e5acdb1 100644
>     > --- a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
>     > +++ b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
>     > @@ -67,7 +67,6 @@ internal class MXRoyaleClasses
>     >         import mx.core.ClassFactory; ClassFactory;
>     >         import mx.effects.Tween; Tween;
>     >         import mx.system.ApplicationDomain; ApplicationDomain;
>     > -       import mx.rpc.remoting.RemoteObject;
> mx.rpc.remoting.RemoteObject;
>     >         import mx.rpc.http.HTTPService; mx.rpc.http.HTTPService;
>     >         import mx.controls.treeClasses.ITreeDataDescriptor;
>     > ITreeDataDescriptor;
>     >         import mx.controls.treeClasses.TreeListData; TreeListData;
>     > diff --git
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/logging/LogEventLevel.as
>     > b/frameworks/projects/MXRoyale/src/main/royale/mx/core/IMXMLObject.as
>     > similarity index 62%
>     > copy from
>     >
> frameworks/projects/MXRoyale/src/main/royale/mx/logging/LogEventLevel.as
>     > copy to
> frameworks/projects/MXRoyale/src/main/royale/mx/core/IMXMLObject.as
>     > index 070d24b..9b6ec90 100644
>     > ---
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/logging/LogEventLevel.as
>     > +++
> b/frameworks/projects/MXRoyale/src/main/royale/mx/core/IMXMLObject.as
>     > @@ -17,39 +17,45 @@
>     >  //
>     >
>     >
> ////////////////////////////////////////////////////////////////////////////////
>     >
>     > -package mx.logging
>     > +package mx.core
>     >  {
>     > -
>     > +
>     >  /**
>     > - *  Static class containing constants for use in the
> <code>level</code>
>     > - *  property.
>     > + *  The IMXMLObject interface defines the APIs that a non-visual
> component
>     > + *  must implement in order to work properly with the MXML compiler.
>     > + *  Currently, the only supported method is the
> <code>initialized()</code>
>     > + *  method.
>     >   *
>     >   *  @langversion 3.0
>     >   *  @playerversion Flash 9
>     >   *  @playerversion AIR 1.1
>     > - *  @productversion Royale 0.9.3
>     > + *  @productversion Flex 3
>     >   */
>     > -public final class LogEventLevel
>     > +public interface IMXMLObject
>     >  {
>     > -/*     include "../core/Version.as";
>     > - */
>     >
>     >
> //--------------------------------------------------------------------------
>     >         //
>     > -       //  Class constants
>     > +       //  Methods
>     >         //
>     >
>     >
> //--------------------------------------------------------------------------
>     >
>     > -
>     > -
>     >      /**
>     > -     *  Tells a target to process all messages.
>     > +     *  Called after the implementing object has been created and
> all
>     > +        *  component properties specified on the MXML tag have been
>     > initialized.
>     > +        *
>     > +     *  @param document The MXML document that created this object.
>     > +        *
>     > +     *  @param id The identifier used by <code>document</code> to
> refer
>     > +        *  to this object.
>     > +        *  If the object is a deep property on
> <code>document</code>,
>     > +        *  <code>id</code> is null.
>     >       *
>     >       *  @langversion 3.0
>     >       *  @playerversion Flash 9
>     >       *  @playerversion AIR 1.1
>     > -     *  @productversion Royale 0.9.3
>     > +     *  @productversion Flex 3
>     >       */
>     > -    public static const ALL:int = 0;
>     > +    function initialized(document:Object, id:String):void;
>     >  }
>     >
>     >  }
>     > diff --git
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/logging/LogEventLevel.as
>     >
> b/frameworks/projects/MXRoyale/src/main/royale/mx/errors/IllegalOperationError.as
>     > similarity index 50%
>     > copy from
>     >
> frameworks/projects/MXRoyale/src/main/royale/mx/logging/LogEventLevel.as
>     > copy to
>     >
> frameworks/projects/MXRoyale/src/main/royale/mx/errors/IllegalOperationError.as
>     > index 070d24b..b0b6529 100644
>     > ---
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/logging/LogEventLevel.as
>     > +++
>     >
> b/frameworks/projects/MXRoyale/src/main/royale/mx/errors/IllegalOperationError.as
>     > @@ -17,39 +17,69 @@
>     >  //
>     >
>     >
> ////////////////////////////////////////////////////////////////////////////////
>     >
>     > -package mx.logging
>     > +package mx.errors
>     >  {
>     > -
>     > -/**
>     > - *  Static class containing constants for use in the
> <code>level</code>
>     > - *  property.
>     > - *
>     > +COMPILE::SWF{
>     > +import flash.errors.IllegalOperationError;
>     > +}
>     > +
>     > +/*
>     >   *  @langversion 3.0
>     >   *  @playerversion Flash 9
>     >   *  @playerversion AIR 1.1
>     > - *  @productversion Royale 0.9.3
>     > + *  @productversion BlazeDS 4
>     > + *  @productversion LCDS 3
>     > + *
>     > + *  @royalesuppresspublicvarwarning
>     >   */
>     > -public final class LogEventLevel
>     > +COMPILE::SWF
>     > +public class IllegalOperationError extends
>     > flash.errors.IllegalOperationError
>     >  {
>     > -/*     include "../core/Version.as";
>     > - */
>     > -
>     >
> //--------------------------------------------------------------------------
>     > -       //
>     > -       //  Class constants
>     > -       //
>     > -
>     >
> //--------------------------------------------------------------------------
>     > +
>     >
> //--------------------------------------------------------------------------
>     > +    //
>     > +    // Constructor
>     > +    //
>     > +
>     >
> //--------------------------------------------------------------------------
>     > +
>     > +    /**
>     > +     *
>     > +     *  @langversion 3.0
>     > +     *  @playerversion Flash 9
>     > +     *  @playerversion AIR 1.1
>     > +     *  @productversion BlazeDS 4
>     > +     *  @productversion LCDS 3
>     > +     */
>     > +    public function IllegalOperationError(message:String = "")
>     > +    {
>     > +        super(message);
>     > +    }
>     > +
>     > +
>     > +}
>     >
>     > -
>     > +COMPILE::JS
>     > +public class IllegalOperationError
>     > +{
>     > +
>     >
> //--------------------------------------------------------------------------
>     > +    //
>     > +    // Constructor
>     > +    //
>     > +
>     >
> //--------------------------------------------------------------------------
>     >
>     >      /**
>     > -     *  Tells a target to process all messages.
>     >       *
>     >       *  @langversion 3.0
>     >       *  @playerversion Flash 9
>     >       *  @playerversion AIR 1.1
>     > -     *  @productversion Royale 0.9.3
>     > +     *  @productversion BlazeDS 4
>     > +     *  @productversion LCDS 3
>     >       */
>     > -    public static const ALL:int = 0;
>     > +    public function IllegalOperationError(message:String = "")
>     > +    {
>     > +        super();
>     > +    }
>     > +
>     > +
>     >  }
>     >
>     >  }
>     > diff --git
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
>     >
> b/frameworks/projects/MXRoyale/src/main/royale/mx/events/AsyncErrorEvent.as
>     > similarity index 85%
>     > copy from
>     >
> frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
>     > copy to
>     >
> frameworks/projects/MXRoyale/src/main/royale/mx/events/AsyncErrorEvent.as
>     > index 4c98af1..8052ed2 100644
>     > ---
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
>     > +++
>     >
> b/frameworks/projects/MXRoyale/src/main/royale/mx/events/AsyncErrorEvent.as
>     > @@ -21,7 +21,7 @@ package mx.events
>     >  {
>     >  COMPILE::SWF
>     >  {
>     > -import flash.events.IOErrorEvent;
>     > +import flash.events.AsyncErrorEvent;
>     >  }
>     >  /* import mx.events.Event;*/
>     >  import org.apache.royale.events.Event;
>     > @@ -37,9 +37,9 @@ import org.apache.royale.events.IRoyaleEvent;
>     >   *  @royalesuppresspublicvarwarning
>     >   */
>     >  COMPILE::SWF
>     > -public class IOErrorEvent extends flash.events.IOErrorEvent
>     > +public class AsyncErrorEvent extends flash.events.AsyncErrorEvent
>     >  {
>     > -       public function IOErrorEvent(type:String, bubbles:Boolean =
> false,
>     > +       public function AsyncErrorEvent(type:String, bubbles:Boolean
> =
>     > false,
>     >
>     > cancelable:Boolean = false, text:String = "", id:int = 0
>     >                                                           )
>     >         {
>     > @@ -59,10 +59,10 @@ public class IOErrorEvent extends
>     > flash.events.IOErrorEvent
>     >   *  @royalesuppresspublicvarwarning
>     >   */
>     >  COMPILE::JS
>     > -public class IOErrorEvent extends org.apache.royale.events.Event
>     > +public class AsyncErrorEvent extends ErrorEvent
>     >  {
>     >     /*  include "../core/Version.as"; */
>     > -       public static const IO_ERROR:String = "ioError";
>     > +       public static const ASYNC_ERROR:String = "asyncError";
>     >
>     >
>     >
> //--------------------------------------------------------------------------
>     >         //
>     > @@ -93,7 +93,7 @@ public class IOErrorEvent extends
>     > org.apache.royale.events.Event
>     >          *  @playerversion AIR 1.1
>     >          *  @productversion Royale 0.9.3
>     >          */
>     > -       public function IOErrorEvent(type:String, bubbles:Boolean =
> false,
>     > +       public function AsyncErrorEvent(type:String, bubbles:Boolean
> =
>     > false,
>     >
>     > cancelable:Boolean = false, text:String = "", id:int = 0
>     >                                                           )
>     >         {
>     > diff --git
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
>     >
> b/frameworks/projects/MXRoyale/src/main/royale/mx/events/ErrorEvent.as
>     > similarity index 83%
>     > copy from
>     >
> frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
>     > copy to
>     > frameworks/projects/MXRoyale/src/main/royale/mx/events/ErrorEvent.as
>     > index 4c98af1..3bf3094 100644
>     > ---
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
>     > +++
> b/frameworks/projects/MXRoyale/src/main/royale/mx/events/ErrorEvent.as
>     > @@ -21,7 +21,7 @@ package mx.events
>     >  {
>     >  COMPILE::SWF
>     >  {
>     > -import flash.events.IOErrorEvent;
>     > +import flash.events.ErrorEvent;
>     >  }
>     >  /* import mx.events.Event;*/
>     >  import org.apache.royale.events.Event;
>     > @@ -37,9 +37,9 @@ import org.apache.royale.events.IRoyaleEvent;
>     >   *  @royalesuppresspublicvarwarning
>     >   */
>     >  COMPILE::SWF
>     > -public class IOErrorEvent extends flash.events.IOErrorEvent
>     > +public class ErrorEvent extends flash.events.ErrorEvent
>     >  {
>     > -       public function IOErrorEvent(type:String, bubbles:Boolean =
> false,
>     > +       public function ErrorEvent(type:String, bubbles:Boolean =
> false,
>     >
>     > cancelable:Boolean = false, text:String = "", id:int = 0
>     >                                                           )
>     >         {
>     > @@ -59,10 +59,9 @@ public class IOErrorEvent extends
>     > flash.events.IOErrorEvent
>     >   *  @royalesuppresspublicvarwarning
>     >   */
>     >  COMPILE::JS
>     > -public class IOErrorEvent extends org.apache.royale.events.Event
>     > +public class ErrorEvent extends org.apache.royale.events.Event
>     >  {
>     > -   /*  include "../core/Version.as"; */
>     > -       public static const IO_ERROR:String = "ioError";
>     > +    public static const ERROR:String = "error";
>     >
>     >
>     >
> //--------------------------------------------------------------------------
>     >         //
>     > @@ -93,15 +92,16 @@ public class IOErrorEvent extends
>     > org.apache.royale.events.Event
>     >          *  @playerversion AIR 1.1
>     >          *  @productversion Royale 0.9.3
>     >          */
>     > -       public function IOErrorEvent(type:String, bubbles:Boolean =
> false,
>     > +       public function ErrorEvent(type:String, bubbles:Boolean =
> false,
>     >
>     > cancelable:Boolean = false, text:String = "", id:int = 0
>     >                                                           )
>     >         {
>     >                 super(type, bubbles, cancelable);
>     > +        this.text = text;
>     >         }
>     >
>     >
>     > -
>     > +    public var text:String;
>     >
>     >
>     >  }
>     > diff --git
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
>     >
> b/frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
>     > index 4c98af1..86dd175 100644
>     > ---
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
>     > +++
>     >
> b/frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
>     > @@ -59,7 +59,7 @@ public class IOErrorEvent extends
>     > flash.events.IOErrorEvent
>     >   *  @royalesuppresspublicvarwarning
>     >   */
>     >  COMPILE::JS
>     > -public class IOErrorEvent extends org.apache.royale.events.Event
>     > +public class IOErrorEvent extends ErrorEvent
>     >  {
>     >     /*  include "../core/Version.as"; */
>     >         public static const IO_ERROR:String = "ioError";
>     > diff --git
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
>     >
> b/frameworks/projects/MXRoyale/src/main/royale/mx/events/NetStatusEvent.as
>     > similarity index 84%
>     > copy from
>     >
> frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
>     > copy to
>     >
> frameworks/projects/MXRoyale/src/main/royale/mx/events/NetStatusEvent.as
>     > index 4c98af1..96f7664 100644
>     > ---
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
>     > +++
>     >
> b/frameworks/projects/MXRoyale/src/main/royale/mx/events/NetStatusEvent.as
>     > @@ -21,7 +21,7 @@ package mx.events
>     >  {
>     >  COMPILE::SWF
>     >  {
>     > -import flash.events.IOErrorEvent;
>     > +import flash.events.NetStatusEvent;
>     >  }
>     >  /* import mx.events.Event;*/
>     >  import org.apache.royale.events.Event;
>     > @@ -37,9 +37,9 @@ import org.apache.royale.events.IRoyaleEvent;
>     >   *  @royalesuppresspublicvarwarning
>     >   */
>     >  COMPILE::SWF
>     > -public class IOErrorEvent extends flash.events.IOErrorEvent
>     > +public class NetStatusEvent extends flash.events.NetStatusEvent
>     >  {
>     > -       public function IOErrorEvent(type:String, bubbles:Boolean =
> false,
>     > +       public function NetStatusEvent(type:String, bubbles:Boolean =
>     > false,
>     >
>     > cancelable:Boolean = false, text:String = "", id:int = 0
>     >                                                           )
>     >         {
>     > @@ -59,10 +59,10 @@ public class IOErrorEvent extends
>     > flash.events.IOErrorEvent
>     >   *  @royalesuppresspublicvarwarning
>     >   */
>     >  COMPILE::JS
>     > -public class IOErrorEvent extends org.apache.royale.events.Event
>     > +public class NetStatusEvent extends org.apache.royale.events.Event
>     >  {
>     >     /*  include "../core/Version.as"; */
>     > -       public static const IO_ERROR:String = "ioError";
>     > +       public static const NET_STATUS:String = "netStatus";
>     >
>     >
>     >
> //--------------------------------------------------------------------------
>     >         //
>     > @@ -93,7 +93,7 @@ public class IOErrorEvent extends
>     > org.apache.royale.events.Event
>     >          *  @playerversion AIR 1.1
>     >          *  @productversion Royale 0.9.3
>     >          */
>     > -       public function IOErrorEvent(type:String, bubbles:Boolean =
> false,
>     > +       public function NetStatusEvent(type:String, bubbles:Boolean =
>     > false,
>     >
>     > cancelable:Boolean = false, text:String = "", id:int = 0
>     >                                                           )
>     >         {
>     > @@ -101,7 +101,7 @@ public class IOErrorEvent extends
>     > org.apache.royale.events.Event
>     >         }
>     >
>     >
>     > -
>     > +       public var info:Object;
>     >
>     >
>     >  }
>     > diff --git
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/events/SecurityErrorEvent.as
>     >
> b/frameworks/projects/MXRoyale/src/main/royale/mx/events/SecurityErrorEvent.as
>     > index 6e0df97..a5cfb17 100644
>     > ---
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/events/SecurityErrorEvent.as
>     > +++
>     >
> b/frameworks/projects/MXRoyale/src/main/royale/mx/events/SecurityErrorEvent.as
>     > @@ -58,7 +58,7 @@ public class SecurityErrorEvent extends
>     > flash.events.SecurityErrorEvent
>     >   *  @royalesuppresspublicvarwarning
>     >   */
>     >  COMPILE::JS
>     > -public class SecurityErrorEvent extends
> org.apache.royale.events.Event
>     > +public class SecurityErrorEvent extends ErrorEvent
>     >  {
>     >     /*  include "../core/Version.as"; */
>     >         public static const SECURITY_ERROR:String = "securityError";
>     > diff --git
>     > a/frameworks/projects/MXRoyale/src/main/royale/mx/logging/ILogger.as
>     > b/frameworks/projects/MXRoyale/src/main/royale/mx/logging/ILogger.as
>     > index 2f8b72c..519ba5d 100644
>     > ---
> a/frameworks/projects/MXRoyale/src/main/royale/mx/logging/ILogger.as
>     > +++
> b/frameworks/projects/MXRoyale/src/main/royale/mx/logging/ILogger.as
>     > @@ -20,20 +20,309 @@
>     >  package mx.logging
>     >  {
>     >
>     > -/* import flash.events.IEventDispatcher;
>     > - */
>     > - import org.apache.royale.events.IEventDispatcher;
>     > +import org.apache.royale.events.IEventDispatcher;
>     > +
>     >  /**
>     >   *  All loggers within the logging framework must implement this
>     > interface.
>     >   *
>     >   *  @langversion 3.0
>     >   *  @playerversion Flash 9
>     >   *  @playerversion AIR 1.1
>     > - *  @productversion Royale 0.9.3
>     > + *  @productversion Flex 3
>     >   */
>     > -public interface ILogger extends
> org.apache.royale.events.IEventDispatcher
>     > +public interface ILogger extends IEventDispatcher
>     >  {
>     > -
>     > -}
>     > +
>     >
> //--------------------------------------------------------------------------
>     > +    //
>     > +    //  Properties
>     > +    //
>     > +
>     >
> //--------------------------------------------------------------------------
>     > +
>     > +    //----------------------------------
>     > +    //  category
>     > +    //----------------------------------
>     > +
>     > +    /**
>     > +     *  The category value for the logger.
>     > +     *
>     > +     *  @return String containing the category for this logger.
>     > +     *
>     > +     *  @langversion 3.0
>     > +     *  @playerversion Flash 9
>     > +     *  @playerversion AIR 1.1
>     > +     *  @productversion Flex 3
>     > +     */
>     > +    function get category():String;
>     > +
>     > +
>     >
> //--------------------------------------------------------------------------
>     > +    //
>     > +    //  Methods
>     > +    //
>     > +
>     >
> //--------------------------------------------------------------------------
>     > +
>     > +    /**
>     > +     *  Logs the specified data at the given level.
>     > +     *
>     > +     *  <p>The String specified for logging can contain braces with
> an
>     > index
>     > +     *  indicating which additional parameter should be inserted
>     > +     *  into the String before it is logged.
>     > +     *  For example "the first additional parameter was {0} the
> second
>     > was {1}"
>     > +     *  is translated into "the first additional parameter was 10
> the
>     > +     *  second was 15" when called with 10 and 15 as parameters.</p>
>     > +     *
>     > +     *  @param level The level this information should be logged at.
>     > +     *  Valid values are:
>     > +     *  <ul>
>     > +     *    <li><code>LogEventLevel.FATAL</code> designates events
> that are
>     > very
>     > +     *    harmful and will eventually lead to application
> failure</li>
>     > +     *
>     > +     *    <li><code>LogEventLevel.ERROR</code> designates error
> events
>     > +     *    that might still allow the application to continue
> running.</li>
>     > +     *
>     > +     *    <li><code>LogEventLevel.WARN</code> designates events that
>     > could be
>     > +     *    harmful to the application operation</li>
>     > +     *
>     > +     *    <li><code>LogEventLevel.INFO</code> designates
> informational
>     > messages
>     > +     *    that highlight the progress of the application at
>     > +     *    coarse-grained level.</li>
>     > +     *
>     > +     *    <li><code>LogEventLevel.DEBUG</code> designates
> informational
>     > +     *    level messages that are fine grained and most helpful when
>     > +     *    debugging an application.</li>
>     > +     *  </ul>
>     > +     *
>     > +     *  @param message The information to log.
>     > +     *  This String can contain special marker characters of the
> form {x},
>     > +     *  where x is a zero based index that will be replaced with
>     > +     *  the additional parameters found at that index if specified.
>     > +     *
>     > +     *  @param rest Additional parameters that can be subsituted in
> the
>     > str
>     > +     *  parameter at each "{<code>x</code>}" location, where
>     > <code>x</code>
>     > +     *  is an integer (zero based) index value into the Array of
> values
>     > +     *  specified.
>     > +     *
>     > +     *  @example
>     > +     *  <pre>
>     > +     *  // Get the logger for the mx.messaging.Channel "category"
>     > +     *  // and send some data to it.
>     > +     *  var logger:ILogger = Log.getLogger("mx.messaging.Channel");
>     > +     *  logger.log(LogEventLevel.DEBUG, "here is some channel info
> {0}
>     > and {1}", LogEventLevel.DEBUG, 15.4, true);
>     > +     *
>     > +     *  // This will log the following String as a DEBUG log
> message:
>     > +     *  //   "here is some channel info 15.4 and true"
>     > +     *  </pre>
>     > +     *
>     > +     *
>     > +     *  @langversion 3.0
>     > +     *  @playerversion Flash 9
>     > +     *  @playerversion AIR 1.1
>     > +     *  @productversion Flex 3
>     > +     */
>     > +    function log(level:int, message:String, ... rest):void;
>     >
>     > +    /**
>     > +     *  Logs the specified data using the
> <code>LogEventLevel.DEBUG</code>
>     > +     *  level.
>     > +     *  <code>LogEventLevel.DEBUG</code> designates informational
> level
>     > +     *  messages that are fine grained and most helpful when
> debugging
>     > +     *  an application.
>     > +     *
>     > +     *  <p>The string specified for logging can contain braces with
> an
>     > index
>     > +     *  indicating which additional parameter should be inserted
>     > +     *  into the string before it is logged.
>     > +     *  For example "the first additional parameter was {0} the
> second
>     > was {1}"
>     > +     *  will be translated into "the first additional parameter was
> 10 the
>     > +     *  second was 15" when called with 10 and 15 as parameters.</p>
>     > +     *
>     > +     *  @param message The information to log.
>     > +     *  This string can contain special marker characters of the
> form {x},
>     > +     *  where x is a zero based index that will be replaced with
>     > +     *  the additional parameters found at that index if specified.
>     > +     *
>     > +     *  @param rest Additional parameters that can be subsituted in
> the
>     > str
>     > +     *  parameter at each "{<code>x</code>}" location, where
>     > <code>x</code>
>     > +     *  is an integer (zero based) index value into the Array of
> values
>     > +     *  specified.
>     > +     *
>     > +     *  @example
>     > +     *  <pre>
>     > +     *  // Get the logger for the mx.messaging.Channel "category"
>     > +     *  // and send some data to it.
>     > +     *  var logger:ILogger = Log.getLogger("mx.messaging.Channel");
>     > +     *  logger.debug("here is some channel info {0} and {1}", 15.4,
> true);
>     > +     *
>     > +     *  // This will log the following String:
>     > +     *  //   "here is some channel info 15.4 and true"
>     > +     *  </pre>
>     > +     *
>     > +     *  @langversion 3.0
>     > +     *  @playerversion Flash 9
>     > +     *  @playerversion AIR 1.1
>     > +     *  @productversion Flex 3
>     > +     */
>     > +    function debug(message:String, ... rest):void;
>     > +
>     > +    /**
>     > +     *  Logs the specified data using the
> <code>LogEventLevel.ERROR</code>
>     > +     *  level.
>     > +     *  <code>LogEventLevel.ERROR</code> designates error events
>     > +     *  that might still allow the application to continue running.
>     > +     *
>     > +     *  <p>The string specified for logging can contain braces with
> an
>     > index
>     > +     *  indicating which additional parameter should be inserted
>     > +     *  into the string before it is logged.
>     > +     *  For example "the first additional parameter was {0} the
> second
>     > was {1}"
>     > +     *  will be translated into "the first additional parameter was
> 10 the
>     > +     *  second was 15" when called with 10 and 15 as parameters.</p>
>     > +     *
>     > +     *  @param message The information to log.
>     > +     *  This String can contain special marker characters of the
> form {x},
>     > +     *  where x is a zero based index that will be replaced with
>     > +     *  the additional parameters found at that index if specified.
>     > +     *
>     > +     *  @param rest Additional parameters that can be subsituted in
> the
>     > str
>     > +     *  parameter at each "{<code>x</code>}" location, where
>     > <code>x</code>
>     > +     *  is an integer (zero based) index value into the Array of
> values
>     > +     *  specified.
>     > +     *
>     > +     *  @example
>     > +     *  <pre>
>     > +     *  // Get the logger for the mx.messaging.Channel "category"
>     > +     *  // and send some data to it.
>     > +     *  var logger:ILogger = Log.getLogger("mx.messaging.Channel");
>     > +     *  logger.error("here is some channel info {0} and {1}", 15.4,
> true);
>     > +     *
>     > +     *  // This will log the following String:
>     > +     *  //   "here is some channel info 15.4 and true"
>     > +     *  </pre>
>     > +     *
>     > +     *  @langversion 3.0
>     > +     *  @playerversion Flash 9
>     > +     *  @playerversion AIR 1.1
>     > +     *  @productversion Flex 3
>     > +     */
>     > +    function error(message:String, ... rest):void;
>     > +
>     > +    /**
>     > +     *  Logs the specified data using the
>     > <code>LogEventLevel.FATAL</code>
>     > +     *  level.
>     > +     *  <code>LogEventLevel.FATAL</code> designates events that are
> very
>     > +     *  harmful and will eventually lead to application failure
>     > +     *
>     > +     *  <p>The string specified for logging can contain braces with
> an
>     > index
>     > +     *  indicating which additional parameter should be inserted
>     > +     *  into the string before it is logged.
>     > +     *  For example "the first additional parameter was {0} the
> second
>     > was {1}"
>     > +     *  will be translated into "the first additional parameter was
> 10 the
>     > +     *  second was 15" when called with 10 and 15 as parameters.</p>
>     > +     *
>     > +     *  @param message The information to log.
>     > +     *  This String can contain special marker characters of the
> form {x},
>     > +     *  where x is a zero based index that will be replaced with
>     > +     *  the additional parameters found at that index if specified.
>     > +     *
>     > +     *  @param rest Additional parameters that can be subsituted in
> the
>     > str
>     > +     *  parameter at each "{<code>x</code>}" location, where
>     > <code>x</code>
>     > +     *  is an integer (zero based) index value into the Array of
> values
>     > +     *  specified.
>     > +     *
>     > +     *  @example
>     > +     *  <pre>
>     > +     *  // Get the logger for the mx.messaging.Channel "category"
>     > +     *  // and send some data to it.
>     > +     *  var logger:ILogger = Log.getLogger("mx.messaging.Channel");
>     > +     *  logger.fatal("here is some channel info {0} and {1}", 15.4,
> true);
>     > +     *
>     > +     *  // This will log the following String:
>     > +     *  //   "here is some channel info 15.4 and true"
>     > +     *  </pre>
>     > +     *
>     > +     *  @langversion 3.0
>     > +     *  @playerversion Flash 9
>     > +     *  @playerversion AIR 1.1
>     > +     *  @productversion Flex 3
>     > +     */
>     > +    function fatal(message:String, ... rest):void;
>     > +
>     > +    /**
>     > +     *  Logs the specified data using the <code>LogEvent.INFO</code>
>     > level.
>     > +     *  <code>LogEventLevel.INFO</code> designates informational
> messages
>     > that
>     > +     *  highlight the progress of the application at coarse-grained
> level.
>     > +     *
>     > +     *  <p>The string specified for logging can contain braces with
> an
>     > index
>     > +     *  indicating which additional parameter should be inserted
>     > +     *  into the string before it is logged.
>     > +     *  For example "the first additional parameter was {0} the
> second
>     > was {1}"
>     > +     *  will be translated into "the first additional parameter was
> 10 the
>     > +     *  second was 15" when called with 10 and 15 as parameters.</p>
>     > +     *
>     > +     *  @param message The information to log.
>     > +     *  This String can contain special marker characters of the
> form {x},
>     > +     *  where x is a zero based index that will be replaced with
>     > +     *  the additional parameters found at that index if specified.
>     > +     *
>     > +     *  @param rest Additional parameters that can be subsituted in
> the
>     > str
>     > +     *  parameter at each "{<code>x</code>}" location, where
>     > <code>x</code>
>     > +     *  is an integer (zero based) index value into the Array of
> values
>     > +     *  specified.
>     > +     *
>     > +     *  @example
>     > +     *  <pre>
>     > +     *  // Get the logger for the mx.messaging.Channel "category"
>     > +     *  // and send some data to it.
>     > +     *  var logger:ILogger = Log.getLogger("mx.messaging.Channel");
>     > +     *  logger.info("here is some channel info {0} and {1}", 15.4,
> true);
>     > +     *
>     > +     *  // This will log the following String:
>     > +     *  //   "here is some channel info 15.4 and true"
>     > +     *  </pre>
>     > +     *
>     > +     *  @langversion 3.0
>     > +     *  @playerversion Flash 9
>     > +     *  @playerversion AIR 1.1
>     > +     *  @productversion Flex 3
>     > +     */
>     > +    function info(message:String, ... rest):void;
>     > +
>     > +    /**
>     > +     *  Logs the specified data using the
> <code>LogEventLevel.WARN</code>
>     > level.
>     > +     *  <code>LogEventLevel.WARN</code> designates events that
> could be
>     > harmful
>     > +     *  to the application operation.
>     > +     *
>     > +     *  <p>The string specified for logging can contain braces with
> an
>     > index
>     > +     *  indicating which additional parameter should be inserted
>     > +     *  into the string before it is logged.
>     > +     *  For example "the first additional parameter was {0} the
> second
>     > was {1}"
>     > +     *  will be translated into "the first additional parameter was
> 10 the
>     > +     *  second was 15" when called with 10 and 15 as parameters.</p>
>     > +     *
>     > +     *  @param message The information to log.
>     > +     *  This String can contain special marker characters of the
> form {x},
>     > +     *  where x is a zero based index that will be replaced with
>     > +     *  the additional parameters found at that index if specified.
>     > +     *
>     > +     *  @param rest Aadditional parameters that can be subsituted
> in the
>     > str
>     > +     *  parameter at each "{<code>x</code>}" location, where
>     > <code>x</code>
>     > +     *  is an integer (zero based) index value into the Array of
> values
>     > +     *  specified.
>     > +     *
>     > +     *  @example
>     > +     *  <pre>
>     > +     *  // Get the logger for the mx.messaging.Channel "category"
>     > +     *  // and send some data to it.
>     > +     *  var logger:ILogger = Log.getLogger("mx.messaging.Channel");
>     > +     *  logger.warn("here is some channel info {0} and {1}", 15.4,
> true);
>     > +     *
>     > +     *  // This will log the following String:
>     > +     *  //   "here is some channel info 15.4 and true"
>     > +     *  </pre>
>     > +     *
>     > +     *  @langversion 3.0
>     > +     *  @playerversion Flash 9
>     > +     *  @playerversion AIR 1.1
>     > +     *  @productversion Flex 3
>     > +     */
>     > +    function warn(message:String, ... rest):void;
>     >  }
>     > +
>     > +}
>     > \ No newline at end of file
>     > diff --git
>     >
> a/frameworks/projects/MXRoyale/src/main/royale/mx/logging/ILoggingTarget.as
>     >
> b/frameworks/projects/MXRoyale/src/main/royale/mx/logging/ILoggingTarget.as
>     > new file mode 100644
>     > index 0000000..b08779f
>     > --- /dev/null
>     > +++
>     >
> b/frameworks/projects/MXRoyale/src/main/royale/mx/logging/ILoggingTarget.as
>     > @@ -0,0 +1,166 @@
>     >
>     >
> +////////////////////////////////////////////////////////////////////////////////
>     > +//
>     > +//  Licensed to the Apache Software Foundation (ASF) under one or
> more
>     > +//  contributor license agreements.  See the NOTICE file
> distributed with
>     > +//  this work for additional information regarding copyright
> ownership.
>     > +//  The ASF licenses this file to You under the Apache License,
> Version
>     > 2.0
>     > +//  (the "License"); you may not use this file except in compliance
> with
>     > +//  the License.  You may obtain a copy of the License at
>     > +//
>     > +//
> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apache.org%2Flicenses%2FLICENSE-2.0&amp;data=02%7C01%7Caharui%40adobe.com%7Cf808264cf16a47daae8708d62a476d95%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636742883608520259&amp;sdata=fUSj%2BX0Ut77g47iVGUA7YvFzb4ms9r01zg7MVOPRM%2Fc%3D&amp;reserved=0
>     > +//
>     > +//  Unless required by applicable law or agreed to in writing,
> software
>     > +//  distributed under the License is distributed on an "AS IS"
> BASIS,
>     > +//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>     > implied.
>     > +//  See the License for the specific language governing permissions
> and
>     > +//  limitations under the License.
>     > +//
>     >
>     >
> +////////////////////////////////////////////////////////////////////////////////
>     > +
>     > +package mx.logging
>     > +{
>     > +
>     > +/**
>     > + *  All logger target implementations within the logging framework
>     > + *  must implement this interface.
>     > + *
>     > + *  @langversion 3.0
>     > + *  @playerversion Flash 9
>     > + *  @playerversion AIR 1.1
>     > + *  @productversion Flex 3
>     > + */
>     > +public interface ILoggingTarget
>     > +{
>     > +
>     >
> //--------------------------------------------------------------------------
>     > +       //
>     > +       //  Properties
>     > +       //
>     > +
>     >
> //--------------------------------------------------------------------------
>     > +
>     > +       //----------------------------------
>     > +       //  filters
>     > +       //----------------------------------
>     > +
>     > +     /**
>     > +     *  In addition to the <code>level</code> setting, filters are
> used to
>     > +     *  provide a psuedo-hierarchical mapping for processing only
> those
>     > events
>     > +     *  for a given category.
>     > +     *
>     > +     *  <p>Each logger belongs to a category.
>     > +     *  By convention these categories map to the fully qualified
> class
>     > name
>     > +     *  in which the logger is used.
>     > +     *  For example, a logger that is logging messages for the
>     > +     *  <code>mx.rpc.soap.WebService</code> class would use
>     > +     *  <code>"mx.rpc.soap.WebService"</code> as the parameter
>     > +     *  to the <code>Log.getLogger()</code> call.
>     > +     *  When messages are sent under this category only those
> targets
>     > that have
>     > +     *  a filter which matches that category will receive
> notification of
>     > those
>     > +     *  events.
>     > +     *  Filter expressions may include a wildcard match, indicated
> with an
>     > +     *  asterisk.
>     > +     *  The wildcard must be the right most character in the
> expression.
>     > +     *  For example: rpc~~, mx.~~, or ~~.
>     > +     *  If an invalid expression is specified a
>     > <code>InvalidFilterError</code>
>     > +     *  will be thrown.
>     > +     *  No spaces or any of the following characters are valid
> within a
>     > filter
>     > +     *  expression: []~$^&amp;\/(){}&lt;&gt;+=`!#%?,:;'"&#64;.</p>
>     > +     *
>     > +     *  @example
>     > +     *  <pre>
>     > +     *  var traceLogger:ILoggingTarget = new TraceTarget();
>     > +     *  traceLogger.filters = [ "mx.rpc.~~", "mx.messaging.~~" ];
>     > +     *  Log.addTarget(traceLogger);
>     > +     *  </pre>
>     > +     *
>     > +     *  @langversion 3.0
>     > +     *  @playerversion Flash 9
>     > +     *  @playerversion AIR 1.1
>     > +     *  @productversion Flex 3
>     > +     */
>     > +    function get filters():Array;
>     > +
>     > +    /**
>     > +     *  @private
>     > +     */
>     > +    function set filters(value:Array):void;
>     > +
>     > +       //----------------------------------
>     > +       //  level
>     > +       //----------------------------------
>     > +
>     > +    /**
>     > +     *  Provides access to the level this target is currently set
> at.
>     > +     *  Value values are:
>     > +     *  <ul>
>     > +     *    <li><code>LogEventLevel.FATAL</code> designates events
> that are
>     > very
>     > +     *    harmful and will eventually lead to application
> failure</li>
>     > +     *
>     > +     *    <li><code>LogEventLevel.ERROR</code> designates error
> events
>     > that might
>     > +     *    still allow the application to continue running.</li>
>     > +     *
>     > +     *    <li><code>LogEventLevel.WARN</code> designates events that
>     > could be
>     > +     *    harmful to the application operation</li>
>     > +     *
>     > +     *    <li><code>LogEventLevel.INFO</code> designates
> informational
>     > messages
>     > +     *    that highlight the progress of the application at
>     > +     *    coarse-grained level.</li>
>     > +     *
>     > +     *    <li><code>LogEventLevel.DEBUG</code> designates
> informational
>     > +     *    level messages that are fine grained and most helpful when
>     > +     *    debugging an application.</li>
>     > +     *
>     > +     *    <li><code>LogEventLevel.ALL</code> intended to force a
> target to
>     > +     *    process all messages.</li>
>     > +     *  </ul>
>     > +     *
>     > +     *  @langversion 3.0
>     > +     *  @playerversion Flash 9
>     > +     *  @playerversion AIR 1.1
>     > +     *  @productversion Flex 3
>     > +     */
>     > +    function get level():int;
>     > +
>     > +    /**
>     > +     *  @private
>     > +     */
>     > +    function set level(value:int):void;
>     > +
>     > +
>     >
> //--------------------------------------------------------------------------
>     > +       //
>     > +       //  Methods
>     > +       //
>     > +
>     >
> //--------------------------------------------------------------------------
>     > +
>     > +    /**
>     > +     *  Sets up this target with the specified logger.
>     > +     *  This allows this target to receive log events from the
> specified
>     > logger.
>     > +     *
>     > +     *  <p><b>Note:</b> This method is called by the framework
>     > +     *  and should not be called by you directly.</p>
>     > +     *
>     > +     *  @param logger The ILogger that this target listens to.
>     > +     *
>     > +     *  @langversion 3.0
>     > +     *  @playerversion Flash 9
>     > +     *  @playerversion AIR 1.1
>     > +     *  @productversion Flex 3
>     > +     */
>     > +    function addLogger(logger:ILogger):void;
>     > +
>     > +    /**
>     > +     *  Stops this target from receiving events from the specified
> logger.
>     > +     *
>     > +     *  <p><b>Note:</b> This method is called by the framework
>     > +     *  and should not be called by you directly.</p>
>     > +     *
>     > +     *  @param logger The ILogger that this target ignores.
>     > +     *
>     > +     *  @langversion 3.0
>     > +     *  @playerversion Flash 9
>     > +     *  @playerversion AIR 1.1
>     > +     *  @productversion Flex 3
>     > +     */
>     > +    function removeLogger(logger:ILogger):void;
>     > +}
>     > +
>     > +}
>     > diff --git
>     > a/frameworks/projects/MXRoyale/src/main/royale/mx/logging/Log.as
>     > b/frameworks/projects/MXRoyale/src/main/royale/mx/logging/Log.as
>     > index c3fcd34..aa67b57 100644
>     > --- a/frameworks/projects/MXRoyale/src/main/royale/mx/logging/Log.as
>     > +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/logging/Log.as
>     > @@ -19,12 +19,14 @@
>     >
>     >  package mx.logging
>     >  {
>     > -/*
>     > +
>     >  import mx.logging.errors.InvalidCategoryError;
>     >  import mx.managers.ISystemManager;
>     >  import mx.managers.SystemManager;
>     > +import mx.messaging.errors.ArgumentError;
>     >  import mx.resources.IResourceManager;
>     > -import mx.resources.ResourceManager; */
>     > +import mx.resources.ResourceManager;
>     > +
>     >  //[ResourceBundle("logging")]
>     >
>     >  /**
>     > @@ -92,11 +94,11 @@ import mx.resources.ResourceManager; */
>     >   *  @langversion 3.0
>     >   *  @playerversion Flash 9
>     >   *  @playerversion AIR 1.1
>     > - *  @productversion Royale 0.9.3
>     > + *  @productversion Flex 3
>     >   */
>     >  public class Log
>     >  {
>     > -   // include "../core/Version.as";
>     > +//    include "../core/Version.as";
>     >
>     >
>     >
> //--------------------------------------------------------------------------
>     >      //
>     > @@ -108,13 +110,13 @@ public class Log
>     >       *  @private
>     >       *  Sentinal value for the target log level to indicate no
> logging.
>     >       */
>     > -   // private static var NONE:int = int.MAX_VALUE;
>     > +    private static var NONE:int = int.MAX_VALUE;
>     >
>     >      /**
>     >       *  @private
>     >       *  The most verbose supported log level among registered
> targets.
>     >       */
>     > -  //  private static var _targetLevel:int = NONE;
>     > +    private static var _targetLevel:int = NONE;
>     >          // Initialize target level to a value out of range.
>     >
>     >      /**
>     > @@ -128,7 +130,7 @@ public class Log
>     >       *  Array of targets that should be searched any time
>     >       *  a new logger is created.
>     >       */
>     > -   // private static var _targets:Array = [];
>     > +    private static var _targets:Array = [];
>     >
>     >         /**
>     >          *  @private
>     > @@ -137,7 +139,7 @@ public class Log
>     >          *  not at static initialization time, in order to ensure
>     >          *  that the Singleton registry has already been initialized.
>     >          */
>     > -       //private static var _resourceManager:IResourceManager;
>     > +       private static var _resourceManager:IResourceManager;
>     >
>     >         /**
>     >          *  @private
>     > @@ -146,13 +148,13 @@ public class Log
>     >       *  This is a singleton instance which implements
>     >       *  the IResourceManager interface.
>     >          */
>     > -       /* private static function get
> resourceManager():IResourceManager
>     > +       private static function get
> resourceManager():IResourceManager
>     >         {
>     >                 if (!_resourceManager)
>     >                         _resourceManager =
> ResourceManager.getInstance();
>     >
>     >                 return _resourceManager;
>     > -       } */
>     > +       }
>     >
>     >
>     >
> //--------------------------------------------------------------------------
>     >      //
>     > @@ -169,12 +171,12 @@ public class Log
>     >       *  @langversion 3.0
>     >       *  @playerversion Flash 9
>     >       *  @playerversion AIR 1.1
>     > -     *  @productversion Royale 0.9.3
>     > +     *  @productversion Flex 3
>     >       */
>     > -   /*  public static function isFatal():Boolean
>     > +    public static function isFatal():Boolean
>     >      {
>     >          return (_targetLevel <= LogEventLevel.FATAL) ? true : false;
>     > -    } */
>     > +    }
>     >
>     >      /**
>     >       *  Indicates whether an error level log event will be
> processed by a
>     > @@ -185,12 +187,12 @@ public class Log
>     >       *  @langversion 3.0
>     >       *  @playerversion Flash 9
>     >       *  @playerversion AIR 1.1
>     > -     *  @productversion Royale 0.9.3
>     > +     *  @productversion Flex 3
>     >       */
>     > -   /*  public static function isError():Boolean
>     > +    public static function isError():Boolean
>     >      {
>     >          return (_targetLevel <= LogEventLevel.ERROR) ? true : false;
>     > -    } */
>     > +    }
>     >
>     >      /**
>     >       *  Indicates whether a warn level log event will be processed
> by a
>     > @@ -201,12 +203,12 @@ public class Log
>     >       *  @langversion 3.0
>     >       *  @playerversion Flash 9
>     >       *  @playerversion AIR 1.1
>     > -     *  @productversion Royale 0.9.3
>     > +     *  @productversion Flex 3
>     >       */
>     > -    /* public static function isWarn():Boolean
>     > +    public static function isWarn():Boolean
>     >      {
>     >          return (_targetLevel <= LogEventLevel.WARN) ? true : false;
>     > -    } */
>     > +    }
>     >
>     >      /**
>     >       *  Indicates whether an info level log event will be processed
> by a
>     > @@ -217,12 +219,12 @@ public class Log
>     >       *  @langversion 3.0
>     >       *  @playerversion Flash 9
>     >       *  @playerversion AIR 1.1
>     > -     *  @productversion Royale 0.9.3
>     > +     *  @productversion Flex 3
>     >       */
>     > -   /*  public static function isInfo():Boolean
>     > +    public static function isInfo():Boolean
>     >      {
>     >          return (_targetLevel <= LogEventLevel.INFO) ? true : false;
>     > -    } */
>     > +    }
>     >
>     >      /**
>     >       *  Indicates whether a debug level log event will be processed
> by a
>     > @@ -233,12 +235,12 @@ public class Log
>     >       *  @langversion 3.0
>     >       *  @playerversion Flash 9
>     >       *  @playerversion AIR 1.1
>     > -     *  @productversion Royale 0.9.3
>     > +     *  @productversion Flex 3
>     >



-- 
Carlos Rovira
http://about.me/carlosrovira

Reply via email to