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.
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.dxlWhat 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%%.jarcontaining thecompiled Java class.
Why they show up the way they do:
NOTE_CLASS_FILTER(the same note class as agents),distinguished by
$Flags.DxlExporteremits them as<note class="filter">rather than as<agent>with a<javaproject>child.DesignExporter.exportCode()selects viasetSelectAgents(true), whichdoes not match the legacy
<note class="filter">form, so they're missedthere.
setSelectMiscCodeElements(true)inexportOther(), which is why they land inother/instead ofcode/.DxlProcessor.isJavaElement()only flags<javaresource>tags and<javaproject>descendants. The<note class="filter">+$FILEshapematches neither, so the
skipJavafilter does not exclude them — eventhough they contain compiled Java that won't round-trip through
DxlImporter._FilterbecausegetTypeSuffix()falls back tocapitalise(type)for any type not inTYPE_SUFFIXES, and the resolvedtype is
"filter"(from<note class="filter">).Suggested fix (deferred — obsolete in this DB):
<note class="filter">tocode/alongside real agents (treat it asan alias for
agentinsetSelectAgentsresults, or special-case it inresolveType).isJavaElement()to recognise filter-class notes whose$FILEitemcarries
%%source%%.jar(or design flags indicating a Java WS Provider) sothey get
[SKIP Java]treatment underskipJava._WebServiceProviderwhen thefilter-class note's
$Flagsindicate WS Provider, otherwise_Agent.