# Release history

#### 2006-01-30 6.2

Changes:

- You can now order prints straight from JAlbum albums using UK's best rated printing service, PhotoBox. They deliver within a couple of days over Europe
- New "Server mode" Tool added that enables JAlbum to automtically make albums as soon as a change to the file system is detected. This allows JAlbum to run as a server and update albums as soon as new images are uploaded under the image directory.
- JAlbum now warns if unsaved changes has been made when quitting, loading projects or requesting new projects
- The JAlbum title bar now also tells the name of the current project
- Simplified use of the publish section by making JAlbum filter out leading and trailing spaces in connection properties and filter out "ftp://" from the server name field
- Several translations updated. Thank you all translators!
- Chameleon skin updated to v2.80. Thank you Laza!
- BluPlusPlus skin updated to v3.80. Thank you Armond!

Bug fixes:

- Skin hints wasn't read on startup (old one)
- JAlbum didn't respect the style hint in the skin hints file (old one)
- Printing warning dialogs could pop up even if run in console mode
- The rootImageDirectory and rootAlbumDirectory variables weren't properly initialized when running JAlbum Tools from the command line
- Some images with damaged metadata structures could cause JAlbum to stop with this error: "Couldn't find Exif id in APP1 segment" (since 6.1.5). Now JAlbum ignores such errors
- The edit section wasn't properly handling files containing characters that didn't fit in the "System encoding", for instance Chinese characters on an English Windows machine

#### 2005-12-30 6.1.6

Changes:

- Original images are now never copied if "Link to scaled images" linking option is selected
- The "Copy originals" checkbox is now shadowed properly when it is irrelevalt to use it.
- Portuguese translation updated
- FAQ updated

Bug fixes:

- Write protected images couldn't be processed with the 6.1.5 release due to bug in new code to sense image orientation

#### 2005-12-29 6.1.5

Bug fixes:

- Using the smart upload feature on some ftp servers and countries triggered an "Unparseable date" error (since v6.1)
- Generated dead links between some slides if mixing directories and images in a directory (since v6.1)
- Images taken with the Konica Minolta Dynax 5D wasn't automatically oriented properly

#### 2005-12-15 6.1

Changes:

- Makes use of multiple processors in order to enhance album generation speed. On a dual core system the speed gain is close to 100%. On CPUs with hyperthreading, the gain is up to 60%
- JAlbum can now automatically pick thumbnail images to represent folders instead of the folder icon being used as default
- The old FTP component has been replaced with the much improved edtFTPj component. This results in better, faster and more compatible FTP support that hopefully doesn't suffer from the timeout problems that affected the old FTP component (FtpBean)
- The progress reporting while uploading large files has been improved
- The jsch library for the SFTP support has been updated from v0.1.21 to v0.1.24
- All user interface text fields now have undo/redo capability and a popup menu with clipboard functionality (previously one had to use keyboard shortcuts)
- The JPEG quality field is now a slider as some people didn't get that right
- New iterator element for skin designers: ja:fileiterator acts like a ja:coliterator nested within a ja:rowiterator but with the addition of two optional attributes: "dirs" and "nodirs" which includes only directories or plain files
- JAlbum now ignores copying the dreadful hidden and write protected file "Thumbs.db" on Windows XP systems
- Chameleon skin updated. Thank you Laza
- Serbian and Croatian languages added. Thank you Filip Miletic
- Polish, Croatian, Dutch, Finnish, French, German, Norwegian, Ukrainian, Danish, Slovak, Czech and Chinese translations updated. Thank you all translators!

Bug fixes:

- Fixed issue with slow uploads to certain ftp servers under Java 1.5. This is caused by a bug in Java 1.5 that causes unneccesary reverse DNS lookups to occur.
- If running out of memory while rendering thumbnail images for the Edit section, the thumbnail renderer would stop. Now it retries
- The "Experience" skin wouldn't generate correct text under index page thumbnails with JAlbum v6.0
- The "Simple" skin wouldn't generate pages if a directory only contained subdirectories
- Images with incorrect EXIF dates (00:00:00) would cause the edit section to fail (NullPointerException)
- Fixed old navigation button bug in Colorful skin (index page navigation buttons showing even if only one index page)
- Fixed small Danish translation error
- Fixed small issue with Experience skin (null pointer exception)

#### 2005-11-02 6.0

Changes:

- A brand new image management section with a visual Explorer-like user interface. Stuff you can do now include:
  - Use drag and drop to visually arrange images
  - Arrange images in predefined ways per folder (camera date, file date, file name)
  - Use rubberband selection and keyboard selection (control/shift) to select multiple images.
  - Exclude images you don't want included in an album without deleting them from disk
  - Permanently delete images
  - Edit properties on images and folders
  - Rename images and folders
  - Run slide shows
  - Set images to indicate album folders instead of using folder icons
  - Rotate images safely and losslessly (only adjusts an image orientation flag)
- New stylish icons and appearance thanks to the Alloy look and feel from Incors!
- Supports several new file formats like TIFF, BMP and JPEG 2000 through the Java Advanced Imaging Image I/O Tools plugin from Sun
- Album folders can now be represented by a thumbnail image instead of the folder icon. Previously this was a feature of some skins, now this functionality is added to JAlbum itself
- Custom album titles and descriptions can now be set per album folder from the user interface
- Reads and writes progressive JPEG images
- JAlbum now auto senses the EXIF/TIFF image orientation info stored by cameras in JPEG images and rotates images accordingly. Note, only generated images are rotated, your originals are kept untouched. JAlbum is also smart enough to not further rotate already rotated images with incorrect image orientation info.
- The EXIF extraction library has been updated to v2.3, meaning a lot of fixes for common problems and support for more camera models. Thank you Drew! One notable improvement is support for reading Windows File Properties (title, subject, author, keywords and comment)
- sftp added. Thank you Joost den Boer for this integration
- JAlbum now recovers from errors caused by images that have corrupt EXIF structures (corrupt images may be ignored though)
- The user interface is now more responsive when presssing "Make album" / "Rebuild all"
- Tools can now be executed from the command line. Use the -runTool switch
- You can now upload albums from the command line. Use the -uploadAll or -smartUpload switches
- JAlbum now includes files found in a directory even if they are not present in an albumfiles.txt file, unless the filenames are prepended with a dash (-). This should remove the confusion caused when adding images to a directory and not seeing those presented in the updated album. This was previously the case if an albumfiles.txt file was present in the image directory. Note however that the albumfiles.txt file no longer needs to be edited manually. It is handled by JAlbum's new graphical album explorer interface.
- Updated installer (InstallAnywhere by Macrovision) from v6.1 to v7.1. This will hopefully solve problems installing JAlbum on some platforms.
- Bundled Chameleon skin (former DarkOSX) which comes in many stylish styles. Thank you Laza!
- Bundled skin BluPlusPlus updated to v3.7. Thank you Armond
- Bundled skin ExhibitPlus updated to v1.4a. Thank you Mark
- The ignore pattern is now case insensitive
- Turkish translation added. Thank you Bahadır Yigit and Andreas Berger
- Croatian translation added. Thank you Ivo

