Big Retail - P&D >Projeto Storex Custom > Novo Storex
Objetivo
Esse documento tem o objetivo de informar quais as modificações devem ser realizadas dentro dos projetos Mavem que tenham como base o Storex Standad, essas alterações são utilizadas para unificar os XML's dos projetos Standard com os Customizados.
Descrição da Solução
A solução se aplica a qualquer projeto Maven que tenha como finalidade realizar o merge dois xml's.
O projeto foi desenvolvido utilizando como base o projeto "storex-pos-studioz", mas essa atualização poderá ser aplicada a qualquer projeto que utilize Maven, para isso basta realizar as devidas alterações pertinentes em cada projeto.
Pré-requisito
Dentro dos projetos Customizados não haverá mais a presença dos arquivos .xml herdados do projeto Standard, agora o .xml do projeto Standard irá embarcado no .jar do Storex-Standard, a solução irá buscar esse .xml informado nas dependências do Maven de acordo com os parâmetros informados no pom.xml.
Alteração no Arquivo Pom.xml
Esse é o trecho de código que será alterado para efetuar a verificação se o .xml do Standad esta presente no .jar
pom.xml |
---|
<!-- Verifica se existe o xml Custom na pasta, caso não, faz uma cópia do xml Standard e renomeia. --> <profiles> <profile> <activation> <file> <missing>${basedir}/configuracao/padrao/servidor-configuracao/xml/linx-storex-pos-studioz-config.xml</missing> </file> </activation> <build> <plugins> <plugin> <groupId>com.coderplus.maven.plugins</groupId> <artifactId>copy-rename-maven-plugin</artifactId> <version>1.0</version> <executions> <execution> <id>copy-file</id> <phase>package</phase> <goals> <goal>copy</goal> </goals> <configuration> <sourceFile>${basedir}/configuracao/padrao/servidor-configuracao/xml/linx-storex-pos-standard-config.xml</sourceFile> <destinationFile>src/main/resources/configuracao/xml/${project.artifactId}-config-${project.version}.xml</destinationFile> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>true</overWriteSnapshots> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> <dependencies> <plugins> |
Criação do Arquivo .XSLT
Para conseguir efetuar o merge dos XMLs de configuração será necessário criar um arquivo com a extensão .xsl chamado mergeConfig, com o auxilio do seu eclipse acesse o projeto customizado busque a pasta XML, clique com o botão direito na pasta e selecione a opção New (Novo) > File (Arquivo)
Esse é o trecho de código que deverá ser incluído no arquivo mergeConfig.xsl, nesse arquivo criado estarão os mapeamentos das tags que serão validadas.
mergeConfig.xsl |
---|
<?xml version="1.0"?> <!–Carrega o xml Standard para mapeamento --> <xsl:template match="/"> <!-- percorre a tag do arquivo principal e copia no xml gerado -->
<!-- percorre a tag e todos os nós filhos dos dois xmls e realiza o merge no xml gerado --> <!-- percorre a tag do arquivo principal e copia no xml gerado --> |
Tegs Mais importantes para Configuração do Projeto
<xslFile>${basedir}/configuracao/padrao/servidor-configuracao/xml/mergeXml.xsl</xslFile>
- Indica o caminho onde está o xslt onde fica o mapeamento das tags que será realizado o merge.
<srcDir>${basedir}/configuracao/padrao/servidor-configuracao/xml/</srcDir>
<destDir>${resources.dir}/configuracao/xml/</destDir>
- Indica o caminho onde os .xml's origem e destino estão.
<fileNameRegex>linx-storex-pos-studioz-config</fileNameRegex>
- Nome do .xml Destino, o qual será feita a comparação com o .xml origem.
<fileNameReplacement>${project.artifactId}-config-${project.version}</fileNameReplacement>
- Nome do .xml gerado já mergiado.
<xsl:variable name="storexStandard" select="document('../../servidor-configuracao/xml/linx-storex-pos-standard-config.xml')" />
- Variável criada para referenciar o .xml origem que vai ser chamado logo abaixo dentro da tag que queremos validar.
<parameters>
Está é a tag que é comparada nos dois .xmls.
ATENÇÃO
O arquivo .xslt precisa estar na mesma pasta dos dois arquivos .xml's.
O arquivo .xml será gerado sempre que for executado o processo de build do Maven.
O .xml gerado deve ser salvo numa pasta onde o projeto enxergue para que seja empacotado junto com os demais arquivos no final do processo de Build.