Application Development |
Panther's libraries and repositories store screens, reports, binary JPL files and other application components. To ensure that all members of your development and design team have access to the same information and sets of standards, you want to allow everyone access to these libraries and repositories. For the purpose of this discussion, the term library describes both libraries and repositories.
The development process often depends on coordinating write-access to these files—allowing access by several people and providing a means of knowing when changes were made.
In addition to providing its own mechanism for controlling multi-user access to libraries and repositories, Panther also provides an interface to source control management systems, specifically SCCS, PVCS and MSSCCI, that let you take advantage of source management systems while in the editor environment.
Panther provides:
Libraries provide a convenient way to distribute a large number of screens with an application, and improves efficiency by eliminating paths searches at runtime and the number of files that are open. You can have multiple Panther libraries open during development and at runtime. As for repositories, while you can create multiple repositories, you can only have one open at a time during an editor session, and its contents should be accessible to the entire development team.
Configuring Your Library Access |
client.lib
. To provide access to the entire team, store the libraries on a common file server.
client.lib
, common.lib
and server.lib
.
You can open the appropriate libraries for the application servers, application clients, and developers by setting SMFLIBS.
During development, the libraries can be stored on the application server and accessed remotely by the developers, in order to be available to the entire development team. For remote access, the application must be configured with a file access server (devserv
). For more information on configuring servers, refer to Chapter 3, "Configuring the Enterprise," in JetNet/Oracle Tuxedo Guide.
client.lib
) contains the user interface elements of the application. A server library (by default server.lib
) contains the service components and is generally located in the application directory. For more information, refer to Chapter 5, "Deploying COM Components," in COM/MTS Guide.
Managing Library Access |
If you do not use or have a source control management system, Panther provides support for controlling multi-user access to screens, reports, menus, and JPL modules in libraries.
Panther's approach to multi-user access is to inform rather than enforce. To prevent inadvertent damage, Panther informs you if another user currently has a "reservation" on (that is, write-access to) a file you are trying to open, save, or delete; but you are given the opportunity to "steal" the reservation.
This method pre-supposes a high degree of communication and cooperation among the members of your development team. For example, a user who initially has a reservation on a screen might later find, when attempting to save or delete it, that another user now has the reservation. The first user can, of course, steal the reservation back, but stealing reservations without adequate communication between users can result in the loss of someone's work.
While Panther provides enough information to prevent inadvertently damaging another's work in progress, it does not enforce file locking. Users are responsible for checking with the holder of a reservation before deciding whether or not to steal it.
If you require a more secure file-locking method to control multi-user access, use one of the third-party source control management systems that Panther supports.
Panther warns you if you choose to open a library member (screen, report, JPL module, or menu file) that is being edited (open with read/write privileges) by another user. You can choose to steal the reservation or open the library member with read-only privileges. If you choose Yes to steal the reservation; the requested library member opens with read and write privileges; choose No to open the member with read-only privileges.
A read-only library member is displayed with the last saved changes. If you edit a read-only file, you can use FileSave As to save the library member with a different name.
When you choose to close a library member (having read-write privileges) that you have been editing, Panther displays the following message:
Do you want to release your reservation of <filename@lib>?
Choose Yes to release the reservation; the library member closes and is available for editing (write-access) by other developers.
Choose No to keep the reservation; the library member closes and can be open as read-only by other developers.
To automatically release a reservation whenever you close library members, choose OptionsAuto Release on Screen Close. The message for releasing a reservation no longer displays; the reservation is automatically removed and the closed screen is available with read/write privileges to developers.
The process of putting a library under source control places the contents—its library members—under source control management. Therefore, you must check library members into a source controlled library (more on check-in later) to actually place the individual members under source control. For the purpose of this discussion, it is assumed that library members or repository entries—screens, reports, JPL modules, or menu files—when checked in, are stored by the source control management system.
Use of source control management systems requires that your path allows you to run the Panther utilities f2asc, jpl2bin and m2asc if you are not storing the screens in binary. These utilities converts the screens, reports, JPL and menus to ASCII before they are checked in. Additionally, users of PVCS must set the VCSID
and VCSCFG
variables. For more information, refer to your vendor's documentation.
Before putting a library under source control, you must have a new or populated library (created within the screen editor or by formlib using the -c
option).
formlib -g"sourceMgr
[-b]
mgrArgs" library
For example, for SCCS support, use:
formlib -g "sccs devdir" dev.lib
Or for PVCS, use:
formlib -g "pvcs c:\DEV\ARCHIVE" dev.lib
Or for MSSCCI (Microsoft Source Code Control Interface), use:
formlib -g "scpi
Provider='Jazz MSSCCI Provider' ProjectName='Panther First Project' LocalProjPath='c:\Panther First Project sandbox'" dev.lib
There are three features of source control management available to you when you open a library whose contents are being maintained under source control management. You can open a copy of a file so that you can edit it or you can open it read-only. You can also check changes in and take full advantage of the features offered by your source control manager to monitor those changes.
The following options are available from within the editor workspace so that you can update and view library members (screen, reports, menus, styles, and JPL modules) by choosing the desired option:
Panther automatically checks out a library member under source control management when you choose FileOpen.
How to Edit a Library Member Under Source Control Management
All members of the selected library/repository are listed in the appropriate Open dialog. Those members currently checked out are listed along with the name of the user and date and time of check out.
Figure 10-1 Checked out library members are identified on the Open dialog boxes.
Note: Ownership information, that is, the user who has the library member checked out, might not reflect the latest source control management status. This is due to the fact that source control can be executed outside Panther. Panther updates the status once you make a selection.
You can make changes, and save (choose FileSave) those changes as often as you need to without checking the member back into source control. As long as the member is checked out to you, other users can only retrieve a read-only copy. Moreover, the read-only copy is created from the last check_in
; it does not reflect the latest changes saved to the library. Once you are done with the library member, and are satisfied with the edits, you can check it back into the source control management system.
Note: Choosing FileSave does not perform a check into source control. You must proceed to step 5 to update the source copy.
If you made changes since the member was last saved, you are prompted to save those changes to the library:
Note: Saving a library member does not check it into the source control management system.
You can remove the working version of a screen (or other member) from the library under source control, but the source (previous versions) are not removed. To remove all traces of an entry, you must access your source control management system directly (outside of Panther).
When you open a library member that is in a library under source control management, a write-lock is enforced on that member. Another user cannot edit the file.
In the event that you do not want to edit the member, or you don't want to save the changes you've made since you checked it out, choose FileSource MgmtCancel Check Out.
A cancelled check out means that your current edits, even saved edits, are not saved to the source control management system. The library member in source control management remains unchanged. The write-lock is removed and another user can now check out the member.
Note: Choosing FileRevert restores a screen to its last saved copy as it exists in the library; it does not restore to the copy that was last checked into the source control management system.