Bug fixes:

- Several skins used to check for existence of flash info in order to figure out if images contained EXIF information. This wasn't safe. Checks are now done on camera make instead
- Would throw a ClassCastException if encountering images with unexpected EXIF formatting (aperture value encoded as decimal string instead of rational number)
- The Experience skin would give a scripting error if encountering images with weird EXIF originalDate setting

#### 2005-06-09 5.2.2

Changes:

- Spanish translation updated
- Simplified Chinese translation added. Thank you Ning Zhou
- Traditional Chinese translation added. Thank you Je Yi Hsu and Ning Zhou
- Bundled skin BluPlusPlus updated to v3.5
- Bundled skin XP updated to v1.28

Bug fixes:

- Making albums including non-image files with image linking set to "Link to scaled images only" would not include the non-image files properly. Now non-image files are always copied to the output directory if image linking is set to "Link to scaled images only" (Long standing bug)

#### 2005-04-02 5.2

Changes:

- Updates to large albums now significantly faster as JAlbum can skip subdirectories that haven't been touched since the last album build
- Memory handling improved: Variables not specific to an individual image are shared among images (previously copies were kept). The new memory handling is both a memory saver and a speed-up
- Skin template files are now processed faster due to rewritten way of expanding $variables. Expect between 30% and 100% speed increase depending on skin due to these two changes
- Skin developers that want to accelerate skins that rely heavily on scripting may compile the scripts into Java classes. In order to minimize changes to the existing code, one may subclass the new CompiledScript convenience class that provides direct access to most of the neccesary JAlbum variables
- Skin specific user interface controls are no longer synchronized with user defined variables in order not to bloat the user variable list with settings that can as well be set in the skin specific user interface. Skin writers: You may now prefix skin hints that apply to your UI controls with "skin." instead of "user." in order not to bloat the user variables list
- New "JSP 2.0 style" syntax for inserting simple expressions. Expressions like <%= meta.get("Flash") %> can now be written as ${meta.Flash}. In the future, this syntax may also be accelerated further compared to standard scriptlet syntax
- Comments that are not to show in generated code can now be written using <%-- jsp comment syntax --%>
- Improved error reporting for scripting errors. A full stack trace is now presented if errors occur in Java code called from scripts
- Made date interpretation more robust: The variables fileDate and originalDate are no longer String types but FormattedDate types. This will require a slight modification to skins that assume the String type like older BluPlusPlus skins
- Scripts may now call window.ui2Engine() to synchronize the JAlbum engine with the user interface
- Korean translation added. Thank you Jae Sung Jung
- Norwegian translation added. Thank you Stein Kristiansen
- Ukrainian translation added. Thank you Serhij Dubyk <il>Updated French, Polish, German, Hungarian and Slovak translations. Thank you translators!
- Made JAlbum recognize "mp4" files as media files too
- Again recognizes EXIF 2.2 tags (Thanks to Klaus A. Brunner, Austria)
- Updated UI synchronization classes (BeanBinder and PropertyBinder) to properly synchronize user interfaces that are implemented using class hierarchies
- Added the "not" attribute as a convenience to the ja:if tag
- Added missing progress info text for index page processing (used to just read "Processing image metadata")
- Searches skin specific texts in the "texts" directory of a skin prior to searching in the root skin directory (was previously the other way around)
- Added a "currentFile" variable to indicate the currently processed file. (Gives more clear code than writing files[imageNum-1] )
- Bundled the popular "Simple" skin.
- Updated bundled skin BluPlusPlus to v3.1. There are too many enhancements to list here. Just have a peek at the BluPlusPlus frame gallery and you'll see one of them
- Updated bundled skin ExhibitPlus. to v1.4. A lot of enhancements here too
- Defaults to using Firefox as browser on Linux instead of Netscape

Bug fixes:

- EXIF comments encoded in Unicode sometimes lost their last character
- The skin specific plugins folder wasn't taken into account when executing the onload.bsh script
- Code loaded from plugins directories would only find local classes and classes loaded by the system class loader. This would cause trouble running JAlbum in environments with custom class loaders (like web servers for instance)
- Didn't recognize .jpe as a valid JPEG file extension.
- The getModifiedSize() method of image filters that implement the ModifiesSize interface wasn't passed the full range of context variables (as compared to the filter() method
- The sharpen and blur filters could produce borders around images
- Calling processTemplateFile(source, dest) from init.bsh wouldn't expand the currently defined variables
- Skin specific fields weren't saved to a project if they were disabled.
- Relative paths to original files weren't constructed correctly if the image directory path started like the output path without being a subdirectory thereof. (For instence the image directory being "C:\album original" and the output directory being "C:\album")
- Loading a project containing skin specific drop list settings that no longer exist in a drop list could cause NullPointerException
- JAlbum didn't respect custom drop list settings to be loaded from a project (say for instance a thumbnail size of "88x88")
- The totalImages variable wasn't available on index pages
- The Family skin sometimes created broken links between folders
- The Experience skin sometimes had problems interpreting dates
- The PropertyBinder class could go in an infinite loop if passed certain component structures.
- PropertyBinder.syncUI() didn't recursively process fields of type JComponentHolder (for instance ControlPanel)

#### 2004-11-06 5.1

Changes:

