Migrando um aplicativo Grails para o Scala Play / Spray

12

Temos um aplicativo da Web Grails de tamanho médio usando GORM / Hibernate sobre PostgreSQL e GSPs que servem HTML, e também algumas APIs REST. Estamos padronizando o Scala e gostaríamos de migrar esse aplicativo para o Play ou Spray, com o Slick para acessar o banco de dados existente.

Atualmente, o Nimble é usado para autenticação / autorização e usuário / função / etc. gestão.

Quais são as abordagens que podemos adotar para fazer a migração passo a passo, evitando uma migração do big bang?

Ambos são idiomas da JVM. Existe uma maneira de evitar tratá-los como aplicativos da Web separados, executando em portas separadas?

John M
fonte
Diversão com nomes de projetos, mas uma abordagem razoável poderia ser usar um proxy de aplicativo para fornecer um único espaço para nome. Outra opção é executá-los como arquivos WAR separados em um contêiner da web como o Tomcat. Eu não fiz Grails ou Scala, mas se as APIs da Web são um invólucro em torno dos Servlets Java, você é de ouro. Caso contrário, você precisará usar o proxy do aplicativo para ocultar as portas separadas etc.
Berin Loritsch

Respostas:

1

Pessoalmente, uma reescrita me parece mais eficiente, mas se você precisar fazer isso em etapas, sugiro que você siga a seguinte abordagem:

  • Mova seu código de banco de dados existente para usar o Slick (você provavelmente precisará de wrappers para protegê-lo de muitas alterações).
  • Em seguida, integre o Play ao seu tempo de execução e use o Silhouette para autenticação e autorização com o Play Actions.
  • Você poderá mover GSPs individuais para Play / Twirl, um de cada vez.

Infelizmente, não conheço uma maneira de fazê-los ouvir a mesma porta, então você teria que redirecionar do Grails para a porta Play para torná-la perfeita.

rspencer
fonte