@@ -1955,23 +1955,29 @@ class KorapXmlTool : Callable<Int> {
19551955 // Determine output zip label. Prefer combined label if both tagger and parser are active
19561956 var targetFoundry = " base"
19571957 val labelParts = mutableListOf<String >()
1958- if (taggerName != null ) {
1959- val tagger = AnnotationToolBridgeFactory .getTagger(taggerName!! , taggerModel!! , LOGGER )
1960- if (tagger != null ) {
1961- labelParts.add(tagger.foundry)
1958+
1959+ // Check if foundry override is set - if so, use it directly
1960+ if (foundryOverride != null ) {
1961+ targetFoundry = foundryOverride!!
1962+ } else {
1963+ if (taggerName != null ) {
1964+ val tagger = AnnotationToolBridgeFactory .getTagger(taggerName!! , taggerModel!! , LOGGER )
1965+ if (tagger != null ) {
1966+ labelParts.add(tagger.foundry)
1967+ }
19621968 }
1963- }
1964- if (parserName != null ) {
1965- // Only add parser foundry if it's different from tagger foundry
1966- if (taggerName == null || taggerName != parserName) {
1967- labelParts.add(parserName!! )
1969+ if (parserName != null ) {
1970+ // Only add parser foundry if it's different from tagger foundry
1971+ if (taggerName == null || taggerName != parserName) {
1972+ labelParts.add(parserName!! )
1973+ }
1974+ }
1975+ if (labelParts.isNotEmpty()) {
1976+ targetFoundry = labelParts.joinToString(" -" )
1977+ } else if (annotateWith.isNotEmpty()) {
1978+ targetFoundry = externalFoundry ? : detectFoundryFromAnnotateCmd(annotateWith)
1979+ LOGGER .info(" Detected foundry '$targetFoundry ' from annotation command: $annotateWith " )
19681980 }
1969- }
1970- if (labelParts.isNotEmpty()) {
1971- targetFoundry = labelParts.joinToString(" -" )
1972- } else if (annotateWith.isNotEmpty()) {
1973- targetFoundry = externalFoundry ? : detectFoundryFromAnnotateCmd(annotateWith)
1974- LOGGER .info(" Detected foundry '$targetFoundry ' from annotation command: $annotateWith " )
19751981 }
19761982 dbFactory = DocumentBuilderFactory .newInstance()
19771983 dBuilder = dbFactory!! .newDocumentBuilder()
@@ -2977,8 +2983,8 @@ class KorapXmlTool : Callable<Int> {
29772983 output.setLength(0 )
29782984 } else {
29792985 // Direct ZIP output without external annotation: write morpho.xml and, if parser is active, dependency.xml
2980- val morphoDir = taggerToolBridges[Thread .currentThread().threadId()]?.foundry ? : morphoFoundry
2981- val depDir = parserName ? : morphoDir
2986+ val morphoDir = foundryOverride ? : ( taggerToolBridges[Thread .currentThread().threadId()]?.foundry ? : morphoFoundry)
2987+ val depDir = foundryOverride ? : ( parserName ? : morphoDir)
29822988 var wroteOne = false
29832989 // Always write morpho.xml if we have morpho annotations (tagger or from input)
29842990 if (morpho[docId] != null && morpho[docId]!! .isNotEmpty()) {
0 commit comments