In DotNetNuke v 4.6 a new installer system was introduced to handle the new Authentication Systems.  In DotNetNuke 5.0 we have extended the use of the Installer to all extensions, including Modules, Language Packs and Skins.  In previous blogs in this series I introduced the new Extension Installer Manifest, and the 3 components that most developers would be fairly familiar with – Module, Assembly, File, as they are similar to the legacy module manifest.

In this article I will begin to dive deeper into some of the other components, by looking at the Cleanup Component.

For quite a few versions, the core DotNetNuke installer has used the concept of a cleanup file which lists the files and folders that are no longer being used.  This cleanup file is a simple text file eg. 04.09.00.txt is the cleanup file to cleanup files that are no longer used in version 4.9 of the core (see Listing 1).

Listing 1 - The Cleanup file for version 4.9.0 of the DotNetNuke core
' Remove uninstalled module packages that have new versions in distribution. 
Install\Module\Forum_03.20.09_Install.resources 
Install\Module\HTML_04.06.01_Install.zip

More recently, the same concept was introduced into the legacy Module Installer.  Again the convention was used that the cleanup file would be named “version".txt (eg 02.00.00.txt).  This convention required Module developers to include a SqlDataProvider file for each version, regardless of whether there were any changes, as the only way that the legacy installer was aware of a "new" version was whether there was a script file to process.

In the new Extension Installer manifest operations must be explicitly declared, and so there is a Cleanup Component Installer (see Listing 2).

Listing 2 - The Cleanup Component manifest fragment from the BroadcastPollingCachingProvider
   1:  <component type="Cleanup" version="05.00.00">
   2:      <files>
   3:          <file>
   4:              <path>bin</path>
   5:              <name>DotNetNuke.Caching.BroadcastPollingCachingProvider.dll</name>
   6:          </file>
   7:      </files>
   8:  </component>

Those of you who have read the previous blog post will notice that this components schema is very similar to the schema for the File component.  (Actually many of the other component manifest schema are similar to the File component and this is demonstrated by the fact that the Coponent Installer classes sub-class the FileInstaller component).

If you have a lot of files to remove the new Cleanup Component provides an alternative method similar to the legacy method.  If the fileName attribute is specified the Cleanup component uses an external file.

Listing 3 - The Cleanup Components alternate style
   1:  <component type="Cleanup" version="05.00.00" fileName="05.00.00.txt" />

While you can use a cleanup file in the same way as the legacy installer, there is still one difference.  Unlike the legacy installer which uses a file naming convention and requires you to have a script file with the same version number, the Cleanup Component requires you to explicitly reference the file, the name can be anything you want, and there is no requirement for a script file with the same version number.


Posted in: DotNetNuke  Tags: , ,
Comments are closed

 Search Blog

 Adsense

 Calendar

«  September 2010  »
MoTuWeThFrSaSu
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910
View posts in large calendar

 Tags

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010 Thoughts from the Wet Coast