jdomainapp/jda

Software specification: consolidation and extension

ducmle opened this issue · 1 comments

Overview

JDA includes a set of annotation-based DSLs (DCSL, MCCL, SCCL) to specify the software. A software specification written in these DSLs can be used as input to automatically generate a software.

The purpose this small project is to consolidate the imlementations of the DSLs and (possibly) add new features.

Tasks

  • RFSGenDesc: to support the revised (more compact) configuration structure specified in the paper (see below)
  • BESpringApp.run: server port
  • FEReactApp: server port
  • FESoftware.run: whether to run as a thread or not
  • ...testbed.backend.BESpringAppByCount: for benchmark testing of backend
    • auto-increment BE server port
  • ...testbed.frontend.FEReactAppByCount: for benchmark testing of frontend
    • auto-increment FE server port
    • auto-append port counter to feProjName to create a different project name folder
      ...(add other options here)

RFSGenDesc's structure (revised)

@RFSGenDesc(
 domain = "courseman",
 stackSpec = StackSpec.FS, // generates full-stack
 feLangPlatform = LangPlatform.REACT,
 beLangPlatform = LangPlatform.SPRING,
 thenExec = true,  // executes the generated code
 outputPath = "src/example/java"
 feProjPath = "/programs/restfstool-fe",
)

@haworker25

  • Em xem commit mới nhất ở trên, đã hỗ trợ tốt cho chạy benchmark testing
  • FEReactAppByCount đã có cả chức năng hôm trước em cần cho feProjName. Customise class thêm class này nếu cần thêm options.