Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DXL Importer Project for Domino Agent Support #668

Open
JoelProminic opened this issue Feb 26, 2020 · 1 comment
Open

DXL Importer Project for Domino Agent Support #668

JoelProminic opened this issue Feb 26, 2020 · 1 comment
Assignees
Labels
domino HCL Domino Support feature request

Comments

@JoelProminic
Copy link
Contributor

JoelProminic commented Feb 26, 2020

We have an internal tool called DXL Importer that we use to compile Domino agents and Script Libraries written in a external IDE and import them into a Domino database without using Domino Designer. We would like to support quickly setting up this tool in a Moonshine project.

Agents are actions that can be called from a Notes client or a URL (based on the configuration). I will provide templates for each environment. Script Libraries are used to store code that will be used by multiple agents.

DXL Importer is based on Ant scripts, currently. I have been able to manually set up the scripts and run them from Moonshine, though I would like to change some behavior for the Ant actions (I'll report this separately).

There are several configuration files, dependencies, and build scripts required to use DXL Importer. I have been working on cleaning and these files so that they are easier to use. I will report when I have an initial version that is ready for implementation in Moonshine. I also need to cleanup the output of DXL Importer so that it is easier to read and debug problems.

My plan is that we will add a new Java project template that will include all of the files needed to run DXL Importer. When creating the project, we'll need to prompt the user for additional fields, which should be stored in the project settings and sent to the Ant script (TODO):

  • Domino Server
  • Domino Database Path

Since the files are inconvenient to setup manually, we will provide GUI entries to define new Agents or Script Libraries. Since the basic fields are the same, I think we can do this with one form. The parameters are:

  • Type: Client Agent, Web Agent, or Script Library
  • Name: By default, this will be used as the name for the primary class and the agent or script libraries, as well as the base name for the other supporting files.
  • Package: the default package in which to create the Java class.
  • Script Libraries - Select 0, 1, or many script libraries from a list of existing script libraries in the project. Both Script Libraries and Agents can reference Script Libraries.
  • NOTE: We may add additional agent settings later, but I'll plan to document them in the configuration files instead for now.

The action will then generate a set of files (I'll give more details and templates soon - the paths are subject to change):

  • src/main/java/%package%/%name%.java - the main Java class. I'll provide a template for a Domino agent. Script libraries don't have to implement a Domino API, but I'll provide a basic template that imports the Notes libraries.
  • agentProperties/agentbuild/%name%.properties (agent) or agentProperties/scriptbuild/%name%.properties (script library). This configures the agent settings. For the initial template, I'll use reasonable defaults and add some comments to explain the other settings.
  • dxlBuild/build-agent-%name%.xml (agent) or dxlBuild/build-scriptlibrary-%name%.xml (script library). This Ant script is used to build the classes that will be included in the agent and import. I have streamlined this file already so that it will require minimal code for basic agents and libraries.
  • Also, we'll need to update scriptLibraryConfig/ScriptLibraryConfig.properties for Script Libraries. This file is used when calculating the SVN revision of the Script Library, which can then be used to determine if a Script Library update is required when opening an agent.
@JoelProminic
Copy link
Contributor Author

Here is what I need to provide for the initial version:

  • Continue cleaning up the DXL configuration files so that they are better organized
  • An initial example project template, including an example client agent, web agent, and script library
  • Initial templates for each of the files that need to be generated
  • Instructions for how to pass the Notes path to the Ant scripts. See Detect IBM/HCL Notes Client for Domino Support #667
  • Instructions for how to pass the server and database name to the Ant scripts.

Here are some other things I need to do after I have supplied an intial version for Moonshine implementation:

  • Cleanup DXL Importer. I can provide a new JAR when this is done, so this can be updated without changing the design in Moonshine.
  • Support reading the Git revision rather than the SVN revision. This is probably just another JAR update.
  • Update the templates and core files with more documentation

@JoelProminic JoelProminic added domino HCL Domino Support feature request labels Nov 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domino HCL Domino Support feature request
Projects
None yet
Development

No branches or pull requests

3 participants