bde2java2UserGuide071209.doc - RJL071210

 

Abstract:

 

This guide describes the design philosophy of bde2java  and how to use it. Bde2java is a  Java-based block diagram editor (BDE) to design graphic models that when combined with text can support automatic code generation. The original bdeUnix User Guide  (.ppt or .html) is accessible at

 

http://www.cs.uml.edu/~lechner/06f522/COOL-BDE/BDEUserGuide2005/

           

Both bde2java and bdeUnix editors maintain data-compatible files and can create and edit block diagrams such as static class or data models, dynamic state models, and class and object-level dynamic interaction models.

 

This guide summarizes how BDE editing works on the server at UML/CS and how to run it from any PC web browser. It includes hints for using bde2java, and how bde2java differs from bdeUnix, a XWIndows-based application. It gives an example of a diagram file drawn with bde2java that is saved in BDE's common diagram file format and/or printable .gif and .ps.  Dispersed throughout this  report are [TBD:...] bracketed sentences that itemize future plans for COOL-BDE.

 

bde2java2UserGuide071209.doc - RJL071210. 1

1. UML/CS COOL Framework for Model-Driven Development 3

2. How to run bde2java remotely across the web: 6

2.1 Java Console Log History: 6

3. Editing diagrams with bde2java: 7

3.1 File Open works like most  GUI's: 7

4. BDE drawing conventions for special diagram types: 8

4.1 State models with self-loops. 8

4.2 Class diagrams with inheritance: 8

4.3 Bendpoints for multi-segment links: 8

4.4 Multi-line Text in Nodes and Captions: 8

5. Example of  Block  Diagram creation with  BDE: 9

5.2 Caption Create and Move: 9

5.3 Text Create and Move: 9

5.5 FILE/File Save[As]: 9

6. BDE File Format and Data Model: 10

6.1 Example BDE diagram file: 10

6.2  Ways to Save a Diagram File: 12

Java Console Log History: 13

 


 

1. UML/CS COOL Framework for Model-Driven Development

 

BDE is one part of the UML/CS COOL Framework which contains 3 inter-related components:

BDE,  GEN and LCP. Each of these has its own home page link under

http://www.cs.uml.edu/~lechner/06f522/COOL-* . This report is focused on BDE, at.

            http://www.cs.uml.edu/~lechner/06f522/COOL-BDE/

 

BDE has two versions: bde for Unix is written in C++ for the Unix XWindows GUI, and bde2java with  (35K lines of) Java source code.  Each version has many revisions, usually associated with courses 522 or 523 in s[pring] or f[all] semester from 1986  through 2006.

 

LCP is a simple event dispatcher and state model interpreter written in C.  LCP's read-only tables and BDE's persistent diagram databases are both supported by code libraries produced  by GEN.

 

LCP's  tables drive its event-dispatching interpreter. They are extracted from state  and network models which  represent event and control flow for (the dynamic behavior of)  any  model-driven application. Several demos show how LCP supports  rudimentary interactive  distributed processes.     E.g., BDE for Unix class method code has  superimposed  state models that specify how graphic editing actions react to GUI-event inputs. Bde2java is currently independent of GEN and LCP but it uses bde's  file format.

 

GEN is the back-end database support component of COOL. It is a back-end database code generator that supports any application whose persistent data can be modeled with an application-specific ORDB (N-ary associative relations plus inheritance). GEN's first version, chgen, generated 'C' code and header [ch] files  from relational data models.  Chgen translates an EERD data model (Entity-Relational Diagram, extended with inheritance). into a 'C' source code library for  database persistence, navigation and access.  Later and less complete versions of GEN called gencpp and genjava, produce C++ and Java code, respectively.)  [TBD: Migrate current applications to these new versions of GEN. (This requires significant code refactoring.)]

 

BDE  is used to draw EERDiagrams  from which  a converter (bde2sch) can provide input to any GEN version.  This looks like a circular dependence. It is not, because the COOL Framework application is being used to develop a design for a new version of COOL or another application.

 

