Vous pouvez créer des stratégies en utilisant les API client Java.
RAMSession ramSession = getPolicyContext().getRAMSession(); RAMAsset ramAsset = getPolicyContext().getRAMAsset();
Vous pouvez utiliser plusieurs classes d'API Java Rational Asset Manager pour mettre à jour l'actif actuel. Par exemple, vous pouvez ajouter une relation ou définir une action. Vous pouvez également utiliser les classes d'API pour travailler avec des actifs, des attributs d'actifs et des artefacts.
Vous pouvez aussi utiliser les API Java pour changer ou créer des actifs en plus de celui sur lequel est exécutée la stratégie. Vous devez inclure les fichiers JAR du client Java et utiliser RAMSession(). Pour des performances optimales lors de l'utilisation d'API ram.client, limitez les mises à jours des actifs à une seule session.
RAMSession session = getPolicyContext().getRAMSession();
RAMAsset currentAsset = this.getPolicyContext().getRAMAsset();
// Utilisez les API client pour apporter des modifications à l'actif ...
// Vous pouvez également modifier ou créer d'autres actifs :
RAMAsset asset = session.createAsset("1.0");
asset.setName("Test Asset");
asset.setCommunity(session.getCommunity("Sample Application Development"));
asset.setAssetType(session.getAssetType("Business Solution"));
asset.setShortDescription("Test asset");
asset.setOwners(new RAMUser[] { session.getUser("admin") });
// Validez les modifications dans le référentiel d'actifs pour l'actif actuel :
session.putAsset(currentAsset);
// Vous pouvez utiliser queueAssetForPut et putAssets pour mettre en fil d'attente, puis
// valider tous les actifs que vous avez modifiés dans la session comme une seule transaction :
session.queueAssetForPut(currentAsset);
// Validez les modifications apportées à tous les actifs que vous avez modifiés dans la session :
session.putAssets(new NullProgressMonitor());
import com.ibm.ram.common.* import com.ibm.ram.client.*
Pour les API du client Java, voir : package client et package de données communes.
Reportez-vous à la section Exemple de cette rubrique et à Utiliser l'API Java Rational Asset Manager pour des exemples supplémentaires.
myAssetUniqueID = getManifestAccessor().getId();
RAMAsset myAsset = session.getAsset(new AssetIdentification(myAssetUniqueID, "*"));
// Obtenir des exemples d'attributs d'actifs :
AssetAttribute myAttribute = myAsset.getAssetAttribute("Family Name");
String[] myAttrValue = myAttribute.getValues();
myAttribute = myAsset.getAssetAttribute("Work Item");
myAttrValue = myAttribute.getValues();
myAttribute = myAsset.getAssetAttribute("Requirement");
myAttrValue = myAttribute.getValues();
SearchQuery query = session.createAssetQuery(queryParam); int offset = 0; int maxResults = 100; query.setResultsStartIndex(offset); query.setMaxResults(maxResults); SearchResult result = session.getAssets(query);
RAMAsset newAsset = session.createAsset("1.0");
newAsset.setName("The new related asset");
newAsset.setCommunity(session.getCommunity("Développement Rational Asset Manager"));
newAsset.setAssetType(session.getAssetType("Specification"));
newAsset.setShortDescription("The Specification asset is required.");
AssetID id = new AssetID(); id.setGUID(newAsset.getId()); id.setVersion(newAsset.getVersion());
public Result test() {
try {
// Créer des paramètres de configuration pour l'url, l'utilisateur et le mot de passe
String url = "http://nom-hôte:9080/ram";
String user = "admin";
String password = "admin";
String queryParam = null;
// Définir une requête
RAMSession session = new RAMSession(url, user, password);
SearchQuery query = session.createAssetQuery(queryParam);
int offset = 0;
int maxResults = 100;
query.setResultsStartIndex(offset);
query.setMaxResults(maxResults);
SearchResult result = session.getAssets(query);
if (result != null && result.getAssetSearchResults() != null) {
AssetSearchResult[] assets = result.getAssetSearchResults();
for (AssetSearchResult asset : assets) {
AssetInformation assetInformation = asset.getAsset();
// Modifier un actif, par exemple
// créer une relation "DependsOn" des actifs de type Release et Implementation à
un actif Specification du même nom à l'aide des API du client, comme suit :
// Relationship theRelationships = session.getRelationships
// getRelationships().add(newItem);
}
}
}
// Intercepter des exceptions...
Result result = new Result();
result.setMessage("Success");
return result;
}
// Obtenir l'actif
RAMAsset ramAsset = getRAMAsset();
// Obtenir l'emplacement et le contenu des artefacts
RAMFolderArtifact srcFolderArtifact = (RAMFolderArtifact)ramAsset.getArtifactsRoot();
Artifact[] srcArtifacts = srcFolderArtifact.computeArtifactsAsFlatList(new NullProgressMonitor());
for (Artifact artifact : srcArtifacts) {
RAMArtifact ramArtifact = (RAMArtifact) artifact;
InputStream is = ramArtifact.downloadContents();
f = File.createTempFile("theArtifact", null, new File(ramSession.getLocalStorageLocation()));
UtilitiesCommon.copyStreams(is, new FileOutputStream(f), null, true, true);
}