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>