[GEN's input format conforms to a simple metametamodel  of table and attribute specifications, which specifies how GEN stores input application tables and attributes.  BDE can also draw this metametamodel and bde2sch can convert it into a metaschema file. Then GEN can generate a code library that is used inside a new bootstrapped version of chgen itself.]

 

BDE can draw data [class] models that GEN can translate to  code that supports  persistent database management.  BDE  can also draw state diagrams and network models  for runtime interpretation by LCP's event-driven concurrent process simulator. Programmers who follow strict naming conventions can write atomic state  action routines which can be compiled and linked to the runtime LCP interpreter. [Note that if a class method is specified by (one or more) State Diagrams its  name and signature can be inferred so they are optional on class models. Methods with control flow behavior specified on state diagrams belong to classes that inherit from ActiveClass AC.

Each Active Class owns State Models for its [sub-]methods in the LCP database.]

 

The data model for BDE's diagram database is specialized for the geometry of  2D rendering of  block diagrams.   Its standardized format is recognized by all GEN versions. The current version of BDE's data model is  specified as a GEN-parseable schema [.sch] file at

            http://www.cs.uml.edu/~lechner/06f522/COOL-BDE/bdeUG_2000/bdeschema/

 

and is  the second EERD diagram at

            http://www.cs.uml.edu/~lechner/06f522/COOL-BDE/bdeUG_2005DataModels.mht

 

Other  diagrams at that URL show past and future evolution of BDE's data model.          

 

All three COOL components GEN, LCP and BDE are designed to provide proof of concept for applying COOL framework code generation principles  to themselves: they 'practice what they preach'.

 

The intent of the COOL Framework architecture is to create all design diagrams for a specific application by using the bdeUnix editor to create a single design file. From this file the goal is to automatically generate top-level code for application-specific database and control-flow management and link it to an object library of class methods.  [TBD:  Use CVS for revision history and to allow parallel design of entity class methods by remote concurrent developers.]

[TBD: Namespaces are needed to resolve name clashes among separately designed components .] 

 

Our goal is to append  all design diagrams for a specific application (e.g. BDE itself)  in a single design file. This file can be placed under concurrent version control (e.g. CVS) to capture its revision history. (CVS can support concurrent editing on distinct diagrams within a file.)  
[TBD: Broaden CVS use to support  remote multi-user checkouts and commits.]

 

An example of an application-level  diagram file is our simulator for the Juice Plant Case Study from Shlaer & Mellor's insightful book:

             "Object Life Cycles: Modeling the World in States", Prentiss-hall 1992.

The JP2html Demo link  is:

            http://www.cs.uml.edu/~lechner/06f522/COOL-LCP/JP2html/public_html/

 

The JP2html diagram database includes data models for COOL's  BDE and LCP support context,  as well as data and state models for the Juice Plant's process control functions.

Note: Two-letter abbreviations make efficient use of window space and provide a global perspective on both inheritance and composition relationships. A table implemented as a Graph  Caption maps the entity type or class abbreviation into its full name.

 

JP2html diagrams  were generated by [an early version of] bdeUnix. They include clickable hotspots that link to sub-diagrams or text file anchor points. BDE drew these JP2html diagrams and bde2htm converted them to web-browsable form.

 

