UIVI 1.1 User Guide

Introduction

Navigation Pages

Supported URL Schemes

file

ftp

http

jar

jndi

jms

Finder Pages

Parameters

Actions

Default Action Patterns

URLs

Filter Patters

Conditions

Proxies

Basic Authentications

URL Authentications

Trash Bin

Password Encryption

Task Manager

Comments And Bug Reports

Copyright

Introduction

This application is a URL navigator. It allows you to browse through URL hierarchies in a file manager fashion. Typical file manager functions such as copy, paste, find, etc. are available. It currently supports six URL schemes: "file", "ftp", "http", "jar", "jndi" and "jms".

Some distinguishing features are:

These pages offer a tree view of an URL structure. The root of the tree is defined by the "URL" field. It can be edited or used for selection. The entries in the tree view which are not containers are filtered by the pattern specified in the "Filter" field. The pattern is like a file pattern. It is case-sensitive.

With the following popup menu the life cycle of navigator pages [as well as finder pages] can be managed:

New Page (Ctrl-N)

Creates a new navigation page, which is placed in front of the selected page.

Delete Page (Ctrl-D)

Deletes the selected page.

The items in the tree view are all selectable. A selection can be manipulated by performing actions on them, which are to be picked from the popup menu. The inferior section of the menu is built-in. Its items are explained in the following table. The sections above are filled with user-defined actions, which are defined on the "Parameters" page.

Copy (Ctrl-C)

Copy the selected URLs and everything in them. The effect of the action is delayed until a paste action. If a copy is reissued before a paste only the last copy will produce an effect.

Cut (Ctrl-X)

Remove the selected URLs and everything in them. The effect of the action is delayed until a paste action. If a cut is reissued before a paste only the last copy will produce an effect.

Delete (Delete)

Immediately remove the selected URLs and everything in them.

Go Home (Ctrl-H)

Change the root to the URL specified by the "user.home" system property.

Find (Ctrl-F)

Create a finder page with the root set to the selected URL. There may only be one selected URL and it must be a container.

FTP Mode to A(I) (Alt-F)

Toggle the FTP transfer data type between ASCII and IMAGE (binary). The is changed for the complete application, not only the page on which the action is performed.

Make Root (Ctrl-O)

Create a new page with the root set to the selected URL or its parent if it isn't a container. There may only be one selected URL, except when the scheme is "jndi". See the JNDI scheme for more about this.

New Container (Alt-C)

Create a new container within the current container.

New Non-container (Alt-N)

Create a new non-container within the current container.

Paste (Ctrl-V)

Place the result of a copy or a cut operation in the selected URL.

Properties (Ctrl-P)

Show or hide the properties table, which contains details about a container which is selected in the tree view. The same kind of actions as in the tree view can be performed on its items, including navigation.

Refresh (Ctrl-R)

Reload the complete page.

Select All (Ctrl-A)

Select all the URLs in the selected container.

Top (Ctrl-T)

Collapse the complete page and open the root.

The default action can be launched on an URL by double clicking on it or by selecting it and hitting the ENTER key (see also section Default Action Patterns). More than one URL may be selected.

At the bottom of a navigation page there are three more items. The value of the "URL" field is the root of the page (see also URLs). The "Filter" field contains a file pattern which causes a subselection of the non-containers to be shown (see also Filter Patterns). Right to the latter there is a toggle button to switch between case-sensitive and case-insensitive mode.

Supported URL Schemes

file

This scheme is an interface to file systems. All navigation page operations can be used.

ftp

The "ftp" scheme provides access to FTP servers. All navigation page operations can be used. Combined with URL authentication mechanism this add a new dimension to the FTP client concept. It is possible to move about files while transparently switching between connections with different credentials.

http

HTTP servers are accessible through this scheme. All navigation page operations can be used, but note that renaming files is not directly supported by the HTTP protocol. Therefore, the operation is implemented with a copy/delete combination, which is quite slow in this case.

jar

