001package io.ebean.docker.commands; 002 003import java.util.Properties; 004 005public class Db2Config extends DbConfig { 006 007 private String createOptions; 008 private String configOptions; 009 010 public Db2Config(String version, Properties properties) { 011 this(version); 012 setProperties(properties); 013 } 014 015 public Db2Config(String version) { 016 super("db2", 50000, 50000, version); 017 this.image = "ibmcom/db2:" + version; 018 this.setTmpfs("/database:rw"); 019 } 020 021 /** 022 * Expose for MariaDB config. 023 */ 024 protected Db2Config(String platform, int port, int internalPort, String version) { 025 super(platform, port, internalPort, version); 026 } 027 028 @Override 029 public String jdbcUrl() { 030 return "jdbc:db2://" + getHost() + ":" + getPort() + "/" + getDbName(); 031 } 032 033 public String getCreateOptions() { 034 return createOptions; 035 } 036 037 /** 038 * Sets additional create options specified in 039 * https://www.ibm.com/docs/en/db2/11.5?topic=commands-create-database Example: 040 * 'USING CODESET UTF-8 TERRITORY DE COLLATE USING IDENTITY PAGESIZE 32768' 041 */ 042 public void setCreateOptions(String createOptions) { 043 this.createOptions = createOptions; 044 } 045 046 public String getConfigOptions() { 047 return configOptions; 048 } 049 050 /** 051 * Sets DB2 config options. See 052 * https://www.ibm.com/docs/en/db2/11.5?topic=commands-update-database-configuration 053 * for details Example 'USING STRING_UNITS CODEUNITS32 054 */ 055 public void setConfigOptions(String configOptions) { 056 this.configOptions = configOptions; 057 } 058 059 /** 060 * Load configuration from properties. 061 */ 062 public DbConfig setProperties(Properties properties) { 063 if (properties == null) { 064 return this; 065 } 066 super.setProperties(properties); 067 createOptions = prop(properties, "createOptions", createOptions); 068 configOptions = prop(properties, "configOptions", configOptions); 069 return this; 070 } 071 072}