Browsing among diagrams is easy in bde2java. The current diagram unique identifier or pkey  HGid is displayed in a box above the OOMenu.  Clicking it opens a popup list to select  any other diagram in this file.  [TBD: Implement bdeUnix's display of the HG-table with all data fields not just pkey or oid.]


2. How to run bde2java remotely across the web:

 

On 2007/12/08  I created a new 2-diagram file using bde2java at UML/CS. I saved it locally as  C:\...\My Documents\bde2javatest071208.bde and copied its textual definition to

            http://www.cs.uml.edu/~lechner/06f522/bde2java2/bde2javatest071208.bde

 

You can modify this diagram by saving it locally, pointing your browser at

            http://www.cs.uml.edu/~lechner/COOL-BDE/bde2java/bde2java04f/bde2java2

 

and clicking  'Run Application'. Then open your copy of this file.
(Bde2java  documents and Javadoc API info are also accessible from this menu.)

 

Bde2java source code is divided among client, server and shared sub-directories. Most of this (35K SLOC) is in the client  The UML/CS host site runs a (small)  server-side program. Server and shared directories total only 1900 more lines of .java  source code.. Server functions are rudimentary, with a wide-open  Java security policy and no application-specific security.

 

The browser's BDE2JAVA popup window asks me to choose local or remote and enter user name, passwd, host and port.  ( Name and passwd accept any  non-empty strings; host and port can remain empty.) When I checked Remote, the connection failed to open.  When I checked Local,  I entered  name  and passwd, clicked OK  and the drawing canvas with bde's OOMenu for graphic editing at its left and the FILE popup menu button displayed above that quickly appeared.  Hurray!

 

2.1 Java Console Log History:

 

The Java console is a separate window  used for debugging. A Java console window logs BDE actions while the editor runs. It may help you resolve unusual access problems or delays. Appendix A contains extracts from  the java console log of my test run below.

 

My extract in Appendix A from the Java console log ends abruptly, before I began editing.  After I approved remote access to my PC,  it down-loaded a Bde2JavaClient.jar file (133KB).

 


3. Editing diagrams with bde2java:

 

These are only highlights.  More complete info is in the BDE User Guide at

            http://www.cs.uml.edu/~lechner/06f522/COOL-BDE/BDEUserGuide2005/

 

This BDE UG was written for bdeUnix, which has more features but also a few limitations compared to bde2java. - E.g. no rounded rectangle nodeshape.

           

To begin editing,  on the top-row FILE popup menu select Open or New File. Other top-row buttons (Edit, Options, Help) are not implemented for bde2java.

 

3.1 File Open works like most  GUI's:

 

New File prompts for a File name then a Graph (diagram) name.   Multiple diagrams can be created  via the FILE popup's New Graph option. (bdeUnix uses the OOMenu Graph Create operation instead.)

 

Switching among diagrams is easy: The current diagram's unique identifier (pkey HGid) is displayed in a box above the OOMenu. Click it to open a popup list and select any of the available  diagrams in this file. [TBD:Implement the bdeUnix display of the entire HG-table with title etc., not just the object's pkey or oid.]

 

An editing operation is selected on BDE's OOMenu at the left of the drawing  canvas, by checking one radio button in each of the two left-side button arrays, The upper array selects a particular class of drawable objects, and the lower one selects a particular editing operation to use. Although a  two-level popup menu could easily be provided,  I believe the OOMenu symmetry is more appropriate. BDE users can treat class and method as 'peers'. This also resembles the double-dispatch design pattern.

 

An edit operation except Create is applied to one instance of a class.  Each click on the canvas applies the pre-selected editing method at that location or enclosing object of the pre-selected type. There is a Shape popup menu under the OOMenu to pre-select a Node shape.

 

Link Create works by moving the mouse  between two nodes: Start by button1 down inside  the source node  and end with button1-up inside  the destination node. When a Node is moved, its links stay attached. Try it :-)]

 


4. BDE drawing conventions for special diagram types:

 

4.1 State models with self-loops

State diagram nodes often need self-looping or cyclic  links. To get one, create an extra small circular Node and draw links to and from it. Our diagram to state model converter bde2SM recognizes and removes this artifact.

 

4.2 Class diagrams with inheritance:

UML class diagrams have one-to many inheritance relationships.  To get one, add a bar-shaped Node separating  the superclass Node  from  its subclass Nodes and connect them together via this barNode. Our bde2schema converter recognizes and removes this artifact.

 

4.3 Bendpoints for multi-segment links:

Bendpoints can be inserted in a link then moved to route links around objects in their way. Bendpoints are represented as HP-rows in the diagram file..

 

4.4 Multi-line Text in Nodes and Captions:

Text Create may be applied to any Node or Caption. However, Text Create/Move/Delete is buggy and incomplete (but less so in bdeUnix). Text in nodes ought to be parseable so they can define formal specifications of class members (data and methods) and of source code (state action routines).  [TBD: a better multi-line text editing approach in bdeUnix and bde2java. (Currently text is limited to file path names and HTML links.)] [TBD: Add Link label text (HI-rows)]

 


