Adding a new Artifact
To create a new Artifact you can use the following code. Here registry refers to valid org.wso2.carbon.registry.core.Registry object and projectKey refers to shortName in the registry extension file.
import org.wso2.carbon.governance.api.generic.GenericArtifactManager;
import org.wso2.carbon.governance.api.generic.dataobjects.GenericArtifact;
GenericArtifactManager artifactManager = new GenericArtifactManager(registry, projectKey);
GenericArtifact artifact = artifactManager.newGovernanceArtifact(new QName("http://www.example.com","event"));
artifactManager.addGenericArtifact(artifact);
Update a ArtifactTo make further changes to a Artifact which already in the registry you can use updateGenericArtifact() method.
artifact.addAttribute("EventName","Running");
artifactManager.updateGenericArtifact(artifact);
Remove a ArtifactTo remove a Artifact you should have the reference to that Artifact, which can be retrieve using artifact.getId(). Then you can use removeGenericArtifact() method to remove the Artifact.
String artifactId = artifact.getId(); artifactManager.removeGenericArtifact(artifactId);Retrieve a Artifact
To retrieve a Artifact you can use getGenericArtifact method().
GenericArtifact artifact = artifactManager.getGenericArtifact(artifactId);NOTE: In ordered to use getGenericArtifact method you have to have the Artifact reference ID. If you don't have it you can use the discovery method discussed below.
Discover a Artifact
Using the service discovery methods, you can retrieve Artifacts that match a given criteria. Here is an example on how to retrieve a set of Artifacts that has the attributes:
- Key - EventName
- Value - Running
GenericArtifact[] artifacts = artifactManager.findGenericArtifacts(new GenericArtifactFilter() {
public boolean matches(GenericArtifact genericArtifact) throws GovernanceException {
String attributeVal = artifact.getAttribute("EventName");
if(attributeVal != null && attributeVal == "Running"){
return true;
}
return false;
}
});
Associate a Lifecycle to the ArtifactTo associate a Lifecycle to the Artifact you can use attachLifecycle() method.
artifact.attachLifecycle("LifeCycleName");
artifactManager.updateGenericArtifact(artifact);
Retrieving Dependents And DependenciesTo get the dependents and dependancies of an Artifact you can use getDependents(), getDependencies() methods.
GovernanceArtifact[] dependents = artifact.getDependents(); GovernanceArtifact[] dependencies = artifact.getDependencies();