Archived

This forum has been archived. Please start a new discussion on GitHub.

General IcePatch Questions

Hi Again,

Well we are currently using Ice, IceBox, IcePack, IceStorm, and Freeze successfully on both Win2K and Solaris using both Java and C++. Ice has been a great tool for us. Thanks for all your help and great documentation.

Now we are investigating IcePatch. I have read the 1.4 IcePatch section and have some more questions:

1) When will support for the Java API be out?

2) The manual mentions support for an application to patch itself and this is exactly what we want to do. However, I am not quite sure how to go about this even after reading the docs. Are there demos that show how to do this or any IcePatch example programs for that matter yet? Didn't notice any in 1.4 install.

3) There is a way to do periodic updates, but it also be nice to be able to give specific times for updates to occur. Wondering if this is on the radar for you guys?

4) When patching an application, is there a way to inquire if updates are needed without actually getting those updates so we can give the user the option of updating the application or not? Does the getTotal() method tell us how many bytes would be downloaded to patch the application?

Thanks again,

Brian

Comments

  • mes
    mes California
    Re: General IcePatch Questions

    Hi Brian,
    Originally posted by brian
    1) When will support for the Java API be out?
    I'm not sure what you mean. We're not currently including the IcePatch-generated code in Ice.jar, but you could easily translate the IcePatch Slice files yourself if you need them.
    2) The manual mentions support for an application to patch itself and this is exactly what we want to do. However, I am not quite sure how to go about this even after reading the docs. Are there demos that show how to do this or any IcePatch example programs for that matter yet? Didn't notice any in 1.4 install.
    The IcePatch client that we provide is a command-line utility for patching a directory of files. An application that wishes to patch itself can make use of the IcePatch interfaces to do so, using the IcePatch client as an example. However, this is out of the scope of the IcePatch implementation. Also note that there are technical issues to be aware of, such as attempting to replace an executable while it is running.

    I know that it's possible to use IcePatch in this way, because the MutableRealms guys have done it for Wish, but I'm not familiar with the technical details of their implementation.
    3) There is a way to do periodic updates, but it also be nice to be able to give specific times for updates to occur. Wondering if this is on the radar for you guys?
    If you are using a custom patcher based on IcePatch, you can do whatever scheduling you wish. The IcePatch client doesn't support any form of scheduling.
    4) When patching an application, is there a way to inquire if updates are needed without actually getting those updates so we can give the user the option of updating the application or not? Does the getTotal() method tell us how many bytes would be downloaded to patch the application?
    Yes (to both questions). The MD5 checksum calculated for the client's top-level patch directory can be compared against that of the server in order to make a quick determination of whether patching is necessary. And the getTotal operation determines how much the client must download in order to match the server's configuration.

    Take care,
    - Mark
  • I'm not sure what you mean. We're not currently including the IcePatch-generated code in Ice.jar, but you could easily translate the IcePatch Slice files yourself if you need them.

    I ask because the manual only makes explicit mention of C++ for IcePatch API unlike for other components where it shows both C++ and Java examples and the Slice-to-Java is done automatically in the Installation. Does this imply that no underlying implementation exists in IcePatch for Java as it does for C++? I know I'm missing something obvious here.

    Brian
  • When somebody gets the chance, could you please answer the question asked in our last post.

    Thanks,

    Brian
  • mes
    mes California
    Sorry Brian, I didn't notice your reply.

    You are correct, there isn't a Java implementation of the client-side IcePatch utility API as there is in C++. That's not to say that one couldn't be written, we just didn't have a need for it. The other impediment is the lack of bzip2 support in Java, although I'm sure an implementation could be found somewhere.

    Take care,
    - Mark
  • THanks Mark,

    Unless I hear otherwise, we'll assume there is no immediate plan to implement client-side IcePatch in Java and we'll go forward under that assumption.

    Thanks again for your help,

    Brian