5. Example of  Block  Diagram creation with  BDE:

 

I created an example  with bde2java, saved it on my PC and up-loaded it  to UML./CS,  where it is browsable as bde2javatest071208.bde at

            http://www.cs.uml.edu/~lechner/COOL-BDE/bde2java/bde2java04f/

 

This diagram is only an example. It does not obey the diagram subclass style constraints and is missing the text annotations it requires in order to become a legal input file for  GEN or LCP.

The BDE editing operations I used are described below:

 

5.1 File/New File:

I selected File/New File and entered filename "bde2java071208.bde"   and a graph name "HG000001". Then I created 3 nodes (HN-rows) and 2 pairs of links (HL-rows).

5.2 Caption Create and Move:

I created 3 Captions and did Text Create on one. (It was buggy: 2 lines appeared, then all but the last one disappeared or were overwritten.)  Caption Move worked OK. .

5.3 Text Create and Move:

Text Move did not work well in Captions or Nodes. In Text Create within a Node,  prior Caption Text appeared (bug) but I could erase it  and enter e.g. "Node Circle Text" which appeared in the circular node. In fact  more clicks duplicated this Node label many times. I could only use Text Delete for lines that were  positioned inside the Node border..  ( Node Move cannot be used to move the Node shape over the outlying text lines to be deleted because text moves along with the Node or Caption border.)  Note that  connecting the same pair of nodes twice by adding two links created a bendpoint at center of  one link so they did not overlap. Moving a node will shrink/expand/move all its link segments proportionately so each link retains some semblance of its original shape.

 

5.4 FILE/New Graph (Graph Create):

In bdeUnix, Graph Create adds more diagrams to the file,  and Graph Select shows the list of diagrams for selection.  These are not implemented in bde2java. Instead, an upper left box has the Graph oid or pkey in it. Clicking on this will show multiple diagram id numbers for selection. I used FILE/New Graph to name and create a 2nd diagram in this file.  bde2java will display for editing any diagram you  select by clicking its unique identifier in the list that pops up from the Graph id box.

5.5 FILE/File Save[As]:

This saves a file which can be opened later for more editing. It prompts for a filename [.bde or .dat] and saves by default to C:\...\My Documents.

 


6. BDE File Format and Data Model:

 

BDE's database schema is defined in file 94sbde_schema.sch[.txt] at

            http://www.cs.uml.edu/~lechner/06f522/COOL-BDE/bdeUG_2000/bdeschema/

 

This .schema file is parsed by GEN to provide  source code for managing diagram files. It can be generated from a BDE EERDiagram with appropriate Node Text content by the programs bde2sch and sch2bde. BDE diagram files contain one relational table for each entity class.  Tables have one row per object instance and can be version-controlled by RCS or CVS.

 

Version control is appropriate for block diagrams that become precise  models for programs, if and when augmented with software class methods (state action routines). These can be  written in any programming language that is linkable to C, C++ or Java. libraries. [TBD: Introduce a multi-site CVS repository for remote checkouts and commits of a shared BDE design file by a team of designers.]

 

Every object has an immutable primary key in fixed position (column 1). This 'pkey'  defines its type(subclass) and its object id in that class. Other component objects including associative entities include foreign 'fkey' references. To maintain referential integrity, these must have values that match some pkey.

 

Internally, pfkeys are compressed to integers. Each table has its own partition of GEN's current 32-bit int pkey range. The number of fkeys in an object implies its arity as a relation.  E.g.,  in BDE, HLink is an associative entity class or relation of arity 2:  HL has two fkey fields (HNid1 and HNid2) which means that  HL defines a symmetric M to N binary relation between pairs of Node class objects. The  library produced by GEN provides efficient access to a  memory-resident network-style database via an embedded pointer chain from each parent object to its components or associates..

 

6.1 Example BDE diagram file:

This section is to help you understand BDE's diagram representation. bde2java'sFile/SaveAs method saved a text file of type .bde.

