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> >
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev