Anúncio
Nikolay Soloviev · Jan. 11, 2021

Lançamento da versão 0.2.10 do Gerenciador de Pacotes ZPM InterSystems

Lançamos uma nova versão do ZPM (Gerenciador de Pacotes)

O que tem de novo na versão 0.2.10 do ZPM:

1) FileCopy

Foram adicionadas algumas melhorias à tag já existente FileCopy

Exemplo do arquivo module.xml


<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25">
  <Document name="test-binary.ZPM">
    <Module>
      <Name>test-binary</Name>
      <Version>0.0.1</Version>
      <Packaging>module</Packaging>
      <SourcesRoot>src</SourcesRoot>
      <FileCopy Name="lib" Target="${libdir}my-lib"/> <!-- Copia o conteúdo da pasta lib para o target -->
      <FileCopy Name="somefile.jar" Target="${libdir}my-lib"/> <!-- Copia o arquivo desejado para o target -->
    </Module>
  </Document>
</Export>

Adicionadas as propriedades Target e Dest para o atributo InstallDirectory

Suporte a arquivos, bem como diretórios, sem wildcards, apenas o conteúdo da pasta que deve ser copiado, ou um arquivo específico

Adicionados ${libdir} e ${bindir} , installdir/lib e installdir/bin respectivamente. 

O uso do bindir em ambientes docker podem causar problemas de segurança durante a instalação. O uso do libdir funciona neste caso, então, é a forma recomendada para este tipo de ambiente.

Isto deve funcionar (a barra final em no valor do Targeté importante)

<FileCopy Name="dsw/irisapp.json" Target="${cspdir}dsw/configs/"/>

E aqui deve ser o mesmo:

<FileCopy Name="dsw/irisapp.json" Target="${cspdir}dsw/configs/irisapp.json"/>

Se a propriedadeName finalizar com uma barra, ele fará a cópia como uma pasta. Durante a desinstalação ele irá apagar a pasta Target

<FileCopy Name="dsw/" Target="${cspdir}dsw/configs/"/>

E foi adicionado o suporte para empacotamento e desinstalação de módulo. Quando o módulo desinstala corretamente, apaga os arquivos previamente copiados.

2) Melhorias ao Invocar

Não é mais necessária a tag wrapper

Adicionados alguns novos atributos:

CheckStatus (Default: false), espera que o método invocado retorne %Status, e o utiliza para checar o status da instalação.

Phase, (Default: Configure), a fase em que ele deve ser executado

When, (Default: After), valores: Before e After. Para executar antes ou depois da execução principal para a fase

adicionado suporte à variáveis, adicionada a variável ${verbose}

<Invoke Class="%EnsembleMgr" Method="EnableNamespace" Phase="Compile" When="Before" CheckStatus="true">
  <Arg>${namespace}</Arg>
  <Arg>${verbose}</Arg>
</Invoke>
10
1 0 0 12