Puede crear políticas utilizando las API de cliente Java.
RAMSession ramSession = getPolicyContext().getRAMSession(); RAMAsset ramAsset = getPolicyContext().getRAMAsset();
Puede utilizar varias de las clases de API de Rational Asset Manager Java para actualizar el activo actual. Por ejemplo, puede añadir una relación o establecer una acción. También puede utilizar las clases de API para trabajar con activos, atributos de activos y artefactos.
También puede utilizar la API Java para cambiar o crear otros activos además de aquel en el que se está ejecutando la política. Debe incluir los archivos JAR de cliente Java y utilizar una RAMSession(). Para obtener un mejor rendimiento al utilizar APIs de ram.client, limite las actualizaciones de activos a una sola sesión.
RAMSession session = getPolicyContext().getRAMSession();
RAMAsset currentAsset = this.getPolicyContext().getRAMAsset();
// Utilice las API de cliente para realizar los cambios en el activo ...
// También puede modificar o crear otros activos:
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") });
// Confirme los cambios en el repositorio de activos para el activo actual:
session.putAsset(currentAsset);
// Puede utilizar queueAssetForPut y luego putAssets para colocar en cola y luego
// confirmar todos los activos que ha cambiado en la sesión como una transacción:
session.queueAssetForPut(currentAsset);
// Confirmar los cambios de todos los activos que ha cambiado en la sesión:
session.putAssets(new NullProgressMonitor());
import com.ibm.ram.common.* import com.ibm.ram.client.*
Para las API de cliente Java , consulte: paquete de cliente y paquete de datos común.
Consulte la sección Ejemplo de este tema y Utilización de la API Java de Rational Asset Manager para obtener ejemplos adicionales.
myAssetUniqueID = getManifestAccessor().getId();
RAMAsset myAsset = session.getAsset(new AssetIdentification(myAssetUniqueID, "*"));
// Obtener ejemplos de atributos de activo:
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("Rational Asset Manager Development"));
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 {
// Crear parámetros de configuración para el url, el usuario y la contraseña
String url = "http://host-name-goes-here:9080/ram";
String user = "admin";
String password = "admin";
String queryParam = null;
// Establecer una consulta
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();
// Modificar un activo aquí, por ejemplo,
// crear una relación "DependsOn" de los activos de tipo Release e Implementation al activo Specification del mismo nombre mediante las API de cliente, de esta manera:
// Relationship theRelationships = session.getRelationships
// getRelationships().add(newItem);
}
}
}
// Capturar excepciones...
Result result = new Result();
result.setMessage("Success");
return result;
}
// Obtener el activo
RAMAsset ramAsset = getRAMAsset();
// Obtener la ubicación y el contenido de los artefactos
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);
}