This is an automated email from the ASF dual-hosted git repository.
olabusayo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/daffodil.git
The following commit(s) were added to refs/heads/main by this push:
new db1a4910f Move layers/udf packages to o.a.d.api package
db1a4910f is described below
commit db1a4910f54e575134a6970ab2bb66d58c9a4b31
Author: olabusayoT <[email protected]>
AuthorDate: Wed Aug 6 12:04:06 2025 -0400
Move layers/udf packages to o.a.d.api package
- move java files in src/main/java
- ensure only java members of org.apache.daffodil.api is part of public api
- recreate LineFoldMode.java as a scala enum
- update documentation
DAFFODIL-3020
Deprecation/Compatibility
META-INF/services filenames have changed for Layers and UDF APIs. They now
have ".api" in front of the original package name i.e api.layers and api.udf.
---
build.sbt | 6 ++-
.../main/scala/org/apache/daffodil/cli/Main.scala | 2 +-
....Layer => org.apache.daffodil.api.layers.Layer} | 0
.../org/apache/daffodil/layers/BuggyLayer.scala | 2 +-
.../layers/api => api/layers}/ChecksumLayer.java | 2 +-
.../{runtime1/layers/api => api/layers}/Layer.java | 4 +-
.../api/layers/exceptions/LayerFatalException.java | 36 ++++++++-------
.../exceptions}/LayerNotEnoughDataException.java | 29 ++++++++++--
.../layers/api => api/layers}/package-info.java | 24 ++++++----
.../apache/daffodil/layers/runtime1/GZipLayer.java | 12 +++--
....Layer => org.apache.daffodil.api.layers.Layer} | 0
.../daffodil/layers/runtime1/Base64MimeLayer.scala | 2 +-
.../layers/runtime1/BoundaryMarkLayer.scala | 2 +-
.../daffodil/layers/runtime1/ByteSwapLayer.scala | 2 +-
.../layers/runtime1/FixedLengthLayer.scala | 4 +-
.../daffodil/layers/runtime1/LineFoldMode.java | 32 -------------
.../runtime1/LineFoldMode.scala} | 12 +++--
.../layers/runtime1/LineFoldedLayerBase.scala | 2 +-
.../runtime1/dpath/UserDefinedFunctionBase.scala | 4 +-
.../runtime1/layers/ChecksumLayerBase.scala | 3 +-
.../daffodil/runtime1/layers/LayerDriver.scala | 27 +----------
.../runtime1/layers/LayerProcessingException.java | 44 ------------------
.../runtime1/layers/LayerRuntimeCompiler.scala | 2 +-
.../runtime1/layers/LayerVarsRuntime.scala | 2 +-
.../runtime1/layers/ScalaLayerHelper.scala | 2 +-
.../runtime1/processors/DataProcessor.scala | 2 +-
.../runtime1/udf/UserDefinedFunctionService.scala | 2 +-
daffodil-layers/README.md | 21 +++++++++
.../org/apache/daffodil/cliTest/TestCLIUdfs.scala | 10 ++--
....Layer => org.apache.daffodil.api.layers.Layer} | 0
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
.../runtime1/layers/AISPayloadArmoringLayer.scala | 2 +-
.../daffodil/runtime1/layers/AllTypesLayer.scala | 2 +-
.../daffodil/runtime1/layers/CheckDigitLayer.scala | 2 +-
.../runtime1/layers/SimpleBombOutLayer.scala | 2 +-
.../daffodil/runtime1/layers/SimpleTestLayer.scala | 2 +-
.../runtime1/layers/ipv4/IPv4ChecksumLayer.scala | 2 +-
.../apache/daffodil/udf/TestUdfsInSchemas.scala | 2 +-
daffodil-udf/README.md | 53 ++++++++++++++++------
.../{ => api}/udf/UserDefinedFunction.java | 9 ++--
.../udf/UserDefinedFunctionIdentification.java | 8 ++--
.../{ => api}/udf/UserDefinedFunctionProvider.java | 30 +++++-------
.../UserDefinedFunctionFatalException.java | 2 +-
.../UserDefinedFunctionProcessingError.java | 4 +-
.../annotations/StringFunctions/Compare.java | 6 +--
.../badudfs/annotations/StringFunctions/FuncB.java | 4 +-
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
.../annotations/StringFunctions/Replace.java | 6 +--
.../StringFunctions/StringFunctionsProvider.java | 26 +++++------
.../badudfs/evaluate/StringFunctions/FuncA.java | 6 +--
.../badudfs/evaluate/StringFunctions/FuncB.java | 6 +--
.../badudfs/evaluate/StringFunctions/FuncC.java | 6 +--
.../badudfs/evaluate/StringFunctions/FuncD.java | 6 +--
.../badudfs/evaluate/StringFunctions/FuncE.java | 8 ++--
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
.../badudfs/evaluate/StringFunctions/Replace.java | 6 +--
.../StringFunctions/StringFunctionsProvider.java | 8 ++--
.../functionclasses1/StringFunctions/FuncA.java | 4 +-
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
.../functionclasses1/StringFunctions/Replace.java | 4 +-
.../StringFunctions/StringFunctionsProvider.java | 4 +-
.../functionclasses2/StringFunctions/FuncA.java | 4 +-
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
.../functionclasses2/StringFunctions/Replace.java | 4 +-
.../StringFunctions/StringFunctionsProvider.java | 6 +--
.../org/badudfs/nonUDF/StringFunctions/FuncA.java | 4 +-
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
.../badudfs/nonUDF/StringFunctions/Replace.java | 4 +-
.../StringFunctions/StringFunctionsProvider.java | 20 ++++----
.../jgoodudfs/example/StringFunctions/Compare.java | 5 +-
.../jgoodudfs/example/StringFunctions/Replace.java | 5 +-
.../StringFunctions/StringFunctionsProvider.java | 5 +-
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
.../StringFunctions/StringFunctionsProvider.scala | 6 +--
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
.../StringFunctions/StringFunctionsProvider.scala | 6 +--
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
.../StringFunctions/StringFunctionsProvider.scala | 8 ++--
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
.../StringFunctions/StringFunctionsProvider.scala | 6 +--
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
.../StringFunctions/StringFunctionsProvider.scala | 6 +--
...e.daffodil.api.udf.UserDefinedFunctionProvider} | 0
.../StringFunctions/StringFunctionsProvider.scala | 6 +--
.../IntegerFunctionsProvider.scala | 6 +--
.../StringFunctions/StringFunctionsProvider.scala | 6 +--
.../SupportedTypesFunctionsProvider.scala | 6 +--
90 files changed, 302 insertions(+), 323 deletions(-)
diff --git a/build.sbt b/build.sbt
index 0d4f4fc2e..f3ce75145 100644
--- a/build.sbt
+++ b/build.sbt
@@ -432,7 +432,11 @@ lazy val unidocSettings =
scopedSources
}
.value
- .map(_.filter(_.getName.endsWith(".java")))
+ .map(
+ _.filter(fn =>
+ fn.getName.endsWith(".java") &&
fn.getPath.contains("org/apache/daffodil/api")
+ )
+ )
)
lazy val genTunablesDocSettings = Seq(
diff --git a/daffodil-cli/src/main/scala/org/apache/daffodil/cli/Main.scala
b/daffodil-cli/src/main/scala/org/apache/daffodil/cli/Main.scala
index 8d0ed1d7b..ad4e9bdcc 100644
--- a/daffodil-cli/src/main/scala/org/apache/daffodil/cli/Main.scala
+++ b/daffodil-cli/src/main/scala/org/apache/daffodil/cli/Main.scala
@@ -47,6 +47,7 @@ import scala.util.matching.Regex
import org.apache.daffodil.api
import org.apache.daffodil.api.debugger.InteractiveDebuggerRunnerFactory
import org.apache.daffodil.api.exceptions.InvalidParserException
+import org.apache.daffodil.api.layers.exceptions.LayerFatalException
import org.apache.daffodil.api.validation.ValidatorInitializationException
import org.apache.daffodil.api.validation.ValidatorNotRegisteredException
import org.apache.daffodil.cli.debugger.CLIDebuggerRunner
@@ -76,7 +77,6 @@ import
org.apache.daffodil.runtime1.debugger.DebuggerExitException
import org.apache.daffodil.runtime1.debugger.InteractiveDebugger
import org.apache.daffodil.runtime1.externalvars.ExternalVariablesLoader
import org.apache.daffodil.runtime1.iapi.DFDL
-import org.apache.daffodil.runtime1.layers.LayerFatalException
import org.apache.daffodil.runtime1.processors.DataLoc
import org.apache.daffodil.runtime1.processors.DataProcessor
import org.apache.daffodil.runtime1.processors.ExternalVariableException
diff --git
a/daffodil-cli/src/test/resources/META-INF/services/org.apache.daffodil.runtime1.layers.api.Layer
b/daffodil-cli/src/test/resources/META-INF/services/org.apache.daffodil.api.layers.Layer
similarity index 100%
rename from
daffodil-cli/src/test/resources/META-INF/services/org.apache.daffodil.runtime1.layers.api.Layer
rename to
daffodil-cli/src/test/resources/META-INF/services/org.apache.daffodil.api.layers.Layer
diff --git
a/daffodil-cli/src/test/scala/org/apache/daffodil/layers/BuggyLayer.scala
b/daffodil-cli/src/test/scala/org/apache/daffodil/layers/BuggyLayer.scala
index 677f689b4..8acf86444 100644
--- a/daffodil-cli/src/test/scala/org/apache/daffodil/layers/BuggyLayer.scala
+++ b/daffodil-cli/src/test/scala/org/apache/daffodil/layers/BuggyLayer.scala
@@ -21,7 +21,7 @@ import java.io.IOException
import java.io.InputStream
import java.io.OutputStream
-import org.apache.daffodil.runtime1.layers.api.Layer
+import org.apache.daffodil.api.layers.Layer
final class BuggyLayer extends Layer("buggy",
"urn:org.apache.daffodil.layers.buggy") {
diff --git
a/daffodil-core/src/main/java/org/apache/daffodil/runtime1/layers/api/ChecksumLayer.java
b/daffodil-core/src/main/java/org/apache/daffodil/api/layers/ChecksumLayer.java
similarity index 98%
rename from
daffodil-core/src/main/java/org/apache/daffodil/runtime1/layers/api/ChecksumLayer.java
rename to
daffodil-core/src/main/java/org/apache/daffodil/api/layers/ChecksumLayer.java
index 07906ab7c..858f71db1 100644
---
a/daffodil-core/src/main/java/org/apache/daffodil/runtime1/layers/api/ChecksumLayer.java
+++
b/daffodil-core/src/main/java/org/apache/daffodil/api/layers/ChecksumLayer.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.daffodil.runtime1.layers.api;
+package org.apache.daffodil.api.layers;
import org.apache.daffodil.runtime1.layers.ChecksumLayerBase;
diff --git
a/daffodil-core/src/main/java/org/apache/daffodil/runtime1/layers/api/Layer.java
b/daffodil-core/src/main/java/org/apache/daffodil/api/layers/Layer.java
similarity index 99%
rename from
daffodil-core/src/main/java/org/apache/daffodil/runtime1/layers/api/Layer.java
rename to daffodil-core/src/main/java/org/apache/daffodil/api/layers/Layer.java
index fdf7ff217..d652a4a38 100644
---
a/daffodil-core/src/main/java/org/apache/daffodil/runtime1/layers/api/Layer.java
+++ b/daffodil-core/src/main/java/org/apache/daffodil/api/layers/Layer.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.daffodil.runtime1.layers.api;
+package org.apache.daffodil.api.layers;
import org.apache.daffodil.lib.util.SimpleNamedLoadableService;
import org.apache.daffodil.runtime1.layers.LayerRuntime;
@@ -42,7 +42,7 @@ import java.util.List;
* The names of concrete classes derived from Layer are listed in
* a metadata resource file
* named for this class (that is, the file name is the fully-qualified class
name of this class:
- * {@code
resources/META-INF/services/org.apache.daffodil.runtime1.layers.api.Layer}).
+ * {@code resources/META-INF/services/org.apache.daffodil.api.layers.Layer}).
* This file contains lines where each line contains one fully qualified class
name of a derived
* layer class.
* More than one line in the file denotes that the Jar file contains the
definitions of more than one derived layer
diff --git
a/daffodil-udf/src/main/java/org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.java
b/daffodil-core/src/main/java/org/apache/daffodil/api/layers/exceptions/LayerFatalException.java
similarity index 50%
copy from
daffodil-udf/src/main/java/org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.java
copy to
daffodil-core/src/main/java/org/apache/daffodil/api/layers/exceptions/LayerFatalException.java
index 4aa0ac810..374c5ddf7 100644
---
a/daffodil-udf/src/main/java/org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.java
+++
b/daffodil-core/src/main/java/org/apache/daffodil/api/layers/exceptions/LayerFatalException.java
@@ -15,29 +15,31 @@
* limitations under the License.
*/
-package org.apache.daffodil.udf.exceptions;
+package org.apache.daffodil.api.layers.exceptions;
+
+import org.apache.daffodil.lib.util.Misc;
/**
- * Exception to throw to abort parsing/unparsing.
+ * This is used to encapsulate runtime exceptions that are thrown out of layer
code.
*/
-@SuppressWarnings("serial")
-public class UserDefinedFunctionFatalException extends Exception {
-
+public class LayerFatalException extends RuntimeException {
/**
- * Constructs a new exception with a specified detail message
- *
- * @param errorMessage the detail message
+ * @param message String for exception
*/
- public UserDefinedFunctionFatalException(String errorMessage) {
- super(errorMessage);
+ public LayerFatalException(String message) {
+ this(message, null);
}
-
/**
- * Constructs a new exception with a specified cause
- *
- * @param cause the cause of the exception
+ * When constructed with just a cause, we also pass a message if the cause
provides one
+ * because the SLF4J logging system doesn't synthesize a message from the
cause if only
+ * a cause is provided.
+ * @param cause throwable for exception
*/
- public UserDefinedFunctionFatalException(Throwable cause) {
- super(cause);
+ public LayerFatalException(Throwable cause) {
+ this(cause.getMessage() == null ? Misc.getNameFromClass(cause) :
cause.getMessage(), cause);
+ }
+
+ public LayerFatalException(String message, Throwable cause) {
+ super(message, cause);
}
-}
+}
\ No newline at end of file
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerNotEnoughDataException.java
b/daffodil-core/src/main/java/org/apache/daffodil/api/layers/exceptions/LayerNotEnoughDataException.java
similarity index 55%
rename from
daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerNotEnoughDataException.java
rename to
daffodil-core/src/main/java/org/apache/daffodil/api/layers/exceptions/LayerNotEnoughDataException.java
index de55ef799..f3c211ae2 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerNotEnoughDataException.java
+++
b/daffodil-core/src/main/java/org/apache/daffodil/api/layers/exceptions/LayerNotEnoughDataException.java
@@ -14,13 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.daffodil.runtime1.layers;
+package org.apache.daffodil.api.layers.exceptions;
+
+import org.apache.daffodil.lib.util.Misc;
+
+import java.util.Objects;
/**
* LayerNotEnoughDataException is a custom exception class that represents an
exception that occurs
* when there is insufficient data for a layer in a program.
*/
-public class LayerNotEnoughDataException extends LayerProcessingException {
+public class LayerNotEnoughDataException extends Exception {
/**
* Creates a new instance of LayerNotEnoughDataException with the specified
@@ -30,7 +34,24 @@ public class LayerNotEnoughDataException extends
LayerProcessingException {
* @param numAvailableBytes the number of bytes available for the layer
*/
public LayerNotEnoughDataException(int numNeededBytes, int
numAvailableBytes) {
- super("Insufficient data. Needed " + numNeededBytes +
- " bytes, but only " + numAvailableBytes + " were available.");
+ this("Insufficient data. Needed " + numNeededBytes +
+ " bytes, but only " + numAvailableBytes + " were available.");
+ }
+
+ public LayerNotEnoughDataException(String msg, Throwable cause) {
+ super(msg, cause);
+ if (Objects.isNull(msg)) Objects.requireNonNull(cause);
+ if (Objects.isNull(cause)) Objects.requireNonNull(msg);
}
+
+ public LayerNotEnoughDataException(String msg) { this(msg, null); }
+
+ /**
+ * When creating an exception with just a cause, we also synthesize some
sort of
+ * message, because otherwise SLF4J doesn't do so, and you get out errors
like
+ * '[error] null' because you didn't supply a message.
+ * @param cause the cause of this processing exception
+ */
+ public LayerNotEnoughDataException(Throwable cause) {
+ this((cause.getMessage()) == null ? Misc.getNameFromClass(cause) :
cause.getMessage(), cause); }
}
diff --git
a/daffodil-core/src/main/java/org/apache/daffodil/runtime1/layers/api/package-info.java
b/daffodil-core/src/main/java/org/apache/daffodil/api/layers/package-info.java
similarity index 75%
rename from
daffodil-core/src/main/java/org/apache/daffodil/runtime1/layers/api/package-info.java
rename to
daffodil-core/src/main/java/org/apache/daffodil/api/layers/package-info.java
index ea14d7066..e3d4e8e51 100644
---
a/daffodil-core/src/main/java/org/apache/daffodil/runtime1/layers/api/package-info.java
+++
b/daffodil-core/src/main/java/org/apache/daffodil/api/layers/package-info.java
@@ -16,7 +16,7 @@
*/
/**
- * <h2>Daffodil Runtime1 Layers API Package</h2>
+ * <h2>Daffodil Layers API Package</h2>
* <p>
* This package provides base classes for creating Layers, which provide a
means of
* algorithmic operations on the data stream that cannot be expressed using
@@ -37,23 +37,29 @@
* This API documentation is focused on the programming required to create a
new layer implementation
* as a custom plug-in for Daffodil.
* <p>
- * {@link org.apache.daffodil.runtime1.layers.api.Layer} is the general
abstract base class
+ * {@link org.apache.daffodil.api.layers.Layer} is the general abstract base
class
* used to define any layer, but most commonly it is used for transforming
layers.
* <p>
- * {@link org.apache.daffodil.runtime1.layers.api.ChecksumLayer} is an
abstract base class
- * derived from {@link org.apache.daffodil.runtime1.layers.api.Layer}, and
further specialized for defining
+ * {@link org.apache.daffodil.api.layers.ChecksumLayer} is an abstract base
class
+ * derived from {@link org.apache.daffodil.api.layers.Layer}, and further
specialized for defining
* checksum layers.
*
* <h3> About Testing </h3>
* <p>
* The Daffodil test code base includes tests for many ways that
* an API user can goof up the definition of a layer class.
- * For example there are tests for calling {@code processingError}, {@code
runtimeSchemaDefinitionError}, and throwing
+ * For example, there are tests for calling {@code processingError}, {@code
runtimeSchemaDefinitionError}, and throwing
* an {@code Exception} from every place a custom-defined Layer could cause
these.
* Processing errors cause the parser to backtrack in all sensible cases.
- * That is to say that if a layer is parsing data, and the data it encounters
is not a match for that layer, then
- * a properly written layer will issue a processing error, and the parser will
backtrack, allowing the format to try
- * other alternatives for parsing that data.
+ * That is to say that if a layer is parsing data, and the data it encounters
is not
+ * a match for that layer, then a properly written layer will issue a
processing error,
+ * and the parser will backtrack, allowing the format to try other
alternatives for
+ * parsing that data.
+ *
+ * <h4>Custom Plug-In Layers</h4>
+ * Custom Plug-in layers must extend the {@link
org.apache.daffodil.api.layers.Layer} class, and be
+ * referenced in a {@code META-INF/services} file with the same class
reference as the name. This
+ * path has changed in Daffodil 4.0.0.
*
* <h3>Compatibility with Daffodil 3.7.0 and prior versions of Apache
Daffodil</h3>
* <p>
@@ -67,4 +73,4 @@
* It is our intention that this Layer API (introduced in Daffodil 3.8.0) will
prove to be stable
* and supportable long term.
*/
-package org.apache.daffodil.runtime1.layers.api;
+package org.apache.daffodil.api.layers;
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/GZipLayer.java
b/daffodil-core/src/main/java/org/apache/daffodil/layers/runtime1/GZipLayer.java
similarity index 96%
rename from
daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/GZipLayer.java
rename to
daffodil-core/src/main/java/org/apache/daffodil/layers/runtime1/GZipLayer.java
index 0b8d03c45..df37f95ff 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/GZipLayer.java
+++
b/daffodil-core/src/main/java/org/apache/daffodil/layers/runtime1/GZipLayer.java
@@ -17,7 +17,7 @@
package org.apache.daffodil.layers.runtime1;
-import org.apache.daffodil.runtime1.layers.api.Layer;
+import org.apache.daffodil.api.layers.Layer;
import java.io.IOException;
import java.io.InputStream;
@@ -41,7 +41,7 @@ public final class GZipLayer extends Layer {
majorVersion = 8;
} else {
String[] parts = versionString.split("\\.");
- assert(parts.length > 0);
+ assert (parts.length > 0);
majorVersion = Integer.parseInt(parts[0]);
}
fixNeeded = (majorVersion < 16);
@@ -99,10 +99,14 @@ class GZIPFixedOutputStream extends OutputStream {
private int bytePosition = 0;
@Override
- public void close() throws IOException { os.close(); }
+ public void close() throws IOException {
+ os.close();
+ }
@Override
- public void flush() throws IOException { os.flush(); }
+ public void flush() throws IOException {
+ os.flush();
+ }
@Override
public void write(byte[] b, int off, int len) throws IOException {
diff --git
a/daffodil-core/src/main/resources/META-INF/services/org.apache.daffodil.runtime1.layers.api.Layer
b/daffodil-core/src/main/resources/META-INF/services/org.apache.daffodil.api.layers.Layer
similarity index 100%
rename from
daffodil-core/src/main/resources/META-INF/services/org.apache.daffodil.runtime1.layers.api.Layer
rename to
daffodil-core/src/main/resources/META-INF/services/org.apache.daffodil.api.layers.Layer
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/Base64MimeLayer.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/Base64MimeLayer.scala
index dddff7490..7ee4e208c 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/Base64MimeLayer.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/Base64MimeLayer.scala
@@ -20,7 +20,7 @@ package org.apache.daffodil.layers.runtime1
import java.io.InputStream
import java.io.OutputStream
-import org.apache.daffodil.runtime1.layers.api.Layer
+import org.apache.daffodil.api.layers.Layer
final class Base64MimeLayer
extends Layer("base64_MIME", "urn:org.apache.daffodil.layers.base64_MIME") {
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/BoundaryMarkLayer.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/BoundaryMarkLayer.scala
index f629b3f42..59046585f 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/BoundaryMarkLayer.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/BoundaryMarkLayer.scala
@@ -22,10 +22,10 @@ import java.nio.charset.Charset
import java.nio.charset.IllegalCharsetNameException
import java.nio.charset.UnsupportedCharsetException
+import org.apache.daffodil.api.layers.Layer
import org.apache.daffodil.io.BoundaryMarkInsertingJavaOutputStream
import org.apache.daffodil.io.BoundaryMarkLimitingInputStream
import org.apache.daffodil.runtime1.layers.ScalaLayerHelper
-import org.apache.daffodil.runtime1.layers.api.Layer
/**
* A layer which isolates text data by way of a boundary mark string.
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/ByteSwapLayer.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/ByteSwapLayer.scala
index 1296531ee..d775a9113 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/ByteSwapLayer.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/ByteSwapLayer.scala
@@ -22,8 +22,8 @@ import java.io.OutputStream
import java.util.ArrayDeque
import java.util.Deque
+import org.apache.daffodil.api.layers.Layer
import org.apache.daffodil.lib.exceptions.Assert
-import org.apache.daffodil.runtime1.layers.api.Layer
final class TwoByteSwapLayer extends ByteSwap("twobyteswap", 2)
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/FixedLengthLayer.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/FixedLengthLayer.scala
index 45ca8bb75..a74b4f892 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/FixedLengthLayer.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/FixedLengthLayer.scala
@@ -22,9 +22,9 @@ import java.io.InputStream
import java.io.OutputStream
import java.nio.ByteBuffer
+import org.apache.daffodil.api.layers.Layer
+import org.apache.daffodil.api.layers.exceptions.LayerNotEnoughDataException
import org.apache.daffodil.lib.exceptions.Assert
-import org.apache.daffodil.runtime1.layers.LayerNotEnoughDataException
-import org.apache.daffodil.runtime1.layers.api.Layer
import org.apache.commons.io.IOUtils
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/LineFoldMode.java
b/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/LineFoldMode.java
deleted file mode 100644
index 98b82e1ed..000000000
---
a/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/LineFoldMode.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.daffodil.layers.runtime1;
-
-public enum LineFoldMode {
- /**
- * IMF - Internet Mail Format
- */
- IMF("lineFolded_IMF"),
- /**
- * iCalendar
- */
- iCalendar("lineFolded_iCalendar");
-
- public final String dfdlName;
- private LineFoldMode(final String dfdlName) { this.dfdlName = dfdlName; }
-
-}
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerUnexpectedException.java
b/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/LineFoldMode.scala
similarity index 73%
rename from
daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerUnexpectedException.java
rename to
daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/LineFoldMode.scala
index 9622384aa..0f64b025b 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerUnexpectedException.java
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/LineFoldMode.scala
@@ -14,10 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.daffodil.runtime1.layers;
+package org.apache.daffodil.layers.runtime1
-public class LayerUnexpectedException extends LayerProcessingException {
-
- public LayerUnexpectedException(Throwable cause) { super(cause); }
+/**
+ * To obtain enum use LineFoldMode.valueOf(dfdlName)
+ * @param dfdlName name of enum
+ */
+enum LineFoldMode(val dfdlName: String) {
+ case IMF extends LineFoldMode("lineFolded_IMF")
+ case iCalendar extends LineFoldMode("lineFolded_iCalendar")
}
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/LineFoldedLayerBase.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/LineFoldedLayerBase.scala
index 7cc022c1d..2862df186 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/LineFoldedLayerBase.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/layers/runtime1/LineFoldedLayerBase.scala
@@ -20,8 +20,8 @@ package org.apache.daffodil.layers.runtime1
import java.io.InputStream
import java.io.OutputStream
+import org.apache.daffodil.api.layers.Layer
import org.apache.daffodil.lib.exceptions.Assert
-import org.apache.daffodil.runtime1.layers.api.Layer
/*
* This and related classes implement so called "line folding" from
* IETF RFC 2822 Internet Message Format (IMF), and IETF RFC 5545 iCalendar.
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/dpath/UserDefinedFunctionBase.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/dpath/UserDefinedFunctionBase.scala
index 0649a9e8c..872239849 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/dpath/UserDefinedFunctionBase.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/dpath/UserDefinedFunctionBase.scala
@@ -19,14 +19,14 @@ package org.apache.daffodil.runtime1.dpath
import java.lang.reflect.InvocationTargetException
+import org.apache.daffodil.api.udf.UserDefinedFunction
+import
org.apache.daffodil.api.udf.exceptions.UserDefinedFunctionProcessingError
import org.apache.daffodil.lib.util.Maybe
import org.apache.daffodil.runtime1.infoset.DataValue
import org.apache.daffodil.runtime1.infoset.DataValue.DataValuePrimitive
import org.apache.daffodil.runtime1.udf.UserDefinedFunctionFatalErrorException
import
org.apache.daffodil.runtime1.udf.UserDefinedFunctionProcessingErrorException
import
org.apache.daffodil.runtime1.udf.UserDefinedFunctionService.UserDefinedFunctionMethod
-import org.apache.daffodil.udf.UserDefinedFunction
-import org.apache.daffodil.udf.exceptions.UserDefinedFunctionProcessingError
/**
* Both the serializable evaluate method and the User Defined Function
instance are passed in,
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/ChecksumLayerBase.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/ChecksumLayerBase.scala
index aabaa5d26..1bb9ac406 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/ChecksumLayerBase.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/ChecksumLayerBase.scala
@@ -22,8 +22,9 @@ import java.io.InputStream
import java.io.OutputStream
import java.nio.ByteBuffer
+import org.apache.daffodil.api.layers.Layer
+import org.apache.daffodil.api.layers.exceptions.LayerNotEnoughDataException
import org.apache.daffodil.lib.exceptions.Assert
-import org.apache.daffodil.runtime1.layers.api.Layer
import org.apache.commons.io.IOUtils
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerDriver.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerDriver.scala
index 43eb448b3..ca26426a9 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerDriver.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerDriver.scala
@@ -22,6 +22,8 @@ import java.io.InputStream
import java.io.OutputStream
import scala.jdk.CollectionConverters.*
+import org.apache.daffodil.api.layers.Layer
+import org.apache.daffodil.api.layers.exceptions.*
import org.apache.daffodil.io.DataInputStream.Mark
import org.apache.daffodil.io.DataOutputStream
import org.apache.daffodil.io.DirectOrBufferedDataOutputStream
@@ -34,7 +36,6 @@ import org.apache.daffodil.lib.util.Maybe.Nope
import org.apache.daffodil.lib.util.Maybe.One
import org.apache.daffodil.lib.util.Misc
import org.apache.daffodil.runtime1.dsom.RuntimeSchemaDefinitionError
-import org.apache.daffodil.runtime1.layers.api.Layer
import org.apache.daffodil.runtime1.processors.ParseOrUnparseState
import org.apache.daffodil.runtime1.processors.ProcessingError
@@ -315,30 +316,6 @@ class LayerDriver private (val layer: Layer) {
}
-/**
- * This is used to encapsulate runtime exceptions that are thrown out of layer
code.
- */
-class LayerFatalException(msg: String, cause: Throwable) extends
RuntimeException(msg, cause) {
- def this(msg: String) = this(msg, null)
-
- /**
- * When constructed with just a cause, we also pass a message if the cause
provides one
- * because the SLF4J logging system doesn't synthesize a message from the
cause if only
- * a cause is provided.
- * @param cause
- */
- def this(cause: Throwable) =
- this(
- {
- if (cause.getMessage == null)
- Misc.getNameFromClass(cause)
- else
- cause.getMessage
- },
- cause
- )
-}
-
/**
* Turns Daffodil's bits-capable InputSourceDataInputStream objects into
ordinary
* java InputStream API for byte-oriented reads.
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerProcessingException.java
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerProcessingException.java
deleted file mode 100644
index c3b72ab90..000000000
---
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerProcessingException.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.daffodil.runtime1.layers;
-
-import org.apache.daffodil.lib.util.Misc;
-
-import java.util.Objects;
-
-/**
- * LayerProcessingException represents an exception that can occur during the
usage of layers in a program.
- */
-public class LayerProcessingException extends Exception {
-
- public LayerProcessingException(String msg, Throwable cause) {
- super(msg, cause);
- if (Objects.isNull(msg)) Objects.requireNonNull(cause);
- if (Objects.isNull(cause)) Objects.requireNonNull(msg);
- }
-
- public LayerProcessingException(String msg) { this(msg, null); }
-
- /**
- * When creating an exception with just a cause, we also synthesize some
sort of
- * message, because otherwise SLF4J doesn't do so, and you get out errors
like
- * '[error] null' because you didn't supply a message.
- * @param cause the cause of this processing exception
- */
- public LayerProcessingException(Throwable cause) {
- this((cause.getMessage()) == null ? Misc.getNameFromClass(cause) :
cause.getMessage(), cause); }
-}
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerRuntimeCompiler.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerRuntimeCompiler.scala
index 647b3b0d4..d8abcb3ca 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerRuntimeCompiler.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerRuntimeCompiler.scala
@@ -27,10 +27,10 @@ import java.lang.reflect.Method
import scala.collection.immutable.ListSet
import scala.collection.mutable
+import org.apache.daffodil.api.layers.Layer
import org.apache.daffodil.lib.exceptions.Assert
import org.apache.daffodil.lib.util.SimpleNamedServiceLoader
import org.apache.daffodil.runtime1.dpath.NodeInfo.PrimType
-import org.apache.daffodil.runtime1.layers.api.Layer
import org.apache.daffodil.runtime1.processors.VariableRuntimeData
class LayerRuntimeCompiler {
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerVarsRuntime.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerVarsRuntime.scala
index 280903f7d..29cb3675c 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerVarsRuntime.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/LayerVarsRuntime.scala
@@ -20,12 +20,12 @@ import java.lang.reflect.Constructor
import java.lang.reflect.InvocationTargetException
import java.lang.reflect.Method
+import org.apache.daffodil.api.layers.Layer
import org.apache.daffodil.lib.calendar.DFDLDate
import org.apache.daffodil.lib.calendar.DFDLDateTime
import org.apache.daffodil.lib.calendar.DFDLTime
import org.apache.daffodil.runtime1.dpath.NodeInfo.PrimType
import org.apache.daffodil.runtime1.infoset.DataValue
-import org.apache.daffodil.runtime1.layers.api.Layer
import org.apache.daffodil.runtime1.processors.VariableRuntimeData
import com.ibm.icu.util.Calendar
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/ScalaLayerHelper.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/ScalaLayerHelper.scala
index 31e431178..0b1143aa9 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/ScalaLayerHelper.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/layers/ScalaLayerHelper.scala
@@ -16,7 +16,7 @@
*/
package org.apache.daffodil.runtime1.layers
-import org.apache.daffodil.runtime1.layers.api.Layer
+import org.apache.daffodil.api.layers.Layer
/**
* The Layer API is defined in Java. This gives the things that throw more
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/DataProcessor.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/DataProcessor.scala
index 9cc2e0ab5..57c9570c1 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/DataProcessor.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/processors/DataProcessor.scala
@@ -33,6 +33,7 @@ import scala.jdk.CollectionConverters.*
import org.apache.daffodil.api
import org.apache.daffodil.api.debugger.Debugger
+import org.apache.daffodil.api.layers.exceptions.LayerFatalException
import org.apache.daffodil.api.metadata.MetadataHandler
import org.apache.daffodil.api.validation.ValidatorInitializationException
import org.apache.daffodil.api.validation.Validators
@@ -41,7 +42,6 @@ import org.apache.daffodil.lib.iapi.DaffodilTunables
import org.apache.daffodil.lib.iapi.WithDiagnostics
import org.apache.daffodil.runtime1.dsom.*
import org.apache.daffodil.runtime1.iapi.DFDL
-import org.apache.daffodil.runtime1.layers.LayerFatalException
import org.apache.daffodil.validation.DaffodilLimitedValidator
import org.apache.daffodil.validation.NoValidator
object EqualityNoWarn3 {
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/udf/UserDefinedFunctionService.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/udf/UserDefinedFunctionService.scala
index 1ed673f0d..c9880fd10 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/udf/UserDefinedFunctionService.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/runtime1/udf/UserDefinedFunctionService.scala
@@ -30,11 +30,11 @@ import java.util.ServiceLoader
import scala.collection.immutable.ArraySeq as IArraySeq
import scala.collection.mutable.*
+import org.apache.daffodil.api.udf.*
import org.apache.daffodil.lib.exceptions.Assert
import org.apache.daffodil.lib.util.Logger
import org.apache.daffodil.lib.util.Misc
import org.apache.daffodil.runtime1.dpath.NodeInfo
-import org.apache.daffodil.udf.*
/**
* Loads, validates and caches (for use at schema compile time) all User
Defined Functions
diff --git a/daffodil-layers/README.md b/daffodil-layers/README.md
new file mode 100644
index 000000000..a6679f41e
--- /dev/null
+++ b/daffodil-layers/README.md
@@ -0,0 +1,21 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+# Daffodil Layers
+
+See the <a href="http://daffodil.apache.org/layers">Layer Usage
Documentation</a> for how a layer is
+used from a Daffodil DFDL schema.
\ No newline at end of file
diff --git
a/daffodil-test-integration/src/test/scala/org/apache/daffodil/cliTest/TestCLIUdfs.scala
b/daffodil-test-integration/src/test/scala/org/apache/daffodil/cliTest/TestCLIUdfs.scala
index cb393ecbc..b5d31a901 100644
---
a/daffodil-test-integration/src/test/scala/org/apache/daffodil/cliTest/TestCLIUdfs.scala
+++
b/daffodil-test-integration/src/test/scala/org/apache/daffodil/cliTest/TestCLIUdfs.scala
@@ -89,7 +89,7 @@ class TestCLIUdfs {
runCLI(args"-v parse -s $schema -r user_func1", classpath) { cli =>
cli.send("strng", inputDone = true)
cli.expectErr(
- "[warn] User Defined Function Provider failed to load:
org.apache.daffodil.udf.UserDefinedFunctionProvider:"
+ "[warn] User Defined Function Provider failed to load:
org.apache.daffodil.api.udf.UserDefinedFunctionProvider:"
)
cli.expectErr(
"Provider
org.nonexistentclass.example.StringFunctions.StringFunctionsProvider not found"
@@ -174,12 +174,12 @@ class TestCLIUdfs {
cli.expectErr(
"[warn] User Defined Function ignored:" +
" org.badudfs.nonUDF.StringFunctions.FuncA." +
- " Doesn't implement org.apache.daffodil.udf.UserDefinedFunction"
+ " Doesn't implement org.apache.daffodil.api.udf.UserDefinedFunction"
)
cli.expectErr(
"[warn] User Defined Function ignored:" +
" org.badudfs.nonUDF.StringFunctions.Replace." +
- " Doesn't implement org.apache.daffodil.udf.UserDefinedFunction"
+ " Doesn't implement org.apache.daffodil.api.udf.UserDefinedFunction"
)
cli.expectErr("[error] Schema Definition Error: Unsupported function:
jsudf:replace")
}(ExitCode.UnableToCreateProcessor)
@@ -201,7 +201,7 @@ class TestCLIUdfs {
cli.expectErr(
"[warn] User Defined Function ignored:" +
" org.badudfs.annotations.StringFunctions.FuncB." +
- " Missing org.apache.daffodil.udf.UserDefinedFunctionIdentification
annotation"
+ " Missing
org.apache.daffodil.api.udf.UserDefinedFunctionIdentification annotation"
)
cli.expectErr(
"[warn] User Defined Function ignored:" +
@@ -371,7 +371,7 @@ class TestCLIUdfs {
runCLI(args"-vv parse -s $schema -r user_func3", classpath) { cli =>
cli.expectErr(
- "[warn] User Defined Function Provider failed to load:
org.apache.daffodil.udf.UserDefinedFunctionProvider"
+ "[warn] User Defined Function Provider failed to load:
org.apache.daffodil.api.udf.UserDefinedFunctionProvider"
)
cli.expectErr(
"Provider
org.sbadudfs.udfpexceptions2.StringFunctions.StringFunctionsProvider could not
be instantiated"
diff --git
a/daffodil-test/src/test/resources/META-INF/services/org.apache.daffodil.runtime1.layers.api.Layer
b/daffodil-test/src/test/resources/META-INF/services/org.apache.daffodil.api.layers.Layer
similarity index 100%
rename from
daffodil-test/src/test/resources/META-INF/services/org.apache.daffodil.runtime1.layers.api.Layer
rename to
daffodil-test/src/test/resources/META-INF/services/org.apache.daffodil.api.layers.Layer
diff --git
a/daffodil-test/src/test/resources/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-test/src/test/resources/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-test/src/test/resources/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-test/src/test/resources/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/AISPayloadArmoringLayer.scala
b/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/AISPayloadArmoringLayer.scala
index 1d13c7234..4cda6de4c 100644
---
a/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/AISPayloadArmoringLayer.scala
+++
b/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/AISPayloadArmoringLayer.scala
@@ -22,6 +22,7 @@ import java.nio.*
import java.nio.charset.*
import scala.util.Using
+import org.apache.daffodil.api.layers.Layer
import org.apache.daffodil.io.FormatInfo
import org.apache.daffodil.io.InputSourceDataInputStream
import org.apache.daffodil.io.processors.charset.BitsCharsetDecoder
@@ -37,7 +38,6 @@ import
org.apache.daffodil.lib.schema.annotation.props.gen.EncodingErrorPolicy
import org.apache.daffodil.lib.schema.annotation.props.gen.UTF16Width
import org.apache.daffodil.lib.util.Maybe
import org.apache.daffodil.lib.util.MaybeInt
-import org.apache.daffodil.runtime1.layers.api.Layer
import org.apache.commons.io.IOUtils
diff --git
a/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/AllTypesLayer.scala
b/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/AllTypesLayer.scala
index 9ddb979eb..d7ce567c9 100644
---
a/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/AllTypesLayer.scala
+++
b/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/AllTypesLayer.scala
@@ -21,7 +21,7 @@ package org.apache.daffodil.runtime1.layers
import java.io.InputStream
import java.io.OutputStream
-import org.apache.daffodil.runtime1.layers.api.Layer
+import org.apache.daffodil.api.layers.Layer
import com.ibm.icu.util.Calendar
diff --git
a/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/CheckDigitLayer.scala
b/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/CheckDigitLayer.scala
index 28d201270..6a78dbdcf 100644
---
a/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/CheckDigitLayer.scala
+++
b/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/CheckDigitLayer.scala
@@ -22,8 +22,8 @@ import java.nio.charset.Charset
import java.nio.charset.IllegalCharsetNameException
import java.nio.charset.UnsupportedCharsetException
+import org.apache.daffodil.api.layers.ChecksumLayer
import org.apache.daffodil.lib.util.Logger
-import org.apache.daffodil.runtime1.layers.api.ChecksumLayer
/** Check digit example layer
*
diff --git
a/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/SimpleBombOutLayer.scala
b/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/SimpleBombOutLayer.scala
index e36587646..22a6b9087 100644
---
a/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/SimpleBombOutLayer.scala
+++
b/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/SimpleBombOutLayer.scala
@@ -21,11 +21,11 @@ package org.apache.daffodil.runtime1.layers
import java.io.InputStream
import java.io.OutputStream
+import org.apache.daffodil.api.layers.Layer
import org.apache.daffodil.lib.exceptions.Assert
import org.apache.daffodil.lib.exceptions.ThrowsSDE
import org.apache.daffodil.lib.schema.annotation.props.Enum
import org.apache.daffodil.lib.schema.annotation.props.EnumValue
-import org.apache.daffodil.runtime1.layers.api.Layer
/**
* This layer has bombWhere and bombHow variables to enable
diff --git
a/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/SimpleTestLayer.scala
b/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/SimpleTestLayer.scala
index 491b4074c..83cc036c3 100644
---
a/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/SimpleTestLayer.scala
+++
b/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/SimpleTestLayer.scala
@@ -21,7 +21,7 @@ package org.apache.daffodil.runtime1.layers
import java.io.InputStream
import java.io.OutputStream
-import org.apache.daffodil.runtime1.layers.api.Layer
+import org.apache.daffodil.api.layers.Layer
abstract class TLayer(n: String, ns: String) extends Layer(n, ns) {
protected var intVar: Int = 0
diff --git
a/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/ipv4/IPv4ChecksumLayer.scala
b/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/ipv4/IPv4ChecksumLayer.scala
index 763c19275..3d72ff863 100644
---
a/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/ipv4/IPv4ChecksumLayer.scala
+++
b/daffodil-test/src/test/scala/org/apache/daffodil/runtime1/layers/ipv4/IPv4ChecksumLayer.scala
@@ -19,8 +19,8 @@ package org.apache.daffodil.runtime1.layers.ipv4 // different
subpackage on purp
import java.nio.ByteBuffer
+import org.apache.daffodil.api.layers.ChecksumLayer
import org.apache.daffodil.lib.exceptions.Assert
-import org.apache.daffodil.runtime1.layers.api.ChecksumLayer
import passera.unsigned.UShort
diff --git
a/daffodil-test/src/test/scala/org/apache/daffodil/udf/TestUdfsInSchemas.scala
b/daffodil-test/src/test/scala/org/apache/daffodil/udf/TestUdfsInSchemas.scala
index aaeea2293..fc1f29b8c 100644
---
a/daffodil-test/src/test/scala/org/apache/daffodil/udf/TestUdfsInSchemas.scala
+++
b/daffodil-test/src/test/scala/org/apache/daffodil/udf/TestUdfsInSchemas.scala
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.daffodil.udf
+package org.apache.daffodil.api.udf
import org.apache.daffodil.junit.tdml.TdmlSuite
import org.apache.daffodil.junit.tdml.TdmlTests
diff --git a/daffodil-udf/README.md b/daffodil-udf/README.md
index 585d33720..f4dad15c4 100644
--- a/daffodil-udf/README.md
+++ b/daffodil-udf/README.md
@@ -23,34 +23,53 @@ Apache Daffodil allows execution of Java/Scala
external/user defined functions i
## Getting Started
-The implementer will be expected to provide a JAR via the classpath or
Daffodil classpath containing at least 2 classes: a provider class and its
associated function class(es).
+The implementer will be expected to provide a JAR via the classpath or
Daffodil classpath containing at least two
+classes:
+a provider class and its associated function class(es).
-All providers must be registered in the
*META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider* file,
regardless of how many are provided.
+All providers must be registered in the
*META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider*
+file, regardless of how many are provided.
### UDF Implementation
#### User Defined Function Provider Classes
-The provider class must extend Daffodil's `UserDefinedFuntionProvider` class.
This class must implement the `getUserDefinedFunctionClasses` abstract method,
and ensure it returns all the User Defined Functions this class is providing.
The `UserDefinedFunctionProvider` class provides a `createUserDefinedFunction`
to lookup and initialize User Defined Functions that have no-argument
constructors, based on a supplied name and namespaceURI. If the User Defined
Function has a constructor that [...]
+The provider class must extend Daffodil's `UserDefinedFuntionProvider` class.
This class must implement the
+`getUserDefinedFunctionClasses` abstract method, and ensure it returns all the
User Defined Functions this class is
+providing. The `UserDefinedFunctionProvider` class provides a
`createUserDefinedFunction` to lookup and initialize User
+Defined Functions that have no-argument constructors, based on a supplied name
and namespaceURI. If the User Defined
+Function has a constructor that takes arguments, then the default lookup
function cannot be used, and the class must
+override the look up function with its own implementation for such UDFs.
-This class will act as a traditional service provider as explained in the
ServiceLoader API, and must have a
*META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider* file in
its project. This file must contain the fully qualified name(s) of the
**provider class(es)** in the JAR. Without that file, neither this class nor
any of the User Defined Function classes it provides will be visible to
Daffodil.
+This class will act as a traditional service provider as explained in the
ServiceLoader API, and must have a
+*META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider*
file in its project. This file must contain
+the fully qualified name(s) of the **provider class(es)** in the JAR. Without
that file, neither this class nor any of
+the User Defined Function classes it provides will be visible to Daffodil.
-The class can provide as many User Defined Function classes as it wishes, as
long as they are made available by the `getUserDefinedFunctionClasses` function.
+The class can provide as many User Defined Function classes as it wishes, as
long as they are made available by the
+`getUserDefinedFunctionClasses` function.
#### User Defined Function Classes
-The User Defined Function class must extend Daffodil's `UserDefinedFunction`
class. This class will contain the actual functionality implementers wish to
add to DFDL Expressions. It must be annotated with the
`UserDefinedFunctionIdentification` annotation class, with the name and
namespaceURI fields filled in with how the UDF will be called from the schema.
It must also implement a function named *evaluate* that Daffodil will call to
execute the desired UDF functionality. *There is no su [...]
+The User Defined Function class must extend Daffodil's `UserDefinedFunction`
class. This class will contain the actual
+functionality implementers wish to add to DFDL Expressions. It must be
annotated with the
+`UserDefinedFunctionIdentification` annotation class, with the name and
namespaceURI fields filled in with how the UDF
+will be called from the schema. It must also implement a function named
*evaluate* that Daffodil will call to execute
+the desired UDF functionality. *There is no support for overloaded or void
evaluate functions*.
#### User Defined Function Exceptions
Daffodil proves two exception classes for users that wish to throw an error
from within their UDFs.
+
* `UserDefinedFunctionProcessingError` can be thrown when the implementer
wishes to cause backtracking during parsing
* `UserDefinedFunctionFatalException` can be thrown when the implementer
wishes processing to be aborted all together
All other exceptions are treated as `UserDefinedFunctionFatalException`.
### UDF Registration
+
Once implemented, a UDF can be expected to have one of the following structures
+
```
// sample scala UDF with sbt structure
// based on sample UDF in daffodil-udf/src/test/scala
@@ -65,9 +84,11 @@ src/
resources/
META-INF/
services/
- org.apache.daffodil.udf.UserDefinedFunctionProvider
+ org.apache.daffodil.api.udf.UserDefinedFunctionProvider
```
+
or
+
```
// sample java UDF with generic structure
// based on sample UDF in daffodil-udf/src/test/java
@@ -81,13 +102,18 @@ src/
Replace.java //UDF class
META-INF/
services/
- org.apache.daffodil.udf.UserDefinedFunctionProvider
+ org.apache.daffodil.api.udf.UserDefinedFunctionProvider
```
-Each UDF is registered by including the fully qualified name of its provider
in a text file named
`META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider`. The
META-INF folder must be accessible from the root of whatever paths are on the
classpath, otherwise it won't be picked up by ServiceLoader.
+
+Each UDF is registered by including the fully qualified name of its provider
in a text file named
+`META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider`.
The META-INF folder must be accessible from
+the root of whatever paths are on the classpath, otherwise it won't be picked
up by ServiceLoader.
### UDF Usage
-To use within a DFDL expression, you will need to either define an xsd
namespace or set as your default namespace a value that matches the
namespaceURI of the UDF's annotation. Then you can call the function with the
name field of the function class's annotation. For example:
+To use within a DFDL expression, you will need to either define an xsd
namespace or set as your default namespace a
+value that matches the namespaceURI of the UDF's annotation. Then you can call
the function with the name field of the
+function class's annotation. For example:
```xml
<!--
@@ -98,13 +124,14 @@ For a UDF with the following annotation
-->
<!-- within the schema tag -->
-xmlns:sdf="http://example.com/ext/stringfunctions"
+ xmlns:sdf="http://example.com/ext/stringfunctions"
-<!-- within the DFDL expression -->
-..."{ sdf:replace(., ' ', '_') }"...
+ <!-- within the DFDL expression -->
+ ..."{ sdf:replace(., ' ', '_') }"...
```
## Supported Types
+
* BigDecimal: Java
* BigInteger: Java
* Boolean: Boxed and Primitive
diff --git
a/daffodil-udf/src/main/java/org/apache/daffodil/udf/UserDefinedFunction.java
b/daffodil-udf/src/main/java/org/apache/daffodil/api/udf/UserDefinedFunction.java
similarity index 96%
rename from
daffodil-udf/src/main/java/org/apache/daffodil/udf/UserDefinedFunction.java
rename to
daffodil-udf/src/main/java/org/apache/daffodil/api/udf/UserDefinedFunction.java
index 8ddf8b059..69304b285 100644
---
a/daffodil-udf/src/main/java/org/apache/daffodil/udf/UserDefinedFunction.java
+++
b/daffodil-udf/src/main/java/org/apache/daffodil/api/udf/UserDefinedFunction.java
@@ -15,23 +15,22 @@
* limitations under the License.
*/
-package org.apache.daffodil.udf;
+package org.apache.daffodil.api.udf;
import java.io.Serializable;
/**
* Interface that all User Defined Functions classes must implement.
- *
+ * <p>
* It implements the java.io.Serializable class and must have the
* UserDefinedFunctionIdentification annotation applied and filled in with the
* values to be used in the schema.
- *
+ * <p>
* It must also have an evaluate method that contains the functionality it is
* offering
- *
+ * <p>
* Any "state" variables should be passed in during overloaded
* UserDefinedFunctionProvider initialization
- *
*/
@UserDefinedFunctionIdentification(
name = "replace.me",
diff --git
a/daffodil-udf/src/main/java/org/apache/daffodil/udf/UserDefinedFunctionIdentification.java
b/daffodil-udf/src/main/java/org/apache/daffodil/api/udf/UserDefinedFunctionIdentification.java
similarity index 96%
rename from
daffodil-udf/src/main/java/org/apache/daffodil/udf/UserDefinedFunctionIdentification.java
rename to
daffodil-udf/src/main/java/org/apache/daffodil/api/udf/UserDefinedFunctionIdentification.java
index 30b967cf8..0de779ff1 100644
---
a/daffodil-udf/src/main/java/org/apache/daffodil/udf/UserDefinedFunctionIdentification.java
+++
b/daffodil-udf/src/main/java/org/apache/daffodil/api/udf/UserDefinedFunctionIdentification.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.daffodil.udf;
+package org.apache.daffodil.api.udf;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
@@ -25,7 +25,7 @@ import java.lang.annotation.Target;
/**
* Annotation that must be applied to every UDF in order for it to be
considered
* valid.
- *
+ * <p>
* It must have the name and namespaceURI fields initialized with the namespace
* and name callers would be expected to use in the schema.
*/
@@ -35,7 +35,7 @@ public @interface UserDefinedFunctionIdentification {
/**
* Get the local name that identifies the user defined function
- *
+ * <p>
* This value must be a valid XML NCName. It should not include a namespace
or namespace prefix.
*
* @return the value
@@ -44,7 +44,7 @@ public @interface UserDefinedFunctionIdentification {
/**
* Get the namespace URI that identifies the user defined function
- *
+ * <p>
* This value must be a valid XML anyURI.
*
* @return the value
diff --git
a/daffodil-udf/src/main/java/org/apache/daffodil/udf/UserDefinedFunctionProvider.java
b/daffodil-udf/src/main/java/org/apache/daffodil/api/udf/UserDefinedFunctionProvider.java
similarity index 78%
rename from
daffodil-udf/src/main/java/org/apache/daffodil/udf/UserDefinedFunctionProvider.java
rename to
daffodil-udf/src/main/java/org/apache/daffodil/api/udf/UserDefinedFunctionProvider.java
index 213e54b05..a50652978 100644
---
a/daffodil-udf/src/main/java/org/apache/daffodil/udf/UserDefinedFunctionProvider.java
+++
b/daffodil-udf/src/main/java/org/apache/daffodil/api/udf/UserDefinedFunctionProvider.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.daffodil.udf;
+package org.apache.daffodil.api.udf;
/**
* Abstract class used by ServiceLoader to poll for UDF providers on classpath.
@@ -31,9 +31,8 @@ package org.apache.daffodil.udf;
* initialized function class object based on the supplied namespace and name.
* <p>
* Subclasses must also supply a
- * src/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
+ *
src/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
* file in their JAVA project in order to be discoverable by Daffodil.
- *
*/
public abstract class UserDefinedFunctionProvider {
@@ -50,26 +49,19 @@ public abstract class UserDefinedFunctionProvider {
* provided. The UserDefinedFunctionIdentification annotation applied to the
* function class must match name and namespaceURI field passed in from the
* schema.
- *
+ * <p>
* Must be overloaded if the function class's constructor takes arguments.
* Otherwise it will throw exceptions.
*
- * @param namespaceURI
- * XML namespace associated with schema function call
- * @param fName
- * function name called in schema
+ * @param namespaceURI XML namespace associated with schema function call
+ * @param fName function name called in schema
* @return initialized UserDefinedFunction object that must contain evaluate
- * function with desired functionality
- *
- * @throws java.lang.SecurityException
- * if security manager exists and disallows access
- * @throws java.lang.IllegalArgumentException
- * if the UDF doesn't have a no-argument constructor
- * @throws java.lang.ExceptionInInitializerError
- * if there is an issue initializing the UDF object
- * @throws java.lang.ReflectiveOperationException
- * if the UDF doesn't have a no-argument constructor or if there
is an
- * issue initializing the UDF object
+ * function with desired functionality
+ * @throws java.lang.SecurityException if security manager exists
and disallows access
+ * @throws java.lang.IllegalArgumentException if the UDF doesn't have a
no-argument constructor
+ * @throws java.lang.ExceptionInInitializerError if there is an issue
initializing the UDF object
+ * @throws java.lang.ReflectiveOperationException if the UDF doesn't have a
no-argument constructor or if there is an
+ * issue initializing the UDF
object
*/
public UserDefinedFunction createUserDefinedFunction(String namespaceURI,
String fName)
throws IllegalArgumentException, SecurityException,
ExceptionInInitializerError,
diff --git
a/daffodil-udf/src/main/java/org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.java
b/daffodil-udf/src/main/java/org/apache/daffodil/api/udf/exceptions/UserDefinedFunctionFatalException.java
similarity index 96%
rename from
daffodil-udf/src/main/java/org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.java
rename to
daffodil-udf/src/main/java/org/apache/daffodil/api/udf/exceptions/UserDefinedFunctionFatalException.java
index 4aa0ac810..987d97b30 100644
---
a/daffodil-udf/src/main/java/org/apache/daffodil/udf/exceptions/UserDefinedFunctionFatalException.java
+++
b/daffodil-udf/src/main/java/org/apache/daffodil/api/udf/exceptions/UserDefinedFunctionFatalException.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.daffodil.udf.exceptions;
+package org.apache.daffodil.api.udf.exceptions;
/**
* Exception to throw to abort parsing/unparsing.
diff --git
a/daffodil-udf/src/main/java/org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.java
b/daffodil-udf/src/main/java/org/apache/daffodil/api/udf/exceptions/UserDefinedFunctionProcessingError.java
similarity index 94%
rename from
daffodil-udf/src/main/java/org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.java
rename to
daffodil-udf/src/main/java/org/apache/daffodil/api/udf/exceptions/UserDefinedFunctionProcessingError.java
index 411e22603..d5093c05d 100644
---
a/daffodil-udf/src/main/java/org/apache/daffodil/udf/exceptions/UserDefinedFunctionProcessingError.java
+++
b/daffodil-udf/src/main/java/org/apache/daffodil/api/udf/exceptions/UserDefinedFunctionProcessingError.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.daffodil.udf.exceptions;
+package org.apache.daffodil.api.udf.exceptions;
/**
* Exception to throw to cause backtracking during parsing/unparsing.
@@ -45,7 +45,7 @@ public class UserDefinedFunctionProcessingError extends
Exception {
* Constructs a new exception with a specified detail message and cause
*
* @param errorMessage the detail message
- * @param cause the cause of the exception
+ * @param cause the cause of the exception
*/
public UserDefinedFunctionProcessingError(String errorMessage, Throwable
cause) {
super(errorMessage, cause);
diff --git
a/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/Compare.java
b/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/Compare.java
index f9d492078..ae9723e2c 100644
---
a/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/Compare.java
+++
b/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/Compare.java
@@ -16,12 +16,12 @@
*/
package org.badudfs.annotations.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* UDF for Annotations Negative Unit test
- *
+ * <p>
* Contains annotation with blank fields
*/
@SuppressWarnings("serial")
diff --git
a/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/FuncB.java
b/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/FuncB.java
index 536c0a1af..9444dbbda 100644
---
a/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/FuncB.java
+++
b/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/FuncB.java
@@ -16,11 +16,11 @@
*/
package org.badudfs.annotations.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
/**
* UDF for Annotations Negative Unit test
- *
+ * <p>
* Missing @UserDefinedFunctionIdentification annotation
*/
@SuppressWarnings("serial")
diff --git
a/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/Replace.java
b/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/Replace.java
index 7637b11ee..a5ff6cc1b 100644
---
a/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/Replace.java
+++
b/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/Replace.java
@@ -16,12 +16,12 @@
*/
package org.badudfs.annotations.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* UDF for Annotations Negative Unit test
- *
+ * <p>
* Contains annotation with blank name field
*/
@SuppressWarnings("serial")
diff --git
a/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/StringFunctionsProvider.java
b/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/StringFunctionsProvider.java
index 9b413bc27..add5eca60 100644
---
a/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/StringFunctionsProvider.java
+++
b/daffodil-udf/src/test/java/org/badudfs/annotations/StringFunctions/StringFunctionsProvider.java
@@ -16,12 +16,12 @@
*/
package org.badudfs.annotations.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionProvider;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider;
/**
* UDF Provider for Negative Unit test
- *
+ * <p>
* Contains classes with invalid or missing annotations
*/
public class StringFunctionsProvider extends UserDefinedFunctionProvider {
@@ -32,21 +32,21 @@ public class StringFunctionsProvider extends
UserDefinedFunctionProvider {
String nn = String.join("_", namespace, name);
switch (nn) {
- case "http://example.com/ext/badudfs/stringfunctions_":
- functionClass = new Replace();
- break;
- case "":
- functionClass = new Compare();
- break;
- default:
- functionClass = new FuncB();
- break;
+ case "http://example.com/ext/badudfs/stringfunctions_":
+ functionClass = new Replace();
+ break;
+ case "":
+ functionClass = new Compare();
+ break;
+ default:
+ functionClass = new FuncB();
+ break;
}
return functionClass;
}
@Override
public Class<?>[] getUserDefinedFunctionClasses() {
- return new Class<?>[] { Compare.class, FuncB.class, Replace.class };
+ return new Class<?>[]{Compare.class, FuncB.class, Replace.class};
}
}
diff --git
a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncA.java
b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncA.java
index 12bda0ee8..817811e2e 100644
--- a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncA.java
+++ b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncA.java
@@ -16,12 +16,12 @@
*/
package org.badudfs.evaluate.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* UDF for Evaluate Function Negative Unit test
- *
+ * <p>
* Contains overloaded evaluate function
*/
@SuppressWarnings("serial")
diff --git
a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncB.java
b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncB.java
index b877f500c..b3d1e9a73 100644
--- a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncB.java
+++ b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncB.java
@@ -16,12 +16,12 @@
*/
package org.badudfs.evaluate.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* UDF for Evaluate Function Negative Unit test
- *
+ * <p>
* Contains void evaluate function
*/
@SuppressWarnings("serial")
diff --git
a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncC.java
b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncC.java
index 7c9768e05..9878dae56 100644
--- a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncC.java
+++ b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncC.java
@@ -18,12 +18,12 @@ package org.badudfs.evaluate.StringFunctions;
import java.util.Arrays;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* UDF for Evaluate Function Negative Unit test
- *
+ * <p>
* Contains evaluate function with multiple unsupported parameter types
*/
@SuppressWarnings("serial")
diff --git
a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncD.java
b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncD.java
index 698b977cd..1a8cc2e06 100644
--- a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncD.java
+++ b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncD.java
@@ -16,12 +16,12 @@
*/
package org.badudfs.evaluate.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* UDF for Evaluate Function Negative Unit test
- *
+ * <p>
* Contains evaluate function with unsupported parameter type
*/
@SuppressWarnings("serial")
diff --git
a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncE.java
b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncE.java
index 251c6e82c..6c45de2bd 100644
--- a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncE.java
+++ b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/FuncE.java
@@ -16,12 +16,12 @@
*/
package org.badudfs.evaluate.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* UDF for Evaluate Function Negative Unit test
- *
+ * <p>
* Contains evaluate function with unsupported return type
*/
@SuppressWarnings("serial")
@@ -31,7 +31,7 @@ import
org.apache.daffodil.udf.UserDefinedFunctionIdentification;
public class FuncE implements UserDefinedFunction {
public String[] evaluate(String first, String second) {
- String[] ret = new String[] { first, second };
+ String[] ret = new String[]{first, second};
return ret;
}
}
diff --git
a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/Replace.java
b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/Replace.java
index e1a822a23..ef256dbc2 100644
---
a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/Replace.java
+++
b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/Replace.java
@@ -16,12 +16,12 @@
*/
package org.badudfs.evaluate.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* UDF for Evaluate Function Negative Unit test
- *
+ * <p>
* Missing evaluate function
*/
@UserDefinedFunctionIdentification(
diff --git
a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/StringFunctionsProvider.java
b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/StringFunctionsProvider.java
index cfa8a54ce..2855c7be6 100644
---
a/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/StringFunctionsProvider.java
+++
b/daffodil-udf/src/test/java/org/badudfs/evaluate/StringFunctions/StringFunctionsProvider.java
@@ -16,17 +16,17 @@
*/
package org.badudfs.evaluate.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunctionProvider;
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider;
/**
* UDF Provider for Negative Unit test
- *
+ * <p>
* Contains classes with invalid or missing evaluate functions
*/
public class StringFunctionsProvider extends UserDefinedFunctionProvider {
@Override
public Class<?>[] getUserDefinedFunctionClasses() {
- return new Class<?>[] { Replace.class, FuncA.class, FuncB.class,
FuncC.class, FuncD.class,
- FuncE.class };
+ return new Class<?>[]{Replace.class, FuncA.class, FuncB.class,
FuncC.class, FuncD.class,
+ FuncE.class};
}
}
diff --git
a/daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/FuncA.java
b/daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/FuncA.java
index fd88179aa..99f1c647d 100644
---
a/daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/FuncA.java
+++
b/daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/FuncA.java
@@ -16,8 +16,8 @@
*/
package org.badudfs.functionclasses1.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* UDF for userDefinedFunctionClasses array on Negative Unit test
diff --git
a/daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/Replace.java
b/daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/Replace.java
index 0ab990cc7..b69668591 100644
---
a/daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/Replace.java
+++
b/daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/Replace.java
@@ -16,8 +16,8 @@
*/
package org.badudfs.functionclasses1.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* UDF for userDefinedFunctionClasses array on Negative Unit test
diff --git
a/daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/StringFunctionsProvider.java
b/daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/StringFunctionsProvider.java
index 96d903378..63c68291e 100644
---
a/daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/StringFunctionsProvider.java
+++
b/daffodil-udf/src/test/java/org/badudfs/functionclasses1/StringFunctions/StringFunctionsProvider.java
@@ -16,11 +16,11 @@
*/
package org.badudfs.functionclasses1.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunctionProvider;
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider;
/**
* UDF Provider for Negative Unit test
- *
+ * <p>
* userDefinedFunctionClasses array isn't initialized
*/
public class StringFunctionsProvider extends UserDefinedFunctionProvider {
diff --git
a/daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/FuncA.java
b/daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/FuncA.java
index 446c450f0..e2d543e38 100644
---
a/daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/FuncA.java
+++
b/daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/FuncA.java
@@ -16,8 +16,8 @@
*/
package org.badudfs.functionclasses2.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* UDF for userDefinedFunctionClasses array on Negative Unit test
diff --git
a/daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/Replace.java
b/daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/Replace.java
index 1de0c4c26..188900d2d 100644
---
a/daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/Replace.java
+++
b/daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/Replace.java
@@ -16,8 +16,8 @@
*/
package org.badudfs.functionclasses2.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* UDF for userDefinedFunctionClasses array on Negative Unit test
diff --git
a/daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/StringFunctionsProvider.java
b/daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/StringFunctionsProvider.java
index 984dbdfbc..29f64f524 100644
---
a/daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/StringFunctionsProvider.java
+++
b/daffodil-udf/src/test/java/org/badudfs/functionclasses2/StringFunctions/StringFunctionsProvider.java
@@ -16,16 +16,16 @@
*/
package org.badudfs.functionclasses2.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunctionProvider;
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider;
/**
* UDF Provider for Negative Unit test
- *
+ * <p>
* userDefinedFunctionClasses array is empty
*/
public class StringFunctionsProvider extends UserDefinedFunctionProvider {
@Override
public Class<?>[] getUserDefinedFunctionClasses() {
- return new Class<?>[] {};
+ return new Class<?>[]{};
}
}
diff --git
a/daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/FuncA.java
b/daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/FuncA.java
index d997c7166..1dc21fef5 100644
--- a/daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/FuncA.java
+++ b/daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/FuncA.java
@@ -16,11 +16,11 @@
*/
package org.badudfs.nonUDF.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* UDF for implementing UserDefinedFunction Negative Unit test
- *
+ * <p>
* Does not implement UserDefinedFunction or Serializable interface
*/
@UserDefinedFunctionIdentification(
diff --git
a/daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/Replace.java
b/daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/Replace.java
index 46f548400..8aa6731b2 100644
--- a/daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/Replace.java
+++ b/daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/Replace.java
@@ -18,11 +18,11 @@ package org.badudfs.nonUDF.StringFunctions;
import java.io.Serializable;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* UDF for implementing UserDefinedFunction Negative Unit test
- *
+ * <p>
* Does not implement UserDefinedFunction interface but implements Serializable
*/
@UserDefinedFunctionIdentification(
diff --git
a/daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/StringFunctionsProvider.java
b/daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/StringFunctionsProvider.java
index a2631d27e..b43387595 100644
---
a/daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/StringFunctionsProvider.java
+++
b/daffodil-udf/src/test/java/org/badudfs/nonUDF/StringFunctions/StringFunctionsProvider.java
@@ -16,12 +16,12 @@
*/
package org.badudfs.nonUDF.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionProvider;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider;
/**
* UDF Provider for Negative Unit test
- *
+ * <p>
* Contains classes that don't implement UserDefinedFunction interface
*/
public class StringFunctionsProvider extends UserDefinedFunctionProvider {
@@ -32,18 +32,18 @@ public class StringFunctionsProvider extends
UserDefinedFunctionProvider {
String nn = String.join("_", namespace, name);
switch (nn) {
- case "http://example.com/badudfs/StringFunctions_replace":
- functionClass = (UserDefinedFunction) new Replace();
- break;
- case "http://example.com/badudfs/StringFunctions_funcA":
- functionClass = (UserDefinedFunction) new FuncA();
- break;
+ case "http://example.com/badudfs/StringFunctions_replace":
+ functionClass = (UserDefinedFunction) new Replace();
+ break;
+ case "http://example.com/badudfs/StringFunctions_funcA":
+ functionClass = (UserDefinedFunction) new FuncA();
+ break;
}
return functionClass;
}
@Override
public Class<?>[] getUserDefinedFunctionClasses() {
- return new Class<?>[] { FuncA.class, Replace.class };
+ return new Class<?>[]{FuncA.class, Replace.class};
}
}
diff --git
a/daffodil-udf/src/test/java/org/jgoodudfs/example/StringFunctions/Compare.java
b/daffodil-udf/src/test/java/org/jgoodudfs/example/StringFunctions/Compare.java
index d55d7b83f..e56588116 100644
---
a/daffodil-udf/src/test/java/org/jgoodudfs/example/StringFunctions/Compare.java
+++
b/daffodil-udf/src/test/java/org/jgoodudfs/example/StringFunctions/Compare.java
@@ -16,12 +16,11 @@
*/
package org.jgoodudfs.example.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* Example User Defined Function in Java
- *
*/
@SuppressWarnings("serial")
@UserDefinedFunctionIdentification(
diff --git
a/daffodil-udf/src/test/java/org/jgoodudfs/example/StringFunctions/Replace.java
b/daffodil-udf/src/test/java/org/jgoodudfs/example/StringFunctions/Replace.java
index 1115fa6b7..e4b85afe4 100644
---
a/daffodil-udf/src/test/java/org/jgoodudfs/example/StringFunctions/Replace.java
+++
b/daffodil-udf/src/test/java/org/jgoodudfs/example/StringFunctions/Replace.java
@@ -16,12 +16,11 @@
*/
package org.jgoodudfs.example.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunction;
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification;
+import org.apache.daffodil.api.udf.UserDefinedFunction;
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification;
/**
* Example User Defined Function in Java
- *
*/
@SuppressWarnings("serial")
@UserDefinedFunctionIdentification(
diff --git
a/daffodil-udf/src/test/java/org/jgoodudfs/example/StringFunctions/StringFunctionsProvider.java
b/daffodil-udf/src/test/java/org/jgoodudfs/example/StringFunctions/StringFunctionsProvider.java
index 98e38c9f1..d1c60a4f6 100644
---
a/daffodil-udf/src/test/java/org/jgoodudfs/example/StringFunctions/StringFunctionsProvider.java
+++
b/daffodil-udf/src/test/java/org/jgoodudfs/example/StringFunctions/StringFunctionsProvider.java
@@ -16,16 +16,15 @@
*/
package org.jgoodudfs.example.StringFunctions;
-import org.apache.daffodil.udf.UserDefinedFunctionProvider;
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider;
/**
* Example User Defined Function Provider in Java
- *
*/
public class StringFunctionsProvider extends UserDefinedFunctionProvider {
@Override
public Class<?>[] getUserDefinedFunctionClasses() {
- return new Class<?>[] { Replace.class, Compare.class };
+ return new Class<?>[]{Replace.class, Compare.class};
}
}
diff --git
a/daffodil-udf/src/test/resources/org/badmetainf/nonexistentclass/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-udf/src/test/resources/org/badmetainf/nonexistentclass/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-udf/src/test/resources/org/badmetainf/nonexistentclass/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-udf/src/test/resources/org/badmetainf/nonexistentclass/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-udf/src/test/resources/org/goodmetainf/IntegerFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-udf/src/test/resources/org/goodmetainf/IntegerFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-udf/src/test/resources/org/goodmetainf/IntegerFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-udf/src/test/resources/org/goodmetainf/IntegerFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-udf/src/test/resources/org/goodmetainf/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-udf/src/test/resources/org/goodmetainf/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-udf/src/test/resources/org/goodmetainf/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-udf/src/test/resources/org/goodmetainf/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-udf/src/test/scala/org/sbadudfs/functionclasses/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-udf/src/test/scala/org/sbadudfs/functionclasses/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-udf/src/test/scala/org/sbadudfs/functionclasses/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-udf/src/test/scala/org/sbadudfs/functionclasses/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-udf/src/test/scala/org/sbadudfs/functionclasses/StringFunctions/StringFunctionsProvider.scala
b/daffodil-udf/src/test/scala/org/sbadudfs/functionclasses/StringFunctions/StringFunctionsProvider.scala
index 78c794a19..98521cdb1 100644
---
a/daffodil-udf/src/test/scala/org/sbadudfs/functionclasses/StringFunctions/StringFunctionsProvider.scala
+++
b/daffodil-udf/src/test/scala/org/sbadudfs/functionclasses/StringFunctions/StringFunctionsProvider.scala
@@ -16,9 +16,9 @@
*/
package org.sbadudfs.functionclasses.StringFunctions
-import org.apache.daffodil.udf.UserDefinedFunction
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification
-import org.apache.daffodil.udf.UserDefinedFunctionProvider
+import org.apache.daffodil.api.udf.UserDefinedFunction
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider
/**
* UDF Provider for Negative Unit test
diff --git
a/daffodil-udf/src/test/scala/org/sbadudfs/functionclasses2/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-udf/src/test/scala/org/sbadudfs/functionclasses2/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-udf/src/test/scala/org/sbadudfs/functionclasses2/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-udf/src/test/scala/org/sbadudfs/functionclasses2/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-udf/src/test/scala/org/sbadudfs/functionclasses2/StringFunctions/StringFunctionsProvider.scala
b/daffodil-udf/src/test/scala/org/sbadudfs/functionclasses2/StringFunctions/StringFunctionsProvider.scala
index d94cb3fd0..8bd156218 100644
---
a/daffodil-udf/src/test/scala/org/sbadudfs/functionclasses2/StringFunctions/StringFunctionsProvider.scala
+++
b/daffodil-udf/src/test/scala/org/sbadudfs/functionclasses2/StringFunctions/StringFunctionsProvider.scala
@@ -18,9 +18,9 @@ package org.sbadudfs.functionclasses2.StringFunctions
import java.io.Serializable
-import org.apache.daffodil.udf.UserDefinedFunction
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification
-import org.apache.daffodil.udf.UserDefinedFunctionProvider
+import org.apache.daffodil.api.udf.UserDefinedFunction
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider
/**
* UDF Provider for Negative Unit test
diff --git
a/daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions/evaluating/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions/evaluating/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions/evaluating/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions/evaluating/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions/evaluating/StringFunctions/StringFunctionsProvider.scala
b/daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions/evaluating/StringFunctions/StringFunctionsProvider.scala
index 9eb7caf30..1b7b0cd31 100644
---
a/daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions/evaluating/StringFunctions/StringFunctionsProvider.scala
+++
b/daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions/evaluating/StringFunctions/StringFunctionsProvider.scala
@@ -16,10 +16,10 @@
*/
package org.sbadudfs.udfexceptions.evaluating.StringFunctions
-import org.apache.daffodil.udf.UserDefinedFunction
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification
-import org.apache.daffodil.udf.UserDefinedFunctionProvider
-import org.apache.daffodil.udf.exceptions.UserDefinedFunctionProcessingError
+import org.apache.daffodil.api.udf.UserDefinedFunction
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider
+import
org.apache.daffodil.api.udf.exceptions.UserDefinedFunctionProcessingError
/**
* UDF Provider for Negative Unit test
diff --git
a/daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions2/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions2/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions2/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions2/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions2/StringFunctions/StringFunctionsProvider.scala
b/daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions2/StringFunctions/StringFunctionsProvider.scala
index 62dfe4717..7f0820155 100644
---
a/daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions2/StringFunctions/StringFunctionsProvider.scala
+++
b/daffodil-udf/src/test/scala/org/sbadudfs/udfexceptions2/StringFunctions/StringFunctionsProvider.scala
@@ -16,9 +16,9 @@
*/
package org.sbadudfs.udfexceptions2.StringFunctions
-import org.apache.daffodil.udf.UserDefinedFunction
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification
-import org.apache.daffodil.udf.UserDefinedFunctionProvider
+import org.apache.daffodil.api.udf.UserDefinedFunction
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider
/**
* UDF Provider for Negative Unit test
diff --git
a/daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions/StringFunctions/StringFunctionsProvider.scala
b/daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions/StringFunctions/StringFunctionsProvider.scala
index 1b975aef6..86931a212 100644
---
a/daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions/StringFunctions/StringFunctionsProvider.scala
+++
b/daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions/StringFunctions/StringFunctionsProvider.scala
@@ -16,9 +16,9 @@
*/
package org.sbadudfs.udfpexceptions.StringFunctions
-import org.apache.daffodil.udf.UserDefinedFunction
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification
-import org.apache.daffodil.udf.UserDefinedFunctionProvider
+import org.apache.daffodil.api.udf.UserDefinedFunction
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider
/**
* UDF Provider for Negative Unit test
diff --git
a/daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions2/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
b/daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions2/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
similarity index 100%
rename from
daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions2/StringFunctions/META-INF/services/org.apache.daffodil.udf.UserDefinedFunctionProvider
rename to
daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions2/StringFunctions/META-INF/services/org.apache.daffodil.api.udf.UserDefinedFunctionProvider
diff --git
a/daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions2/StringFunctions/StringFunctionsProvider.scala
b/daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions2/StringFunctions/StringFunctionsProvider.scala
index b8cddf0df..74d2f778d 100644
---
a/daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions2/StringFunctions/StringFunctionsProvider.scala
+++
b/daffodil-udf/src/test/scala/org/sbadudfs/udfpexceptions2/StringFunctions/StringFunctionsProvider.scala
@@ -16,9 +16,9 @@
*/
package org.sbadudfs.udfpexceptions2.StringFunctions
-import org.apache.daffodil.udf.UserDefinedFunction
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification
-import org.apache.daffodil.udf.UserDefinedFunctionProvider
+import org.apache.daffodil.api.udf.UserDefinedFunction
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider
/**
* UDF Provider for Negative Unit test
diff --git
a/daffodil-udf/src/test/scala/org/sgoodudfs/example/IntegerFunctions/IntegerFunctionsProvider.scala
b/daffodil-udf/src/test/scala/org/sgoodudfs/example/IntegerFunctions/IntegerFunctionsProvider.scala
index 181ae0883..d2eee794f 100644
---
a/daffodil-udf/src/test/scala/org/sgoodudfs/example/IntegerFunctions/IntegerFunctionsProvider.scala
+++
b/daffodil-udf/src/test/scala/org/sgoodudfs/example/IntegerFunctions/IntegerFunctionsProvider.scala
@@ -16,9 +16,9 @@
*/
package org.sgoodudfs.example.IntegerFunctions
-import org.apache.daffodil.udf.UserDefinedFunction
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification
-import org.apache.daffodil.udf.UserDefinedFunctionProvider
+import org.apache.daffodil.api.udf.UserDefinedFunction
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider
/**
* Example User Defined Function Provider in Scala
diff --git
a/daffodil-udf/src/test/scala/org/sgoodudfs/example/StringFunctions/StringFunctionsProvider.scala
b/daffodil-udf/src/test/scala/org/sgoodudfs/example/StringFunctions/StringFunctionsProvider.scala
index 0d156c940..40911e803 100644
---
a/daffodil-udf/src/test/scala/org/sgoodudfs/example/StringFunctions/StringFunctionsProvider.scala
+++
b/daffodil-udf/src/test/scala/org/sgoodudfs/example/StringFunctions/StringFunctionsProvider.scala
@@ -16,9 +16,9 @@
*/
package org.sgoodudfs.example.StringFunctions
-import org.apache.daffodil.udf.UserDefinedFunction
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification
-import org.apache.daffodil.udf.UserDefinedFunctionProvider
+import org.apache.daffodil.api.udf.UserDefinedFunction
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider
/**
* Example User Defined Function Provider in Scala
diff --git
a/daffodil-udf/src/test/scala/org/sgoodudfs/example/SupportedTypesFunctions/SupportedTypesFunctionsProvider.scala
b/daffodil-udf/src/test/scala/org/sgoodudfs/example/SupportedTypesFunctions/SupportedTypesFunctionsProvider.scala
index 1bf2fd275..9a637113a 100644
---
a/daffodil-udf/src/test/scala/org/sgoodudfs/example/SupportedTypesFunctions/SupportedTypesFunctionsProvider.scala
+++
b/daffodil-udf/src/test/scala/org/sgoodudfs/example/SupportedTypesFunctions/SupportedTypesFunctionsProvider.scala
@@ -16,9 +16,9 @@
*/
package org.sgoodudfs.example.SupportedTypesFunctions
-import org.apache.daffodil.udf.UserDefinedFunction
-import org.apache.daffodil.udf.UserDefinedFunctionIdentification
-import org.apache.daffodil.udf.UserDefinedFunctionProvider
+import org.apache.daffodil.api.udf.UserDefinedFunction
+import org.apache.daffodil.api.udf.UserDefinedFunctionIdentification
+import org.apache.daffodil.api.udf.UserDefinedFunctionProvider
/**
* UDF Provider for Types Unit testing