Hi,

You can use the "updateGovernanceArtifact" method in the
GovernanceArtifactManager class.

governanceArtifactManager.updateGovernanceArtifact(governanceArtifact);

Thanks!
Rajith

On Thu, Sep 29, 2016 at 12:15 PM, Shenavi de Mel <shen...@wso2.com> wrote:

> Hi Rajith,
>
> To update i have used this method bekiw. In this case should we update
> uisng the normal registry put method?
>
> manager.updateGenericArtifact(apiGenericArtifact);
>
> *Shenavi de Mel*
> Software Engineer
> WSO2 Inc: http://wso2.com
> email: shen...@wso2.com
> mobile: 0711644470
>
>
> On Thu, Sep 29, 2016 at 10:01 AM, Rajith Roshan <raji...@wso2.com> wrote:
>
>> Hi Shenavi,
>>
>> As Danesh suggested can you check whether the following method works.
>>
>> Registry registry = requestContext.getRegistry();
>> String resourcePath = requestContext.getResourcePath().getPath();
>>
>> governanceArtifact = 
>> GovernanceUtils.retrieveGovernanceArtifactByPath(requestContext.getSystemRegistry(),
>>  resourcePath);
>>
>> governanceArtifact.setAttribute("","");
>>
>>
>> Thanks!
>>
>> Rajith
>>
>>
>> On Thu, Sep 29, 2016 at 9:31 AM, Danesh Kuruppu <dan...@wso2.com> wrote:
>>
>>> Hi Shenavi,
>>>
>>> Did you try with the registry comes with requestContext as below.
>>> requestContext does have a registry, we can use that for registry
>>> operations
>>>
>>> requestContext.getRegistry()
>>>>
>>>
>>>
>>> Thanks
>>> Danesh
>>>
>>> On Thu, Sep 29, 2016 at 12:55 AM, Shenavi de Mel <shen...@wso2.com>
>>> wrote:
>>>
>>>> Hi All,
>>>>
>>>> I am trying to update an artifact created out of my custom API rxt in
>>>> greg inside the lifecycle executor class. Inside the lifecycle executer
>>>> class I need to modify the value of the field "implement_sandboxURL". When
>>>> i try to  update it using the java API it returns as a success but the
>>>> registry asset does not get updated with the value being passed in the
>>>> registry.
>>>>
>>>> Am I doing something wrong in how I am updating it? Your help would be
>>>> appreciated. Below is a block of code from inside the execution class which
>>>> corresponds to the update.
>>>>
>>>> {code}
>>>> Resource apiResource = requestContext.getResource();
>>>> String apiUUID = apiResource.getUUID();
>>>>
>>>> PrivilegedCarbonContext.startTenantFlow();
>>>> PrivilegedCarbonContext.getThreadLocalCarbonContext().setTen
>>>> antDomain(carbonContext.getTenantDomain());
>>>> PrivilegedCarbonContext.getThreadLocalCarbonContext().setTen
>>>> antId(carbonContext.getTenantId());
>>>>
>>>> *** Registry userRegistry = getUserRegistry();*
>>>> GenericArtifactManager manager = new GenericArtifactManager(userReg
>>>> istry,"api");
>>>> GenericArtifact apiGenericArtifact = manager.getGenericArtifact(api
>>>> UUID);
>>>> apiGenericArtifact.setAttribute("implement_sandboxURL","http
>>>> ://test.wso2.com");
>>>> manager.updateGenericArtifact(apiGenericArtifact);
>>>>
>>>> PrivilegedCarbonContext.endTenantFlow();
>>>>
>>>> {code}
>>>>
>>>>
>>>> *** Different methods tried to retrieve the registry instance*
>>>>
>>>> Method 1
>>>>
>>>> protected Registry getUserRegistry() throws RegistryException {
>>>>         CarbonContext carbonContext = PrivilegedCarbonContext.getThr
>>>> eadLocalCarbonContext();
>>>>         RegistryService registryService = (RegistryService)
>>>> carbonContext.getOSGiService(RegistryService.class, null);
>>>>         return registryService.getGovernanceUserRegistry("admin",
>>>> carbonContext.getTenantId());
>>>> }
>>>>
>>>> Method 2
>>>>
>>>> protected Registry getUserRegistry() {
>>>>         return (Registry)CarbonContext.getThr
>>>> eadLocalCarbonContext().getRegistry(RegistryType.USER_GOVERNANCE);
>>>> }
>>>>
>>>> Method 3
>>>>
>>>> protected Registry getUserRegistry() {
>>>>       ServiceDataHolder.getInstance().getTenantRegistryLoader().lo
>>>> adTenantRegistry(carbonContext.getTenantId());
>>>>      return ServiceDataHolder.getInstance(
>>>> ).getRegistryService().getGovernanceUserRegistry("admin");
>>>> }
>>>>
>>>> Am I missing something? What may be the reason the artifact does not
>>>> get updated? When i update using the edit option in the UI it works but not
>>>> through the code. Also i debugged in both cases and the flow was identical
>>>> as well.
>>>>
>>>> Thanks
>>>> Shenavi
>>>>
>>>> *Shenavi de Mel*
>>>> Software Engineer
>>>> WSO2 Inc: http://wso2.com
>>>> email: shen...@wso2.com
>>>> mobile: 0711644470
>>>>
>>>>
>>>
>>>
>>> --
>>>
>>> *Danesh Kuruppu*
>>> Senior Software Engineer | WSO2
>>>
>>> Email: dan...@wso2.com
>>> Mobile: +94 (77) 1690552
>>> Web: WSO2 Inc <https://wso2.com/signature>
>>>
>>>
>>
>>
>> --
>> Rajith Roshan
>> Software Engineer, WSO2 Inc.
>> Mobile: +94-72-642-8350 <%2B94-71-554-8430>
>>
>
>


-- 
Rajith Roshan
Software Engineer, WSO2 Inc.
Mobile: +94-72-642-8350 <%2B94-71-554-8430>
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to