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&data=02%7C01%7Caharui%40adobe.com%7Cf808264cf16a47daae8708d62a476d95%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636742883608520259&sdata=sHQ3FYHCJbXwLPCk6nPg3uq4HfYYyVBV89a2CRREMoE%3D&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&data=02%7C01%7Caharui%40adobe.com%7Cf808264cf16a47daae8708d62a476d95%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636742883608520259&sdata=fUSj%2BX0Ut77g47iVGUA7YvFzb4ms9r01zg7MVOPRM%2Fc%3D&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: []~$^&\/(){}<>+=`!#%?,:;'"@.</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 > */ > - /* public static function isDebug():Boolean > + public static function isDebug():Boolean > { > return (_targetLevel <= LogEventLevel.DEBUG) ? true : false; > - } */ > + } > > /** > * Allows the specified target to begin receiving notification of log > @@ -249,9 +251,9 @@ public class Log > * @langversion 3.0 > * @playerversion Flash 9 > * @playerversion AIR 1.1 > - * @productversion Royale 0.9.3 > + * @productversion Flex 3 > */ > - /* public static function addTarget(target:ILoggingTarget):void > + public static function addTarget(target:ILoggingTarget):void > { > if (target) > { > @@ -280,7 +282,7 @@ public class Log > "logging", "invalidTarget"); > throw new ArgumentError(message); > } > - } */ > + } > > /** > * Stops the specified target from receiving notification of log > @@ -291,9 +293,9 @@ public class Log > * @langversion 3.0 > * @playerversion Flash 9 > * @playerversion AIR 1.1 > - * @productversion Royale 0.9.3 > + * @productversion Flex 3 > */ > - /* public static function removeTarget(target:ILoggingTarget):void > + public static function removeTarget(target:ILoggingTarget):void > { > if (target) > { > @@ -324,7 +326,7 @@ public class Log > "logging", "invalidTarget"); > throw new ArgumentError(message); > } > - } */ > + } > > /** > * Returns the logger associated with the specified category. > @@ -345,18 +347,18 @@ public class Log > * @langversion 3.0 > * @playerversion Flash 9 > * @playerversion AIR 1.1 > - * @productversion Royale 0.9.3 > + * @productversion Flex 3 > */ > public static function getLogger(category:String):ILogger > { > - // checkCategory(category); > + checkCategory(category); > if (!_loggers) > _loggers = []; > > // get the logger for the specified category or create one if it > // doesn't exist > var result:ILogger = _loggers[category]; > - /* if (result == null) > + if (result == null) > { > result = new LogLogger(category); > _loggers[category] = result; > @@ -369,7 +371,7 @@ public class Log > target = ILoggingTarget(_targets[i]); > if (categoryMatchInFilterList(category, target.filters)) > target.addLogger(result); > - } */ > + } > > return result; > } > @@ -383,14 +385,14 @@ public class Log > * @langversion 3.0 > * @playerversion Flash 9 > * @playerversion AIR 1.1 > - * @productversion Royale 0.9.3 > + * @productversion Flex 3 > */ > - /* public static function flush():void > + public static function flush():void > { > _loggers = []; > _targets = []; > _targetLevel = NONE; > - } */ > + } > > /** > * This method checks the specified string value for illegal > characters. > @@ -404,13 +406,13 @@ public class Log > * @langversion 3.0 > * @playerversion Flash 9 > * @playerversion AIR 1.1 > - * @productversion Royale 0.9.3 > + * @productversion Flex 3 > */ > - /* public static function hasIllegalCharacters(value:String):Boolean > + public static function hasIllegalCharacters(value:String):Boolean > { > return > value.search(/[\[\]\~\$\^\&\\(\)\{\}\+\?\/=`!@#%,:;'"<>\s]/) != -1; > } > - */ > + > // private members > /** > * This method checks that the specified category matches any of the > filter > @@ -423,7 +425,7 @@ public class Log > * otherwise. > * @private > */ > - /* private static function categoryMatchInFilterList(category:String, > filters:Array):Boolean > + private static function categoryMatchInFilterList(category:String, > filters:Array):Boolean > { > var result:Boolean = false; > var filter:String; > @@ -444,7 +446,7 @@ public class Log > return true; > } > return false; > - } */ > + } > > /** > * This method will ensure that a valid category string has been > specified. > @@ -454,7 +456,7 @@ public class Log > * []`*~,!#$%^&()]{}+=\|'";?><./@ or be less than 1 > character in length. > * @private > */ > - /* private static function checkCategory(category:String):void > + private static function checkCategory(category:String):void > { > var message:String; > > @@ -471,14 +473,14 @@ public class Log > "logging", "invalidChars"); > throw new InvalidCategoryError(message); > } > - } */ > + } > > /** > * @private > * This method resets the Log's target level to the most verbose log > level > * for the currently registered targets. > */ > - /* private static function resetTargetLevel():void > + private static function resetTargetLevel():void > { > var minLevel:int = NONE; > for (var i:int = 0; i < _targets.length; i++) > @@ -487,7 +489,7 @@ public class Log > minLevel = _targets[i].level; > } > _targetLevel = minLevel; > - } */ > + } > } > > } > diff --git > a/frameworks/projects/MXRoyale/src/main/royale/mx/logging/LogEvent.as > b/frameworks/projects/MXRoyale/src/main/royale/mx/logging/LogEvent.as > new file mode 100644 > index 0000000..47efb76 > --- /dev/null > +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/logging/LogEvent.as > @@ -0,0 +1,230 @@ > > +//////////////////////////////////////////////////////////////////////////////// > +// > +// 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&data=02%7C01%7Caharui%40adobe.com%7Cf808264cf16a47daae8708d62a476d95%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636742883608520259&sdata=fUSj%2BX0Ut77g47iVGUA7YvFzb4ms9r01zg7MVOPRM%2Fc%3D&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 > +{ > + > +import org.apache.royale.events.Event; > + > +/** > + * Represents the log information for a single logging event. > + * The loging system dispatches a single event each time a process > requests > + * information be logged. > + * This event can be captured by any object for storage or formatting. > + * > + * @langversion 3.0 > + * @playerversion Flash 9 > + * @playerversion AIR 1.1 > + * @productversion Flex 3 > + */ > +public class LogEvent extends Event > +{ > +// include "../core/Version.as"; > + > + > //-------------------------------------------------------------------------- > + // > + // Class constants > + // > + > //-------------------------------------------------------------------------- > + > + /** > + * Event type constant; identifies a logging event. > + * > + * @langversion 3.0 > + * @playerversion Flash 9 > + * @playerversion AIR 1.1 > + * @productversion Flex 3 > + */ > + public static const LOG:String = "log"; > + > + > //-------------------------------------------------------------------------- > + // > + // Class methods > + // > + > //-------------------------------------------------------------------------- > + > + /** > + * Returns a string value representing the level specified. > + * > + * @param The level a string is desired for. > + * > + * @return The level specified in English. > + * > + * @langversion 3.0 > + * @playerversion Flash 9 > + * @playerversion AIR 1.1 > + * @productversion Flex 3 > + */ > + public static function getLevelString(value:uint):String > + { > + switch (value) > + { > + case LogEventLevel.INFO: > + { > + return "INFO"; > + } > + > + case LogEventLevel.DEBUG: > + { > + return "DEBUG"; > + } > + > + case LogEventLevel.ERROR: > + { > + return "ERROR"; > + } > + > + case LogEventLevel.WARN: > + { > + return "WARN"; > + } > + > + case LogEventLevel.FATAL: > + { > + return "FATAL"; > + } > + > + case LogEventLevel.ALL: > + { > + return "ALL"; > + } > + } > + > + return "UNKNOWN"; > + } > + > + > //-------------------------------------------------------------------------- > + // > + // Constructor > + // > + > //-------------------------------------------------------------------------- > + > + /** > + * Constructor. > + * > + * @param msg String containing the log data. > + * > + * @param level The level for this log event. > + * 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> > + * > + * <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 > + */ > + public function LogEvent(message:String = "", > + level:int = 0 /* > LogEventLevel.ALL */) > + { > + super(LogEvent.LOG, false, false); > + > + this.message = message; > + this.level = level; > + } > + > + > //-------------------------------------------------------------------------- > + // > + // Properties > + // > + > //-------------------------------------------------------------------------- > + > + //---------------------------------- > + // level > + //---------------------------------- > + > + /** > + * Provides access to the level for this log event. > + * Valid values are: > + * <ul> > + * <li><code>LogEventLogEventLevel.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.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.FATAL</code> designates events that > are very > + * harmful and will eventually lead to application failure.</li> > + * </ul> > + * > + * @langversion 3.0 > + * @playerversion Flash 9 > + * @playerversion AIR 1.1 > + * @productversion Flex 3 > + */ > + public var level:int; > + > + //---------------------------------- > + // message > + //---------------------------------- > + > + /** > + * Provides access to the message that was logged. > + * > + * @langversion 3.0 > + * @playerversion Flash 9 > + * @playerversion AIR 1.1 > + * @productversion Flex 3 > + */ > + public var message:String; > + > + > //-------------------------------------------------------------------------- > + // > + // Overridden methods: Event > + // > + > //-------------------------------------------------------------------------- > + > + /** > + * @private > + */ > + COMPILE::SWF { override } > + public function clone():Event > + { > + return new LogEvent(message, /*type,*/ level); > + } > +} > + > +} > \ No newline at end of file > diff --git > a/frameworks/projects/MXRoyale/src/main/royale/mx/logging/LogEventLevel.as > b/frameworks/projects/MXRoyale/src/main/royale/mx/logging/LogEventLevel.as > index 070d24b..d239059 100644 > --- > a/frameworks/projects/MXRoyale/src/main/royale/mx/logging/LogEventLevel.as > +++ > b/frameworks/projects/MXRoyale/src/main/royale/mx/logging/LogEventLevel.as > @@ -27,19 +27,73 @@ package mx.logging > * @langversion 3.0 > * @playerversion Flash 9 > * @playerversion AIR 1.1 > - * @productversion Royale 0.9.3 > + * @productversion Flex 3 > */ > public final class LogEventLevel > { > -/* include "../core/Version.as"; > - */ > +// include "../core/Version.as"; > + > > //-------------------------------------------------------------------------- > // > // Class constants > // > > //-------------------------------------------------------------------------- > > - > + /** > + * Designates events that are very > + * harmful and will eventually lead to application failure. > + * > + * @langversion 3.0 > + * @playerversion Flash 9 > + * @playerversion AIR 1.1 > + * @productversion Flex 3 > + */ > + public static const FATAL:int = 1000; > + > + /** > + * Designates error events that might > + * still allow the application to continue running. > + * > + * @langversion 3.0 > + * @playerversion Flash 9 > + * @playerversion AIR 1.1 > + * @productversion Flex 3 > + */ > + public static const ERROR:int = 8; > + > + /** > + * Designates events that could be > + * harmful to the application operation. > + * > + * @langversion 3.0 > + * @playerversion Flash 9 > + * @playerversion AIR 1.1 > + * @productversion Flex 3 > + */ > + public static const WARN:int = 6; > + > + /** > + * Designates informational messages that > + * highlight the progress of the application at coarse-grained level. > + * > + * @langversion 3.0 > + * @playerversion Flash 9 > + * @playerversion AIR 1.1 > + * @productversion Flex 3 > + */ > + public static const INFO:int = 4; > + > + /** > + * Designates informational level > + * messages that are fine grained and most helpful when debugging an > + * application. > + * > + * @langversion 3.0 > + * @playerversion Flash 9 > + * @playerversion AIR 1.1 > + * @productversion Flex 3 > + */ > + -- Carlos Rovira https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Cf808264cf16a47daae8708d62a476d95%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636742883608520259&sdata=x8qCW1SzGxFYruAP0sZQAZ2l28syhm%2FD08P%2FndShjk8%3D&reserved=0