- Skins may now have their own "plugins" folder for really skin-specific plugins (searched before the main plugins folder)
- Japanese translation added. Thank you Masaki Katakai and Furusawa Hideaki
- Updated Danish, German, Spanish, Czech and Thai translations. Thank you helpful translators!
- Added a sharpening and blurring filter to the list of image filters.
- Image filters that modifies the image size can now signal this by implementing the se.datadosen.jalbum.ModifiesSize interface. JAlbum can then correctly calculate values for the ---Width and ---Height variables. The bundled FixedShapeFilter and XBorderFilter have been updated to implement this interface. The bundled Wedding skin now demonstrates the new simplicity this new scheme has brought to skins.
- Updated bundled skin BluPlusPlus to v2.9. Thanks Armond and co.
- Added two new tutorials to the tutorials section: "Publish an album" and "Integrate an album into an existing web site"

Bug fixes:

- Didn't handle Unicode encoded EXIF comments
- The signup wizard couldn't set the "Web directory" setting
- The FileFilters.hasIcon() API method didn't return true for directories
- International texts added to skins with the $text.xxx system didn't default to the default language if a translation was missing for a particular text string

#### 2004-10-17 5.0.4

Changes:

- Added tool to the Tools menu to calculate the size of the final album (Useful before publishing albums)
- Updated bundled skin "XP" to v1.22. Thank you Anders!
- Removed skin hints that causes confusion from bundled BluPlusPlus skin

Bug fixes:

- Sometimes generated a scripting error when launched from a project file
- Sometimes generated a scripting error on startup and skin loading (missing "Item" class)
- Old skins using the "gifs" directory to hold skin resources caused a NullPointerException error.
- Inspecting the meta object with the <%= meta %> expression was broken.

#### 2004-10-11 5.0.2

Bug fixes:

- JAlbum forgot to respect the web directory setting when creating directories on the remote server.

#### 2004-10-11 5.0.1

Changes:

- JAlbum 5.0 produced icon links for files of text type. This is not suitable for those that uses external text files to store image comments. Recognition of text files has therefore been turned off again. It can however easily be reactivated by editing the "filetypes.xml" file.

Bug fixes:

- The plugins were accidently compiled with Java 1.5 and were therefore not accepted on older versions

#### 2004-10-10 5.0

Changes:

- Publishing images is now simplified with a new wizard for simple web host signup and setting of ftp settings. Web hosting providers: Read how to integrate with JAlbum.
- Multiple FTP settings can now be easily managed with a new "FTP account profile" section.
- Arbitrary non-displayable file types are now supported with icon links. (Previously only a few hardcoded media file types were supported with icons.) JAlbum can now be used as a more general publishing tool than before. Edit the filetypes.xml file to add support for new file types.
- Skins may now completely control the image ordering by installing a custom image orderer class (implementing the Comparator interface). This is done by calling engine.setCustomImageOrdering(). See the API docs for more info.
- Automatically checks for updates on start up. (This doesn't slow down start up and the update itself isn't automatic. The feature can be disabled in the Advanced section)
- JAlbum now delivers more image metadata on request instead of accumulating all metadata for each image. JAlbum should therefore be at least four times more memory conserative for large albums now.
- Bulgarian translation added thanks to Andrey Jivkov
- Spanish traslation updated. Thanks Roberto!
- Updated the bundled XBorderFilter to v0.95 This image filter has an impressive range of capabilities: It can add various borders to images, crop them to various shapes, add shadow effects etc.
- Added a RotationFilter that can rotate images a specified angle.
- Image filters can now be given custom settings per image per image instead of per album. (Done by wrapping them in the PropertySettingFilterWrapper class)
- The ftp uploader now ignores uploading JAlbum project files (security reason as these files may contain ftp passwords)
- JAlbum now includes a Tool to clear all user defined variables
- Bundled new cool skins like "Wedding" and "Family" that show off what can be done with the flexible XBorderFilter and RotationFilter. See samples section.
- Again uses Java 1.4 (if available) on Mac OS X as Apple has released a fix for the preiously broken drag and drop support in Java 1.4 for OS X
- Updated installer (InstallAnywhere by ZeroG) from v5.5 to v6.1. This will hopefully solve the problems installing JAlbum on some platforms.
- Added integration with Mypix.se on-line printing service to the bundled skins. Mypix.se distributes images within Europe faster and to a lower cost than the US-based Shutterfly equivalent. Future integrations are now also possible without the need to adjust existing skins.
- Updated bundled skin "BluPlusPlus" to v2.8 rc2. Thank you PhotoGuy!
- Updated bundled skin "XP" to v1.21. Thank you Anders!

Bug fixes:

- The ftp uploader didn't check if the server supported UTF-8 encoding or not. Will now fall back to ISO-8859-1 encoding if UTF-8 encoding is not supported by the server.
- The ftp uploader ignored files beginning with a dot or underscore when it should have respected the ignore pattern set in the advanced section instead.
- IPTC comments containing just white space (spaces, tabs etc) would take precedence over EXIF comments. Now a comment needs to contain visible text to take precedence over another comment.
- The IO.relativePath method returned "" (the empty string) instead of "." in order to indicate a path to the current directory. This made it risky to construct paths using IO.relativePath as a component when referring to the current directory as such references easily became root references (/ instead of ./)
- Images containing incomplete EXIF information could generate a division by zero error.
- The skinResDirectory variable couldn't be referenced from init.bsh on the first album generation

#### 2004-07-11 4.6

Changes:

- Thumbnails are now smoothly scaled without any noticable speed loss (this option can be deselected). This is done by first scaling down thumbnails quickly to twice the size, and then doing the final scaling smoothly.
- The user may now control where JAlbum searches for image comments (in any of five locations)

Bug fixes:

- JAlbum incorrectly assumed the directory for a list of images presented on an index page to be the directory of the first image in the list. This is usually true (all images on an index page belonging to the same directory), but not if images are gathered from different locations on a hard disk by the use of an "albumfiles.txt" file. Now the "imageDirectory" is where the jalbumfiles.txt file is located.

#### 2004-07-04 4.5

Changes:

