O Magic xpa (uniPaaS) possui a capacidade de integrar-se a diversas outras tecnologias (Java, COM, .NET, SOAP, REST), visto que além de uma plataforma SaaS, ele também é uma plataforma SOA.
Existe muita coisa já construída, algumas inclusive “free”, que podemos utilizar em nossas soluções ao invés de ter de recriá-las.
Neste post, vamos ver a possibilidade de consumir classes Java em aplicações Magic xpa. Vamos recorrer ao Java para calcular valores GUID (Global Unique Identifier, um número que (em teoria) quando gerado é único no mundo inteiro).
O Java está disponível através da sua JRE. Uma das vantagens da JRE é que ela está contida toda em uma pasta (e suas subpastas), de forma que pode facilmente ser transportada para outros servidores e estações, ou incluída em pacotes de instalações.
As configurações necessárias para o Magic xpa localizar a JRE são definidas no MAGIC.INI:
Para calcular um valor GUID, teremos de utilizar a classe Java UUID, definida no package java.util.UUID.
Para criar uma instância de um objeto Java, usa-se a função Magic xpa JCreate. Para chamar um método de um objeto instanciado, JCall. Se o método for estático da classe, JCallStatic.
NOTA: consulte o help do Magic xpa para mais detalhes sobre todas as funções de acesso ao Java
A classe UUID possui um método estático chamado “randomUUID” que retorna um novo objeto GUID. Este método não possui argumentos, então sua assinatura é “()Ljava/util/UUID”.
Para ter um objeto UUID Java no Magic xpa, a instrução é esta:
Update <VarBLOB> With JCallStatic(‘java.util.UUID.randomUUID’, ‘()Ljava/util/UUID;’)
De posse do objeto UUID, basta chamar o seu método “toString” para converter o número GUID em uma representação textual. Este método não possui argumentos, então sua assinatura é “()Ljava/lang/String;”
Para formatar um objeto UUID Java em string no Magic xpa, a instrução é esta:
Update <VarALPHA> With JCall(<VarBLOB>, ‘toString’, ‘()Ljava/lang/String;’)
Acesse este endereço e baixe um pequeno projeto Magic xpa (1.9g) de exemplo, onde são gerados GUIDs:
Este projeto também possui um programa exemplo que recupera o nome e o IP da máquina.