Как заставить Spring Boot поддерживать язык на основе Java? - PullRequest
0 голосов
/ 03 января 2019

Я работаю над учебным проектом, и моя цель - расширить среду Spring Boot, чтобы она могла обрабатывать язык Jolie. Моя главная проблема заключается в том, как даже улучшить / расширить Spring Boot для поддержки другого языка - что нужно создать?

Я думаю, что должен достичь чего-то вроде поддержки Kotlin для Spring Boot , но все же я не уверен, какие условия должны быть выполнены, чтобы преуспеть в этом.

1 Ответ

0 голосов
/ 04 января 2019

Я постараюсь ответить на ваш вопрос.Начнем с того, что интерпретатор Jolie написан на Java.Это должно сделать вставку Jolie в среду на основе Java под названием Spring Boot.

Я думаю, что вы хотели бы создать микросервисы Jolie и запускать их из своей среды, в этой заметке есть отличное сообщение в блоге Montesi.в котором объясняется, как запускать Jolie из Java .

. В этом посте вы увидите использование Interpreter для создания кода JOLIE внутри java-приложения хоста * 1009.* можно найти в jolie.jar Еще одна небольшая рука вашего проекта может быть получена из jolie2java, этот инструмент создает код Java для типа сообщения.

jolie2java --addSource [true] --format [java|gwt] --packageName package_namespace [--targetPort inputPort_to_be_encoded] file.ol 

вот пример

    type op1Request :void{
      .name:string
      .surname:string
    }

    type op1Response :void{
      .registrationNumber:string
    }
    interface TestInterface {
    RequestResponse:
      op1(op1Request)(op1Response)
    }

and this are the resulting java classes



 package org.matiho.springboot;
    import java.util.List;
    import java.util.LinkedList;
    import jolie.runtime.Value;
    import jolie.runtime.ByteArray;

    public class op1Request {
    private String _surname;
    private String _name;

    public op1Request( Value v ){
    if (v.hasChildren("surname")){
    _surname= v.getFirstChild("surname").strValue();
    }
    if (v.hasChildren("name")){
    _name= v.getFirstChild("name").strValue();
    }
    }
    public op1Request(){
    }
    public String getSurname(){
    return _surname;
    }
    public void setSurname( String value ){
    _surname = value;
    }
    public String getName(){
    return _name;
    }
    public void setName( String value ){
    _name = value;
    }
    public Value getValue(){
    Value vReturn = Value.create();
    if((_surname!=null)){
    vReturn.getNewChild("surname").setValue(_surname);
    }
    if((_name!=null)){
    vReturn.getNewChild("name").setValue(_name);
    }
    return vReturn;
    }
    }

Класс ответа

package org.matiho.springboot;
import java.util.List;
import java.util.LinkedList;
import jolie.runtime.Value;
import jolie.runtime.ByteArray;

public class op1Response {
private String _registrationNumber;

public op1Response( Value v ){
if (v.hasChildren("registrationNumber")){
  _registrationNumber= v.getFirstChild("registrationNumber").strValue();
}
}
public op1Response(){
}
public String getRegistrationNumber(){
  return _registrationNumber;
}
public void setRegistrationNumber( String value ){
  _registrationNumber = value;
}
public Value getValue(){
  Value vReturn = Value.create();
  if((_registrationNumber!=null)){
  vReturn.getNewChild("registrationNumber").setValue(_registrationNumber);
  }
return vReturn;
}
}

Я вижу, что у вас возникают проблемы с совместимостью библиотек при импорте Jolie в среду. Надеюсь, это поможет
PS: вы можете добавить тег Jolie

...