- Skin processing is now over 100% faster for advanced skins that make heavy use of scripting (like BluPlusPlus). The speed is gained by not evaluating common code more than once. See the new "once" attribute for the ja:include tag and the new definition scriptlet type (<%! ... %>).
- JAlbum now keep one script interpreter throughout the album generation process.
- The previously hardcoded names for thumbnail and slide directories "thumbs" and "slides" are about to be user configurable. Future versions of JAlbum will also allow prefixes to be set for generated thumbnails and closeup images. Skin developers: Please replace hardcoded paths with calls to engine.getThumbnailDirectory(), engine.getCloseupDirectory(), engine.getSlideDirectory(), engine.getThumbnailPrefix() and engine.getCloseupPrefix() so that your skins won't brake if users change these settings. In this version, these properties are still read-only. Skins that only use the $XXXPath variables (applies to most skins) need not be modified.
- The JAlbum window now has a new "Preferences" tab for environmental settings (program behaviour that doesn't affect the generated album). These settings can be saved as defaults. These are the available options:
  - The preferred language
  - Look And Feel
  - Debug mode (moved from Advanced tab)
  - If to automatically write comments to images
  - If skins are to be allowed to alter JAlbum settings (moved from Main tab)
  - If to show warning dialogs
  - If to allow hints to blink (What a feature! ;-) )
- The advanced tab is now broken down into three sections (main, naming, user variables) to better accomodate new features
- JAlbum now accepts regular expressions to filter out files and directories that should be excluded during album generation. This replaces the previous comma separated list of directories to ignore.
- Skins containing multiple languages may now stuff language files inside a "texts" directory (gives a cleaner file structure than leaving these files in the root of a skin directory)
- Czech translation added. Thank you Pavel. Any Chinese translators out there that wish to help?
- Russian translation added. Thank you Lev and Julian.
- The Horizontal and Vertical skins now also shows the first image on startup instead of a blank page.
- Added a tool that converts filenames to lower case in order to ease publishing to some UNIX servers that convert case
- Bundled skin "BluPlusPlus" updated to v2.5 (No more dependent on Java 1.4)
- Bundled skin "XP" updated to v1.19
- Bundled skin "ExhibitPlus" updated to v1.3
- Bundled the very flexible XBorderFilter image filter by Jens Troeger that allows skins to put a rich variety of frames around images (actually stored within each image)
- The progress dialog time estimate is now more accurate
- The System console window now properly scrolls down as text is being written to it
- JAlbum now also recognizes the "Image Description" EXIF tag written by PS Album as an image comment.

Bug fixes:

- JAlbum would not update generated pages if only a change to the character encoding was made
- The Colorful skin would sometimes draw a broken border around thumbnails on index page (Thanks Bill)
- Shutterfly image printing wouldn't work with image linking set to "Link to originals" (Thanks Mark)
- The Exhibit skin contained a broken link to a support graphic element
- The "XP" skin didn't include the meta charset tag
- Drag and drop is again working on Mac OS X. This as JAlbum again uses Java 1.3 for OS X instead of Java 1.4 which has a bug in the drag and drop support. Note Apple has a fix available on Apple Developer Connection too, should you prefer to run JAlbum on top of Java 1.4 for OS X instead

#### 2004-04-03 4.4

Changes:

- JAlbum may now be run from other directories than its installation directory. This simplifies embedding JAlbum in other applications.
- New command line switch -programDirectory that specifies where to look for JAlbum support directories (if not found in either the current directory or relative to the JAlbum.jar file).
- New command line switch -skinsDirectory that specifies where to look for JAlbum skins.
- Skin user interfaces may now register to listen for "JAlbumEvents" to simplify synchronisation and life cycle management (see API docs for se.datadosen.jalbum.event and the top of the onload.bsh file for the "XP" skin)
- Interactive console window added to simplify debugging skins. The console window captures anything written to System.out and also allows the developer to evaluate BeanShell expressions interactively.
- Results from ftp connection test will appear in a pop up dialogue.
- If a remote directory is missing when pressing "Upload all" or "Smart upload", JAlbum will ask if the directory is to be created. Previously this check was only done when pressing "Test connection"
- "XP" skin updated to better handle browsing on Safari (Mac)

#### 2004-03-26 4.3

Changes:

- Startup time reduced. JAlbum now loads about twice as fast on fast computers.
- Skin styles may now have their own resources directory and preview image. I have modified the bundled "XP" skin to make use of these features. I encourage skin developers to follow this example.
- Maps common IPTC metadata tags (as set by Adobe Photoshop for example) to variables (author, keywords, comment etc).
- Thai language added. Thank you Weerasak Witthawaskul.
- Estonian language added. Thank you Kristian Sägi.
- New skin "Minimal" added. Use this one as template when creating your own skins!
- Bundled skin "BluPlusPlus" updated to v2.3
- Watermarking in "BluPlusPlus" removed as it caused annoyance.
- Bundled skin "XP" updated to v1.14
- Bundled skin "PBase" updated to v2.0
- Stips leading and trailing spaces from ftp publish properties in order to minimise user errors.
- Ignores files starting with _ or . when uploading. (Some ftp servers cannot handle files beginning with a dot.)
- New simpler URL to JAlbum - jalbum.net and a new variable ($generatorUrl) that points to it for skin developers to use.

Bug fixes:

- Uploading files to some ftp servers resulted in a "OPTS UTF-8 not understood" error.
- "XP" skin didn't work with Java 1.3
- Opening web pages from within JAlbum didn't work on some machines.
- Skins missing a texts.properties file would generate a stack trace printout.

#### 2004-01-08 4.2.1

Bug fixes:

- The integrated ftp component (3:rd party code) didn't handle pathnames with non-ASCII characters (èéåäö etc). Now uses UTF-8 encoding meaning full Unicode support.
- The integrated ftp component sometimes generated NullPointerException errors. This has hopefully been taken care of.

#### 2004-01-05 4.2

Changes:

- On Windows: Registers files of type .jap (JAlbum Project file) with JAlbum. JAlbum can now be launched with projects loaded by clicking these files.
- Removed skin hints that could cause annoyance with users, like toggling scaling quality, JPEG quality percent or "Copy originals"
- Italian language added to the XP skin. Thank you Alian Schiavoncini.
- Simplified integration into other Java applications by allowing host applications to disable exit when closing JAlbum window.

#### 2003-12-27 4.1.4

Changes:

- Added 18 image transition effects to the Slide Show skin (works with IE5.5 and up)

Bug fixes:

