Buonasera a tutti,
Io sviluppo, usando come linguaggio di programmazione scala 2.12 . Sto studiando, per questo scopo, un framework che si chiama “Cats effect 3.0”. Programmazione funzionale. Visto che ho anche un po di familiarità con l'hyperscaler di Google: Google Cloud Platform, vorrei provare ad integrare cats effect sotto GCP. Per fare questo, uso un template che si chiama “Scio”, in particolare il template minimal, che è “WordCount”. Ecco il riferimento a github: https://github.com/spotify/scio/blob/main/scio-examples/src/main/scala/com/spotify/scio/examples/WordCount.scala nella mia versione però, ho dovuto customizzarlo, proprio per integrare cats, ma al momento non sono riuscito a farlo funzionare.
Questa la mia versione:
object StimaAccessi {
  def main(args: Array[String]) : Unit = {
    val pathSQLdump : String = ("/home/...fullPath.../auth.log");
    val optionsFactory : org.
                         apache.
                         beam.
                         sdk.
                         options.
                         PipelineOptions = org.
                                           apache.
                                           beam.
                                           sdk.
                                           options.
                                           PipelineOptionsFactory.create();
    optionsFactory.setRunner(classOf[DataflowRunner]);
    optionsFactory.as(classOf[GcpOptions]).setProject("XXX");
    optionsFactory.as(classOf[DataflowPipelineOptions]).setRegion("europe-west2-b");
//  optionsFactory.as(classOf[DataflowPipelineOptions]).setStaginglocation("gs://XXX");
    val pipeline : org.
                   apache.
                   beam.
                   sdk.
                   Pipeline = org.
                              apache.
                              beam.
                              sdk.
                              Pipeline.
                              create(optionsFactory);
    val sc : com.
             spotify.
             scio.
             ScioContext = com.
                           spotify.
                           scio.
                           ScioContext(optionsFactory);
//  val records : List[String] = Source.fromFile(SQLdump).getLines.toList;
    val authGStorage = "gs://XXX";
    val desinationGStorageDirectory = "gs://XXX";
    sc.textFile(authGStorage).
       map(_.trim).
       flatMap(_.split("[^a-zA-Z']+").
       filter(_.nonEmpty)).
       countByValue.
       map(t => t._1 + ": " + t._2).
       saveAsTextFile(desinationGStorageDirectory);
    sc.run().waitUntilFinish();
    IO.println("");
//  }.as(ExitCode.Success); //Chiude la run
}
println("Sono arrivato all'esterno della funzione main");
}//Chiude l'object
Ho intenzionalmente omesso tutti gli “import” per leggere un po piu leggibile il codice, ma il risultato della build è:
[error] (run-main-0) java.lang.VerifyError: Cannot inherit from final class
[error] java.lang.VerifyError: Cannot inherit from final class
Qualcuno ha idea di come risolvere per caso?
Grazie