Skip navigation links

@FieldsAreNonnullByDefault @ReturnValuesAreNonnullByDefault @ParametersAreNonnullByDefault

Package com.atlassian.tenant.impl

Also contains the base abstract classes for the TenantContext providers for local and remote service TC instantiation, the base abstract provider class for Unicorn environment, and the TC provider for local YAML based configuration.

See: Description

Package com.atlassian.tenant.impl Description

Also contains the base abstract classes for the TenantContext providers for local and remote service TC instantiation, the base abstract provider class for Unicorn environment, and the TC provider for local YAML based configuration.

A sample class that shows how to utilize the AbstractTenantContextProvider, to create, say, RefAppTenantContextProvider, may look something like:

    public final class RefAppTenantContext extends TenantContext {
        public RefAppTenantContext(TenantContext tc) {
           super(tc);
        }

        public String getRefAppSpecialField() {
           return getExtraContext().get("SPECIAL_KEY");
        }
    }

    public final class RefAppTenantContextProvider extends AbstractTenantContextProvider<RefAppTenantContext> {
        @Override
        protected TenantContext fetchTenantContext(String tenantId) {
          return new TenantContextYaml(tenantId);
        }

        @Override
        protected RefAppTenantContext decorate(TenantContext tc) {
          return new RefAppTenantContext(tc);
        }
    }

    public final class RefAppTenantContextFactory {
      private static final RefAppTenantContextProvider provider = new RefAppTenantContextProvider();

      private RefAppTenantContextFactory() { }

      static void apply(String tenantId) { // this method will be called from the Tomcat filter, for example
         provider.setTenantId(tenantId);
      }

      public static RefAppTenantContext currentTenant() {
         return provider.getTenantContext();
      }
   }

   //...
   RefAppTenantContext tc = RefAppTenantContextFactory.currentTenant(); // this could be statically imported
   String tenantId = tc.getTenantId();
   String specialField = tc.getRefAppSpecialField();
   //...
 
Since:
v1.0
Skip navigation links

Copyright © 2016 Atlassian. All rights reserved.