Questions on offline-allowed

Hey guys,
Our application needs to have the ability to work offline. Hence i put the <offline-allowed/> element in the jnlp file.
However I was seeing some cases, where I was not getting the latest version of the application even while online.
The web start developer docs say :
If offline-allowed is specified, Java Web Start will also check to see if an update is available. However, if the application is already downloaded the check will timeout after a few seconds, in which case the cached application will be launched instead. Given a reasonable fast server connection, the lastest version of the application will usually be run, but it is not guaranteed. The application, however, can be run offline.
Is there any way to guarantee that the latest version of the application is downloaded if the user is online ? Writing an application that clears the cache possibly ?
What experiences have y'all had with compatability problems with different versions of the app on the users machine and on the server ?
Thanks

The problem is the <offline-allowed> is overloaded.
w/o it a program will wait infinately for the download host to determine if there is an update. (this can greatly slow down launching, even when online and there is no update available)
with <offline-allowed>, Java Web Start still dosn't really know if it is being run offline or online (unless launched with arg "-offline" which will not check for update at all). In this case it will check for finite amount of time (in 1.4.2 is 1.5 seconds). If it can't determine in that much time if there is an update, it will launch from cache, and continue to check in background.
in 1.4.2, you can put in deployment.properties the value:
deployment.javaws.forceUpdate=true
this will cause all apps to never timeout checking for updates (assuming not launched with "-offline")
or you can increese the timeout with:
deployment.javaws.updateTimeout=5000 (this would change from 1.5 to 5 seconds
unfortunately you can only do this on the indivual clients.
/Dietz

Similar Messages

  • Offline allowed - Perplexed

    I am using JWS 1.4.2 and the question pertains to the usage of
    <offline-allowed/> tag.
    The requirements for the project are quite straight forward. First time
    install of the application and download of updates if available.
    Our application will be deployed on about 100 workstations(PC's) and
    under no circumstance can we risk that few of the workstations have
    older application and few have latest updated version when production fixes are implemented. So if an update
    is available either it is downloaded on all workstations or none.
    In light of the above, what is the recommdentation about usage of
    <offline-allowed> tag in the JNLP file.
    I have researched the Sun forums it says that if using
    <offline-allowed> the update is ot guarenteed and further if this tag is ommitted than the JWS may hang forever checking for updates.
    (http://forum.java.sun.com/thread.jspa?forumID=38&threadID=452567)
    Kindly suggest for my requirements should I be using the tag in JNLP or not.
    Looking forward for Andy to come to my rescue.

    The way offline-allowed is supposed to work is that the application will not run if JavaWS can't connect to the server. What happens is a dialog is displayed saying the app won't run.
    This is not hung, it's just waiting for the user to acknowledge it. There was a problem in 1.4.2 with some of the modal dialog. The problem was that dialogs that we modal were not being brought to the front correctly. Sometimes the dialog would get completely hidden by another JavaWS window. The app would then seem to be hung. I can't remember if this dialog was one of them or not. Anyway, that bug is fixed.
    The best way to find out how your app will behave is to run it once, so you have a shortcut, then just unplug your network cable. ;-)
    Mike.

  • If I include offline-allowed  then creation of shortcuts will be disabled?

    Hi,
    I noticed that if in a JNLP file I included the element <offline-allowed/> element, then in my JWS cache viewer the "install shortcuts" function would be disabled (grayed out).  I had to remove this element to regain that function.  This was true no matter I set the other element attribute online for the shortcut element to be "true" or "false".
    I was using JRE/JDK 1.6.0_03 (build 1.6.0_03-b05)
    Clement
    Here are the snippet of my code that did not work (i.e. no shortcut function)
    <jnlp spec="1.0+"
          codebase="...">
       <information>
          <title>Some GUI Client</title>
          <vendor>Some company</vendor>
          <description>Some product
          </description>
          <homepage href="http://www.company.com"/>
          <description kind="short">Some Client</description>
          <icon kind="splash" href="../images/JWS-splash.jpg"/>
          <icon href="../images/JWS-icon.64x64.gif"/>
          <offline-allowed>
          <shortcut online="false">
            <desktop/>
            <menu submenu="Some Product"/>
          </shortcut>
       </information>
       <resources>... Here is the snippet of my code that worked (i.e. shortcut function allowed). Note that if I set online="true" the test result was the same.
    <jnlp spec="1.0+"
          codebase="...">
       <information>
          <title>Some GUI Client</title>
          <vendor>Some company</vendor>
          <description>Some product
          </description>
          <homepage href="http://www.company.com"/>
          <description kind="short">Some Client</description>
          <icon kind="splash" href="../images/JWS-splash.jpg"/>
          <icon href="../images/JWS-icon.64x64.gif"/>
          <shortcut online="false">
            <desktop/>
            <menu submenu="Some Product"/>
          </shortcut>
       </information>
       <resources>
         ...

    Hi,
    I double checked my typing. I retested and made sure that <offline-allowed/> is ended correctly with the "/>" but still I could not install shortcut. I must take out that line to get back my option of "install shortcuts".
    However, now I've found a workaround. I omit the (trouble-making) line of <offline-allowed/> but turn the online attribute of the shortcut element to "false". That is
          <shortcut online="false">
            <desktop/>
            <menu submenu="Some GUI"/>
          </shortcut>And this would work (i.e. I can install shortcuts)
    If I am not missing something, that I believe there may be a bug introduced very recently. I am using JRE/JDK of 1.6.0 (build 1.6.0_03-b05)
    Thanks!
    Clement

  • offline-allowed/ is not interpreted

    Hello,
    I've tried to deploy an application with JWS, which worked fine so far. I did NOT specify the <offline-allowed/> element within the <information> tag, anyway, JWS starts the application even if I stop the server and pull the network cable out.
    But what I actually want is that JWS refuses to start the application when no connection to the originating server is available.
    Could anyone give me a hint?
    Thanks, Rod.

    What version of Java Web Start are you running. ?1.4.2_05
    I think, since version 1.4.2, if network is disabled
    and app has no <offline-allowed> tag, Web Start will
    wait forever at the Download Window checking for
    updates.On my box it just starts, no matter online or offline.

  • Question about operations allowed in methods of stateless and stateful bean

    Hello,
    Can anyone tell me why ejbRemove and ejbCreate are allowed entreprise beans and resource manager access in stateful session beans and not in stateless session beans?
    Thanks in advance,
    Julien Martin.

    Salut Julien,
    Can anyone tell me why ejbRemove and ejbCreate are
    allowed entreprise beans and resource manager access
    in stateful session beans and not in stateless session
    beans?I'm not sure I fully understand your question, but here is some information that may answer it.
    The user is the one who creates and removes a stateful session bean. The container is the one who creates and removes a stateless session bean. So the user can pass any parameters to the create of a SFSB because he theorically knows what to pass. The container doesn't, and doesn't want to. It just wants to create SLSB to pool them, but it doesn't pool SFSB.
    Maybe it doesn't answer your question. Can you reformulate?
    Kexkey

  • SCCM Questions about offline clients

    All,
    I wanted to provide some background on a project we are working on and provide some questions that hopefully someone can  help answer.
    First I wanted to make note that as part of the requirements for this project we are going to have SCCM clients deployed at various locations offsite from our primary SCCM server and these SCCM clients will have only intermittent network connectivity back
    to our primary SCCM server. During the times that these clients are lacking connectivity we will need the ability to do multiple manual hardware inventories of the clients with the expectation that once connectivity is resumed, ALL of the inventories taken
    will report back to the primary SCCM server. Additionally, during the time that network connectivity is lacking we will need to be able to run SCCM reports regarding these clients local to the clients themselves (IE at the offsite location which won't have
    network access to the primary SCCM server.)
    Our proposed solution to these requirements was that we planned to provide the offsite location with a SCCM secondary site. The idea being that while network connectivity to the primary server was down the clients would continue to report their inventory
    data to the secondary site and reports could still be run from the secondary site as well. Once network connectivity was resumed the secondary site would synchronize with the primary site and provide the primary site with all the missing hardware inventories.
    I have since done further research and believe there are some flaws with this solution:
    I am reading that secondary sites do not actually store inventory data in a local database like primary sites do.
    I am reading that the “reporting services point” is not available on secondary sites, thus limiting our ability to run reports while network connectivity to the primary site is down.
    With this I have a few questions:
    How many inventories does the client save locally to the machine? Does it save all inventories triggered since the last communication with the server, or does it only save and transmit the last inventory that was collected prior to network communication
    being restored?
    If it only transmits the last inventory collected, does the idea of having a secondary site work for storing the multiple inventories that we need to collect while network connectivity to the primary server is lacking, or is it true that secondary sites
    do not store inventories in a local database?
    Finally, if secondary sites DO save inventories locally, but we are NOT able to install the “reporting services point,” will we be able to get around not being able to run the default SCCM reports by instead running custom SQL reports directly from the
    SQL Server installed on the secondary site?
    Thank you for your time,
    Ryan

    Well, this is kind of a complicated project and I am not going to lie I know we are asking to use SCCM in a way that it was not designed to be used.
    Basically these clients are training machines that will be reconfigured potentially several times a day. Essentially when a program runs that reconfigures the machine it will trigger a hardware inventory. Custom information about the configuration will be
    saved in custom WMI classes that we have created which will be inventoried  by SCCM. We need the ability for if the customer says "I had a problem at 9am" for us to have them run a report that tells us which configuration was in place at 9am.
    Because of this requirement there may be multiple hardware inventories taken in a single day.
    Most of these devices will go MANY months between having networking connectivity back to our primary site. To be honest though some of these devices will be at locations in which they may need to be managed for 15-20 years without EVER having network connectivity
    back to the primary site. The idea for these cases was that the secondary site located with the clients would store the inventories and at regular intervals we will have a SQL expert manually export the SQL data to a CD from the secondary site and re-import
    it to the primary site. This is how the primary site will get updated without ever having network connectivity to the secondary site.
    For all of this to work it is essential that the secondary site store the inventories in a local database. I am just not clear if that is how this works or not. It is also essential we can run reports for the secondary site. I am a little more clear that
    the "reporting services point" is not installable on the secondary site; however, my thought is the machine still has SQL installed and if it stores the hardware inventories locally we may still be able to use custom SSRS reports to extract the data.

  • Question on Offline Game Apps

    HI, I am new to all of this, just purchased an IPhone4 and I want to download some paid apps for solitaire type games but I want to play these games offline not online. I downloaded solitaire game but it can only be played online. Are there offline apps a person can play without racking up the G's on our connection. Thanks

    Any game that would require Game Center, yes, though with most of those you can just opt out of using Game Center and then the game won't need a connection. Some games may require an Internet connection directly, not for Game Center, but paid or free, in and of itself, won't matter. If in doubt, check with the game developer about the need for a network connection.
    Regards.

  • Quick question about BIS - Allowed websites

    Hi,
    I would like to know if all web browsing is free with the BIS or is this limited to social websites like facebook etc.
    if there is some kind of list, would someone be able to provide me with such list. Because I don't want to go and browse the internet like a worm and get a huge data charge at the end of the month.
    If someone could clarify this for me I would very much appreciate it.
    Regards,
    Hendrik Wiese

    Hello,
    All of your wireless services are provided by and controlled by your wireless service provider. What is "free" and what will be extra charge is dependent on the level of service contract you have with them. Only they can answer your question.
    Good luck!
    Occam's Razor nearly always applies when troubleshooting technology issues!
    If anyone has been helpful to you, please show your appreciation by clicking the button inside of their post. Please click here and read, along with the threads to which it links, for helpful information to guide you as you proceed. I always recommend that you treat your BlackBerry like any other computing device, including using a regular backup schedule...click here for an article with instructions.
    Join our BBM Channels
    BSCF General Channel
    PIN: C0001B7B4   Display/Scan Bar Code
    Knowledge Base Updates
    PIN: C0005A9AA   Display/Scan Bar Code

  • Question about the 'Allow Interlaced Processing' option

    Hello, my source is 1920x1080 (non-anamorphic) recorded at 60i. The sequence preset I chose is in the AVCHD folder and is labeled 'AVCHD 1080i30 (60i)'. When I export and select the 'Windows Media' format, there is an option labeled 'Allow Interlaced Processing.' According to the Adobe documentation (http://help.adobe.com/en_US/PremierePro/4.0/WS81733643-B4A6-45c5-ABD7-D5A90EB388FC.html), this should be turned on if the source is interlaced and the output is progressive. Is this option intrinsic to Adobe Premiere or is it merely Premiere surfacing an option of the Windows Media codec? According to the Microsoft documentation (http://www.microsoft.com/windows/windowsmedia/howto/articles/zerotohdsixty.aspx) of this option within Premiere, this option should only be checked if my output is destined for an interlaced display. To sum up, I don't understand exactly what this option is supposed to accomplish and I'd appreciate any feedback or pointers.
    I am using Premiere Pro CS4
    Thank you,
    Matt

    Hi Ann,
       Thanks for the reply!  So, I guess your answer means that the Adobe documentation is wrong because it says "Select this option if the video content in the sequence is interlaced and you are exporting to a noninterlaced medium."  Is my interpretation of your reply correct and should I therefore submit a correction request to Adobe?
    Thanks,
    Mat

  • HT200197 The message tells me my Apple ID has been entered incorrectly period how do I get to the screen that allows me to reenter it period question mark that allows me to reenter the ID

    When I open Apple TV it tells me my ID is incorrect. How do I get to the screen to be able to reenter the correct password?

    Hi, frecklesgardener.  
    Thank you for visiting Apple Support Communities.  
    I understand that you need to adjust the password for your Apple ID on your Apple TV.  Here are the steps that will help you make that adjustment.  
    Apple TV
    Go to Settings > iTunes Store > Apple IDs.
    If you're signed out, choose Add New Apple ID and enter your updated Apple ID or password.
    If you're signed in with your previous Apple ID, choose Sign Out, then choose Add New Apple ID and enter your updated Apple ID or password.
    For Home Sharing, go to Settings > Computers, then turn off Home Sharing and turn it back on.
    What to do after you change your Apple ID email address or password
    -Jason H.  

  • How do I allow offline use AND check for updates if online?

    I am actually not sure if this is a bug or not, as the behavior changed when I updated from 1.6u20 to u21. I have an application in a single JAR, and a JNLP file. I am testing with Windows 7 64-bit (with both the 32- and 64-bit version of the JVM installed, 1.6u20-b06 on both). The application cache is enabled. Here is my JNLP file:
    <?xml version="1.0" encoding="us-ascii"?>
    <jnlp
      spec="6.0+"
      codebase="http://hidden"
      href="Librarian.jnlp">
      <information>
        <title>Librarian</title>
        <vendor>Vendor</vendor>
        <homepage href="http://hidden"/>
        <description>Description.</description>
        <offline-allowed/>
        <shortcut online="false">
          <desktop/>
          <menu submenu="Vendor"/>
        </shortcut>
        <icon href="Librarian.gif"/>
      </information>
      <security>
        <all-permissions/>
      </security>
      <resources>
        <j2se version="1.6+"/>
        <jar href="Librarian.jar" main="true"/>
      </resources>
      <application-desc main-class="com.vendor.apps.librarian.Librarian"/>
    </jnlp>I am observing the following behavior wrt updates and allow-offline:
    When allow-offline is present:
    - JWS does not download updates to the JAR file when the desktop link is clicked.
    - The application can run when I disable the network connection.
    - The "-offline" switch is passed to javaw in the desktop shortcut.
    When allow-offline is not present:
    - JWS does download JAR updates when the desktop link is clicked.
    - The application can not run when I disable the network connection (HostNotFoundException).
    - The "-offline" switch is not passed to javaw in the desktop shortcut.
    What I want to happen is for JWS to check for updates if it can, and if it times out, instead of barfing, just go ahead and run the cached version. What I can get right now is either no updates + offline allowed, or updates + offline disallowed. However, I can obtain the behavior I want if I specify allow-offline then hand-edit the desktop shortcut and remove "-offline":
    When allow-offline is present but I remove "-offline" from the desktop shortcut:
    - JWS does download updates to the JAR file.
    - The application can run when I disable the network connection, after a short timeout.
    Now, I was under the impression that this behavior is the intended behavior of allow-offline: attempt to download update, on error, silently start the cached version instead. This does not seem to be the case. I actually wonder if this is a bug, as with 1.6u20, it seemed to download JAR updates just fine when allow-offline was specified (I had issues when the cache was disabled with 1.6u20, and so I moved to u21).
    How can I make this work the way I want without having to hand edit the desktop shortcut?
    Is this a bug, or am I misconfiguring (OED says this is a real word!) the application?
    Is there something else I have to do to indicate that the JAR is updated besides just uploading a new version to the server?
    It should be noted that I am not doing any web page magic here, I'm testing by simply downloading the JNLP file off the server and opening it. This is actually my first JWS experience and I haven't gotten to properly embedding it in a web page yet. I do not know if this is significant or not.
    Thanks!
    M

    Well, I solved that quick. I've been staring at it for over an hour but it popped out at me as soon as I looked at my JNLP file in my post here (guess it's the red text, heh).
    All I need to do is set online="true" in the shortcut, and also specify allow-offline, and all works exactly as I want it to. :-)
    Perhaps it was a bug in u20 that was causing it to check for updates anyways even with an offline shortcut... I'm not sure, and I don't have it in me to test it any more at the moment.
    Thanks,
    M

  • Java Web Start(the program itself) doesn't start in offline mode

    Hi,
    My Java Web Start doesn't start when my internet connection is not on??? I have a program that needs also offline access so it's crucial to get JWS work without internet connection as well.
    The problem might be in those sun's example programs you can't remove? Maybe the program crashes when trying to get some information for those programs?
    (please read the question well. My problem IS NOT in the .jnlp-files <offline-allowed/>)
    And by the way those sun's demo programs that are supposed to start in offline mode(Internet connection not required) don't start even if you have started them once with the connection on.....
    -orainio

    I have the SAME problem -
    BUT....
    it NEVER works for me (online & offline)
    this stupid logon pops up and after a while disappears and nothing happens!
    got no fire wall, proxy etc...
    (win XP)
    plz helppppppppp

  • ColdFusion 11: custom serialisers. More questions than answers

    G'day:
    I am reposting this from my blog ("ColdFusion 11: custom serialisers. More questions than answers") at the suggestion of Adobe support:
    @dacCfml @ColdFusion Can you post your queries at http://t.co/8UF4uCajTC for all cfclient and mobile queries.— Anit Kumar Panda (@anitkumar85) April 29, 2014
    This particular question is not regarding <cfclient>, hence posting it on the regular forum, not on the mobile-specific one as Anit suggested. I have edited this in places to remove language that will be deemed inappropriate by the censors here. Changes I have made are in [square brackets]. The forums software here has broken some of the styling, but so be it.
    G'day:
    I've been wanting to write an article about the new custom serialiser one can have in ColdFusion 11, but having looked at it I have more questions than I have answers, so I have put it off. But, equally, I have no place to ask the questions, so I'm stymied. So I figured I'd write an article covering my initial questions. Maybe someone can answer then.
    ColdFusion 11 has added the notion of a custom serialiser a website can have (docs: "Support for pluggable serializer and deserializer"). The idea is that whilst Adobe can dictate the serialisation rules for its own data types, it cannot sensibly infer how a CFC instance might get serialised: as each CFC represents a different data "schema", there is no "one size fits all" approach to handling it. So this is where the custom serialiser comes in. Kind of. If it wasn't a bit rubbish. Here's my exploration thusfar.
    One can specify a custom serialiser by adding a setting to Application.cfc:
    component {     this.name = "serialiser01";     this.customSerializer="Serialiser"; }
    In this case the value - Serialiser - is the name of a CFC, eg:
    // Serialiser.cfccomponent {     public function canSerialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return true;     }     public function canDeserialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return true;     }     public function serialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return "SERIALISED";     }     public function deserialize(){         logArgs(args=arguments, from=getFunctionCalledName());         return "DESERIALISED";     }     private function logArgs(required struct args, required string from){         var dumpFile = getDirectoryFromPath(getCurrentTemplatePath()) & "dump_#from#.html";         if (fileExists(dumpFile)){             fileDelete(dumpFile);         }         writeDump(var=args, label=from, output=dumpFile, format="html");     } }
    This CFC needs to implement four methods:
    canSerialize() - indicates whether something can be serialised by the serialiser;
    canDeserialize() - indicates whether something can be deserialised by the serialiser;
    serialize() - the function used to serialise something
    deserialize() - the function used to deserialise something
    I'm being purposely vague on those functions for a reason. I'll get to that.
    The first [issue] in the implementation here is that for the custom serialisation to work, all four of those methods must be implemented in the serisalisation CFC. So common sense would dictate that a way to enforce that would be to require the CFC to implement an interface. That's what interfaces are for. Now I know people will argue the merit of having interfaces in CFML, but I don't really give a [monkey's] about that: CFML has interfaces, and this is what they're for. So when one specifies the serialiser in Application.cfc and it doesn't fulfil the interface requirement, it should error. Right then. When one specifies the inappropriate tool for the job. What instead happens is if the functions are omitted, one will get erratic behaviour in the application, through to outright errors when ColdFusion goes to call the functions and cannot find it. EG: if I have canSerialize() but no serialize() method, CF will error when it comes to serialise something:
    JSON serialization failure: Unable to serialize to JSON.
    Reason : The method serialize was not found in component C:/wwwroot/scribble/shared/git/blogExamples/coldfusion/CF11/customerserialiser/Serialiser .cfc.
    The error occurred inC:/wwwroot/scribble/shared/git/blogExamples/coldfusion/CF11/customerserialiser/testBasic.c fm: line 4
    2 : o = new Basic();
    3 :
    4 : serialised = serializeJson(o);5 : writeDump([serialised]);
    6 :
    Note that the error comes when I go to serialise something, not when ColdFusion is told about the serialiser in the first place. This is just lazy/thoughtless implementation on the part of Adobe. It invites bugs, and is just sloppy.
    The second [issue] follows immediately on from this.
    Given my sample serialiser above, I then run this test code to examine some stuff:
    o = new Basic(); serialised = serializeJson(o); writeDump([serialised]); deserialised = deserializeJson(serialised); writeDump([deserialised]);
    So all I'm doing is using (de)serializeJson() as a baseline to see how the functions work. here's Basic.cfc, btw:
    component { }
    And the test output:
    array
    1
    SERIALISED
    array
    1
    DESERIALISED
    This is as one would expect. OK, so that "works". But now... you'll've noted I am logging the arguments each of the serialisation methods receives, as I got.
    Here's the arguments passed to canSerialize():
    canSerialize - struct
    1
    XML
    My reaction to that is: "[WTH]?" Why is canSerialize() being passed the string "XML" when I'm trying to serialise an object of type Basic.cfc?
    Here's the docs for canSerialize() (from the page I linked to earlier):
    CanSerialize - Returns a boolean value and takes the "Accept Type" of the request as the argument. You can return true if you want the customserialzer to serialize the data to the passed argument type.
    Again, back to "[WTH]?" What's the "Accept type" of the request? And what the hell has the request got to do with a call to serializeJson()? You might think that "Accept type" references some HTTP header or something, but there is no "Accept type" header in the HTTP spec (that I can find: "Hypertext Transfer Protocol -- HTTP/1.1: 14 Header Field Definitions"). There's an "Accept" header (in this case: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"), and other ones like "Accept-Encoding", "Accept-Language"... but none of which contain a value of "XML". Even if there was... how would it be relevant to the question as to whether a Basic.cfc instance can be serialised? Raised as bug: 3750730.
    serialize() gets more sensible arguments:
    serialize - struct
    1
    https://www.blogger.com/nullserialize - component scribble.shared.git.blogExamples.coldfusion.CF11.customerserialiser.Basic
    2
    JSON
    So the first is the object to serialise (which surely should be part of the question canSerialize() is supposed to ask, and the format to serialise to. Cool.
    canDeserialize() is passed this:
    canDeserialize - struct
    1
    JSON
    I guess it's because it's being called from deserializeJson(), so it's legit to expect the input value is indeed JSON. Fair enough. (Note: I'm not actually passing it JSON, but that's beside the point here).
    And deserialize() is passed this:
    deserialize - struct
    1
    SERIALISED
    2
    JSON
    3
    [empty string]
    The first argument is the value to work on, and the second is the type of deserialisation to do. I have no idea what the third argument is for, and it's not mentioned directly or indirectly on that docs page. So dunno what the story is there.
    The next issue isn't a code-oriented one, but an implementation one: how the hell are we expected to work with this?
    The only way to work here is for each function to have a long array of IF/ELSEIF statements which somehow identify each object type that is serialisable, and then return true from canSerialise(), or in the case of serialize(), go ahead and do the serialisation. So this means this one CFC needs to know about everything which can be serialised in the entire application. Talk about a failure in "separation of concerns".
    You know the best way of determining if an object can be seriaslised? Ask it! Don't rely on something else needing to know. This can be achieved very easily in one of two ways:
    Check to see if the object implements a "Serializable" interface, which requires a serialize() method to exist.
    Or simply take the duck-typing approach: if a CFC implements a serialize() method: it can be serialised. By calling that method. Job done.
    Either approach would work fine, keeps things nicely encapsulated, and I see merits in both. And either make far more sense than Adobe's approach. Which is like something from the "OO Failures Special Needs" class.
    Deserialisation is trickier. Because it relies on somehow working out how to deserialise() an object. I'm not sure of the best approach here, but - again - how to deserialise something should be as close to the thing needing deserialisation as possible. IE: something in the serialised data itself which can be used to bootstrap the process.
    This could simply be a matter of specifying a CFC type at a known place in the serialised data. EG: Adobe stipulates that if the serialised data is JSON, and at the top level of the JSON is a key eg: type, and the value is an extant CFC... use that CFC's deserialize() method. Or it could look for an object which contains a type and a method, or whatever. But Adobe can specify a contract there.
    The only place I see a centralised CFC being relevant here is for a mechanism for handling serialised data that is neither a ColdFusion internal type, nor identifiable as above. In this case, perhaps they could provide a mechanism for a serialisation router, which basically has a bunch of routes (if/elseifs if need be) which contains logic as to how to work out how to deserialise the data. But it should not be the actual deserialiser, it should simply have the mechanism to find out how to do it. This is actually pretty much the same in operation as the deserialize() approach in the current implementation, but it doesn't need the canDeserialize() method (it can return false at the end of the routing), and it doesn't need to know about serialising. And also it's not the main mechanism to do the deserialisation, it's just the fall back if the prescribed approach hasn't been used.
    TBH, this still sounds a bit jerry-built, and I'm open for better suggestions. This is probably a well-trod subject in other languages, so it might be worth looking at how the likes of Groovy, Ruby or even PHP (eek!) achieve this.
    There's still another issue with the current approach. And this demonstrates that the Adobe guys don't actually work with either CFML applications or even modern websites. This approach only works for a single, stand-alone website (like how we might have done in 2001). What if I'm not in the business of building websites, but I build applications such as FW/1 or ColdBox or the like? Or any sort of "helper" application. They cannot use the current Adobe implementation of the customserializer. Why? Because the serialisation code needs to be in a website-specific CFC. There's no way for Luis to implement a custom serialiser in ColdBox (for example), and then have it work for someone using ColdBox. Because it relies on either editing Application.cfc to specify a different CFC, or editing the existing customSerializer CFC. Neither of which are very good solutions. This should have been immediately apparent to the Adobe engineer(s) implementing this stuff had they actually had any experience with modern web applications (which generally aren't just a single monolithic site, but an aggregation of various other sub applications). Equally, I know it's not a case of having thought about this and [I'm just missing something], because when I asked them the other day, at first they didn't even get what I was asking, but when I clarified were just like "oh yeah... um... err... yeah, you can't do that. We'll... have to... ah yeah". This has been raised as bug 3750731.
    So I declare the intent here valid, but the implementation to be more alpha- / pre-release- quality, not release-ready.
    Still: it could be easily deprecated and rework fairly easily. I've raised this as bug 3750732.
    Or am I missing something?
    Adam

    Yes, you can easily add additional questions to the Lookup.WebClient.Questions Lookup to allow some additional choices. We have added quite a few additional choices, we have noticed that removing them once people have selected them causes some errors.
    You can also customize the required number of questions to select when each user sets them up as well as the number required to be correct to reset the password, these options are in the System Configuration settings.
    If you need multi-language versions of the questions, you will also need to modify the appropriate language resource file in the xlWebApp.war file to provide the necessary translations for the values entered into the Lookup.

  • What exactly is offline website data and what does it mean to clear it?

    What exactly is offline website data and what does it mean to clear it? For what purposes would I clear offline website data?

    http://forums.mozillazine.org/viewtopic.php?f=38&t=2485643
    Offline Website Data • MozillaZine Forums
    https://answers.yahoo.com/question/index?qid=20090501154657AAdwK5U
    Question about Offline Website Data.? | Yahoo Answers

  • Offline Approval in SRM 5.0

    Dear Experts,
    Can you please clarify below questions regarding offline approvals as i am doing first time this activity.
    1)I have created the shopping cart and shecduled  program RBBP_NOTIFICATION_OFFAPP executed.
    2) approver received an email with approval and Reject links.
    3) I have maintained settings in SO50 as follows.
       Internet Mail     *     ICS     CL_APPOINTMENT_REPLY     1
       Internet Mail     *     ICS     CL_BBP_SMTP_INBOUND_OFFAPP     1
    Once Approver clicks on the approver or reject link then outlook will open another message with sender ""* i am not sure why * is pciking up?
    Can you please let me know apart from above settings is there any thing I have to do....
    I really appreciate if you five me some inputs on this ....
    Thanks
    Ravi

    Daniel,
    Thanks for you quick resopnse Daniel. For time being If i will use this report RSWUWFMLEC and maintained return reply address in my case wf-batchi@***.co.in. When i click either approve or reject outlook opening a new message with above receiptent address wf-batch@***.co.in.
    When i am trying to send reply i am getting failure delivery becuase wf-batch@****.co.in.this mail id doesn't exist.
    1)Is it neecassy that we have to create wf-batch@****.co.in. mail id in  our out look?
    Thanks
    Ravi

Maybe you are looking for

  • Can't get notifications to work

    I have tried and tried but can't get mail and messages or twitter to work on notifications, can anyone help? I have already tried the systems preferences and taken everything out and then ticked everything back in again

  • Is it just me or my iTunes doesn't fit my screen, even after I maximized it???

    As the question I mentioned, does anybody have this issue to on iTunes on Windows??? None of its previous version have this problem btw.

  • Plant Maintenance notification

    Hi all, In notification (PM)  the I-button (blue-white) in the reference object screen area is not there for a one of the notification type. User wants this button is to be there. I checked configuration settings , screen category object for this not

  • Menu buttons only work in frame 1 - AS3

    Hello, smart Flasher-people out there....it would be great if you could help me with the following problem: I have a basic navigation with 5 buttons sitting on my main timeline. In frame 1 (on it's own separate layer), I have placed the AS that calls

  • "cannot create jbcd driver of class " for connect URL 'null'" error

    I am trying to get an application that is currently working fine on a Windows platform to work in a Linux environment. One thing that is different from my setup in Windows, and also one that I have no experience with, is the Linux-Ubuntu default inst