constellation : Java Glossary

*0-9ABCDEFGHIJKLMNOPQRSTUVWXYZ (all)

constellation
A grouping of files to be processed, for example to be searched, indexed, tidied, macro-expanded…

A constellation has a way to specify which drives, directories, files and extensions to include and which drives, directories, files and extensions to exclude. This could be handled with lists, wildcards and/or regexes. You would submit the constellation, or a list of files generated from it to a backup utility, a CD (Compact Disc) burner program to prepare a program for distribution, a FTP (File Transfer Protocol) upload utility, a program like The Replicator, a link checker, an HTML (Hypertext Markup Language) validator, a global search and replace, an indexer, a macro expander, a compiler, a tidier… The nice thing about constellations is they don’t need to be manually adjusted when a few files are added or deleted. Constellations have rules to tell them what to do with the new files.

A constellation should have a name so that it can be specified and updated in one place and referenced by a short name as a parameter to some utility.

Implementation

A constellation is a file itself. It is XML (extensible Markup Language) based to allow for extensions. It could be expanded into a simple linear list of files for the benefit of utilities that don’t understand constellation files directly.

Unfortunately, the concept of constellation has not yet penetrated the programming world, so there is no uniform way to specify them, or reuse them in different programs. There is no standard DTD (Document Type Definition) for the layout. This is primarily a political problem. Hint, hint. I invite you to share your ideas with me.

The definition of a standard constellation file format and constellation library would allow you to easily add filtering to any program designed to process just a single file. It would also the user to define a constellation once and reuse it with a large number of different utilities. A utility to convert a constellation to a list of files would let you use your constellations with legacy utility that don’t understand constellations, but accept an @include.list of files.

How about some ideas on what the XML syntax for such a beast would look like? I could write a library to read it and let you then convert any single-file processing utility into a constellation-of-files processing utility. I will convert all my multi-file software to the new format and publish all source code. Maybe the idea will catch on. Here is what a constellation file might look like:

Obviously the fine points of the grammar need to be sorted out, but that gives you the general picture.

The file format is pretty geeky, to unfriendly for non-programmers so you would need GUI (Graphic User Interface) tools to create them with check boxes. You could have a uniform pre-check to let you know just what files would be processed. It also might be possible to take a linear list of files and generate a compact constellation description of it. This would give you a skeleton constellation you could manually refine. It would be a lot less work than creating it from scratch.

Constellation Utilities

If you use a standard constellation format, you can write some generic utilities to manipulate them:

Examples of Existing Constellations

The Replicator requires a constellation of files to distribute to others. Compactor requires a constellation of files to compact. Untouch requires a constellation of directories to redate back if files have not really changed. HTML static macros requires a constellation of files composing a website that contain macros to be expanded. Xenu requires a constellation of files to be spidered to look for broken links. Funduc Search and Replace requires a constellation of files to search. Copernic Desktop Search requires a constellation of files to index. Backup programs need to define a constellation of file to back up. Typically they do it in an inept way so the raw list of files needs to be modified every time to account for new files is some of the directories.

This page is posted
on the web at:

http://mindprod.com/jgloss/constellation.html

Optional Replicator mirror
of mindprod.com
on local hard disk J:

J:\mindprod\jgloss\constellation.html
Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

IP:[65.110.21.43]
Your face IP:[3.12.161.77]
You are visitor number