Extraire un actif existant

Pour extraire un actif du serveur, il vous faut d'abord un objet com.ibm.ram.client.RAMAsset. Cet objet représente les métadonnées de l'actif. Vous pouvez utiliser sa méthode getContents() pour obtenir l'actif proprement dit sous forme de fichier RAS.

Il existe plusieurs moyens d'extraire un actif du serveur. Pour y accéder directement, utilisez RAMSession.getAsset(AssetIdentification) pour extraire l'actif par son GUID et sa version. Vous pouvez utiliser le caractère générique '*' pour extraire la dernière version correspondant à un masque particulier (voir Versionner un actif).
                // Extraire un actif en spécifiant son GUID et une version particulière (seules sont extraites les métadonnées de l'actif, et non l'actif lui-même)
                RAMAsset asset = session.getAsset(new AssetIdentification("{AC0D54C1-E349-69EC-030F-E51CB557B0D7}", "7.1"));
Une fois en possession de l'actif, vous pouvez lire/écrire ses propriétés au moyen des méthodes get et set prévues à cet effet. Par exemple :
                // Vérifier les métadonnées de l'actif
                assertEquals("Javadoc API client RAM", asset.getName());
                assertEquals("Javadoc de l'API client de Rational Asset Manager", asset.getDescription());
                assertEquals("Documentation", asset.getAssetType().getName());
                assertEquals("Développement RAM", asset.getCommunity().getName());
                assertEquals("Joe Satriani", asset.getOwners()[0].getName());
Pour télécharger l'actif sous forme de fichier RAS, utilisez la méthode getContents() :
                // Télécharger le contenu sous forme de fichier .ras
                ZipInputStream in = null;
                File file = null;
                FileOutputStream output = null;
                byte[] buffer = new byte[100000];
                try {
                        file = new File("D:\\temp\\newAsset.ras"); //$NON-NLS-1$
                        output = new FileOutputStream(file);
                        in = new ZipInputStream(asset.getContents());

                        int read;
                        int start = 0;
                        while ((read = in.read(buffer, start, buffer.length - start)) > -1) {
                                start += read;
                                if (start >= buffer.length) {
                                        output.write(buffer);
                                        start = 0;
                                }
                        }
                        if (start > 0)
                                output.write(buffer, 0, start);
                } finally {
                        try {
                                if (in != null)
                                        in.close();
                        } catch (IOException e) {
                        }
                        try {
                                if (output != null)
                                        output.close();
                        } catch (IOException e) {
                        }
                }

Commentaires