You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by GitBox <gi...@apache.org> on 2022/11/16 14:58:02 UTC

[GitHub] [daffodil] tuxji commented on a diff in pull request #875: Remove all API deprecated methods/classes/objects

tuxji commented on code in PR #875:
URL: https://github.com/apache/daffodil/pull/875#discussion_r1024091607


##########
daffodil-runtime1/src/main/scala/org/apache/daffodil/externalvars/ExternalVariablesLoader.scala:
##########
@@ -46,7 +46,7 @@ object ExternalVariablesLoader {
 
   def loadVariables(bindings: Seq[Binding], referringContext: ThrowsSDE, vmap: VariableMap): VariableMap = {
     Assert.usage(referringContext != null, "loadVariables expects 'referringContext' to not be null!")
-    VariableUtils.setExternalVariables(vmap, bindings, referringContext)
+    VariableUtils.withExternalVariables(vmap, bindings, referringContext)
     vmap

Review Comment:
   As Steve noticed later on, `VariableUtils.setExternalVariables` was renamed to `VariableUtils.withExternalVariables` but it still mutates the variable map so this renaming change should be reverted.



##########
daffodil-japi/src/test/java/org/apache/daffodil/example/TestJavaAPI.java:
##########
@@ -971,7 +971,7 @@ public void testJavaAPI21() throws IOException, ClassNotFoundException {
     }
 
     @Test
-    public void testJavaAPI22_setExternalVariablesUsingAbstractMap() throws IOException, ClassNotFoundException, ExternalVariableException {
+    public void testJavaAPI22_withExternalVariablesUsingAbstractMap() throws IOException, ClassNotFoundException, ExternalVariableException {

Review Comment:
   Good catch.



##########
daffodil-cli/src/main/scala/org/apache/daffodil/Main.scala:
##########
@@ -630,23 +630,25 @@ object Main {
     }
   }
 
-  def setupDebugOrTrace(proc: HasSetDebugger, conf: CLIConf) = {
-    if (conf.trace() || conf.debug.isDefined) {
-      val runner =
-        if (conf.trace()) {
-          new TraceDebuggerRunner(STDOUT)
-        } else {
-          if (System.console == null) {
-            Logger.log.warn(s"Using --debug on a non-interactive console may result in display issues")
-          }
-          conf.debug() match {
-            case Some(f) => new CLIDebuggerRunner(new File(f), STDIN, STDOUT)
-            case None => new CLIDebuggerRunner(STDIN, STDOUT)
+  def setupDebugOrTrace(proc: DataProcessor, conf: CLIConf): Option[DataProcessor] = {

Review Comment:
   I would have suggested the same change too, thanks, Steve.



##########
daffodil-cli/src/main/scala/org/apache/daffodil/Main.scala:
##########
@@ -117,6 +116,7 @@ import org.apache.daffodil.xml.QName
 import org.apache.daffodil.xml.RefQName
 import org.apache.daffodil.xml.XMLUtils
 import org.apache.daffodil.xml.DFDLCatalogResolver
+// import org.apache.daffodil.processors.HasSetDebugger

Review Comment:
   I would go further and remove the source file defining HasSetDebugger:
   
   daffodil-lib/src/main/scala/org/apache/daffodil/processors/Runtime.scala
   
   Once nothing uses a piece of code anymore, it becomes dead code and should be removed.



##########
daffodil-runtime1/src/main/scala/org/apache/daffodil/processors/VariableMap1.scala:
##########
@@ -140,7 +140,7 @@ class VariableInstance private (val rd: VariableRuntimeData)
 
 object VariableUtils {
 
-  def setExternalVariables(currentVMap: VariableMap, bindings: Seq[Binding], referringContext: ThrowsSDE) = {
+  def withExternalVariables(currentVMap: VariableMap, bindings: Seq[Binding], referringContext: ThrowsSDE) = {
     bindings.foreach { b => currentVMap.setExtVariable(b.varQName, b.varValue, referringContext) }

Review Comment:
   I checked daffodil-runtime1/src/main/scala/org/apache/daffodil/processors/DataProcessor.scala lines 297, 308, and 332 in the main branch.  They all have similar bodies:
   
   ```scala
        val newBindings = loadExternalVariables(extVars)
        copy(externalVars = newBindings)
   ```
   
   `loadExternalVariables` is defined in the same file and it returns a new data structure, so the `withExternalVariables` methods do not mutate state instead of copying.  There is no need for concern.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@daffodil.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org