With this scheme zip files can be manipulated. All navigation page operations are available for it, meaning you can work with zip files as if they were file systems. Updating zip files does not work on Windows because of bug 4823678 in the Java Bug Parade. In the file scheme archives with the extensions "zip", "jar", "ear", "war" and "rar" are recognised as containers in the jar scheme, providing transparant navigation into such files. You can create a new zip file by creating a new file, renaming it such that it has one the extensions and by copying files to it.

jndi

The "jndi" scheme is something proprietary and has the following syntax: jndi:<provider_url>!/<path>. Authentication is tied to the provider URL. The basic and URL authentication mechanisms can be used for it. Note that the system property "java.naming.factory.initial" must be set to a valid JNDI initial context factory class. A JNDI tree cannot be modified in any way.

The provider URL should be a hierarchical URL. Opaque URLs are not supported. For example, use iiop://<authority>[:<port>] instead of corbaname:iiop:<authority>[:<port>].

A special note should be made about the "make root" operation. If exactly two URLs are selected, of which one is a JMS connection factory name and the other a JMS queue name, this operation will generate a "jms" URL.

jms

The "jms" scheme provides manipulation of JMS queues. It is a proprietary scheme with the following syntax: jms:<factory_url>!/<queue_name>[<properties>], where the factory URL is <provider_url>/<connection_factory_name>. The provider URL is a JNDI provider URL, to which authentication is tied. The "jndi" scheme can be used to generate such a URL.

The optional properties are a list of <name>=<value> pairs separated by semicolons. They are case-sensitive. The allowed names are the JMS header names and any other free property. However, there are some restrictions. A message on a queue is addressed by specifying the "JMSMessageID" property only. A queue is addressed by not specifying any property or only the "selector" property, which accepts the JMS selector syntax for its value.

Putting a new message on a queue can be done by addressing the queue and adding any properties except "JMSMessageID" and "selector". The specified properties will be used to create the message. The "JMSExpiration" header is not available for this. Instead the "JMSTimeToLive" property should be used with a period expressed in milliseconds.

In UIVI the latter can be exploited by taking a file and renaming it using the property syntax; for example: "JMSPriority=5;MyProperty=test;JMSTimeToLive=300000". If such a file is copied to a queue the correct URL for putting a message on a queue will be generated. If the filename doesn't follow the property syntax the property "Name=<filename>" will be generated.

It is not possible to rename a message on a queue. New messages can be added and existing ones can be deleted.

Finder Pages

A finder page can be created from a container URL in a navigator page. This URL will be the starting point for the search. It can be changed in the "URL" field. The "Conditions" subpage is where the conditions for the search can be specified. It is edited the same way as the parameter tables. So the menu described in section Parameters applies.

The first column presents the list of conditions, which are defined on the Conditions parameter subpage. The second column is available for those conditions which require an additional argument to test against. The third column provides the choice between the logical operators "and" and "or". The value "and" is the default. In the resulting expression the "and" operator takes precedence.

The actual search is started by clicking on the "Execute" button or by hitting the "Ctrl-E" key combination. A running search is stopped by clicking on the "Stop" button or by hitting the "Ctrl+S" key combination.

The results are added to the "Results" subpage. The usual action menu, which is available for the navigation pages, can also be used on the results subpage.

The finder makes no distinction between URL schemes. Whenever a configured condition wants to make a distinction, it must ignore schemes it does not support.

Finder pages inherit their case-sensitivity from the navigation page their created from. Finder pages pass this property on to the new finder pages they spawn.

Parameters

All modifications done on this page are immediately saved in the configuration file called <user.home>/.be/re/app/uivi/Parameters, which is created with sample parameters during start-up if it isn't present. All tables on the parameters page can be modified with the popup menu presented in the following table.

Append (Ctrl-A)

Create a new row in the table after the selected one.

Insert (Ctrl-I)

Create a new row in the table in front of the selected one.

Copy (Ctrl-C)

Copy the selected rows. They can be pasted somewhere in the table afterwards.

Cut (Ctrl-X)

Remove the currently selected rows from the table. They can be pasted somewhere in the table afterwards.

Paste (Ctrl-V)

Add earlier copied or cut rows to the table, after the selected one.

