You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2015/04/30 12:23:38 UTC
cayenne git commit: cleanup
Repository: cayenne
Updated Branches:
refs/heads/master 34a3dc049 -> 5e037fc73
cleanup
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/5e037fc7
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/5e037fc7
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/5e037fc7
Branch: refs/heads/master
Commit: 5e037fc73ab8b55c409d697f2b33138f4a72397d
Parents: 34a3dc0
Author: aadamchik <aa...@apache.org>
Authored: Wed Apr 22 15:41:14 2015 +0300
Committer: aadamchik <aa...@apache.org>
Committed: Thu Apr 30 13:23:20 2015 +0300
----------------------------------------------------------------------
.../org/apache/cayenne/conn/DataSourceInfo.java | 732 +++++++++----------
1 file changed, 362 insertions(+), 370 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/5e037fc7/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java b/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
index da93040..44c95c1 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/conn/DataSourceInfo.java
@@ -35,374 +35,366 @@ import org.apache.commons.logging.LogFactory;
*/
public class DataSourceInfo implements Cloneable, Serializable, XMLSerializable {
- private static Log logger = LogFactory.getLog(DataSourceInfo.class);
-
- protected String userName;
- protected String password;
- protected String jdbcDriver;
- protected String dataSourceUrl;
- protected String adapterClassName;
- protected int minConnections = 1;
- protected int maxConnections = 1;
-
- // Constants for passwordLocation
- public static final String PASSWORD_LOCATION_CLASSPATH = "classpath";
- public static final String PASSWORD_LOCATION_EXECUTABLE = "executable";
- public static final String PASSWORD_LOCATION_MODEL = "model";
- public static final String PASSWORD_LOCATION_URL = "url";
-
- // Extended parameters
- protected String passwordEncoderClass = PlainTextPasswordEncoder.class.getName();
- protected String passwordEncoderKey = "";
- protected String passwordLocation = PASSWORD_LOCATION_MODEL;
- protected String passwordSourceExecutable = "";
- protected String passwordSourceFilename = "";
- protected final String passwordSourceModel = "Not Applicable";
- protected String passwordSourceUrl = "";
-
- @Override
- public boolean equals(Object obj) {
- if (obj == this)
- return true;
-
- if (obj == null)
- return false;
-
- if (obj.getClass() != this.getClass())
- return false;
-
- DataSourceInfo dsi = (DataSourceInfo) obj;
-
- if (!Util.nullSafeEquals(this.userName, dsi.userName))
- return false;
- if (!Util.nullSafeEquals(this.password, dsi.password))
- return false;
- if (!Util.nullSafeEquals(this.jdbcDriver, dsi.jdbcDriver))
- return false;
- if (!Util.nullSafeEquals(this.dataSourceUrl, dsi.dataSourceUrl))
- return false;
- if (!Util.nullSafeEquals(this.adapterClassName, dsi.adapterClassName))
- return false;
- if (this.minConnections != dsi.minConnections)
- return false;
- if (this.maxConnections != dsi.maxConnections)
- return false;
- if (!Util.nullSafeEquals(this.passwordEncoderClass, dsi.passwordEncoderClass))
- return false;
- if (!Util.nullSafeEquals(this.passwordEncoderKey, dsi.passwordEncoderKey))
- return false;
- if (!Util.nullSafeEquals(this.passwordSourceFilename, dsi.passwordSourceFilename))
- return false;
- if (!Util.nullSafeEquals(this.passwordSourceModel, dsi.passwordSourceModel))
- return false;
- if (!Util.nullSafeEquals(this.passwordSourceUrl, dsi.passwordSourceUrl))
- return false;
- if (!Util.nullSafeEquals(this.passwordLocation, dsi.passwordLocation))
- return false;
-
- return true;
- }
-
- /**
- * @since 3.1
- */
- public void encodeAsXML(XMLEncoder encoder) {
- encoder.println("<data-source>");
- encoder.indent(1);
-
- encoder.print("<driver");
- encoder.printAttribute("value", jdbcDriver);
- encoder.println("/>");
-
- encoder.print("<url");
- encoder.printAttribute("value", dataSourceUrl);
- encoder.println("/>");
-
- encoder.print("<connectionPool");
- encoder.printAttribute("min", String.valueOf(minConnections));
- encoder.printAttribute("max", String.valueOf(maxConnections));
- encoder.println("/>");
-
- encoder.print("<login");
- encoder.printAttribute("userName", userName);
-
- if (DataSourceInfo.PASSWORD_LOCATION_MODEL.equals(passwordLocation)) {
-
- PasswordEncoding passwordEncoder = getPasswordEncoder();
-
- if (passwordEncoder != null) {
- String passwordEncoded = passwordEncoder.encodePassword(
- password,
- passwordEncoderKey);
- encoder.printAttribute("password", passwordEncoded);
- }
- }
-
- if (!PlainTextPasswordEncoder.class.getName().equals(passwordEncoderClass)) {
- encoder.printAttribute("encoderClass", passwordEncoderClass);
- }
-
- encoder.printAttribute("encoderKey", passwordEncoderKey);
-
- if (!DataSourceInfo.PASSWORD_LOCATION_MODEL.equals(passwordLocation)) {
- encoder.printAttribute("passwordLocation", passwordLocation);
- }
-
- // TODO: this is very not nice... we need to clean up the whole DataSourceInfo
- // to avoid returning arbitrary labels...
- String passwordSource = getPasswordSource();
- if (!"Not Applicable".equals(passwordSource)) {
- encoder.printAttribute("passwordSource", passwordSource);
- }
-
- encoder.println("/>");
-
- encoder.indent(-1);
- encoder.println("</data-source>");
- }
-
- public DataSourceInfo cloneInfo() {
- try {
- return (DataSourceInfo) super.clone();
- }
- catch (CloneNotSupportedException ex) {
- throw new RuntimeException("Cloning error", ex);
- }
- }
-
- public String getAdapterClassName() {
- return adapterClassName;
- }
-
- public void setAdapterClassName(String adapterClassName) {
- this.adapterClassName = adapterClassName;
- }
-
- public void setMinConnections(int minConnections) {
- this.minConnections = minConnections;
- }
-
- public int getMinConnections() {
- return minConnections;
- }
-
- public void setMaxConnections(int maxConnections) {
- this.maxConnections = maxConnections;
- }
-
- public int getMaxConnections() {
- return maxConnections;
- }
-
- public void setUserName(String userName) {
- this.userName = userName;
- }
-
- public String getUserName() {
- return userName;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setJdbcDriver(String jdbcDriver) {
- this.jdbcDriver = jdbcDriver;
- }
-
- public String getJdbcDriver() {
- return jdbcDriver;
- }
-
- public void setDataSourceUrl(String dataSourceUrl) {
- this.dataSourceUrl = dataSourceUrl;
- }
-
- public String getDataSourceUrl() {
- return dataSourceUrl;
- }
-
- /**
- * @deprecated since 4.0 as class loading should not happen here.
- */
- @Deprecated
- public PasswordEncoding getPasswordEncoder() {
- try {
- return (PasswordEncoding) Util
- .getJavaClass(getPasswordEncoderClass())
- .newInstance();
- }
- catch (InstantiationException e) {
- ; // Swallow it -- no need to throw/etc.
- }
- catch (IllegalAccessException e) {
- ; // Swallow it -- no need to throw/etc.
- }
- catch (ClassNotFoundException e) {
- ; // Swallow it -- no need to throw/etc.
- }
- catch (DIRuntimeException e) {
- ; // Swallow it -- no need to throw/etc.
- }
-
- logger.error("Failed to obtain specified Password Encoder '" + getPasswordEncoderClass() + "'");
- return null;
- }
-
- /**
- * @return the passwordEncoderClass
- */
- public String getPasswordEncoderClass() {
- return passwordEncoderClass;
- }
-
- /**
- * @param passwordEncoderClass the passwordEncoderClass to set
- */
- public void setPasswordEncoderClass(String passwordEncoderClass) {
- if (passwordEncoderClass == null)
- this.passwordEncoderClass = PasswordEncoding.standardEncoders[0];
- else
- this.passwordEncoderClass = passwordEncoderClass;
- }
-
- /**
- * @return the passwordEncoderKey
- */
- public String getPasswordEncoderKey() {
- return passwordEncoderKey;
- }
-
- /**
- * @param passwordEncoderKey the passwordEncoderKey to set
- */
- public void setPasswordEncoderKey(String passwordEncoderKey) {
- this.passwordEncoderKey = passwordEncoderKey;
- }
-
- /**
- * @return the passwordLocationFilename
- */
- public String getPasswordSourceFilename() {
- return passwordSourceFilename;
- }
-
- /**
- * @param passwordSourceFilename the passwordSourceFilename to set
- */
- public void setPasswordSourceFilename(String passwordSourceFilename) {
- this.passwordSourceFilename = passwordSourceFilename;
- }
-
- /**
- * @return the passwordLocationModel
- */
- public String getPasswordSourceModel() {
- return passwordSourceModel;
- }
-
- /**
- * @return the passwordLocationUrl
- */
- public String getPasswordSourceUrl() {
- return passwordSourceUrl;
- }
-
- /**
- * @param passwordSourceUrl the passwordSourceUrl to set
- */
- public void setPasswordSourceUrl(String passwordSourceUrl) {
- this.passwordSourceUrl = passwordSourceUrl;
- }
-
- /**
- * @return the passwordLocationExecutable
- */
- public String getPasswordSourceExecutable() {
- return passwordSourceExecutable;
- }
-
- /**
- * @param passwordSourceExecutable the passwordSourceExecutable to set
- */
- public void setPasswordSourceExecutable(String passwordSourceExecutable) {
- this.passwordSourceExecutable = passwordSourceExecutable;
- }
-
- public String getPasswordSource() {
- if (getPasswordLocation().equals(PASSWORD_LOCATION_CLASSPATH))
- return getPasswordSourceFilename();
- else if (getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE))
- return getPasswordSourceExecutable();
- else if (getPasswordLocation().equals(PASSWORD_LOCATION_MODEL))
- return getPasswordSourceModel();
- else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL))
- return getPasswordSourceUrl();
-
- throw new RuntimeException("Invalid password source detected");
- }
-
- public void setPasswordSource(String passwordSource) {
- // The location for the model is omitted since it cannot change
- if (getPasswordLocation().equals(PASSWORD_LOCATION_CLASSPATH))
- setPasswordSourceFilename(passwordSource);
- else if (getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE))
- setPasswordSourceExecutable(passwordSource);
- else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL))
- setPasswordSourceUrl(passwordSource);
- }
-
- /**
- * @return the passwordLocation
- */
- public String getPasswordLocation() {
- return passwordLocation;
- }
-
- /**
- * @param passwordLocation the passwordLocation to set
- */
- public void setPasswordLocation(String passwordLocation) {
- if (passwordLocation == null)
- this.passwordLocation = DataSourceInfo.PASSWORD_LOCATION_MODEL;
- else
- this.passwordLocation = passwordLocation;
- }
-
- @Override
- public String toString() {
- StringBuilder buffer = new StringBuilder();
- buffer.append("[").append(getClass().getName()).append(":").append(
- "\n user name: ").append(userName).append("\n password: ");
-
- buffer.append("**********");
- buffer
- .append("\n driver: ")
- .append(jdbcDriver)
- .append("\n db adapter class: ")
- .append(adapterClassName)
- .append("\n url: ")
- .append(dataSourceUrl)
- .append("\n min. connections: ")
- .append(minConnections)
- .append("\n max. connections: ")
- .append(maxConnections);
-
- if (!PlainTextPasswordEncoder.class.getName().equals(passwordEncoderClass)) {
- buffer.append("\n encoder class: ").append(passwordEncoderClass).append(
- "\n encoder key: ").append(passwordEncoderKey);
- }
-
- if (!PASSWORD_LOCATION_MODEL.equals(passwordLocation)) {
- buffer.append("\n password location: ").append(passwordLocation).append(
- "\n password source: ").append(getPasswordSource());
- }
-
- buffer.append("\n]");
- return buffer.toString();
- }
+ private static final long serialVersionUID = 3748394113864532902L;
+
+ private static Log logger = LogFactory.getLog(DataSourceInfo.class);
+
+ protected String userName;
+ protected String password;
+ protected String jdbcDriver;
+ protected String dataSourceUrl;
+ protected String adapterClassName;
+ protected int minConnections = 1;
+ protected int maxConnections = 1;
+
+ // Constants for passwordLocation
+ public static final String PASSWORD_LOCATION_CLASSPATH = "classpath";
+ public static final String PASSWORD_LOCATION_EXECUTABLE = "executable";
+ public static final String PASSWORD_LOCATION_MODEL = "model";
+ public static final String PASSWORD_LOCATION_URL = "url";
+
+ // Extended parameters
+ protected String passwordEncoderClass = PlainTextPasswordEncoder.class.getName();
+ protected String passwordEncoderKey = "";
+ protected String passwordLocation = PASSWORD_LOCATION_MODEL;
+ protected String passwordSourceExecutable = "";
+ protected String passwordSourceFilename = "";
+ protected final String passwordSourceModel = "Not Applicable";
+ protected String passwordSourceUrl = "";
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == this)
+ return true;
+
+ if (obj == null)
+ return false;
+
+ if (obj.getClass() != this.getClass())
+ return false;
+
+ DataSourceInfo dsi = (DataSourceInfo) obj;
+
+ if (!Util.nullSafeEquals(this.userName, dsi.userName))
+ return false;
+ if (!Util.nullSafeEquals(this.password, dsi.password))
+ return false;
+ if (!Util.nullSafeEquals(this.jdbcDriver, dsi.jdbcDriver))
+ return false;
+ if (!Util.nullSafeEquals(this.dataSourceUrl, dsi.dataSourceUrl))
+ return false;
+ if (!Util.nullSafeEquals(this.adapterClassName, dsi.adapterClassName))
+ return false;
+ if (this.minConnections != dsi.minConnections)
+ return false;
+ if (this.maxConnections != dsi.maxConnections)
+ return false;
+ if (!Util.nullSafeEquals(this.passwordEncoderClass, dsi.passwordEncoderClass))
+ return false;
+ if (!Util.nullSafeEquals(this.passwordEncoderKey, dsi.passwordEncoderKey))
+ return false;
+ if (!Util.nullSafeEquals(this.passwordSourceFilename, dsi.passwordSourceFilename))
+ return false;
+ if (!Util.nullSafeEquals(this.passwordSourceModel, dsi.passwordSourceModel))
+ return false;
+ if (!Util.nullSafeEquals(this.passwordSourceUrl, dsi.passwordSourceUrl))
+ return false;
+ if (!Util.nullSafeEquals(this.passwordLocation, dsi.passwordLocation))
+ return false;
+
+ return true;
+ }
+
+ /**
+ * @since 3.1
+ */
+ public void encodeAsXML(XMLEncoder encoder) {
+ encoder.println("<data-source>");
+ encoder.indent(1);
+
+ encoder.print("<driver");
+ encoder.printAttribute("value", jdbcDriver);
+ encoder.println("/>");
+
+ encoder.print("<url");
+ encoder.printAttribute("value", dataSourceUrl);
+ encoder.println("/>");
+
+ encoder.print("<connectionPool");
+ encoder.printAttribute("min", String.valueOf(minConnections));
+ encoder.printAttribute("max", String.valueOf(maxConnections));
+ encoder.println("/>");
+
+ encoder.print("<login");
+ encoder.printAttribute("userName", userName);
+
+ if (DataSourceInfo.PASSWORD_LOCATION_MODEL.equals(passwordLocation)) {
+
+ PasswordEncoding passwordEncoder = getPasswordEncoder();
+
+ if (passwordEncoder != null) {
+ String passwordEncoded = passwordEncoder.encodePassword(password, passwordEncoderKey);
+ encoder.printAttribute("password", passwordEncoded);
+ }
+ }
+
+ if (!PlainTextPasswordEncoder.class.getName().equals(passwordEncoderClass)) {
+ encoder.printAttribute("encoderClass", passwordEncoderClass);
+ }
+
+ encoder.printAttribute("encoderKey", passwordEncoderKey);
+
+ if (!DataSourceInfo.PASSWORD_LOCATION_MODEL.equals(passwordLocation)) {
+ encoder.printAttribute("passwordLocation", passwordLocation);
+ }
+
+ // TODO: this is very not nice... we need to clean up the whole
+ // DataSourceInfo
+ // to avoid returning arbitrary labels...
+ String passwordSource = getPasswordSource();
+ if (!"Not Applicable".equals(passwordSource)) {
+ encoder.printAttribute("passwordSource", passwordSource);
+ }
+
+ encoder.println("/>");
+
+ encoder.indent(-1);
+ encoder.println("</data-source>");
+ }
+
+ public DataSourceInfo cloneInfo() {
+ try {
+ return (DataSourceInfo) super.clone();
+ } catch (CloneNotSupportedException ex) {
+ throw new RuntimeException("Cloning error", ex);
+ }
+ }
+
+ public String getAdapterClassName() {
+ return adapterClassName;
+ }
+
+ public void setAdapterClassName(String adapterClassName) {
+ this.adapterClassName = adapterClassName;
+ }
+
+ public void setMinConnections(int minConnections) {
+ this.minConnections = minConnections;
+ }
+
+ public int getMinConnections() {
+ return minConnections;
+ }
+
+ public void setMaxConnections(int maxConnections) {
+ this.maxConnections = maxConnections;
+ }
+
+ public int getMaxConnections() {
+ return maxConnections;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setJdbcDriver(String jdbcDriver) {
+ this.jdbcDriver = jdbcDriver;
+ }
+
+ public String getJdbcDriver() {
+ return jdbcDriver;
+ }
+
+ public void setDataSourceUrl(String dataSourceUrl) {
+ this.dataSourceUrl = dataSourceUrl;
+ }
+
+ public String getDataSourceUrl() {
+ return dataSourceUrl;
+ }
+
+ /**
+ * @deprecated since 4.0 as class loading should not happen here.
+ */
+ @Deprecated
+ public PasswordEncoding getPasswordEncoder() {
+ try {
+ return (PasswordEncoding) Util.getJavaClass(getPasswordEncoderClass()).newInstance();
+ } catch (InstantiationException e) {
+ ; // Swallow it -- no need to throw/etc.
+ } catch (IllegalAccessException e) {
+ ; // Swallow it -- no need to throw/etc.
+ } catch (ClassNotFoundException e) {
+ ; // Swallow it -- no need to throw/etc.
+ } catch (DIRuntimeException e) {
+ ; // Swallow it -- no need to throw/etc.
+ }
+
+ logger.error("Failed to obtain specified Password Encoder '" + getPasswordEncoderClass() + "'");
+ return null;
+ }
+
+ /**
+ * @return the passwordEncoderClass
+ */
+ public String getPasswordEncoderClass() {
+ return passwordEncoderClass;
+ }
+
+ /**
+ * @param passwordEncoderClass
+ * the passwordEncoderClass to set
+ */
+ public void setPasswordEncoderClass(String passwordEncoderClass) {
+ if (passwordEncoderClass == null)
+ this.passwordEncoderClass = PasswordEncoding.standardEncoders[0];
+ else
+ this.passwordEncoderClass = passwordEncoderClass;
+ }
+
+ /**
+ * @return the passwordEncoderKey
+ */
+ public String getPasswordEncoderKey() {
+ return passwordEncoderKey;
+ }
+
+ /**
+ * @param passwordEncoderKey
+ * the passwordEncoderKey to set
+ */
+ public void setPasswordEncoderKey(String passwordEncoderKey) {
+ this.passwordEncoderKey = passwordEncoderKey;
+ }
+
+ /**
+ * @return the passwordLocationFilename
+ */
+ public String getPasswordSourceFilename() {
+ return passwordSourceFilename;
+ }
+
+ /**
+ * @param passwordSourceFilename
+ * the passwordSourceFilename to set
+ */
+ public void setPasswordSourceFilename(String passwordSourceFilename) {
+ this.passwordSourceFilename = passwordSourceFilename;
+ }
+
+ /**
+ * @return the passwordLocationModel
+ */
+ public String getPasswordSourceModel() {
+ return passwordSourceModel;
+ }
+
+ /**
+ * @return the passwordLocationUrl
+ */
+ public String getPasswordSourceUrl() {
+ return passwordSourceUrl;
+ }
+
+ /**
+ * @param passwordSourceUrl
+ * the passwordSourceUrl to set
+ */
+ public void setPasswordSourceUrl(String passwordSourceUrl) {
+ this.passwordSourceUrl = passwordSourceUrl;
+ }
+
+ /**
+ * @return the passwordLocationExecutable
+ */
+ public String getPasswordSourceExecutable() {
+ return passwordSourceExecutable;
+ }
+
+ /**
+ * @param passwordSourceExecutable
+ * the passwordSourceExecutable to set
+ */
+ public void setPasswordSourceExecutable(String passwordSourceExecutable) {
+ this.passwordSourceExecutable = passwordSourceExecutable;
+ }
+
+ public String getPasswordSource() {
+ if (getPasswordLocation().equals(PASSWORD_LOCATION_CLASSPATH))
+ return getPasswordSourceFilename();
+ else if (getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE))
+ return getPasswordSourceExecutable();
+ else if (getPasswordLocation().equals(PASSWORD_LOCATION_MODEL))
+ return getPasswordSourceModel();
+ else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL))
+ return getPasswordSourceUrl();
+
+ throw new RuntimeException("Invalid password source detected");
+ }
+
+ public void setPasswordSource(String passwordSource) {
+ // The location for the model is omitted since it cannot change
+ if (getPasswordLocation().equals(PASSWORD_LOCATION_CLASSPATH))
+ setPasswordSourceFilename(passwordSource);
+ else if (getPasswordLocation().equals(PASSWORD_LOCATION_EXECUTABLE))
+ setPasswordSourceExecutable(passwordSource);
+ else if (getPasswordLocation().equals(PASSWORD_LOCATION_URL))
+ setPasswordSourceUrl(passwordSource);
+ }
+
+ /**
+ * @return the passwordLocation
+ */
+ public String getPasswordLocation() {
+ return passwordLocation;
+ }
+
+ /**
+ * @param passwordLocation
+ * the passwordLocation to set
+ */
+ public void setPasswordLocation(String passwordLocation) {
+ if (passwordLocation == null)
+ this.passwordLocation = DataSourceInfo.PASSWORD_LOCATION_MODEL;
+ else
+ this.passwordLocation = passwordLocation;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder buffer = new StringBuilder();
+ buffer.append("[").append(getClass().getName()).append(":").append("\n user name: ").append(userName)
+ .append("\n password: ");
+
+ buffer.append("**********");
+ buffer.append("\n driver: ").append(jdbcDriver).append("\n db adapter class: ").append(adapterClassName)
+ .append("\n url: ").append(dataSourceUrl).append("\n min. connections: ").append(minConnections)
+ .append("\n max. connections: ").append(maxConnections);
+
+ if (!PlainTextPasswordEncoder.class.getName().equals(passwordEncoderClass)) {
+ buffer.append("\n encoder class: ").append(passwordEncoderClass).append("\n encoder key: ")
+ .append(passwordEncoderKey);
+ }
+
+ if (!PASSWORD_LOCATION_MODEL.equals(passwordLocation)) {
+ buffer.append("\n password location: ").append(passwordLocation).append("\n password source: ")
+ .append(getPasswordSource());
+ }
+
+ buffer.append("\n]");
+ return buffer.toString();
+ }
}