[izpack-users] Windows XP Registry Entries cleaning up

Daniel Silva ddso.01 at gmail.com
Wed Jul 25 13:32:44 CEST 2007


I´ll try debugging then. This appers to be a JDK version problem. I
installed 1.5.0_12 (the older I could find) and didnt work either. JDK
1.6.0_02 was still installed, but I change the JAVA_HOME to point at the
1.5.0_12. I´ll try uninstalling everything before testing again.

On 7/25/07, Bartz, Klaus <Klaus.Bartz at coi.de> wrote:
>
> Hi,
> internal naming convention of logging entries from the installation
> processed in the uninstallation is not the problem. Its are only "symbolic
> names" for logging record type ids. Logging informations will be written
> at installation, therefore the names reflect what was done at
> installation,
> not what have to be performed at uninstall. A key which was CREATED at
> installation has to be removed at uninstall if some additional conditions
> are true (see above). The type of the information record of logging has
> the symbolic name "CREATED_KEY".
> "Roll back" (or rollback) in this context means something a little bit
> similar
> as rollback used in the transaction stuff known from data base computing.
> May be see
> http://en.wikipedia.org/wiki/Transaction_processing
> It has nothing todo with the Cold War...
> http://en.wikipedia.org/wiki/Rollback
> In opposite to DB transactions this cannot be atomic. We cannot lock the
> registry at installation until uninstall. Therefore we have the problem
> that
> values can be changed by a third process. What todo with this entries?
> I have implemented a conservative behavior which do nothing if entries are
> changed in the mean time. Until now IzPack is not really able to support
> maintenance. One point of it is, that uninstall informations will not be
> updated else created new. Therefore the reset to version 1.0 after
> uninstall
> of version 1.1 in the example from Daniel. The right proceeding will be to
> uninstall version 1.0 and install after it version 1.1.
>
>
> I do really not know why the described should not work if access rights
> exist.
> But until now I have not tested with Java version 1.6.0 (or say 6.0). Is
> later on
> the stack...
> It is possible to debug uninstall e.g. with Eclipse. There is a
> description in
> the docu for it.
>
> Cheers
>
> Klaus
>
> > -----Original Message-----
> > From: izpack-users-bounces at lists.berlios.de
> > [mailto:izpack-users-bounces at lists.berlios.de] On Behalf Of fxa
> > Sent: Wednesday, July 25, 2007 12:28 AM
> > To: izpack-users at lists.berlios.de
> > Subject: Re: [izpack-users] Windows XP Registry Entries cleaning up
> >
> >
> >
> > Look at the case for CHANGED_VALUE:  If value has changed it
> > gets replaced with old value, not being deleted.  So if you
> > had version 1.0 and upgrade to 1.1 then on uninstall it will
> > not be removed just reset to version 1.0
> >
> >
> >
> > Daniel Silva-3 wrote:
> > >
> > > Sorry,  but what does it mean "roll entries back"?
> > >
> > > I looked at RegistryImpl (thats probably the one used) and
> > I couldnt
> > > figure out on witch case of the rli.getType() the execution
> > falls. It
> > > should fall on the RegistryLogItem.CREATED_VALUE or
> > > RegistryLogItem.CREATED_KEY case, for those are the ones
> > that delete
> > > entries. But this name, "CREATED", is really strange for a deleting
> > > process.
> > >
> > > Intuitively, it falls on the RegistryLogItem.REMOVED_KEY or
> > > RegistryLogItem.REMOVED_VALUE. But thoses cases actually creates
> > > entries
> > >
> > > the switch clause in the RegistryImpl.rewind() is like this:
> > >
> > > switch (rli.getType())
> > >                 {
> > >                 case RegistryLogItem.CREATED_KEY:
> > >                     deleteKeyIfEmpty(rli.getRoot(), rli.getKey());
> > >                     break;
> > >                 case RegistryLogItem.REMOVED_KEY:
> > >                     createKeyN(rli.getRoot(), rli.getKey());
> > >                     break;
> > >                 case RegistryLogItem.CREATED_VALUE:
> > >                     RegDataContainer currentContents = null;
> > >                     // Delete value only if reg entry exists and is
> > > equal to the stored value.
> > >                     try
> > >                     {
> > >                         currentContents = getValue(rli.getRoot(),
> > > rli.getKey(),
> > > rliValueName);
> > >                     }
> > >                     catch (NativeLibException nle)
> > >                     {
> > >                         break;
> > >                     }
> > >                     if (currentContents.equals(rli.getNewValue()))
> > >                     {
> > >                         deleteValueN(rli.getRoot(), rli.getKey(),
> > > rliValueName);
> > >                     }
> > >                     // TODO: what todo if value has changed?
> > >                     break;
> > >                 case RegistryLogItem.REMOVED_VALUE:
> > >                     // Set old value only if reg entry not exists.
> > >                     try
> > >                     {
> > >                         getValue(rli.getRoot(), rli.getKey(),
> > > rliValueName);
> > >                     }
> > >                     catch (NativeLibException nle)
> > >                     {
> > >                         setValueN(rli.getRoot(), rli.getKey(),
> > > rliValueName,
> > > rli
> > >                                 .getOldValue());
> > >                     }
> > >                     break;
> > >                 case RegistryLogItem.CHANGED_VALUE:
> > >                     // Change to old value only if reg
> > entry exists and
> > > equal to
> > >                     // the
> > >                     // stored value.
> > >                     try
> > >                     {
> > >                         currentContents = getValue(rli.getRoot(),
> > > rli.getKey(),
> > > rliValueName);
> > >                     }
> > >                     catch (NativeLibException nle)
> > >                     {
> > >                         break;
> > >                     }
> > >                     if (currentContents.equals(rli.getNewValue()))
> > >                     {
> > >                         setValueN(rli.getRoot(), rli.getKey(),
> > > rliValueName,
> > > rli
> > >                                 .getOldValue());
> > >                     }
> > >                     break;
> > >                 }
> > >
> > > On 7/24/07, fxa <fxa_01 at yahoo.com> wrote:
> > >>
> > >>
> > >> Actually what is happening is:  it rolls back entries.  Look at
> > >> "rewind" method in registry handler.  If you start with no
> > entries,
> > >> uninstall will delete entries otherwise it roll them back
> > to previous
> > >> settings.
> > >>
> > >>
> > >> Bartz, Klaus wrote:
> > >> >
> > >> > Hi Daniel,
> > >> > I am not secure that I have understand right. Do it now work or
> > >> > not? You can have as much Listener as you need. The
> > RegistryHandler
> > >> > will be used internal in the RegistryInstallerListener,
> > but it can
> > >> > be used also at an other place. Then it is needed
> > >> > to use only one instance of it. But I assume that you do not use
> > >> registry
> > >> > at an other point.
> > >> >
> > >> > I have just tested the IzPack 3.10.2 installation and
> > >> > uninstallation.
> > >> It
> > >> > works as assumed.
> > >> > My box has Windows XP SP2, I use Java SDK 1.5.0_11.
> > >> > If the uninstallation of IzPack after a clean
> > installation (without
> > >> > preexistent keys) will not clean the regkeys I do not know why.
> > >> > Test it on an other computer.
> > >> >
> > >> > Cheers
> > >> >
> > >> > Klaus
> > >> >
> > >> >       -----Original Message-----
> > >> >       From: izpack-users-bounces at lists.berlios.de
> > >> > [mailto:izpack-users-bounces at lists.berlios.de] On Behalf
> > Of Daniel
> > >> Silva
> > >> >       Sent: Tuesday, July 24, 2007 1:48 PM
> > >> >       To: izpack-users at lists.berlios.de
> > >> >       Subject: Re: [izpack-users] Windows XP Registry Entries
> > >> > cleaning
> > >> up
> > >> >
> > >> >
> > >> >       also, I´m using Windows XP as an administrator, so I must
> > >> > have
> > >> all
> > >> the
> > >> > rights to change the registry.
> > >> >
> > >> >
> > >> >       On 7/24/07, Daniel Silva <ddso.01 at gmail.com> wrote:
> > >> >
> > >> >               Hi Klaus, thanks again.
> > >> >
> > >> >               I removed the registries myself after uninstalling.
> > >> Installed again and
> > >> > uninstalled all over. The registries are still not automatically
> > >> removed.
> > >> >
> > >> >               I didnt understand what you said about
> > using a second
> > >> RegistryHandler,
> > >> > but the registries that my installation process creates never
> > >> > change.
> > >> I´m
> > >> > only using one for the installation and one for the
> > uninstallation:
> > >> >
> > >> >
> > >> >               <listener  installer="RegistryInstallerListener"
> > >> >
> > uninstaller="RegistryUninstallerListener">
> > >> >                             <os family="windows"/>
> > >> >               </listener>
> > >> >
> > >> >               I´m using another for the installation, but there´s
> > >> nothing to do with
> > >> > the registry:
> > >> >
> > >> >               <listener
> > >> > installer="SummaryLoggerInstallerListener"/>
> > >> >
> > >> >               Also, I changed the $APP_NAME to $UNINSTALL_NAME in
> > >> RegistrySpec.xml and
> > >> > CheckedHelloPanel started working the way the manual
> > said it would.
> > >> That´s
> > >> > something, all right. Thanks for that clue.
> > >> >
> > >> >
> > >> >
> > >> >               On 7/24/07, Bartz, Klaus
> > <Klaus.Bartz at coi.de > wrote:
> > >> >
> > >> >                       Hi Daniel,
> > >> >                       if you do not use a second RegistryHandler
> > >> > all
> > >> keys (except some with
> > >> > format multi string) have to
> > >> >                       be removed after uninstall, if the have not
> > >> changed after install.
> > >> >                       If the keys exist before installing, they
> > >> > will
> > >> also exist after
> > >> > uninstall. This can be if you have forgotten the dll
> > >> >                       in the uninstaller (keyword "both") in a
> > >> > previos
> > >> test. The uninstaller
> > >> > do not simple remove the entries else
> > >> >                       it changes the entries to the state before
> > >> installation.
> > >> >                       Therefore remove the not automatically
> > >> > removed
> > >> keys after uninstall and
> > >> > test again with install - uninstall.
> > >> >
> > >> >                       This work only with a direct call of the
> > >> uninstaller.jar, not at
> > >> > debugging with e.g. Eclipse. For the last
> > >> >                       see my email to "fxa".
> > >> >
> > >> >                       Cheers
> > >> >
> > >> >                       Klaus
> > >> >
> > >> >                               -----Original Message-----
> > >> >                               From:
> > >> izpack-users-bounces at lists.berlios.de
> > >> > [mailto:izpack-users-bounces at lists.berlios.de] On Behalf
> > Of Daniel
> > >> Silva
> > >> >                               Sent: Monday, July 23, 2007 7:53 PM
> > >> >                               To: izpack-users at lists.berlios.de
> > >> >
> > >> >                               Subject: Re:
> > [izpack-users] Windows
> > >> > XP
> > >> Registry Entries cleaning up
> > >> >
> > >> >
> > >> >
> > >> >                               Hi Klaus, thans for the reply.
> > >> >
> > >> >                               the "registryEntries",
> > >> native\COIOSHelper.dll  and the
> > >> >
> > com\izforge\izpack\event\RegistryUninstallerListener.class are all
> > >> there.
> > >> >                               I really dont know if the key are
> > >> persistent or not. How do I know
> > >> > that?
> > >> >
> > >> >                               Even izPack entries are not erase
> > >> > when I
> > >> uninstall it.
> > >> >
> > >> >
> > >> >
> > >> >                               On 7/23/07, Bartz, Klaus <
> > >> Klaus.Bartz at coi.de > wrote:
> > >> >
> > >> >                                       Hi Daniel,
> > >> >                                       sorry for late
> > answer, but I
> > >> > was
> > >> on a workshop.
> > >> >                                       I do not really know why
> > >> uninstall
> > >> do not work correctly with your
> > >> > program.
> > >> >                                       We use $UNINSTALL_NAME
> > >> > instead of
> > >> $APP_NAME, but this should produce
> > >> > only problems
> > >> >                                       with multiple
> > installations
> > >> > of
> > >> the
> > >> same program.
> > >> >
> > >> >                                       Try with some additional
> > >> > other
> > >> keys, may be with the root HKCU.
> > >> >
> > >> >                                       Are all keys
> > persistent, or
> > >> > only
> > >> some?
> > >> >                                       Look into your
> > >> uninstaller.jar(may be with an unzipper or with jar).
> > >> >                                       Is there a file
> > >> > "registryEntries"
> > >> in the root? It is a java object
> > >> > stream, but with some editors
> > >> >                                       you can look into. If you
> > >> > can, is
> > >> there the entry
> > >> >
> > >> SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\<your APP_NAME>
> > >> > ?
> > >> >                                       Is in the uninstaller
> > >> >
> > >> com\izforge\izpack\event\RegistryUninstallerListener.class
> > >> >                                       and
> > >> >
> > native\COIOSHelper.dll        ?
> > >> >
> > >> >                                       Cheers
> > >> >
> > >> >
> > >> >                                       Klaus
> > >> >
> > >> >
> > >> >                                       -----Original Message-----
> > >> >                                       From:
> > >> izpack-users-bounces at lists.berlios.de
> > >> > [mailto:izpack-users-bounces at lists.berlios.de] On Behalf
> > Of Daniel
> > >> Silva
> > >> >                                       Sent: Monday, July
> > 16, 2007
> > >> > 10:38
> > >> PM
> > >> >                                       To:
> > izpack-users at lists.berlios.de
> > >> >                                       Subject: [izpack-users]
> > >> > Windows
> > >> XP
> > >> Registry Entries cleaning up
> > >> >
> > >> >
> > >> >                                       Hi,
> > >> >
> > >> >                                       I´ve just started using
> > >> > izPack
> > >> for
> > >> my applications and I had some
> > >> > trouble with Windows XP registry entries.
> > >> >
> > >> >                                       I have a
> > InstallSpec.xml file
> > >> > for
> > >> the installer creating procedure
> > >> > with the following lines
> > >> >
> > >> >                                       <?xml version="1.0"
> > >> encoding="UTF-8" standalone="yes" ?>
> > >> >                                       <installation
> > version="1.0">
> > >> >                                          (...)
> > >> >                                          <native type="izpack"
> > >> > name="
> > >> ShellLink.dll"/>
> > >> >                                             <native
> > type="3rdparty"
> > >> name="COIOSHelper.dll" stage="both">
> > >> >                                             <os
> > family="windows"/>
> > >> >                                          </native>
> > >> >                                          (...)
> > >> >                                          <resources>
> > >> >                                             (...)
> > >> >                                             <res
> > >> src="./spec/RegistrySpec.xml" id="RegistrySpec.xml"/>
> > >> >                                             (...)
> > >> >                                          </resources>
> > >> >                                          (...)
> > >> >                                          <listeners>
> > >> >                                             <listener
> > >> installer="SummaryLoggerInstallerListener"/>
> > >> >                                             <listener
> > >> installer="RegistryInstallerListener"
> > >>
> > >> >
> > >> uninstaller="RegistryUninstallerListener">
> > >> >                                                <os
> > family="windows"/>
> > >> >                                             </listener>
> > >> >                                          </listeners>
> > >> >                                          (...)
> > >> >                                       </installation>
> > >> >
> > >> >                                       And a
> > RegistrySpec.xml like
> > >> > this:
> > >> >
> > >> >                                       <?xml version="1.0"
> > >> encoding="UTF-8" standalone="yes" ?>
> > >> >
> > >> >                                       <registry>
> > >> >                                        <pack
> > name="UninstallStuff">
> > >> >                                         <value name="DisplayName"
> > >> >
> > >> >
> > keypath="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$
> > APP_NAME"
> > >> >                                          root="HKLM"
> > >> >                                          string="$APP_NAME"/>
> > >> >                                         <value
> > >> > name="UninstallString"
> > >> >
> > >> >
> > keypath="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$
> > APP_NAME"
> > >> >                                          root="HKLM"
> > >> >
> > >> string=""$JAVA_HOME\bin\javaw.exe"
> > >> -jar
> > >> > "$INSTALL_PATH\Uninstaller\uninstaller.jar""/>
> > >> >                                         <value name="DisplayIcon"
> > >> >
> > >> >
> > keypath="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$
> > APP_NAME"
> > >> >                                          root="HKLM"
> > >>
> > >> >
> > >> string="$INSTALL_PATH\icons\SCarimbo.ico"/>
> > >> >                                         <value name="HelpLink"
> > >> >
> > >> >
> > keypath="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$
> > APP_NAME"
> > >> >                                          root="HKLM"
> > >> >                                          string="$APP_URL"/>
> > >> >                                             </pack>
> > >> >                                       </registry>
> > >> >
> > >> >                                       I'm using
> > CheckedHelloPanel,
> > >> > so
> > >> $APP_NAME is declared. My problem is
> > >> > that when I uninstall the application, the registry
> > entries are not
> > >> > erased. The application is still listed as installed in Control
> > >> > Panel
> > >> ->
> > >> > Add or Remove Programs.
> > >> >
> > >> >                                       Am I doing something wrong?
> > >> >
> > >> >                                       Obs.: I've notice
> > that when I
> > >> uninstall izPack itself, its registry
> > >> > entries are not erased either.
> > >> >                                       --
> > >> >                                       Abraços,
> > >> >                                       Daniel Silva
> > >> >
> > >> >
> > >> >
> > >> _______________________________________________
> > >> >                                       izpack-users mailing list
> > >> >
> > izpack-users at lists.berlios.de
> > >> >
> > >> https://lists.berlios.de/mailman/listinfo/izpack-users
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >                               --
> > >> >                               Abraços,
> > >> >                               Daniel Silva
> > >> >
> > >> >
> > >> >
> > _______________________________________________
> > >> >                       izpack-users mailing list
> > >> >                       izpack-users at lists.berlios.de
> > >> >
> > >> https://lists.berlios.de/mailman/listinfo/izpack-users
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >               --
> > >> >               Abraços,
> > >> >               Daniel Silva
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >       --
> > >> >       Abraços,
> > >> >       Daniel Silva
> > >> >
> > >> >
> > >> > _______________________________________________
> > >> > izpack-users mailing list
> > >> > izpack-users at lists.berlios.de
> > >> > https://lists.berlios.de/mailman/listinfo/izpack-users
> > >> >
> > >> >
> > >>
> > >> --
> > >> View this message in context:
> > >>
> > http://www.nabble.com/Windows-XP-Registry-Entries-cleaning-up-tf40910
> > >> 26.html#a11766768
> > >> Sent from the izpack users mailing list archive at Nabble.com.
> > >>
> > >> _______________________________________________
> > >> izpack-users mailing list
> > >> izpack-users at lists.berlios.de
> > >> https://lists.berlios.de/mailman/listinfo/izpack-users
> > >>
> > >
> > >
> > >
> > > --
> > > Abraços,
> > > Daniel Silva
> > >
> > > _______________________________________________
> > > izpack-users mailing list
> > > izpack-users at lists.berlios.de
> > > https://lists.berlios.de/mailman/listinfo/izpack-users
> > >
> > >
> >
> > --
> > View this message in context:
> > http://www.nabble.com/Windows-XP-Registry-Entries-cleaning-up-
> tf4091026.html#a11773078
> Sent from the izpack users mailing list archive at Nabble.com.
>
> _______________________________________________
> izpack-users mailing list
> izpack-users at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/izpack-users
> _______________________________________________
> izpack-users mailing list
> izpack-users at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/izpack-users
>



-- 
Abraços,
Daniel Silva
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.berlios.de/pipermail/izpack-users/attachments/20070725/2e3e7483/attachment-0001.html 


More information about the izpack-users mailing list