User Tools

Site Tools


ideas:lara:api_in_folder

This is an old revision of the document!


LARA: APIs in Folder

Intro

A ideia é adicionar nova forma de distribuir APIs.

Atualmente APIs são resources dentro do JAR. Isto tem várias vantagens, como uma desenvolvimento e distribuição mais simples. No entanto, os ficheiros das APIs, que muitos serão JS, não estão facilmente disponíveis pelos IDEs. Como disponibilizar estes ficheiros numa pasta de forma a estarem disponíveis pelos IDEs?

Dois caminhos possíveis:

  1. Manter as APIs como resources, e extraí-las para uma pasta predefinida algures no tempo (e.g. durante a instalação ou execução)
  2. Mecanismo adicional não baseado em resources mas em pastas

Em qualquer dos casos, é preciso manter suporte para APIs como resources. Mesmo que se mude o Clava para usar pastas, outros weavers estão a usar APIs como resources para distribuir/usar as APIs.

Ambiente de Desenvolvimento

Qualquer uma das abordagens introduz problemas relacionados com o ambiente de desenvolvimento de weavers. Neste momento, quando de desenvolve um weaver, pode-se mudar diretamente os ficheiros .lara/.js, sendo resources são atualizados automaticamente, nem é preciso reiniciar a aplicação Java para ver refletidas as mudanças.

Abordagens

Manter APIs como Resources

Durante a instalação ou execução as APIs são extraídas para uma subpasta predefinida onde o JAR está localizado. À partida este é o método que implica menos mudanças, a questão é quando/como extrair, e que mecanismo usar para manter uma espécie de cache, para minimizar as vezes que as resources são extraídas.

  • Unordered List ItemEm relação ao quando/como, a resposta óbvia para ser durante a execução do clava-update, mas nem todas as instalações usam este script, e há weavers que não têm sequer script de instalação.
  • Um método mais robusto será durante a execução do weaver

APIs como Pastas

  • Ser uma n´v
  • Desenvolvimento facilitado

Transformar LARA API resources em ficheiros que vão bundled no zip, e que são indicados ao graalVM como uma pasta de includes (para o import funcionar), e adicionado automaticamente à pasta de includes

  • Implica mudanças a nível da lara framework, será necessário suportar tanto resources como pastas, para não ter que mudar todos os weavers (mudar isto para a página de LARA?)
ideas/lara/api_in_folder.1642434297.txt.gz · Last modified: 2022/01/17 15:44 by jbispo