/**
   * The constructor will start by registering the schemas with the meta store table in HBase, and
   * create the required tables to run.
   */
  public UserProfileExample() {
    Configuration conf = HBaseConfiguration.create();
    HTablePool pool = new HTablePool(conf, 10);
    SchemaManager schemaManager = new DefaultSchemaManager(pool);

    registerSchemas(conf, schemaManager);

    userProfileDao =
        new SpecificAvroDao<UserProfileModel>(
            pool, "cdk_example_user_profiles", "UserProfileModel", schemaManager);
    userActionsDao =
        new SpecificAvroDao<UserActionsModel>(
            pool, "cdk_example_user_profiles", "UserActionsModel", schemaManager);
    userProfileActionsDao =
        SpecificAvroDao.buildCompositeDaoWithEntityManager(
            pool, "cdk_example_user_profiles", UserProfileActionsModel.class, schemaManager);
  }