View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.omid.timestamp.storage;
19  
20  import com.google.inject.AbstractModule;
21  import com.google.inject.name.Names;
22  import org.apache.omid.HBaseConfigModule;
23  
24  import static org.apache.omid.timestamp.storage.HBaseTimestampStorageConfig.DEFAULT_TIMESTAMP_STORAGE_CF_NAME;
25  import static org.apache.omid.timestamp.storage.HBaseTimestampStorageConfig.DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME;
26  
27  /**
28   * This class is instantiated by the yaml parser.
29   * Snake_yaml needs a public POJO style class to work properly with all the setters and getters.
30   */
31  public class DefaultHBaseTimestampStorageModule extends AbstractModule {
32  
33      private String tableName = DEFAULT_TIMESTAMP_STORAGE_TABLE_NAME;
34      private String familyName = DEFAULT_TIMESTAMP_STORAGE_CF_NAME;
35      private String keytab;
36      private String principal;
37  
38      @Override
39      public void configure() {
40          bindConstant().annotatedWith(Names.named(HBaseTimestampStorageConfig.TIMESTAMP_STORAGE_TABLE_NAME_KEY)).to(tableName);
41          bindConstant().annotatedWith(Names.named(HBaseTimestampStorageConfig.TIMESTAMP_STORAGE_CF_NAME_KEY)).to(familyName);
42          install(new HBaseConfigModule(principal, keytab));
43          install(new HBaseTimestampStorageModule());
44      }
45  
46      // ----------------------------------------------------------------------------------------------------------------
47      // WARNING: Do not remove getters/setters, needed by snake_yaml!
48      // ----------------------------------------------------------------------------------------------------------------
49  
50      public String getTableName() {
51          return tableName;
52      }
53  
54      public void setTableName(String tableName) {
55          this.tableName = tableName;
56      }
57  
58      public String getFamilyName() {
59          return familyName;
60      }
61  
62      public void setFamilyName(String familyName) {
63          this.familyName = familyName;
64      }
65  
66      public String getPrincipal() {
67          return principal;
68      }
69  
70      public void setPrincipal(String principal) {
71          this.principal = principal;
72      }
73  
74      public String getKeytab() {
75          return keytab;
76      }
77  
78      public void setKeytab(String keytab) {
79          this.keytab = keytab;
80      }
81  }