I tested DSS datasource creating in tenant mode by applying this patch and
it is working


On Wed, Aug 28, 2013 at 5:11 PM, Senaka Fernando <[email protected]> wrote:

> Hi Ratha,
>
> Looks proper to me. You can probably validate with integration tests
> related to events/DS.
>
> Thanks,
> Senaka.
>
>
> On Wed, Aug 28, 2013 at 3:51 PM, Anjana Fernando <[email protected]> wrote:
>
>> Hi,
>>
>> Chanika, please check on this. We once talked with Sameera on what is we
>> are suppose to use here, and we did the changes according to that.
>>
>> Cheers,
>> Anjana.
>>
>>
>> On Wed, Aug 28, 2013 at 3:44 PM, Vijayaratha Vijayasingam <
>> [email protected]> wrote:
>>
>>> Hi all;
>>> The reason is,  there are "Axis2ConfigurationContextObserver"
>>> implementations at Event +datasource components and where, tenantID/domain
>>> is set to "currentContext()"
>>>
>>> eg: PrivilegedCarbonContext.getCurrentContext().setTenantId(tenantId,
>>> true);
>>>
>>> Changed that to "ThreadLocalCarbonContext" and now issue is solved.
>>>
>>>  eg:
>>> PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(tenantId,
>>> true);
>>>
>>> @senaka,anjana..
>>> I have attached the patch which contains above change..Please check and
>>> let us know if there any issue..
>>> Else, we will commit that to branch
>>>
>>> Thanks.
>>>
>>>
>>> On 27 August 2013 17:47, Vijayaratha Vijayasingam <[email protected]>wrote:
>>>
>>>>
>>>> Hi all;
>>>> We are facing a severe blocker in APIM 4.2.0 based product..
>>>> When we publish an API from publisher to gateway following error[1] is
>>>> thrown and APIs are not deployed in tenant space.
>>>>
>>>> *what we do is*
>>>>
>>>> In the Admin service (RESTAPI admin) we set tenant domain explicitly
>>>> and creating  CarbonContext  using  getThreadLocalCarbonContext(). (Because
>>>> there is an issue at AbstarctAdmin service, where it creates CarbonContext
>>>> using  PrivilegedCarbonContext.getCurrentContext, and that always contains
>>>> SuperTenant domain in  it. This was discussed at the last release time and
>>>> as a solution  we overwrites that method from our end to use
>>>> PrivilegedCarbonContext.getThreadLocalCarbonContext() )
>>>>
>>>> Our sample AdminService code is;
>>>>
>>>> public boolean addApiForTenant(String apiData, String tenantDomain)
>>>> throws APIException {
>>>> try {
>>>>  PrivilegedCarbonContext.startTenantFlow();
>>>>
>>>> PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(tenantDomain,
>>>>
>>>>  true);
>>>> boolean status = addApiFromString(apiData);
>>>>  return status;
>>>> } finally {
>>>> PrivilegedCarbonContext.endTenantFlow();
>>>>  }
>>>> }
>>>>
>>>> //overwriting this
>>>> protected ConfigurationContext getConfigContext() {
>>>> .....................................................................
>>>> PrivilegedCarbonContext carbonContext =
>>>>  PrivilegedCarbonContext.getThreadLocalCarbonContext();
>>>> String domain = carbonContext.getTenantDomain();
>>>>  if (domain != null &&
>>>> !MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(domain)) {
>>>> System.out.println(" Tenant domain *********" +domain);
>>>>  return TenantAxisUtils.getTenantConfigurationContext(domain,
>>>> mainConfigContext);
>>>> .....................................................
>>>> }
>>>>
>>>> Can anyone point us, what we do wrong here?
>>>>
>>>> Thanks..
>>>>
>>>>
>>>> [1]
>>>> 2013-08-27 16:55:49,126]  INFO - CarbonAuthenticationUtil
>>>> '[email protected] [-1234]' logged in at [2013-08-27
>>>> 16:55:49,125+0530]
>>>>  Tenant domain *********test.com
>>>> [2013-08-27 16:55:49,152] ERROR -
>>>> EventAxis2ConfigurationContextObserver Error in setting tenant information
>>>> java.lang.NullPointerException: Tenant domain has not been set in
>>>> CarbonContext
>>>>         at
>>>> org.wso2.carbon.caching.impl.CacheManagerFactoryImpl.getCacheManager(CacheManagerFactoryImpl.java:79)
>>>>         at
>>>> org.wso2.carbon.user.core.authorization.PermissionTree.getPermissionTreeCache(PermissionTree.java:91)
>>>>         at
>>>> org.wso2.carbon.user.core.authorization.PermissionTree.updatePermissionTree(PermissionTree.java:905)
>>>>         at
>>>> org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager.isRoleAuthorized(JDBCAuthorizationManager.java:117)
>>>>         at
>>>> org.wso2.carbon.event.core.internal.CarbonEventBroker.initializeTenant(CarbonEventBroker.java:97)
>>>>         at
>>>> org.wso2.carbon.event.core.internal.builder.EventAxis2ConfigurationContextObserver.creatingConfigurationContext(EventAxis2ConfigurationCont
>>>> extObserver.java:30)
>>>>         at
>>>> org.wso2.carbon.core.multitenancy.utils.TenantAxisUtils.doPreConfigContextCreation(TenantAxisUtils.java:507)
>>>>         at
>>>> org.wso2.carbon.core.multitenancy.utils.TenantAxisUtils.createTenantConfigurationContext(TenantAxisUtils.java:302)
>>>>         at
>>>> org.wso2.carbon.core.multitenancy.utils.TenantAxisUtils.getTenantConfigurationContext(TenantAxisUtils.java:135)
>>>>         at
>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getConfigContext(RestApiAdmin.java:750)
>>>>         at
>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getAxisConfig(RestApiAdmin.java:731)
>>>>         at
>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getLock(RestApiAdmin.java:713)
>>>>         at
>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getApiByName(RestApiAdmin.java:417)
>>>>         at
>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getApiForTenant(RestApiAdmin.java:445)
>>>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>         at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>         at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>         at java.lang.reflect.Method.invoke(Method.java:597)
>>>>         at
>>>> org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
>>>>         at
>>>> org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
>>>>         at
>>>> org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
>>>>         at
>>>> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
>>>>         at
>>>> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
>>>>         at
>>>> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
>>>>         at
>>>> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
>>>>         at
>>>> org.wso2.carbon.core.transports.CarbonServlet.doPost(CarbonServlet.java:231)
>>>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
>>>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>>>>         at
>>>> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
>>>>         at
>>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
>>>>         at
>>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
>>>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>>>>         at
>>>> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
>>>>         at
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>>>>         at
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>>>>         at
>>>> org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61)
>>>>         at
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>>>>         at
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>>>>         at
>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>>>>         at
>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>>>>         at
>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>>>>         at
>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>>>>         at
>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>>>>         at
>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178)
>>>>         at
>>>> org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
>>>>         at
>>>> org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56)
>>>>         at
>>>> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
>>>>         at
>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141)
>>>>         at
>>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156)
>>>>         at
>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
>>>>         at
>>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52)
>>>>         at
>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>>>>         at
>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>>>>         at
>>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
>>>>         at
>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
>>>>         at
>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653)
>>>>          at
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>>>>         at
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
>>>>         at java.lang.Thread.run(Thread.java:662)
>>>> [2013-08-27 16:55:49,168]  INFO - TenantAxisConfigurator Creating
>>>> tenant AxisConfiguration for tenant: test.com[1]
>>>> [2013-08-27 16:55:49,458]  INFO - UserStoreConfigurationDeployer User
>>>> Store Configuration Deployer initiated.
>>>> [2013-08-27 16:55:50,236]  INFO - TenantServiceBusInitializer
>>>> Intializing the ESB Configuration for the tenant domain : test.com
>>>> [2013-08-27 16:55:50,239]  INFO - SynapseControllerFactory Using
>>>> Synapse home : C:\Users\TOSH\Desktop\WSO2AM~1.0\bin\..\repository\tenants\1
>>>> [2013-08-27 16:55:50,240]  INFO - SynapseControllerFactory Using
>>>> synapse.xml location :
>>>> C:\Users\TOSH\Desktop\WSO2AM~1.0\bin\..\repository\tenants\1\s
>>>> ynapse-configs\default
>>>> [2013-08-27 16:55:50,241]  INFO - SynapseControllerFactory Using server
>>>> name : synapse.test.com
>>>> [2013-08-27 16:55:50,244]  INFO - SynapseControllerFactory The timeout
>>>> handler will run every : 15s
>>>> [2013-08-27 16:55:50,247]  INFO - Axis2SynapseController Initializing
>>>> Synapse at : Tue Aug 27 16:55:50 IST 2013
>>>> [2013-08-27 16:55:50,255]  INFO - CarbonSynapseController Loading the
>>>> mediation configuration from the file system
>>>> [2013-08-27 16:55:50,257]  INFO - MultiXMLConfigurationBuilder Building
>>>> synapse configuration from the synapse artifact repository at :
>>>> C:\Users\TOSH\
>>>> Desktop\WSO2AM~1.0\bin\..\repository\tenants\1\synapse-configs\default
>>>> [2013-08-27 16:55:50,283]  INFO - SynapseConfigurationBuilder Loaded
>>>> Synapse configuration from the artifact repository at :
>>>> C:\Users\TOSH\Desktop\WSO
>>>> 2AM~1.0\bin\..\repository\tenants\1\synapse-configs\default
>>>> [2013-08-27 16:55:50,284]  INFO - Axis2SynapseController Loading
>>>> mediator extensions...
>>>> [2013-08-27 16:55:50,290]  INFO - Axis2SynapseController Deploying the
>>>> Synapse service...
>>>> [2013-08-27 16:55:50,291]  INFO - Axis2SynapseController Deploying
>>>> Proxy services...
>>>> [2013-08-27 16:55:50,292]  INFO - Axis2SynapseController Deploying
>>>> EventSources...
>>>> [2013-08-27 16:55:50,295]  INFO - ServerManager Server ready for
>>>> processing...
>>>> [2013-08-27 16:55:50,343]  WARN - MediationStatisticsServiceComponent
>>>> Couldn't find the mediation statistics store for tenant id: 1
>>>> [2013-08-27 16:55:50,382]  INFO - PermissionUpdater Permission cache
>>>> updated for tenant 1
>>>> [2013-08-27 16:55:50,384] ERROR - TenantAxisUtils Error occurred while
>>>> running deployment for tenant test.com
>>>> java.lang.NullPointerException: Tenant domain has not been set in
>>>> CarbonContext
>>>>         at
>>>> org.wso2.carbon.caching.impl.CacheManagerFactoryImpl.getCacheManager(CacheManagerFactoryImpl.java:79)
>>>>         at
>>>> org.wso2.carbon.registry.core.utils.RegistryUtils.getCacheManager(RegistryUtils.java:288)
>>>>         at
>>>> org.wso2.carbon.registry.core.utils.RegistryUtils.getResourceCache(RegistryUtils.java:271)
>>>>         at
>>>> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.getCache(CacheBackedRegistry.java:62)
>>>>         at
>>>> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.resourceExists(CacheBackedRegistry.java:246)
>>>>         at
>>>> org.wso2.carbon.registry.core.session.UserRegistry.resourceExists(UserRegistry.java:629)
>>>>         at
>>>> org.wso2.carbon.datasource.DataSourceInformationManager.populateDataSourceInformation(DataSourceInformationManager.java:62)
>>>>         at
>>>> org.wso2.carbon.datasource.multitenancy.DataSourceInitializer.createdConfigurationContext(DataSourceInitializer.java:73)
>>>>         at
>>>> org.wso2.carbon.core.multitenancy.utils.TenantAxisUtils.createTenantConfigurationContext(TenantAxisUtils.java:342)
>>>>         at
>>>> org.wso2.carbon.core.multitenancy.utils.TenantAxisUtils.getTenantConfigurationContext(TenantAxisUtils.java:135)
>>>>         at
>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getConfigContext(RestApiAdmin.java:750)
>>>>         at
>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getAxisConfig(RestApiAdmin.java:731)
>>>>         at
>>>> org.wso2.carbon.rest.api.service.RestApiAdmin.getLock(RestApiAdmin.java:713)
>>>>         at org.wso2.carbo
>>>>
>>>> --
>>>> -Ratha
>>>> mobile: (+94)755906608
>>>>
>>>
>>>
>>>
>>> --
>>> -Ratha
>>> mobile: (+94)755906608
>>>
>>
>>
>>
>> --
>> *Anjana Fernando*
>> Technical Lead
>>  WSO2 Inc. | http://wso2.com
>> lean . enterprise . middleware
>>
>
>
>
> --
> * <http://us13.wso2con.com/>
> *
> *
> *
> *Senaka Fernando*
> Senior Technical Lead; WSO2 Inc.; http://wso2.com*
> Member; Apache Software Foundation; http://apache.org
>
> E-mail: senaka AT wso2.com
> **P: +1 408 754 7388; ext: 51736*; *M: +94 77 322 1818
> Linked-In: http://linkedin.com/in/senakafernando
>
> *Lean . Enterprise . Middleware
>



-- 
Best Regards..

Chanika Geeganage
Software Engineer
WSO2, Inc.; http://wso2.com

Mobile: +94773522586
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to