GUACAMOLE-728: Migrate existing enum-based GuacamoleProperty implementations to EnumGuacamoleProperty.

This commit is contained in:
Michael Jumper
2020-06-10 18:05:53 -07:00
parent 7d6e383e4a
commit 7c44ee2a67
19 changed files with 80 additions and 496 deletions

View File

@@ -19,6 +19,8 @@
package org.apache.guacamole.auth.mysql;
import org.apache.guacamole.properties.EnumGuacamoleProperty.PropertyValue;
/**
* The possible JDBC drivers to use when talking to a MySQL-compatible database
* server.
@@ -28,10 +30,12 @@ public enum MySQLDriver {
/**
* MySQL driver.
*/
@PropertyValue("mysql")
MYSQL,
/**
* MariaDB driver.
*/
@PropertyValue("mariadb")
MARIADB;
}

View File

@@ -1,52 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.guacamole.auth.mysql;
import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.GuacamoleServerException;
import org.apache.guacamole.properties.GuacamoleProperty;
/**
* A property whose value is a MySQL-compatible JDBC driver. The string values
* of either "mysql" or "mariadb" are parsed into the corresponding MySQLDriver
* enum value. Any values that are not valid result in a parse error.
*/
public abstract class MySQLDriverProperty implements GuacamoleProperty<MySQLDriver> {
@Override
public MySQLDriver parseValue(String value) throws GuacamoleException {
// If no value provided, return null.
if (value == null)
return null;
// MySQL Driver
if (value.equals("mysql"))
return MySQLDriver.MYSQL;
// MariaDB Driver
if (value.equals("mariadb"))
return MySQLDriver.MARIADB;
throw new GuacamoleServerException("MySQL driver must be one of \"mysql\" or \"mariadb\".");
}
}

View File

@@ -20,6 +20,7 @@
package org.apache.guacamole.auth.mysql;
import org.apache.guacamole.properties.BooleanGuacamoleProperty;
import org.apache.guacamole.properties.EnumGuacamoleProperty;
import org.apache.guacamole.properties.IntegerGuacamoleProperty;
import org.apache.guacamole.properties.StringGuacamoleProperty;
@@ -36,8 +37,8 @@ public class MySQLGuacamoleProperties {
/**
* The JDBC driver that should be used to talk to MySQL-compatible servers.
*/
public static final MySQLDriverProperty MYSQL_DRIVER =
new MySQLDriverProperty() {
public static final EnumGuacamoleProperty<MySQLDriver> MYSQL_DRIVER =
new EnumGuacamoleProperty<MySQLDriver>(MySQLDriver.class) {
@Override
public String getName() { return "mysql-driver"; }

View File

@@ -19,6 +19,8 @@
package org.apache.guacamole.auth.sqlserver;
import org.apache.guacamole.properties.EnumGuacamoleProperty.PropertyValue;
/**
* The possible SQL Server drivers to use when using a TDS-compatible database.
*/
@@ -27,20 +29,24 @@ public enum SQLServerDriver {
/**
* The open source jTDS driver.
*/
@PropertyValue("jtds")
JTDS,
/**
* The Progress DataDirect driver.
*/
@PropertyValue("datadirect")
DATA_DIRECT,
/**
* The Microsoft Legacy SQL Server driver.
*/
@PropertyValue("microsoft")
MICROSOFT_LEGACY,
/**
* The Microsoft 2005 SQL Server driver.
*/
@PropertyValue("microsoft2005")
MICROSOFT_2005;
}

View File

@@ -1,60 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.guacamole.auth.sqlserver;
import org.apache.guacamole.GuacamoleException;
import org.apache.guacamole.GuacamoleServerException;
import org.apache.guacamole.properties.GuacamoleProperty;
/**
* A property whose value is a SQLServerDriver. The incoming string values of "jtds", "datadirect",
* "microsoft", and "microsoft2005" into the corresponding SQLServerDriver enum value. Any
* values that are not valid result in a parse error.
*/
public abstract class SQLServerDriverProperty implements GuacamoleProperty<SQLServerDriver> {
@Override
public SQLServerDriver parseValue(String value) throws GuacamoleException {
// If no value provided, return null.
if (value == null)
return null;
// jTDS Driver
if (value.equals("jtds"))
return SQLServerDriver.JTDS;
// Progress DataDirect Driver
if (value.equals("datadirect"))
return SQLServerDriver.DATA_DIRECT;
// Microsoft Legacy Driver
if (value.equals("microsoft"))
return SQLServerDriver.MICROSOFT_LEGACY;
// Microsoft 2005 Driver
if (value.equals("microsoft2005"))
return SQLServerDriver.MICROSOFT_2005;
throw new GuacamoleServerException("SQLServer driver must be one of \"jtds\", \"datadirect\", \"microsoft\", \"microsoft2005\".");
}
}

View File

@@ -20,6 +20,7 @@
package org.apache.guacamole.auth.sqlserver;
import org.apache.guacamole.properties.BooleanGuacamoleProperty;
import org.apache.guacamole.properties.EnumGuacamoleProperty;
import org.apache.guacamole.properties.IntegerGuacamoleProperty;
import org.apache.guacamole.properties.StringGuacamoleProperty;
@@ -174,8 +175,8 @@ public class SQLServerGuacamoleProperties {
/**
* Which TDS-compatible JDBC driver should be used for the connection.
*/
public static final SQLServerDriverProperty
SQLSERVER_DRIVER = new SQLServerDriverProperty() {
public static final EnumGuacamoleProperty<SQLServerDriver>
SQLSERVER_DRIVER = new EnumGuacamoleProperty<SQLServerDriver>(SQLServerDriver.class) {
@Override
public String getName() { return "sqlserver-driver"; }