- Running JAlbum from the command line with the -help option would fail (v4.1.3)
- The page attribute for the ja:include tag ignored scriptlets when searching for include pages in the skin directory and common includes directory (v4.1.3)
- The RiverLayout layout engine used to build skin user interfaces didn't handle more than two left-aligned columns of components (didn't handle multiple tab stops in one row)

#### 2003-12-17 4.1.3

Changes:

- JAlbum skins may now have custom graphical user interfaces! See the "ShowOff skin and skin creation section. Now all the features previously only available for advanced users can be exposed to ordinary users.
- New highly flexible skin "ShowOff" added that also has a graphical user interface which allows custom color selection, custom titles, copyright messages, descriptions, watermarking, font sizes and other goodies to be set.
- Several skins updated to have custom user interfaces and more features, most notably ExhibitPlus 1.2 and BluPlusPlus 2.1
- Integration to Shutterfly image printing service added to several skins. Now your friends can order prints easily as they view your albums.
- Added tool to reset file dates to camera dates for all images under the image directory
- Added tool to automatically rotate images under the image directory by using the camera EXIF rotation info
- The ja:include tag will now also search in the current skin directory and then in the new common "includes" directory after code snippets. This simplifies code sharing for skin developers a great deal.
- The ja:rowiterator element now accepts multiple ja:coliterator elements. This simplifies creation of more advanced skins.
- Slovak and Polish languages added. Thank you translators!
- Dropped generation of JAlbum generator meta tag due to html/xml compatibility issues.

Bug fixes:

- External links to web pages not ending in a directory from JAlbum itself wouldn't work
- Slovak and Polish languages added. Thank you translators!
- Some other minor bug fixes
- Some images could cause the meta object to not appear even though EXIF data did exist
- With the $label variable, directory names containing a dot were truncated

#### 2003-11-24 4.0.4

Changes:

- Updated Italian and Portuguese language files
- Updated BluPlusPlus skin to v1.11

Bug fixes:

- Would ignore existing album directories not containing original images when updating "master indexes".
- MetadataExtractor updated to v2.2.2. Will fix ArrayIndexOutOfBoundsExpeption occuring for some images. Thanks Drew!

#### 2003-11-07 4.0.3

Changes:

- Added Finnish language support. Thank you Markku!

Bug fixes:

- Would break on file names ending in non ASCII characters if URL encode links was turned on

#### 2003-11-06 4.0.2 (language update only)

Changes:

- Added new languages: Italian and Spanish. Thank you translators! JAlbum now talks all major European languages.

#### 2003-11-04 4.0.2

Changes:

- Added new languages: Dutch, Danish, French and Portuguese. Thank you translators!
- Added new 3:rd party skin: ExhibitPlus. Thank you Mark Fyvie!

Bug fixes:

- Didn't ignore the gifs directory when traversing directories after album images (since v4.0.1)

#### 2003-10-31 4.0.1

Changes:

- User may now specify a list of directory names to ignore during processing. Handy for those who make albums out of directory structures generated by digital cameras.
- Added new listFiles() method to the AlbumBean engine to simplify creation of advanced skins, etc. See API doc for more info

#### 2003-10-31 4.0

Changes:

- The JAlbum user interface is now multilingual. Current languages are: English, Swedish, German and Hungarian. More translations to follow if you helpful people out there can spare a couple of hours (check out the "texts" directory)
- Fully dynamic, rewritten, resizable user interface in order to support different languages. JAlbum occupies less desk space now, but can be enlarged if needed.
- Popular 3:rd party skins are now bundled: BluPlusPlus, XP, PBase and Experience. Thank you skin authors!
- Comes with a new multilingual installer.
- JAlbum now has a new tools menu where users can plug in their own extension scripts to do general tasks (like resetting file date to camera date, batch-rotating images etc)
- Added drop boxes for common image and thumbnail sizes.
- Reads and writes comments to external text files in order to speed up the process of adding comments (writing directly to the images is time consuming but still supported).
- Loading a skin with "skin hints" will clear old filter settings. (No more confusion on why getting black and white images...)
- Added option to control if directories are to be ordered before image files
- Replaced the annoying "load skin hints" warning with a checkbox.
- Added keyboard PageUp and PageDown shortcuts to easily move between images while adding comments.
- Improved scripting error reporting.
- Again uses BeanShell2.0 as scripting engine.
- Updated EXIF parsing engine (MetadataExtractor v2.2) meaning better camera data support.
- Defaults to not write UTF-8 as, for example Internet Explorer ignores the "charset" meta attribute when doing local browsing thereby missinterpreting foreign characters.
- Does not write the "UTF-8 signature bytes" anymore (browser compatibility issue). These bytes indicate UTF-8 files according to W3C, but is a too modern standard for many browsers (Mozilla for example) The effect was that three weird looking characters showed up in the beginning of a page.
- Automatically senses UTF-8 and UTF-16 encoded text files (with or without the help of the W3C signature bytes).
- Will not attempt to write to write protected files. (Previously this caused hard-to-understand errors with the write protected hidden "Thumbs.db" file that Windows XP generates)
- The list of skins is always ordered alphabetically now. Only skin directories are listed (i.e. plain files are not listed)
- The list of user defined variables is always ordered alphabetically now.
- The list of styles is filtered to only show .css type files
- Added new "Dates" utility class for skin developers. Please see javadoc for more info.
- Scripts may now abort album generation by throwing a se.datadosen.jalbum.OperationAbortedException
- Better compliance with xhtml when outputting data.

Bug fixes:

- Scroll bars didn't appear on the "Slide show" thumbnail page , even if needed.
- Background image didn't show up on skins having background images like "Polaroid" and "Film" (error in skins)
- Bug fix for Mac OS X 10.2: Clicking view album and edit skin didn't work. Now works, but untested for OS X 10.0 and 10.1
- Bug fix for Mac OS X: UI controls would collide

#### 2003-09-11 3.6.1

Bug fixes:

- v1.3 of BeanShell scripting caused trouble with JAlbum image filters (problem with getClass() command) I have reverted to v1.2 until this is fixed.

#### 2003-09-09 3.6

News:

