From c09f0b8f4d146b80a98192fb870dfffcb9cc5e64 Mon Sep 17 00:00:00 2001 From: Kuro Kurosaka Date: Wed, 6 Jun 2018 11:07:24 -0700 Subject: [PATCH 1/6] WS Markdown filter prototype. No config params exposed to WS. M35 based. --- README.md | 2 +- .../autoactions/hubmt/WSPlaceholderUtil.java | 2 +- filters/markdown/pom.xml | 92 +++++++++++++++++++ .../MarkdownFilterConfigurationData.java | 83 +++++++++++++++++ .../MarkdownFilterConfigurationUI.java | 78 ++++++++++++++++ .../markdown/MarkdownWSOkapiFilter.java | 62 +++++++++++++ .../MarkdownFilterConfigurationDataTest.java | 17 ++++ .../filters/markdown/MarkdownFilterTest.java | 17 ++++ filters/pom.xml | 1 + pom.xml | 2 +- 10 files changed, 353 insertions(+), 3 deletions(-) create mode 100644 filters/markdown/pom.xml create mode 100644 filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java create mode 100644 filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java create mode 100644 filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownWSOkapiFilter.java create mode 100644 filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationDataTest.java create mode 100644 filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterTest.java diff --git a/README.md b/README.md index 32e3cc43..dfcccb38 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ even 9.x), due to the stability of the WSSDK. You will need to update the compiling against. All Okapi releases since M24 require Java 7 or later, so these components must -be deployed to a WorldServer instance running Java 7 or later. +be deployed to a WorldServer instance running Java 7 or later. (Upcoming M36, which is in development at the time of this writing, will requires Java 7.) Building -------- diff --git a/autoactions/mshub/src/main/java/com/spartansoftwareinc/ws/autoactions/hubmt/WSPlaceholderUtil.java b/autoactions/mshub/src/main/java/com/spartansoftwareinc/ws/autoactions/hubmt/WSPlaceholderUtil.java index ae9f4028..46038e2f 100644 --- a/autoactions/mshub/src/main/java/com/spartansoftwareinc/ws/autoactions/hubmt/WSPlaceholderUtil.java +++ b/autoactions/mshub/src/main/java/com/spartansoftwareinc/ws/autoactions/hubmt/WSPlaceholderUtil.java @@ -56,7 +56,7 @@ public class WSPlaceholderUtil * from the map. * * @param s Input string with placeholders. e.g. "Click {1}here{2} or {3}cancel{4} the operation.{5}") - * @param placeholderMap An int-to-String map. + * @param phmap An int-to-String map. * @return a String where all placeholders are replaced by the corresponding strings. */ public static String replacePlaceholders( String s, Map phmap ) diff --git a/filters/markdown/pom.xml b/filters/markdown/pom.xml new file mode 100644 index 00000000..efbbd9dd --- /dev/null +++ b/filters/markdown/pom.xml @@ -0,0 +1,92 @@ + + + http://maven.apache.org + 4.0.0 + + + com.spartansoftwareinc.ws.okapi.filters + okapi-ws-filters + 1.8-SNAPSHOT + + + com.spartansoftwareinc.ws.okapi.filters.markdown + okapi-ws-filters-markdown + Okapi Markdown Filter for WorldServer + + + + com.spartansoftwareinc.ws.okapi.filters + okapi-ws-filters-base + ${project.version} + + + okapi-filter-markdown + net.sf.okapi.filters + ${okapi.version} + + + org.slf4j + slf4j-simple + + + + + com.spartansoftwareinc.ws.okapi.filters + okapi-ws-filters-base + ${project.version} + test + test-jar + + + net.sf.okapi + okapi-core + ${okapi.version} + test-jar + test + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 2.4.1 + + false + + + + package + + shade + + + + + + + + true + deployable + + + net.sf.okapi + ${okapi.version}.net.sf.okapi + + + com.ibm.icu + okapi_ws_components.com.ibm.icu + + + org.slf4j + okapi_ws_components.org.slf4j + + + + + + + + + diff --git a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java new file mode 100644 index 00000000..91de2a12 --- /dev/null +++ b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java @@ -0,0 +1,83 @@ +package com.spartansoftwareinc.ws.okapi.filters.markdown; + +import java.util.ArrayList; +import java.util.List; +import com.spartansoftwareinc.ws.okapi.filters.WSOkapiFilterConfigurationData; +import com.spartansoftwareinc.ws.okapi.filters.utils.FilterUtil; + +import net.sf.okapi.filters.markdown.Parameters; + +public class MarkdownFilterConfigurationData extends WSOkapiFilterConfigurationData { + private static final long serialVersionUID = 1L; + + @Override + protected Parameters getDefaultParameters() { + Parameters parameters = new Parameters(); + setCodeFinder(parameters); + parameters.setExtractAllPairs(true); + return parameters; + } + + public void setExcludedKeys(List excludedKeys) { + Parameters params = getParameters(); + StringBuilder sb = new StringBuilder("^("); + boolean first = true; + for (String key : excludedKeys) { + if (first) { + first = false; + } + else { + sb.append("|"); + } + appendExcludedKey(sb, key); + } + sb.append(")$"); + params.setExceptions(sb.toString()); + setParameters(params); + } + + private static StringBuilder appendExcludedKey(StringBuilder builder, String key) { + return builder.append("^").append(key).append("$"); + } + + private void setCodeFinder(Parameters parameters) { + parameters.setUseCodeFinder(true); + + int numRules = 0; + String colonLabelRule[] = getColonLabelCodeFinderRule(numRules); + numRules += colonLabelRule.length; + + String htmlRules[] = getHtmlCodeFinderRules(numRules); + numRules += htmlRules.length; + + List codeFinderData = new ArrayList<>(); + codeFinderData.add("useAllRulesWhenTesting.b=true"); + codeFinderData.add("count.i="+numRules); + codeFinderData.add(FilterUtil.join(colonLabelRule, "\n")); + codeFinderData.add(FilterUtil.join(htmlRules, "\n")); + + parameters.setCodeFinderData( + FilterUtil.join(codeFinderData.toArray(new String[codeFinderData.size()]), + "\n") + ); + } + + private String[] getColonLabelCodeFinderRule(int numRules) { + String colonLabelRule[] = {"rule"+numRules+++"=:[a-zA-Z0-9_]+"}; + return colonLabelRule; + } + + private String[] getHtmlCodeFinderRules(int numRules) { + String htmlRules[] = { + "rule"+numRules+++"=%(([-0+#]?)[-0+#]?)((\\d\\$)?)(([\\d\\*]*)(\\.[\\d\\*]*)?)[dioxXucsfeEgGpn]", + "rule"+numRules+++"=(\\\\r\\\\n)|\\\\a|\\\\b|\\\\f|\\\\n|\\\\r|\\\\t|\\\\v", + "rule"+numRules+++"=\\{\\d[^\\\\]*?\\}", + "rule"+numRules+++"=<.+?>", + "rule"+numRules+++"=%%[a-zA-Z]+%%", + "rule"+numRules+++"=%[0-9]+\\$[a-zA-Z]+", + "rule"+numRules+++"=%[a-zA-Z]+", + "rule"+numRules+++"=&[a-zA-Z]+;"}; + return htmlRules; + } + +} diff --git a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java new file mode 100644 index 00000000..7e21f612 --- /dev/null +++ b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java @@ -0,0 +1,78 @@ +package com.spartansoftwareinc.ws.okapi.filters.markdown; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.servlet.http.HttpServletRequest; + +import com.idiominc.wssdk.WSContext; +import com.idiominc.wssdk.component.WSComponentConfigurationData; +import com.spartansoftwareinc.ws.okapi.base.ui.UITable; +import com.spartansoftwareinc.ws.okapi.base.ui.UICheckbox; +import com.spartansoftwareinc.ws.okapi.base.ui.UIMultiValueInput; +import com.spartansoftwareinc.ws.okapi.base.ui.UIUtil; +import com.spartansoftwareinc.ws.okapi.filters.ui.WSOkapiFilterUI; + +import net.sf.okapi.filters.markdown.Parameters; + +public class MarkdownFilterConfigurationUI extends WSOkapiFilterUI { + + public MarkdownFilterConfigurationUI() { + } + + @Override + protected MarkdownFilterConfigurationData getConfigurationData(WSComponentConfigurationData config) { + return (config != null && config instanceof MarkdownFilterConfigurationData) ? + (MarkdownFilterConfigurationData)config : new MarkdownFilterConfigurationData(); + } + + @Override + protected UITable buildConfigurationTable(WSContext context, HttpServletRequest request, + WSComponentConfigurationData config) { + MarkdownFilterConfigurationData configData = getConfigurationData(config); + Collection excludedKeys = getExcludedKeys(configData); + UITable table = new UITable(); + table.add(new UIMultiValueInput("Non-Translatable Markdown Keys", "json", + excludedKeys, excludedKeys)); + table.add(new UICheckbox("Extract Standalone Keys", "extractIsolated", + configData.getParameters().getExtractStandalone())); + return table; + } + + @Override + protected String validateAndSave(WSContext context, HttpServletRequest request, MarkdownFilterConfigurationData configData, String errors) { + MarkdownFilterConfigurationData configurationData = getConfigurationData(configData); + + configurationData.setExcludedKeys(UIUtil.getOptionValues(request, "json_keys_res")); + Parameters params = configurationData.getParameters(); + params.setExtractStandalone(UIUtil.getBoolean(request, "extractIsolated")); + configurationData.setParameters(params); + + return errors; + } + + // ^(^key1$|^key2$|^key3$)$ + private Pattern KEYS_PATTERN = Pattern.compile("\\^\\((.*)\\)\\$"); + private Pattern KEY_PATTERN = Pattern.compile("\\^(.*)\\$"); + + private List getExcludedKeys(MarkdownFilterConfigurationData data) { + Matcher m = KEYS_PATTERN.matcher(data.getParameters().getExceptions()); + if (m.matches()) { + String[] rawKeys = m.group(1).split("\\|"); + List keys = new ArrayList(); + for (String raw : rawKeys) { + Matcher rawMatcher = KEY_PATTERN.matcher(raw); + if (rawMatcher.matches()) { + keys.add(rawMatcher.group(1)); + } + } + return keys; + } + return Collections.emptyList(); + } + +} diff --git a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownWSOkapiFilter.java b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownWSOkapiFilter.java new file mode 100644 index 00000000..35df2453 --- /dev/null +++ b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownWSOkapiFilter.java @@ -0,0 +1,62 @@ +package com.spartansoftwareinc.ws.okapi.filters.markdown; + +import com.idiominc.wssdk.component.filter.WSFilterConfigurationData; +import com.idiominc.wssdk.component.filter.WSFilterUIConfiguration; +import com.spartansoftwareinc.ws.okapi.Version; +import com.spartansoftwareinc.ws.okapi.filters.WSOkapiFilter; + +import net.sf.okapi.filters.markdown.MarkdownFilter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class MarkdownWSOkapiFilter extends WSOkapiFilter { + + private static final Logger LOG = LoggerFactory.getLogger(MarkdownWSOkapiFilter.class); + private static final String FILTER_NAME = "Okapi Markdown Filter"; + private static final String FILTER_DESCRIPTION = "World Server Markdown Filter using Okapi Markdown Filter"; + private static final String DEFAULT_ENCODING = "UTF-8"; + + @Override + public String getName() { + return FILTER_NAME; + } + + @Override + public String getDescription() { + return FILTER_DESCRIPTION; + } + + @Override + public String getVersion() { + return Version.BANNER; + } + + @Override + public WSFilterUIConfiguration getUIConfiguration() { + return new MarkdownFilterConfigurationUI(); + } + + @Override + protected Logger getLoggerWithContext() { + return LOG; + } + + @Override + public MarkdownFilter getConfiguredFilter(MarkdwownFilterConfigurationData config) { + MarkdownFilter filter = new MarkdownFilter(); + filter.setParameters(config.getParameters()); + return filter; + } + + @Override + protected String getDefaultEncoding() { + return DEFAULT_ENCODING; + } + + @Override + protected MarkdownFilterConfigurationData getOkapiFilterConfiguration() { + WSFilterConfigurationData config = getConfiguration(); + return (config != null && config instanceof MarkdownFilterConfigurationData) ? + (MarkdownFilterConfigurationData)config : new MarkdownFilterConfigurationData(); + } +} \ No newline at end of file diff --git a/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationDataTest.java b/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationDataTest.java new file mode 100644 index 00000000..72b3b3b2 --- /dev/null +++ b/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationDataTest.java @@ -0,0 +1,17 @@ +package com.spartansoftwareinc.ws.okapi.filters.markdown; + +import static org.junit.Assert.assertEquals; + +import java.util.Collections; + +import org.junit.Test; + +import com.spartansoftwareinc.ws.okapi.filters.ConfigTestUtils; + +import net.sf.okapi.filters.markdown.Parameters; + +public class MarkdownFilterConfigurationDataTest { + + private final static String TERMINATOR = System.getProperty("line.separator"); + //TODO: Add some test cases. +} diff --git a/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterTest.java b/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterTest.java new file mode 100644 index 00000000..0b659d6d --- /dev/null +++ b/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterTest.java @@ -0,0 +1,17 @@ +package com.spartansoftwareinc.ws.okapi.filters.markdown; + +import java.nio.charset.StandardCharsets; +import java.util.Arrays; +import org.junit.Test; +import org.junit.runner.RunWith; +import com.idiominc.wssdk.component.filter.WSFilter; +import com.spartansoftwareinc.ws.okapi.filters.FilterTestHarness; +import com.spartansoftwareinc.ws.okapi.filters.model.SegmentInfoHolder; +import com.tngtech.java.junit.dataprovider.DataProvider; +import com.tngtech.java.junit.dataprovider.DataProviderRunner; +import com.tngtech.java.junit.dataprovider.UseDataProvider; + +@RunWith(DataProviderRunner.class) +public class MarkdownFilterTest { + //TODO: Add some test cases +} diff --git a/filters/pom.xml b/filters/pom.xml index 27523211..dbec23f0 100644 --- a/filters/pom.xml +++ b/filters/pom.xml @@ -19,6 +19,7 @@ base idml json + markdown openxml po xliff diff --git a/pom.xml b/pom.xml index 948232ae..88c525a9 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ UTF-8 10.4.3.195 - 0.34 + 0.35 com.spartansoftwareinc.ws.okapi From 46e523bcc913a02babc5fa270ce128a9031c6c65 Mon Sep 17 00:00:00 2001 From: Kuro Kurosaka Date: Fri, 8 Jun 2018 16:52:17 -0700 Subject: [PATCH 2/6] Buildable version with Java 7 JDK. Needs to specify MAVEN_OPTS=-Xmx2g --- filters/base/pom.xml | 12 +++++++ .../base/src/test/resources/log4j.properties | 4 +++ .../MarkdownFilterConfigurationData.java | 6 ++-- .../MarkdownFilterConfigurationUI.java | 31 +++++-------------- .../markdown/MarkdownWSOkapiFilter.java | 2 +- .../filters/markdown/MarkdownFilterTest.java | 2 +- pom.xml | 10 +++++- 7 files changed, 36 insertions(+), 31 deletions(-) create mode 100644 filters/base/src/test/resources/log4j.properties diff --git a/filters/base/pom.xml b/filters/base/pom.xml index c940619c..d593204f 100644 --- a/filters/base/pom.xml +++ b/filters/base/pom.xml @@ -41,6 +41,12 @@ okapi-filter-properties ${okapi.version} test + + + org.slf4j + slf4j-simple + + net.sf.okapi @@ -48,6 +54,12 @@ ${okapi.version} test-jar test + + + org.slf4j + slf4j-simple + + diff --git a/filters/base/src/test/resources/log4j.properties b/filters/base/src/test/resources/log4j.properties new file mode 100644 index 00000000..5e4b07d3 --- /dev/null +++ b/filters/base/src/test/resources/log4j.properties @@ -0,0 +1,4 @@ +log4j.rootLogger=DEBUG, console +log4j.appender.console=org.apache.log4j.ConsoleAppender +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n diff --git a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java index 91de2a12..e79d6939 100644 --- a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java +++ b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java @@ -14,7 +14,6 @@ public class MarkdownFilterConfigurationData extends WSOkapiFilterConfigurationD protected Parameters getDefaultParameters() { Parameters parameters = new Parameters(); setCodeFinder(parameters); - parameters.setExtractAllPairs(true); return parameters; } @@ -32,7 +31,6 @@ public void setExcludedKeys(List excludedKeys) { appendExcludedKey(sb, key); } sb.append(")$"); - params.setExceptions(sb.toString()); setParameters(params); } @@ -56,10 +54,10 @@ private void setCodeFinder(Parameters parameters) { codeFinderData.add(FilterUtil.join(colonLabelRule, "\n")); codeFinderData.add(FilterUtil.join(htmlRules, "\n")); - parameters.setCodeFinderData( +/* parameters.setCodeFinderData( FilterUtil.join(codeFinderData.toArray(new String[codeFinderData.size()]), "\n") - ); + );*/ } private String[] getColonLabelCodeFinderRule(int numRules) { diff --git a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java index 7e21f612..d397cb18 100644 --- a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java +++ b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java @@ -34,12 +34,14 @@ protected MarkdownFilterConfigurationData getConfigurationData(WSComponentConfig protected UITable buildConfigurationTable(WSContext context, HttpServletRequest request, WSComponentConfigurationData config) { MarkdownFilterConfigurationData configData = getConfigurationData(config); - Collection excludedKeys = getExcludedKeys(configData); + + //Collection excludedKeys = getExcludedKeys(configData); + UITable table = new UITable(); - table.add(new UIMultiValueInput("Non-Translatable Markdown Keys", "json", +/* table.add(new UIMultiValueInput("Non-Translatable Markdown Keys", "json", excludedKeys, excludedKeys)); table.add(new UICheckbox("Extract Standalone Keys", "extractIsolated", - configData.getParameters().getExtractStandalone())); + configData.getParameters().getExtractStandalone()));*/ return table; } @@ -47,32 +49,13 @@ protected UITable buildConfigurationTable(WSContext context, HttpServletRequest protected String validateAndSave(WSContext context, HttpServletRequest request, MarkdownFilterConfigurationData configData, String errors) { MarkdownFilterConfigurationData configurationData = getConfigurationData(configData); - configurationData.setExcludedKeys(UIUtil.getOptionValues(request, "json_keys_res")); + // configurationData.setExcludedKeys(UIUtil.getOptionValues(request, "json_keys_res")); Parameters params = configurationData.getParameters(); - params.setExtractStandalone(UIUtil.getBoolean(request, "extractIsolated")); +// params.setExtractStandalone(UIUtil.getBoolean(request, "extractIsolated")); configurationData.setParameters(params); return errors; } - // ^(^key1$|^key2$|^key3$)$ - private Pattern KEYS_PATTERN = Pattern.compile("\\^\\((.*)\\)\\$"); - private Pattern KEY_PATTERN = Pattern.compile("\\^(.*)\\$"); - - private List getExcludedKeys(MarkdownFilterConfigurationData data) { - Matcher m = KEYS_PATTERN.matcher(data.getParameters().getExceptions()); - if (m.matches()) { - String[] rawKeys = m.group(1).split("\\|"); - List keys = new ArrayList(); - for (String raw : rawKeys) { - Matcher rawMatcher = KEY_PATTERN.matcher(raw); - if (rawMatcher.matches()) { - keys.add(rawMatcher.group(1)); - } - } - return keys; - } - return Collections.emptyList(); - } } diff --git a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownWSOkapiFilter.java b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownWSOkapiFilter.java index 35df2453..6cdd607f 100644 --- a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownWSOkapiFilter.java +++ b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownWSOkapiFilter.java @@ -42,7 +42,7 @@ protected Logger getLoggerWithContext() { } @Override - public MarkdownFilter getConfiguredFilter(MarkdwownFilterConfigurationData config) { + public MarkdownFilter getConfiguredFilter(MarkdownFilterConfigurationData config) { MarkdownFilter filter = new MarkdownFilter(); filter.setParameters(config.getParameters()); return filter; diff --git a/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterTest.java b/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterTest.java index 0b659d6d..eb318fd0 100644 --- a/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterTest.java +++ b/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterTest.java @@ -11,7 +11,7 @@ import com.tngtech.java.junit.dataprovider.DataProviderRunner; import com.tngtech.java.junit.dataprovider.UseDataProvider; -@RunWith(DataProviderRunner.class) +//@RunWith(DataProviderRunner.class) public class MarkdownFilterTest { //TODO: Add some test cases } diff --git a/pom.xml b/pom.xml index 88c525a9..f1f69dd9 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ UTF-8 10.4.3.195 - 0.35 + 0.34 com.spartansoftwareinc.ws.okapi @@ -135,6 +135,14 @@ com.idiominc.* + + org.apache.maven.plugins + maven-surefire-plugin + 2.20 + + -Xmx1g + + From e35e83861b0ce5d418dab55e52bfc80f5ab4016f Mon Sep 17 00:00:00 2001 From: Kuro Kurosaka Date: Mon, 11 Jun 2018 17:47:53 -0700 Subject: [PATCH 3/6] commiting pom.xml in preparation for merging with upgrade_M35 branch --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f1f69dd9..9ffdd779 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ UTF-8 10.4.3.195 - 0.34 + 0.35 com.spartansoftwareinc.ws.okapi From 717c88e954bfd6141ae7803de4118c88dd5d7e58 Mon Sep 17 00:00:00 2001 From: Kuro Kurosaka Date: Mon, 11 Jun 2018 18:09:29 -0700 Subject: [PATCH 4/6] First succesful M35 based WS Markdown Filter with Config UI (untested) --- .../MarkdownFilterConfigurationData.java | 85 +++++++------------ .../MarkdownFilterConfigurationUI.java | 37 ++++---- .../MarkdownFilterConfigurationDataTest.java | 16 ++-- .../filters/markdown/MarkdownFilterTest.java | 29 ++++++- 4 files changed, 91 insertions(+), 76 deletions(-) diff --git a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java index e79d6939..ecaf44ea 100644 --- a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java +++ b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java @@ -1,9 +1,6 @@ package com.spartansoftwareinc.ws.okapi.filters.markdown; -import java.util.ArrayList; -import java.util.List; import com.spartansoftwareinc.ws.okapi.filters.WSOkapiFilterConfigurationData; -import com.spartansoftwareinc.ws.okapi.filters.utils.FilterUtil; import net.sf.okapi.filters.markdown.Parameters; @@ -13,69 +10,51 @@ public class MarkdownFilterConfigurationData extends WSOkapiFilterConfigurationD @Override protected Parameters getDefaultParameters() { Parameters parameters = new Parameters(); - setCodeFinder(parameters); return parameters; } + + // translateUrl + public boolean getTranslateUrls() { + return getParameters().getTranslateUrls(); + } - public void setExcludedKeys(List excludedKeys) { + public void setTranslateUrls(boolean translateUrls) { Parameters params = getParameters(); - StringBuilder sb = new StringBuilder("^("); - boolean first = true; - for (String key : excludedKeys) { - if (first) { - first = false; - } - else { - sb.append("|"); - } - appendExcludedKey(sb, key); - } - sb.append(")$"); + params.setTranslateUrls(translateUrls); setParameters(params); } - private static StringBuilder appendExcludedKey(StringBuilder builder, String key) { - return builder.append("^").append(key).append("$"); + // translateCodeBlocks + public boolean getTranslateCodeBlocks() { + return getParameters().getTranslateCodeBlocks(); } - private void setCodeFinder(Parameters parameters) { - parameters.setUseCodeFinder(true); - - int numRules = 0; - String colonLabelRule[] = getColonLabelCodeFinderRule(numRules); - numRules += colonLabelRule.length; - - String htmlRules[] = getHtmlCodeFinderRules(numRules); - numRules += htmlRules.length; - - List codeFinderData = new ArrayList<>(); - codeFinderData.add("useAllRulesWhenTesting.b=true"); - codeFinderData.add("count.i="+numRules); - codeFinderData.add(FilterUtil.join(colonLabelRule, "\n")); - codeFinderData.add(FilterUtil.join(htmlRules, "\n")); - -/* parameters.setCodeFinderData( - FilterUtil.join(codeFinderData.toArray(new String[codeFinderData.size()]), - "\n") - );*/ + public void setTranslateCodeBlockse(boolean translateCodeBlocks) { + Parameters params = getParameters(); + params.setTranslateCodeBlocks(translateCodeBlocks); + setParameters(params); } - private String[] getColonLabelCodeFinderRule(int numRules) { - String colonLabelRule[] = {"rule"+numRules+++"=:[a-zA-Z0-9_]+"}; - return colonLabelRule; + // translateHeaderMetadata + public boolean getTranslateHeaderMetadata() { + return getParameters().getTranslateUrls(); } - private String[] getHtmlCodeFinderRules(int numRules) { - String htmlRules[] = { - "rule"+numRules+++"=%(([-0+#]?)[-0+#]?)((\\d\\$)?)(([\\d\\*]*)(\\.[\\d\\*]*)?)[dioxXucsfeEgGpn]", - "rule"+numRules+++"=(\\\\r\\\\n)|\\\\a|\\\\b|\\\\f|\\\\n|\\\\r|\\\\t|\\\\v", - "rule"+numRules+++"=\\{\\d[^\\\\]*?\\}", - "rule"+numRules+++"=<.+?>", - "rule"+numRules+++"=%%[a-zA-Z]+%%", - "rule"+numRules+++"=%[0-9]+\\$[a-zA-Z]+", - "rule"+numRules+++"=%[a-zA-Z]+", - "rule"+numRules+++"=&[a-zA-Z]+;"}; - return htmlRules; + public void setTranslateHeaderMetadata(boolean translateHeaderMetadata) { + Parameters params = getParameters(); + params.setTranslateUrls(translateHeaderMetadata); + setParameters(params); + } + + // translateImageAltText + public boolean getTranslateImageAltText() { + return getParameters().getTranslateImageAltText(); } + public void setTranslateImageAltText(boolean translateImageAltText) { + Parameters params = getParameters(); + params.setTranslateImageAltText(translateImageAltText); + setParameters(params); + } + } diff --git a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java index d397cb18..9fe8760f 100644 --- a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java +++ b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java @@ -21,8 +21,14 @@ public class MarkdownFilterConfigurationUI extends WSOkapiFilterUI { - public MarkdownFilterConfigurationUI() { - } + private static final String TRANSLATE_URLS_LABEL = "Translate URLs"; + private static final String TRANSLATE_URLS_NAME = "translateUrls"; + private static final String TRANSLATE_CODE_BLOCKS_LABEL = "Translate Code Blocks"; + private static final String TRANSLATE_CODE_BLOCKS_NAME = "translateCodeBlocks"; + private static final String TRANSLATE_HEADER_METADATA_LABEL = "Translate Header Metadata"; + private static final String TRANSLATE_HEADER_METADATA_NAME = "translateHeaderMetadata"; + private static final String TRANSLATE_IMAGE_ALT_TEXT_LABEL = "Translate Image Alt Text"; + private static final String TRANSLATE_IMAGE_ALT_TEXT_NAME = "translateImageAltText"; @Override protected MarkdownFilterConfigurationData getConfigurationData(WSComponentConfigurationData config) { @@ -35,13 +41,15 @@ protected UITable buildConfigurationTable(WSContext context, HttpServletRequest WSComponentConfigurationData config) { MarkdownFilterConfigurationData configData = getConfigurationData(config); - //Collection excludedKeys = getExcludedKeys(configData); - - UITable table = new UITable(); -/* table.add(new UIMultiValueInput("Non-Translatable Markdown Keys", "json", - excludedKeys, excludedKeys)); - table.add(new UICheckbox("Extract Standalone Keys", "extractIsolated", - configData.getParameters().getExtractStandalone()));*/ + UITable table = new UITable(); + table.add(new UICheckbox(TRANSLATE_URLS_LABEL, TRANSLATE_URLS_NAME, + configData.getParameters().getTranslateUrls())); + table.add(new UICheckbox(TRANSLATE_CODE_BLOCKS_LABEL, TRANSLATE_CODE_BLOCKS_NAME, + configData.getParameters().getTranslateCodeBlocks())); + table.add(new UICheckbox(TRANSLATE_HEADER_METADATA_LABEL, TRANSLATE_HEADER_METADATA_NAME, + configData.getParameters().getTranslateHeaderMetadata())); + table.add(new UICheckbox(TRANSLATE_IMAGE_ALT_TEXT_LABEL, TRANSLATE_IMAGE_ALT_TEXT_NAME, + configData.getParameters().getTranslateImageAltText())); return table; } @@ -49,13 +57,12 @@ protected UITable buildConfigurationTable(WSContext context, HttpServletRequest protected String validateAndSave(WSContext context, HttpServletRequest request, MarkdownFilterConfigurationData configData, String errors) { MarkdownFilterConfigurationData configurationData = getConfigurationData(configData); - // configurationData.setExcludedKeys(UIUtil.getOptionValues(request, "json_keys_res")); - Parameters params = configurationData.getParameters(); -// params.setExtractStandalone(UIUtil.getBoolean(request, "extractIsolated")); - configurationData.setParameters(params); - + // No real error check performed at this point. + configurationData.setTranslateUrls(UIUtil.getBoolean(request, TRANSLATE_URLS_NAME)); + configurationData.setTranslateCodeBlockse(UIUtil.getBoolean(request, TRANSLATE_CODE_BLOCKS_NAME)); + configurationData.setTranslateHeaderMetadata(UIUtil.getBoolean(request, TRANSLATE_HEADER_METADATA_NAME)); + configurationData.setTranslateImageAltText(UIUtil.getBoolean(request, TRANSLATE_IMAGE_ALT_TEXT_NAME)); return errors; } - } diff --git a/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationDataTest.java b/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationDataTest.java index 72b3b3b2..49348259 100644 --- a/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationDataTest.java +++ b/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationDataTest.java @@ -1,17 +1,23 @@ package com.spartansoftwareinc.ws.okapi.filters.markdown; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; -import java.util.Collections; import org.junit.Test; import com.spartansoftwareinc.ws.okapi.filters.ConfigTestUtils; -import net.sf.okapi.filters.markdown.Parameters; - public class MarkdownFilterConfigurationDataTest { - private final static String TERMINATOR = System.getProperty("line.separator"); - //TODO: Add some test cases. + @Test + public void testTranslateUrlsRoundTrip() throws Exception { + MarkdownFilterConfigurationData data = new MarkdownFilterConfigurationData(); + String defaultXml = ConfigTestUtils.toXML(data); + data.setTranslateUrls(true); + assertNotEquals(defaultXml, ConfigTestUtils.toXML(data)); + String changedXml = defaultXml.replace("translateUrls.b=false", "translateUrls.b=true"); + assertEquals(changedXml, ConfigTestUtils.toXML(data)); + } + } diff --git a/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterTest.java b/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterTest.java index eb318fd0..742df063 100644 --- a/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterTest.java +++ b/filters/markdown/src/test/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterTest.java @@ -1,9 +1,11 @@ package com.spartansoftwareinc.ws.okapi.filters.markdown; import java.nio.charset.StandardCharsets; -import java.util.Arrays; + +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; + import com.idiominc.wssdk.component.filter.WSFilter; import com.spartansoftwareinc.ws.okapi.filters.FilterTestHarness; import com.spartansoftwareinc.ws.okapi.filters.model.SegmentInfoHolder; @@ -11,7 +13,28 @@ import com.tngtech.java.junit.dataprovider.DataProviderRunner; import com.tngtech.java.junit.dataprovider.UseDataProvider; -//@RunWith(DataProviderRunner.class) +@RunWith(DataProviderRunner.class) public class MarkdownFilterTest { - //TODO: Add some test cases + private FilterTestHarness testHarness; + + @DataProvider + public static Object[][] testHelloWorld() { + return new Object[][]{{ + new SegmentInfoHolder[]{ + new SegmentInfoHolder("Hello, World! I am a " + WSFilter.PLACEHOLDER +"Markdown Filter" + WSFilter.PLACEHOLDER + " for " + WSFilter.PLACEHOLDER + "WorldServer" + WSFilter.PLACEHOLDER + ".", + "**", "**", "_", "_"), + } + }}; + } + + @Before + public void setup() { + testHarness = new FilterTestHarness(new MarkdownWSOkapiFilter()); + } + + @Test + @UseDataProvider("testHelloWorld") + public void testHelloWorld(SegmentInfoHolder[] expected) throws Exception { + testHarness.extractAndExpectSegments("/HelloWorld.md", new MarkdownFilterConfigurationData(), StandardCharsets.UTF_8, expected); + } } From 63d691019f7ac54cdac090699b06085d603b2843 Mon Sep 17 00:00:00 2001 From: Kuro Kurosaka Date: Thu, 14 Jun 2018 19:36:52 -0700 Subject: [PATCH 5/6] Working version. Based on M35. --- .../markdown/MarkdownFilterConfigurationData.java | 6 ++++-- .../markdown/MarkdownFilterConfigurationUI.java | 13 +++++-------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java index ecaf44ea..f108adac 100644 --- a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java +++ b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationData.java @@ -10,6 +10,8 @@ public class MarkdownFilterConfigurationData extends WSOkapiFilterConfigurationD @Override protected Parameters getDefaultParameters() { Parameters parameters = new Parameters(); + parameters.reset(); + parameters.setUseCodeFinder(false); // Turning off since we aren't providing a way to configure the rules. return parameters; } @@ -37,12 +39,12 @@ public void setTranslateCodeBlockse(boolean translateCodeBlocks) { // translateHeaderMetadata public boolean getTranslateHeaderMetadata() { - return getParameters().getTranslateUrls(); + return getParameters().getTranslateHeaderMetadata(); } public void setTranslateHeaderMetadata(boolean translateHeaderMetadata) { Parameters params = getParameters(); - params.setTranslateUrls(translateHeaderMetadata); + params.setTranslateHeaderMetadata(translateHeaderMetadata); setParameters(params); } diff --git a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java index 9fe8760f..b7e2467a 100644 --- a/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java +++ b/filters/markdown/src/main/java/com/spartansoftwareinc/ws/okapi/filters/markdown/MarkdownFilterConfigurationUI.java @@ -13,19 +13,16 @@ import com.idiominc.wssdk.component.WSComponentConfigurationData; import com.spartansoftwareinc.ws.okapi.base.ui.UITable; import com.spartansoftwareinc.ws.okapi.base.ui.UICheckbox; -import com.spartansoftwareinc.ws.okapi.base.ui.UIMultiValueInput; import com.spartansoftwareinc.ws.okapi.base.ui.UIUtil; import com.spartansoftwareinc.ws.okapi.filters.ui.WSOkapiFilterUI; -import net.sf.okapi.filters.markdown.Parameters; - public class MarkdownFilterConfigurationUI extends WSOkapiFilterUI { private static final String TRANSLATE_URLS_LABEL = "Translate URLs"; private static final String TRANSLATE_URLS_NAME = "translateUrls"; private static final String TRANSLATE_CODE_BLOCKS_LABEL = "Translate Code Blocks"; private static final String TRANSLATE_CODE_BLOCKS_NAME = "translateCodeBlocks"; - private static final String TRANSLATE_HEADER_METADATA_LABEL = "Translate Header Metadata"; + private static final String TRANSLATE_HEADER_METADATA_LABEL = "Translate Header Metadata (Yaml Values)"; private static final String TRANSLATE_HEADER_METADATA_NAME = "translateHeaderMetadata"; private static final String TRANSLATE_IMAGE_ALT_TEXT_LABEL = "Translate Image Alt Text"; private static final String TRANSLATE_IMAGE_ALT_TEXT_NAME = "translateImageAltText"; @@ -43,13 +40,13 @@ protected UITable buildConfigurationTable(WSContext context, HttpServletRequest UITable table = new UITable(); table.add(new UICheckbox(TRANSLATE_URLS_LABEL, TRANSLATE_URLS_NAME, - configData.getParameters().getTranslateUrls())); + configData.getTranslateUrls())); table.add(new UICheckbox(TRANSLATE_CODE_BLOCKS_LABEL, TRANSLATE_CODE_BLOCKS_NAME, - configData.getParameters().getTranslateCodeBlocks())); + configData.getTranslateCodeBlocks())); table.add(new UICheckbox(TRANSLATE_HEADER_METADATA_LABEL, TRANSLATE_HEADER_METADATA_NAME, - configData.getParameters().getTranslateHeaderMetadata())); + configData.getTranslateHeaderMetadata())); table.add(new UICheckbox(TRANSLATE_IMAGE_ALT_TEXT_LABEL, TRANSLATE_IMAGE_ALT_TEXT_NAME, - configData.getParameters().getTranslateImageAltText())); + configData.getTranslateImageAltText())); return table; } From c7d15371500e30d4d13dc3460e37a1593669c28c Mon Sep 17 00:00:00 2001 From: Kuro Kurosaka Date: Fri, 15 Jun 2018 15:12:47 -0700 Subject: [PATCH 6/6] Addeding more classes to shade in order to keep the older version of non-shaded filters working. --- autoactions/xliff/pom.xml | 7 +++++++ filters/idml/pom.xml | 7 +++++++ filters/json/pom.xml | 7 +++++++ filters/markdown/pom.xml | 7 +++++++ filters/openxml/pom.xml | 7 +++++++ filters/po/pom.xml | 7 +++++++ filters/xliff/pom.xml | 7 +++++++ filters/yaml/pom.xml | 7 +++++++ mt/google/pom.xml | 7 +++++++ mt/mshub/pom.xml | 7 +++++++ 10 files changed, 70 insertions(+) diff --git a/autoactions/xliff/pom.xml b/autoactions/xliff/pom.xml index f527ea84..cebfb33e 100644 --- a/autoactions/xliff/pom.xml +++ b/autoactions/xliff/pom.xml @@ -56,6 +56,13 @@ net.sf.okapi ${okapi.version}.net.sf.okapi + + com.spartansoftwareinc + ${project.version}.com.spartansoftwareinc + + com.spartansoftwareinc.ws.okapi.autoactions.xliff.* + + com.ibm.icu okapi_ws_components.com.ibm.icu diff --git a/filters/idml/pom.xml b/filters/idml/pom.xml index 54bae0a6..98640d55 100644 --- a/filters/idml/pom.xml +++ b/filters/idml/pom.xml @@ -70,6 +70,13 @@ net.sf.okapi ${okapi.version}.net.sf.okapi + + com.spartansoftwareinc + ${project.version}.com.spartansoftwareinc + + com.spartansoftwareinc.ws.okapi.filters.idml.* + + com.ibm.icu okapi_ws_components.com.ibm.icu diff --git a/filters/json/pom.xml b/filters/json/pom.xml index 7fee16e1..bea91c89 100644 --- a/filters/json/pom.xml +++ b/filters/json/pom.xml @@ -74,6 +74,13 @@ net.sf.okapi ${okapi.version}.net.sf.okapi + + com.spartansoftwareinc + ${project.version}.com.spartansoftwareinc + + com.spartansoftwareinc.ws.okapi.filters.json.* + + com.ibm.icu okapi_ws_components.com.ibm.icu diff --git a/filters/markdown/pom.xml b/filters/markdown/pom.xml index efbbd9dd..6a9f21ed 100644 --- a/filters/markdown/pom.xml +++ b/filters/markdown/pom.xml @@ -74,6 +74,13 @@ net.sf.okapi ${okapi.version}.net.sf.okapi + + com.spartansoftwareinc + ${project.version}.com.spartansoftwareinc + + com.spartansoftwareinc.ws.okapi.filters.markdown.* + + com.ibm.icu okapi_ws_components.com.ibm.icu diff --git a/filters/openxml/pom.xml b/filters/openxml/pom.xml index ae2f18fe..73fa86c9 100644 --- a/filters/openxml/pom.xml +++ b/filters/openxml/pom.xml @@ -66,6 +66,13 @@ net.sf.okapi ${okapi.version}.net.sf.okapi + + com.spartansoftwareinc + ${project.version}.com.spartansoftwareinc + + com.spartansoftwareinc.ws.okapi.filters.openxml.* + + com.ibm.icu okapi_ws_components.com.ibm.icu diff --git a/filters/po/pom.xml b/filters/po/pom.xml index 3b103f1a..694c5633 100644 --- a/filters/po/pom.xml +++ b/filters/po/pom.xml @@ -75,6 +75,13 @@ net.sf.okapi ${okapi.version}.net.sf.okapi + + com.spartansoftwareinc + ${project.version}.com.spartansoftwareinc + + com.spartansoftwareinc.ws.okapi.filters.po.* + + com.ibm.icu okapi_ws_components.com.ibm.icu diff --git a/filters/xliff/pom.xml b/filters/xliff/pom.xml index 978cd827..ac66bd2c 100644 --- a/filters/xliff/pom.xml +++ b/filters/xliff/pom.xml @@ -75,6 +75,13 @@ net.sf.okapi ${okapi.version}.net.sf.okapi + + com.spartansoftwareinc + ${project.version}.com.spartansoftwareinc + + com.spartansoftwareinc.ws.okapi.filters.xliff.* + + com.ibm.icu okapi_ws_components.com.ibm.icu diff --git a/filters/yaml/pom.xml b/filters/yaml/pom.xml index ed43219d..cc677172 100644 --- a/filters/yaml/pom.xml +++ b/filters/yaml/pom.xml @@ -74,6 +74,13 @@ net.sf.okapi ${okapi.version}.net.sf.okapi + + com.spartansoftwareinc + ${project.version}.com.spartansoftwareinc + + com.spartansoftwareinc.ws.okapi.filters.yaml.* + + com.ibm.icu okapi_ws_components.com.ibm.icu diff --git a/mt/google/pom.xml b/mt/google/pom.xml index dddf18f4..e71eafd8 100644 --- a/mt/google/pom.xml +++ b/mt/google/pom.xml @@ -83,6 +83,13 @@ net.sf.okapi ${okapi.version}.net.sf.okapi + + com.spartansoftwareinc + ${project.version}.com.spartansoftwareinc + + com.spartansoftwareinc.ws.okapi.mt.google.* + + org.apache.commons okapi_ws_components.org.apache.commons diff --git a/mt/mshub/pom.xml b/mt/mshub/pom.xml index 78bd41e8..f61de6bf 100644 --- a/mt/mshub/pom.xml +++ b/mt/mshub/pom.xml @@ -83,6 +83,13 @@ net.sf.okapi ${okapi.version}.net.sf.okapi + + com.spartansoftwareinc + ${project.version}.com.spartansoftwareinc + + com.spartansoftwareinc.ws.okapi.mt.mshub.* + + org.apache.commons okapi_ws_components.org.apache.commons