Up (Ctrl-U)

Move the currently selected row one place higher.

Down (Ctrl-D)

Move the currently selected row one place lower.

Set Default (Ctrl-F)

Make the currently selected action the global default action. This is the action used if the selection on a page doesn't match a default action pattern. This menu item is only available for the Actions table.

Actions

In this section actions can be defined, which are included in the popup menu. The "Display Name" column contains the labels for the menu items. The "Command Line" column describes a Java command line, i.e. a Java class name followed by options. A useful class is be.re.util.Exec. Its arguments together form a command line which is sent to the host system. This way programs can be launched.

The display names define the structure of the popup menu. The order of the rows in the table defines the order of the menu items. A display name "separator" introduces a section line in the popup menu. A display name may be composed of parts separated by a forward slash ("/"). The parts become submenu items in the popup menu. Two menu items reside in the same submenu if they have exactly the same part structure.

Two special symbols can be used in the definition of a command line. The "*" symbol is replaced by all the selected URLs on the navigator page for which the popup menu is activated. The "#" symbol is treated the same way, except that only URLs using the "file" protocol are retained. Everything between single or double quotes is placed in one argument position during command line construction.

Default Action Patterns

In here file patterns can be associated with actions. When the default action is launched on an URL, its name is matched with the patterns in the user-specified order. The display name of the first matching row is used to retrieve the corresponding command line, which is then executed. Therefore the display name must be exactly the same as one in the Actions section. If no match is found the global default action is launched.

The default action pattern mechanism only works for a selection containing one URL. Otherwise the global default action is used.

URLs

The rows in this section are put in the "URL" field of every new navigator page. It is a pre-selection of URLs which are often used as the root of a page.

Filter Patterns

The filter patterns are file patterns which restrict the non-container URLs shown on a navigator page. The "Filter" field of a page is loaded with the rows in this section. It is a pre-selection of often used filter patterns.

Conditions

This table defines the conditions that are available to the finder pages. The "Display Name" column contains the items which are shown in the comboboxes on the finder pages. The method names in the second column must be static methods returning an int. The value be.re.app.uivi.Conditions.TRUE must be returned if an URL matches the condition, be.re.app.uivi.Conditions.FALSE otherwise. Two other values are available: be.re.app.uivi.Conditions.TRUE_PRUNE for indicating that a selected URL should not be searched into and be.re.app.uivi.Conditions.FALSE_PRUNE for indicating the same for an URL which is not selected.

A condition method must have two arguments. The first is of type URL, the second of type String. Whether the second argument is used or not depends on the nature of the condition. A search for names, for example, requires a name pattern to match, while testing if an URL is writable doesn't require a second argument.

There are a number of built-in conditions. They are only pre-configured so they can be easily removed. The following table explains them. They are called by their pre-configured name.

Name

Tests a path segment against the specified file pattern.

Path

Tests a complete path name against the specified file pattern.

Case insensitive name

Tests a path segment against the specified file pattern in a case-insensitive way.

Case insensitive path

Tests a complete path name against the specified file pattern in a case-insensitive way.

Modified since

Tests if a file was modified since and including the specified date/time. Ignores other schemes than "file". The following patterns are allowed:

  • [yyyy.MM.dd] [h:mm[:ss] [a]]
  • [yyyy.MM.dd] [HH:mm[:ss]]
  • [yyyy/MM/dd] [h:mm[:ss] [a]]
  • [yyyy/MM/dd] [HH:mm[:ss]]
  • [dd.MM.yyyy] [h:mm[:ss] [a]]
  • [dd.MM.yyyy] [HH:mm[:ss]]
  • [dd/MM/yyyy] [h:mm[:ss] [a]]
  • [dd/MM/yyyy] [HH:mm[:ss]]
Modified before

Tests if a file was modified before the specified date/time. Ignores other schemes than "file". The same patterns are allowed as for the previous condition.

Container

Tests if the URL is a container.

Non-container

Tests if the URL is not a container.

Readable

Tests if a file is readable. Ignores other schemes than "file".

Writable

Tests if a file is writable. Ignores other schemes than "file".