- Fully supports foreign and multibyte character sets (Russian, Hebrew, Chinese, Korean etc).
- BeanShell scripting is updated to v1.3 with a host of new features.
- Scripting errors should now be easier to interpret and less lengthy.
- JAlbum can now check for updates (see help menu).
- Multilingual skins can be made by using the new $text.key syntax.
- Image ordering has been extended to allow "simple" name ordering in addition to the trying-to-be-smart name ordering that orders the numerical part numerically.
- New variables to simplify scripting: rootImageDirectory, rootOutputDirectory, rootPath and textEncoding.
- The IO.copyDirectoryContent method now also copies subdirectories.
- The generated albumfiles.txt file (for custom image ordering) now uses DOS/Windows line ending (simplifies editing in Windows).
- The AlbumBean.ProcessTemplateFile method is no longer static (respects text encoding set in AlbumBean)
- Standard skins updated to specify text encoding as a meta tag

Bug fixes:

- Writing comments to some JPEG images didn't work. Thanks Dmitriy.
- Changes to user defined variables wouldn't register correctly unless ENTER was pressed.
- Image ordering wasn't correctly set when loading projects under Java 1.4 (v3.5)
- The IO.relativePath method didn't correctly handle some situations.
- The files listed in the edit panel was not limited to those in albumfiles.txt (if such exists)
- The IO.urlEncode method didn't encode #.
- Mac OS X version: Would use MacRoman text encoding instead of ISO-8859-1 which caused problem with characters in the 128-255 range like å ä ö

#### 2003-07-31 3.5

News:

- Allows custom image- and directory ordering.
- Will skip directies not containing valid images or media files (unless they contain directories that contain images or media files etc)
- If an output directory (or directories) does not exist, it will be created.
- Image filters can now be applied before scaling is performed with the new "prescale" filter attribute (this change was applied to init.bsh).
- Added a zoom filter that especially makes small thumbnails more interpretable.
- Added a "Fixed shape filter". Crops images if needed so they exactly fit the dimensions set for "thumbnail size" or "max image size" in the user interface. This makes all images and/or thumbnails the same shape (portrait, squary etc).
- Accepts the -Dswing.defaultlaf command line option to select a custom look and feel.
- Allows zero or several rowiterator - coliterator pairs for index pages.
- The <ja:if exists="variable"> construct have been improved to also make sure that string variables are non empty. To do a classic existence test (not checking for null or empty content) do a <ja:if test="<%variable != void%>">
- The IO.copyFile API method now also copies directories.

#### 2003-06-03 3.4

News:

- Skins can now be previewed. Click the preview button and JAlbum will show a sample image for the selected skin. You can leave the preview window open to always show a preview of the current skin.
- Skins now accept the new "res" (resources) directory which replaces the "gifs" directory. The "res" directory is not duplicated if an album contains subdirectories/subfolders. (With the "gifs" directory, this was the case). The stylesheet file isn't duplicated either if the "res" directory is used in a skin, it is also put inside the "res" directory. There are two new variables to support this new scheme: $resPath and $stylePath which always points to the res directory and the style file respectively nomatter how deep an album structure is.
- All standard skins rewritten to make use of the new, smarter "res" directory feature and variables.
- Empty thumbs and slides directories will be removed from albums containing just subfolders and no images.

#### 2003-05-30 3.3.2

Bug fixes:

- v3.3 Didn't start from command line
- v3.3 wasn't especially memory conservative

#### 2003-05-12 3.3

News:

- Pluggable image filters added. JAlbum is now capable of automatically adding watermarks, logos and texts to images, grayscale them etc. A couple of ready-made filters are provided that can be combined in any possible way by JAlbum skins. You can also easily write your own image filters with some basic Java skills. Try the embedded "GrayFilm" skin for a demonstration, it is a copy of the Film skin, but makes all images grayscale and adds the filedate to each image.
- Added FTP port number to Publish tab.
- Will warn users that selecting new image/thumbnail sizes without rebuilding the album may lead to poor image quality
- If an image comment is recognized as actually being a copyright message from an image manipulation software, it is not displayed in the generated album.
- Added support for Russian date format (dd.MM.yy HH:mm)
- Practical variable "level" added to assist in skin creation
- Added list of Java system properties to About JAlbum dialogue.
- On album generation, will execute any BeanShell script found "init.bsh" files in the JAlbum program directory or skin directories.
- Although not a movie or image format, will also recognize mp3 files and add icons for them

Bug fixes:

- Installer updated with about 28 fixes for different target platforms.
- Saving projects in image directory or album didn't update the "current project" setting so a subsequent save (ctrl+S) operation didn't always save to the right project file.
- Used to create an empty meta object even if no metadata was found, so the check <ja:if exists="meta">... in skins would always evaluate to true. This resulted in $variables representing camera settings showing unexpanded for images without metadata even if correctly enclosed in such an if block.

#### 2003-02-11 3.2

News:

- Page generation speed improved up to 400%. This doesn't affect much for first time album generation as image scaling consumes most of the time, but updates to existing albums is significantly faster.
- Pages that hasn't changed when generating albums are left untouched on disc. This enables quick updates of web albums by utilizing FTP clients with directory synchronization ability.
- Will not automatically write empty comments to images (safety precaution)
- Changed the "Save project to album directory" menu to do just that instead of saving the project to the image directory. Added a new menu option to save the project to the image directory instead.
- Recognizes .ram, .rm and .asf file types as movie files too.
- Handles parsing of US EXIF date/time format too.
- Several skins modified to work better when viewed from Netscape 4.7

Bug fixes:

- Script code put between a ja:rowiterator and ja:coliterator element wasn't executed properly

#### 2003-01-28 3.1

News:

- Script errors are now being explained better. This should simplify a lot for those who develop scripts
- Adding a dot (.) or underscore (_) in front of either a file or directory will make JAlbum ignore it
- Image folders are always ordered alphabetically (a-z) and placed before images no matter the image ordering setting. (User request)
- If output directory is specified as a relative path, it is now relative to the image directory instead of the program directory. (User request). Set it to "album" and save as default, your albums will now always be generated in an "album" subdirectory of the image directory you specify
- New variable $totalAlbumImages that gives the total number of images (and media files) in the image directory and all subdirectories
- Edited comments are automatically saved to the image when navigating between images so one doesn't accidently lose an edit by forgetting to press "Write comment"
- The full path of the image being edited in the Edit page is now displayed
- JAlbum also recognizes .qt file format as a movie format

