Skip to content

Legacy Support - Web Service Providers (Filters) #3

Description

@JoelProminic

While exporting an old database, I found some "Filter" design elements.

Claude reported that these are legacy agents (pre-Notes-8), and I confirmed they are obsolete in this database. Domino 11 gives me warnings that they are obsolete.

So, I don't want to spend more time on these for now

Writeup from Claude:

1. Web Service Providers exported as <note class="filter">

Files: other/Copy_Of_GBAuthAppletConfig_Filter.dxl,
other/GBAuthAppletConfig_Filter.dxl

What they actually are: Domino Designer shows these under Web Service
Providers
. They are Java-based WS Providers — the design note carries an
<item name="$FILE"> whose <object><file> is %%source%%.jar containing the
compiled Java class.

Why they show up the way they do:

  • WS Provider notes use NOTE_CLASS_FILTER (the same note class as agents),
    distinguished by $Flags. DxlExporter emits them as
    <note class="filter"> rather than as <agent> with a <javaproject> child.
  • DesignExporter.exportCode() selects via setSelectAgents(true), which
    does not match the legacy <note class="filter"> form, so they're missed
    there.
  • They're picked up later by setSelectMiscCodeElements(true) in
    exportOther(), which is why they land in other/ instead of code/.
  • DxlProcessor.isJavaElement() only flags <javaresource> tags and
    <javaproject> descendants. The <note class="filter"> + $FILE shape
    matches neither, so the skipJava filter does not exclude them — even
    though they contain compiled Java that won't round-trip through
    DxlImporter.
  • Filename suffix is _Filter because getTypeSuffix() falls back to
    capitalise(type) for any type not in TYPE_SUFFIXES, and the resolved
    type is "filter" (from <note class="filter">).

Suggested fix (deferred — obsolete in this DB):

  • Route <note class="filter"> to code/ alongside real agents (treat it as
    an alias for agent in setSelectAgents results, or special-case it in
    resolveType).
  • Extend isJavaElement() to recognise filter-class notes whose $FILE item
    carries %%source%%.jar (or design flags indicating a Java WS Provider) so
    they get [SKIP Java] treatment under skipJava.
  • Pick a clearer type suffix: e.g. _WebServiceProvider when the
    filter-class note's $Flags indicate WS Provider, otherwise _Agent.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Fields

No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions