[izpack-users] Windows XP Registry Entries cleaning up

Daniel Silva ddso.01 at gmail.com
Wed Jul 25 16:00:29 CEST 2007


JDK 1.4.2_15 didnt work either. This time I uninstalled every jdk that was
installed in my computer before installing 1.4.2_15. No way izPack used
another jdk to uninstall itself this time.

I´ll have to debug it. There is no other way.


On 7/25/07, Daniel Silva <ddso.01 at gmail.com> wrote:
>
> 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<http://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<http://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




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


More information about the izpack-users mailing list