Read-only

Tests if a file is readable but not writable. Ignores other schemes than "file".

Hidden

Tests if a file is hidden. Ignores other schemes than "file".

Size

Tests if the size of a file is equal to the specified size. Ignores other schemes than "file".

Size greater than

Tests if the size of a file is strictly greater than the specified size. Ignores other schemes than "file".

Size less than

Tests if the size of a file is strictly less than the specified size. Ignores other schemes than "file".

System

Executes the specified command line. If the exit code is 0 the method returns true, otherwise it returns false. Two special symbols may be used in the command line. The "#" symbol indicates only files are considered. The "*" causes all URL schemes to be taken into account.

Proxies

Some URLs are only accessible through a proxy server. This can be configured in the "Proxies" table. The first column specifies the host for which a proxy must be used. It can be a host name or an IP address. An IP address does not have to be complete, i.e. it may designate a network instead of a host by saying for example "192.168" or "192.168.1". A host name can also be specified partially. For the host "a.b.com" the entry "b.com" is valid. So for all hosts ending with "b.com" the entry is valid. For both host names and IP addresses the most specific entry is always used. If the "Host" field has the value "default", a default proxy will be used for any host having no specific entry.

The second field defines the protocol to which the proxy definition applies. So a different proxy could be specified for "ftp" and "http". The protocol names must correspond to URL schemes.

The third field designates the proxy URL. Only "http" URLs are supported. If the value is "none" for a specific host or network, no proxy should be used.

The proxy data is stored in the file <user.home>/.be/re/net/ProxyManager. This file is updated immediately when something is changed in the table.

Basic Authentications

In this table username/password combinations can be stored for resources in the context of some protocol. The resources are mostly host names, but do not need to be. Interactive authentication can be avoided by inserting a valid entry in this table. If none can be found an authentication dialogue box pops up. A default username/password combination can be defined for a protocol through setting the resource to the value "default".

The basic authentication entries are stored in the file <user.home>/.be/re/net/BasicAuthentication. This file is updated immediately when somethings is changed in the table.

URL Authentications

In this table username/password combinations can be stored for URLs. Interactive authentication can be avoided by inserting a valid entry in this table. If such an entry could not be found the basic authentications are consulted.

The URL authentications work hierarchically. If, for example, the entry ftp://ftp.a.com/ is present, the username/password combination is also valid for URLs such as ftp://ftp.a.com/home/, ftp://ftp.a.com/usr/local/, etc. If at the same time there is another entry for, say, ftp://ftp.a.com/home/, then the latter is used for all URLs "below" this one. So, the most specific entry is always applied.

The URL authentication entries are stored in the file <user.home>/.be/re/net/URLAuthentication. This file is updated immediately when somethings is changed in the table.

Trash Bin

The trash bin field must contain a valid writable URL. Otherwise it will be impossible to delete URLs on a navigator page. This is because in fact URLs are moved to the trash bin instead of being actually deleted. The same operation in the trash bin causes the URLs to be really deleted.

Password Encryption

It is possible to encrypt the passwords which are in the basic and URL authentications files (see Basic Authentications and URL Authentications). This can be done with the be.re.tools.EncryptResourcePasswords programme (configured by default for new installations). An interactive authentication dialogue box will appear in which only a password must be provided. The same password must, of course, be entered for decryption. Decryption occurs at start-up if encrypted passwords are detected or can be triggered by running the be.re.tools.DecryptResourcePassword programme. The latter is a persistent action, just like its encryption counterpart. The encryption/decryption password is asked only once during the lifetime of a JVM.

Note that Sun JCE 1.2.1 or higher must be installed for encryption to work. JRE 1.4 or higher has everything on board.

Task Manager

The task manager lists tasks which are running in the background. In that case the LED will be red. A task can be interrupted by selecting it and activating the popup menu item "Stop" on it or by typing "Ctrl+S".

Comments And Bug Reports

These are welcome at uivi@re.be.

© 2000-2003 Re BVBA. All rights granted except commercial ones.

This software is free and will remain free.

To use at your own responsibility.