(BdeUnix uses type '.dat', but this conflicts with MicroSoft's default use.)  I uploaded this file to

            http://www.cs.uml.edu/~lechner/06f522/bde2java2/bde2javatest071208.bde

 

Bde's I/O file format is based on relational tables in 3rd-normal-form..  Relations are implemented by embedded primary and foreign keys.  Pkeys  are immutable and fkeys satisfy referential integrity constraints. This example specifies two diagrams. It could easily be converted to XML but only at a considerable loss of human readability. [TBD: Add a header line of column field names above each table section for better readability.]

 

HN[odes] and C[aption]G's belong to HG#1 or HG#2 (foreign keys). HN shape code letters C,R,E identify Circle, Rectangle, Ellipse shapes  on HG#1, or N for the rounded-corner rectangles on HG#2. Node and Caption have center location height and width fields. HL[ink]s connect node pairs. HP (bendpoint) rows belong to a  unique HL parent.and define an ordred sequence of link segments. [TBD:  Add line width and pattern fields and Bendpt Restyle operations as in bdeUnix.]

.

HA[ttribute]s contain text lines belong to Nodes.  GX-rows  contains text lines that belong toCaptions.  All GX and HA rows below have the same 'Fixed' font and the same string content: "Node Circle Text".  (A user could adapt this example by manually editing the .bde file.)

Text house-keeping as well as editing is buggy and inadequate. Comments are ignored. FSid and DAid are meaningless foreign keys at this time.  [TBD:  Implement Border Shape and Text Container super-classes from which Node and Caption can inherit, to avoid the code duplication that now exists in bde source code.]

 

//  bde2javatest071208.bde:

//-----------------------------------------------------

HG000001 FS010000 HN010000 Guest 8Dec2007/056 8Dec2007/125 HG000001

 HG000002 FS010000 HN010000 Guest 8Dec2007/120 8Dec2007/125 HG000002

 HN000001 HG000001 FS010000 C 112.0 50.0 100.0 100.0 Fixed 0.0 0.0 0.0 0.0

 HN000002 HG000001 FS010000 R 319.0 151.0 100.0 50.0 Fixed 0.0 0.0 0.0 0.0

 HN000003 HG000001 FS010000 E 88.0 385.0 100.0 50.0 Fixed 0.0 0.0 0.0 0.0

 HN000004 HG000002 FS010000 N 126.0 145.0 100.0 50.0 Fixed 0.0 0.0 0.0 0.0

 HN000005 HG000002 FS010000 N 139.0 274.0 100.0 50.0 Fixed 0.0 0.0 0.0 0.0

 HN000006 HG000002 FS010000 N 366.0 135.0 157.0 138.0 Fixed 0.0 0.0 0.0 0.0

 HA000010 HN000001 DA010009 10.0 120.0 0 60.0 13.0 Fixed  Node Circle Text

 HA000011 HN000001 DA010009 10.0 136.0 0 60.0 13.0 Fixed  Node Circle Text

 HA000012 HN000001 DA010009 10.0 152.0 0 60.0 13.0 Fixed  Node Circle Text

 HA000013 HN000001 DA010009 10.0 168.0 0 60.0 13.0 Fixed  Node Circle Text

 HL000001 HN000001 HN000003 2 -1

 HL000002 HN000003 HN000002 2 -1

 HL000003 HN000002 HN000003 3 -1

 HL000004 HN000003 HN000001 3 -1

 HL000005 HN000004 HN000005 2 -1

 HL000006 HN000005 HN000006 2 -1

 HL000007 HN000006 HN000004 2 -1

 HP000001 HL000001 0.30633932 -0.080737755 1 0

 HP000002 HL000001 0.8387688 -0.0101380255 1 1

 HP000003 HL000002 0.18666439 0.07987659 1 0

 HP000004 HL000002 0.7721632 -0.0031881912 1 1

 HP000005 HL000003 0.22070622 0.018135067 1 0

 HP000006 HL000003 0.5242681 0.04047653 1 0

 HP000007 HL000003 0.8161468 -0.028076764 1 1

 HP000008 HL000004 0.15268107 -0.07878344 1 0

 HP000009 HL000004 0.43935508 -0.16404055 1 0

 HP000010 HL000004 0.69622576 -0.09258581 1 1

 HP000011 HL000005 0.1933968 0.0039857235 1 0

 HP000012 HL000005 0.8058299 0.0036882807 1 1

 HP000013 HL000006 0.26124135 -0.00110345 1 0

 HP000014 HL000006 0.7342068 -0.0015172488 1 1

 HP000015 HL000007 0.28136423 0.0024360474 1 0

 HP000016 HL000007 0.7196712 0.002984166 1 1

 CG000001 HG000001 428.0 203.0 300.0 18.0

 CG000002 HG000001 360.0 331.0 300.0 18.0

 CG000003 HG000001 362.0 289.0 300.0 18.0

 GX000009 CG000001 DA010009 0.0 Fixed 0.0 0.0 60.0 13.0  Node Circle Text

 GX000010 CG000001 DA010009 0.0 Fixed 0.0 0.0 60.0 13.0  Node Circle Text

 GX000011 CG000001 DA010009 0.0 Fixed 0.0 0.0 60.0 13.0  Node Circle Text

 GX000012 CG000001 DA010009 0.0 Fixed 0.0 0.0 60.0 13.0  Node Circle Text

 GX000013 CG000001 DA010009 0.0 Fixed 0.0 0.0 60.0 13.0  Node Circle Text

 GX000014 CG000001 DA010009 0.0 Fixed 0.0 0.0 60.0 13.0  Node Circle Text

 GX000015 CG000001 DA010009 0.0 Fixed 0.0 0.0 60.0 13.0  Node Circle Text

 GX000016 CG000001 DA010009 0.0 Fixed 0.0 0.0 60.0 13.0  Node Circle Text

 GX000017 CG000001 DA010009 0.0 Fixed 0.0 0.0 60.0 13.0  Node Circle Text

 //---------------------------

 

6.2  Ways to Save a Diagram File:

Bde diagram files can be version-controlled by RCS or CVS. This is appropriate for blockdiagrams that can be precise  models  for program design specs when accompanied by [state] subclass methods written in some object-oriented [or not]  programming language.

 

 FILE/Print as GIF  and FILE/Print as PS both save one diagram per file  with default names HG00000{1,2}{.ps,.gif}. [TBD: Implement  the bdeunix technique: prefix the currently open file name as a prefix to these HGid's. E.g.,  save to bde2javatest071208HG00000{1,2}{.ps,.gif} to identify the bde file from which they originated.

 

Neither .gif (from a ps2gif converter) nor .ps  is back-convertible (although  our hand-coded .ps file could be reverse-engineered).  Adobe Acrobat Professional displays the .gif file promptly.  It cannot display the .ps file.  It tries to convert it to .pdf  but aborts with this log indicating an endemic fontname problem as shown here:

 ------------

 %%[ Error: Helvetica not found. Font cannot be embedded. ]%%

%%[ Error: invalidfont; OffendingCommand: findfont ]%%

 

Stack:

/Font

/Helvetica

12

 

%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%

%%[ Warning: PostScript error. No PDF file produced. ] %%


Appendix :A: Java Console Display of Editor Progress:

=====================================

 

Java Console Log History:

-------------------------------

Below are extracts from  the java console log of my test run.

(The Java console is a separate window  useful for debugging.)

This is provided in case you encounter similar problems at first.

Some Java components might have to be downloaded from Sun.

Down-loading the client .jar file takes a minute or so on a cable modem.

 

===============================================

Java Plug-in 1.6.0_03

Using JRE version 1.6.0_03 Java HotSpot(TM) Client VM

User home directory = C:\Documents and Settings\Robert Lechner

network: Loading user-defined proxy configuration ...

network: Done.

network: Loading proxy configuration from Internet Explorer ...

network: Done.

network: Loading direct proxy configuration ...

network: Done.

network: Proxy Configuration: No proxy

`

----------------------------------------------------

c:   clear console window

f:   finalize objects on finalization queue

g:   garbage collect

h:   display this help message

l:   dump classloader list

m:   print memory usage

o:   trigger logging

p:   reload proxy configuration

q:   hide console

r:   reload policy configuration

s:   dump system and deployment properties

t:   dump thread list

v:   dump thread stack

x:   clear classloader cache

0-5: set trace level to <n>

----------------------------------------------------

 

liveconnect: Invoking JS method: document

liveconnect: Invoking JS method: URL

basic: Referencing classloader: sun.plugin.ClassLoaderInfo@18b8914, refcount=1

basic: Added progress listener: sun.plugin.util.GrayBoxPainter@d1e233

basic: Loading applet ...

basic: Initializing applet ...

basic: Starting applet ...

basic: completed perf rollup

network: Cache entry not found

[url: http://www.cs.uml.edu/~lechner/COOL-BDE/bde2java/bde2java04f/kyang2/bde2java/Bde2JavaClient.jar, version: null]

network: Connecting http://www.cs.uml.edu/~lechner/COOL-BDE/bde2java/bde2java04f/kyang2/bde2java/Bde2JavaClient.jar

with proxy=DIRECT

network: Downloading resource:

http://www.cs.uml.edu/~lechner/COOL-BDE/bde2java/bde2java04f/kyang2/bde2java/Bde2JavaClient.jar

            Content-Length: 132,397

            Content-Encoding: null

network: Wrote URL

http://www.cs.uml.edu/~lechner/COOL-BDE/bde2java/bde2java04f/kyang2/bde2java/Bde2JavaClient.jar

to File

C:\Documents and Settings\Robert Lechner\Application Data\Sun\Java\Deployment\cache\6.0\38\7e058ee6-3fa4425b-temp

security: Loading Root CA certificates from C:\PROGRA~1\Java\JRE16~3.0_0\lib\security\cacerts

.

[more of the same].

.

security: Saved certificates in Deployment session certificate store

 

==================================

[My Java Console interpretation notes:]

'Run Application' opened a bde2java window but hung until I uncovered a  virus-blocker window which asked me to allow remote nodes to talk to me. I approved this. but the connection aborted anyway.  The log reported this with:

-----------------------------------------------

basic: Stopping applet ...

basic: Removed progress listener: sun.plugin.util.GrayBoxPainter@d1e233

basic: Finding information ...

basic: Releasing classloader: sun.plugin.ClassLoaderInfo@18b8914, refcount=0

basic: Caching classloader: sun.plugin.ClassLoaderInfo@18b8914

basic: Current classloader cache size: 1

basic: Done ...

basic: Joining applet thread ...

basic: Destroying applet ...

basic: Disposing applet ...

basic: Joined applet thread ...

java.net.MalformedURLException: invalid URL String: rmi://IBM PC:22/BDEServerImpl

            at java.rmi.Naming.parseURL(Unknown Source)

.

. [followed by more of the same]

.

            at java.awt.EventDispatchThread.run(Unknown Source)

Caused by: java.net.URISyntaxException: Illegal character in authority at index 6: rmi://IBM PC:22/BDEServerImpl

            at java.net.URI$Parser.fail(Unknown Source)

            at java.net.URI$Parser.parseAuthority(Unknown Source)

            at java.net.URI$Parser.parseHierarchical(Unknown Source)

            at java.net.URI$Parser.parse(Unknown Source)

            at java.net.URI.<init>(Unknown Source)

            at java.rmi.Naming.intParseURL(Unknown Source)

            ... 32 more

java.lang.Exception: Error While Connecting Server

            at bde2java.client.Bde2JavaRemoteDataManager.<init>(Bde2JavaRemoteDataManager.java:25)

.

. [more of the same]

.

            at java.awt.EventDispatchThread.run(Unknown Source)

 

basic: Quiting applet ...

liveconnect: Invoking JS method: document

liveconnect: Invoking JS method: URL

basic: Referencing classloader: sun.plugin.ClassLoaderInfo@18b8914, refcount=1

basic: Added progress listener: sun.plugin.util.GrayBoxPainter@c12474

basic: Loading applet ...

basic: Initializing applet ...

basic: Starting applet ...

basic: completed perf rollup

-----------------------------------------------------