Bug fixes:

- The irritating behaviour of the directory chooser not always accepting a directory choice now supressed. (Java1.3 bug)
- Following an "Up" link from a subalbum that uses frames (like "Vertical" and "Horizontal" and then clicking on an image would make the closeup image pop up in a window of its own.
- Some file name combinations (containing certain numbers) would cause a nullpointer exception when ordering images by name
- Comments written by Exifer could show up like the string "ASCII"
- In the Edit tab, if an image file name had more than one dot, the image name would be cut before the first instead of the last dot
- In the Edit tab, didn't include subdirectories when pressing "Get images from Album"

#### 2003-01-10 3.0.1

News:

- Rearranged the scroll bar for the edit page in order to be more intuitive (the vertical scollbar wasn't noticed by many)
- Added a $currentDate variable

Bug fixes:

- Leaves original file intact if there is a problem writing comments.
- More robust lossless image rotation, but there still are problems rotating some images
- JAlbum could in some rare occations halt with a nullpointer exception during file scanning
- The $parentIndexPage variable always returned the first parent index page when called from a subdirectory index page, even if the subdirectory belonged to a later index page

Known bugs:

- The lossless JPEG rotation can in some cases distort images. Always keep a backup of your original images! There is also an undo functionality if you notice that an image gets distorted, but keeping a backup is recommended.

#### 2002-12-28 3.0

News:

- JAlbum finally has embedded image comment/annotation editing and lossless image rotation. You no longer need external programs to perform these tasks. See the new "Edit" section of JAlbum.
- New more robust EXIF extraction. JAlbum now uses the MetadataExtractor, which is the sucessor of ExifExtractor by Drew Noakes. It now has support for camera make specific EXIF data (Canon/Nikon) and reads IPTC metadata too. All accessible through the "meta" object (see "Creating skins").
- The API give skin producers more flexibility like procesing extra template files.
- Minor internal improvemnts and performance enhancements.

Bug fixes:

- EXIF extraction is more robust against odd EXIF formats due to rewritten EXIF parser.
- The pen button for opening skin directories for editing should work better on Mac OS X now.

Known bugs:

- The lossless JPEG rotation can in some cases distort images. Always keep a backup of your original images! There is also an undo functionality if you notice that an image gets distorted, but keeping a backup is recommended.

#### 2002-11-27 2.8.5

News:

- Web site and local help improved with new tutorial on creating skins and scripts examples that add voice annotations to your albums and reset the file date to the camera date
- Directories starting with a . (dot) are ignored (Linux user request)

Bug fixes:

- Camera date/time between 12:00 and 12:59 (24 hr format) was interpreted as midnight time.

#### 2002-11-21 2.8.4

News:

- All skin files converted to PC line ending format (making them viewable in Notepad for easy editing by the ordinary Windows user)
- Non Windows and Mac users can now specify a `-Dfolder.cmd=<program to open folders>` argument at the command line when starting JAlbum in order to open the directory for the current skin for editing.

Bug fixes:

- Didn't handle image files with filenames containing long numbers (>9 digits)
- Changed URL encoding of two-byte characters to write the high order byte before the low order byte, i.e 0xAABB is encoded as %AA%BB instead of %BB%AA

#### 2002-11-19 2.8.3

News:

- Improved "Slide show" skin with selectable window or fullscreen mode

Bug fixes:

- Didn't resume to next next image on recoverable errors, but instead stopped displaying a debug stack trace. JAlbum will now only stop processing and display debug info if the new "Debug mode" checkbox is checked (advanced tab)
- Failed processing some Canon images. This is due to bugs in the new ExifExtractor code. I have fixed one of the bugs and expect further fixes from the author. JAlbum now defaults to continue processing the next image on errors in ExifExtraction instead of stopping
- Would hang on Mac OS X if one dropped a folder containing a JAlbum project. The modal dialogue that opened couldn't be answered
- EXIF rational values were sometimes not displayed in a normalized format (1/x format)
- The "View album" button stopped working on some Win98 machines (introduced in 2.8). This bug was a side effect of attempts to make the "View album" work on OS/2 and on Linux+Mozilla. Behaviour is now restored to 2.7 state and I will investigate this further for these systems.

#### 2002-11-14 2.8

News:

- Updated EXIF parser. Now uses the much improved ExifExtractor v1.2 from Drew Noakes (www.drewnoakes.com). JAlbum now offers direct access to all EXIF tags readable by ExifExtractor through the new "meta" object, even unknown tags. See scripting. ExifExtractor now extracts GPS tags and makernotes for 6 families of camera
- Recognizes and formats more camera date formats
- Added "BeanShell commands" to further simplify scripting in JAlbum. More on commands at www.beanshell.org
- New "Slide show" skin featuring full screen pausable slideshow with page transition effect.
- Improved reading of comments by enlarging font for most skins
- Minor skin adjustments
- Added a readMapFile() convenience method to the IO object to simplify scripting

Bug fixes:

- Didn't URL encode two-byte Unicode characters correctly (%??%?? format). Hopefully this fix will help Chinese users and others who have two-byte character sets.
- Pressing "View album" on some systems didn't always work as JAlbum not always passed absolute "file:" URLs to the browser.

#### 2002-11-06 2.7

News:

- More intelligent image ordering when sorting images by name: Images containing numbers will have the numeric part compared numerically and not alphanumerically. This allows files like "2.Hiking.jpg" to be sorted before "11.Hiking.jpg"
- Image sort ordering may be reversed
- Linux users can specify other browsers to be launched than Netscape by running JAlbum like this:
  `java -Dbrowser.cmd="mozilla" -Dbrowser.arg0="@url" -jar JAlbum.jar`

Bug fix:

- Didn't select the correct style when loading a project (Introduced in 2.4.1)

#### 2002-10-31 2.6.2

News:

- The "Make album" button now also rebuilds modified images by comparing file dates. (Previously it only rebuilt images that didn't already exist in the album)
- Included a new skin - Old album

Bug fix:

- Always rebuilt images of png and gif type even if "Make album" was pressed and scaled images already existed

#### 2002-10-27 2.6.1

Bug fix:

- Didn't handle empty directories or directories without any processable image/movie files (introduced in 2.6)

#### 2002-10-26 2.6

News:

- Supports html frames. You can now produce albums with frames so that users can view thumbnails next to the closeup image. Frames is a skin feature. Just place a frameset.htt file into a skin and it will be used
- Two new skins to demonstrate the frames feature created: Horizontal and Vertical. See the samples section.
- The handy shortcut objects current, previous and next are now also available on index pages
- Will inform users if they misstakenly drop files instead of folders onto JAlbum

#### 2002-10-24 2.5

News:

- FTP upload support Added with "smart upload" that attempts to only upload changed files. Although this is not the central task of JAlbum, I've added it for convenience

Bug fixes:

- Printing all variables with a <%= current %> expression within a skin caused an infinite recursive loop
- Didn't match a skin with it's available styles upon loading of a project (introduced in 2.4.1)

#### 2002-10-23 2.4.1

News:

- Skins can now contain layout hints if they are intended to be used with a certain image size etc. Layout hints is simply a subset of a JAlbum project file named `hints.jap` which resides in a skin directory

Bug fix:

- All EXIF variables were stored as String objects even if another object type would have been more suitable (e.g. Boolean for camera flash setting or Float for aperture value)

#### 2002-10-22 2.4

News:

- Simplified scripting of skins with JSP/ASP like <% scriptlet syntax %>, and implicit objects (out, album, application etc)
- Even more web-friendly: Does a better job avoiding creation of absolute links (file://C:...) even if original images point to other locations in the file system than the output directory
- Tries to skip erronous image files and resume operation instead of halting. Will display an error log in case of errors
- New ja:include element to allow simple page inclusion
- New ja:ignore element to pass scriptlets to JSP/ASP engines for processing
- Improved ja:if element allowing arbitrary expressions to be tested
- Style sheet files are now parsed in the same manner as template files
- Added new variables "isoEquivalent", "currentRows", and "indexImageCount"
- Two new skins, "Colorful" and "Bluepro" added

There are also a number of cool new features that are simply implemented as scripts inside the "standard" skin. To have these features on other skins, just copy and paste the scriptlets inside the standard skin:

- JAlbum now adds image comments from external text files carrying the same base name as the image files themselves (unless an embedded comment is already found)
- Users can now pick desired background and text colors of an album by simply selecting the AskUser.css skin
- Put a header.inc or footer.inc file in the image directory and it's contents will be included on the index page(s)

Bug fixes:

- Would stop with an "ArrayIndexOutOfBoundsException" for images containing an empty EXIF block
- Minor fixes to skins

Known bugs:

- Line numbers are not always reported correctly for scripting errors

#### 2002-09-18 2.3

News:

- Allows setting of user defined variables that override the variables set by JAlbum
- Handles a lot larger images now by allocating up to 256MB RAM if needed. (Previously used the Java default of 64MB which could trigger out of memory errors with very large images.)

Bug fixes:

- Would fail on images where comments were added by Exifer on images that didn't contain EXIF data
- The error dialogue was hard to close (the OK button didn't work, only the window close button)

#### 2002-09-05 2.2

News:

- Several new cool skins added that demonstrate the power of the scripting language (check out the samples)
- Console mode. JAlbum can now be controlled from the command shell. You may make shell scripts that update directories on a regularly basis etc.
- The eval element has access to three practical objects: current, previous and next. They contain all variables bound to these images, allows for very cool skins.
- rows and cols variables added to the templates
- Small, non disturbing "splash screen" added at startup so you know what you are waiting for

Bug fixes:

- Wouldn't extract EXIF data on some EXIF 2.1 images

#### 2002-08-31 2.1

News:

- Loading and saving of project files with recent project list
- Default settings can be saved
- Advanced expression evaluation and scripting added through BeanShell
- More EXIF data like image dpi and compression level added
- Automatically senses when new skins are added
- Button added that opens the current skin directory for easy editing (Windows only)

Bug fixes:

- The month of the originalDate wasn't displayed correctly
- Would go into an infinite loop if output directory was a subdirectory of the image directory

#### 2002-08-23 2.0.3

News:

- Will warn before creating albums with absolute image links (They don't work from a web server)

Bug fixes:

- Didn't format the EXIF originalDate according to the selected date format
- Sometimes displayed exposure times like 1/400s in the less intuitive 10/4000s form
- Didn't warn correctly if an image directory didn't point to a valid image directory
- Some fixes to the skins
- New version of the installer with several bug fixes

#### 2002-08-15 2.0

News:

- Style and layout can now be fully customized by the use of user extensible "skins" (Directories with images and template and style files).
- Extracts image meta information (shutter speed, aperture etc) also called EXIF data if present
- Output can be written to another directory than the image directory
- Image linking can now be controlled in detail (small albums not including originals, large albums with links to originals etc)
- Presets added for quick setting for different types of albums
- Supports odd JPEG color encodings now. Also supports PNG and GIF as well as most movie formats
- Multiple index pages
- Page filename extensions can be configured
- Progress indication during album creation is improved
- More intuitive UI design

Changes:

- Lists directories before image files on index pages
- Date and time is formatted according to the current locale per default instead of yyyy-mm-dd hh:mm

Bug fixes:

- Order by date didn't work properly if dates varied extremely much
- Linking to a slide containing a movie file from an ordinary image slide didn't work.
- Some minor UI glitches fixed

#### 2002-04-04 1.1.1

Changes:

- This web content is also available as a local help file
- Help and uninstall is directly accessible from the JAlbum program group (windows)
- No longer expands thumbnail index tables to 100% of the page with

Bug fixes:

- Launching of the current web browser when viewing result didn't work on Mac OS and Linux

#### 2002-03-22 1.1

The changes in this release are mainly based on user input. Thanks to those who have mailed me with encouragement and ideas.
Enhancements:

- Installer/uninstaller added for all major operating systems. Thank you ZeroG for providing such a great free tool!
- Images can now be ordered either chronologically or alphabetically
- Handy preview button added
- Warns before writing album into a new directory
- The name of the thumbnail page can be set
- URL encoding of filenames can be turned off
- The GUI has been redesigned to handle more features
- Better looking icon :) Credits to Micce

Bug fixes:

- Images are no longer enlarged if they are smaller than the bounding box
- The directory chooser now starts in the current image directory

#### 2002-02-20 1.0

Initial release.