Author: markt Date: Thu Nov 24 20:52:31 2016 New Revision: 1771226 URL: http://svn.apache.org/viewvc?rev=1771226&view=rev Log: Clean up. Refactoring to add a base class to: - reduce duplication in the getFactoryClassName() method - reduce duplication in the toString()method where present - provide each type of Ref with a consistent toString() implementation
Added: tomcat/trunk/java/org/apache/naming/AbstractRef.java (with props) Modified: tomcat/trunk/java/org/apache/naming/EjbRef.java tomcat/trunk/java/org/apache/naming/HandlerRef.java tomcat/trunk/java/org/apache/naming/ResourceEnvRef.java tomcat/trunk/java/org/apache/naming/ResourceLinkRef.java tomcat/trunk/java/org/apache/naming/ResourceRef.java tomcat/trunk/java/org/apache/naming/ServiceRef.java tomcat/trunk/java/org/apache/naming/TransactionRef.java tomcat/trunk/webapps/docs/changelog.xml Added: tomcat/trunk/java/org/apache/naming/AbstractRef.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/AbstractRef.java?rev=1771226&view=auto ============================================================================== --- tomcat/trunk/java/org/apache/naming/AbstractRef.java (added) +++ tomcat/trunk/java/org/apache/naming/AbstractRef.java Thu Nov 24 20:52:31 2016 @@ -0,0 +1,87 @@ +/* + * 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.naming; + +import java.util.Enumeration; + +import javax.naming.Context; +import javax.naming.RefAddr; +import javax.naming.Reference; + +public abstract class AbstractRef extends Reference { + + private static final long serialVersionUID = 1L; + + + public AbstractRef(String className) { + super(className); + } + + + public AbstractRef(String className, String factory, String factoryLocation) { + super(className, factory, factoryLocation); + } + + + /** + * Retrieves the class name of the factory of the object to which this + * reference refers. + */ + @Override + public final String getFactoryClassName() { + String factory = super.getFactoryClassName(); + if (factory != null) { + return factory; + } else { + factory = System.getProperty(Context.OBJECT_FACTORIES); + if (factory != null) { + return null; + } else { + return getDefaultFactoryClassName(); + } + } + } + + + protected abstract String getDefaultFactoryClassName(); + + + /** + * Return a String rendering of this object. + */ + @Override + public final String toString() { + StringBuilder sb = new StringBuilder(this.getClass().getSimpleName()); + sb.append("[className="); + sb.append(getClassName()); + sb.append(",factoryClassLocation="); + sb.append(getFactoryClassLocation()); + sb.append(",factoryClassName="); + sb.append(getFactoryClassName()); + Enumeration<RefAddr> refAddrs = getAll(); + while (refAddrs.hasMoreElements()) { + RefAddr refAddr = refAddrs.nextElement(); + sb.append(",{type="); + sb.append(refAddr.getType()); + sb.append(",content="); + sb.append(refAddr.getContent()); + sb.append("}"); + } + sb.append("]"); + return sb.toString(); + } +} Propchange: tomcat/trunk/java/org/apache/naming/AbstractRef.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: tomcat/trunk/java/org/apache/naming/EjbRef.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/EjbRef.java?rev=1771226&r1=1771225&r2=1771226&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/EjbRef.java (original) +++ tomcat/trunk/java/org/apache/naming/EjbRef.java Thu Nov 24 20:52:31 2016 @@ -14,12 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - - package org.apache.naming; -import javax.naming.Context; -import javax.naming.Reference; import javax.naming.StringRefAddr; /** @@ -27,17 +23,16 @@ import javax.naming.StringRefAddr; * * @author Remy Maucherat */ -public class EjbRef extends Reference { +public class EjbRef extends AbstractRef { private static final long serialVersionUID = 1L; - // -------------------------------------------------------------- Constants /** * Default factory for this reference. */ public static final String DEFAULT_FACTORY = - org.apache.naming.factory.Constants.DEFAULT_EJB_FACTORY; + org.apache.naming.factory.Constants.DEFAULT_EJB_FACTORY; /** @@ -58,9 +53,6 @@ public class EjbRef extends Reference { public static final String LINK = "link"; - // ----------------------------------------------------------- Constructors - - /** * EJB Reference. * @@ -86,7 +78,7 @@ public class EjbRef extends Reference { * the factory (e.g. URL) */ public EjbRef(String ejbType, String home, String remote, String link, - String factory, String factoryLocation) { + String factory, String factoryLocation) { super(home, factory, factoryLocation); StringRefAddr refAddr = null; if (ejbType != null) { @@ -104,36 +96,8 @@ public class EjbRef extends Reference { } - // ----------------------------------------------------- Instance Variables - - - // -------------------------------------------------------- RefAddr Methods - - - // ------------------------------------------------------ Reference Methods - - - /** - * Retrieves the class name of the factory of the object to which this - * reference refers. - */ @Override - public String getFactoryClassName() { - String factory = super.getFactoryClassName(); - if (factory != null) { - return factory; - } else { - factory = System.getProperty(Context.OBJECT_FACTORIES); - if (factory != null) { - return null; - } else { - return DEFAULT_FACTORY; - } - } + protected String getDefaultFactoryClassName() { + return DEFAULT_FACTORY; } - - - // ------------------------------------------------------------- Properties - - } Modified: tomcat/trunk/java/org/apache/naming/HandlerRef.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/HandlerRef.java?rev=1771226&r1=1771225&r2=1771226&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/HandlerRef.java (original) +++ tomcat/trunk/java/org/apache/naming/HandlerRef.java Thu Nov 24 20:52:31 2016 @@ -14,15 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - - package org.apache.naming; -import java.util.Enumeration; - -import javax.naming.Context; -import javax.naming.RefAddr; -import javax.naming.Reference; import javax.naming.StringRefAddr; /** @@ -30,18 +23,16 @@ import javax.naming.StringRefAddr; * * @author Fabien Carrion */ - -public class HandlerRef extends Reference { +public class HandlerRef extends AbstractRef { private static final long serialVersionUID = 1L; - // -------------------------------------------------------------- Constants /** * Default factory for this reference. */ public static final String DEFAULT_FACTORY = - org.apache.naming.factory.Constants.DEFAULT_HANDLER_FACTORY; + org.apache.naming.factory.Constants.DEFAULT_HANDLER_FACTORY; /** @@ -92,9 +83,6 @@ public class HandlerRef extends Referenc public static final String HANDLER_PORTNAME = "handlerportname"; - // ----------------------------------------------------------- Constructors - - public HandlerRef(String refname, String handlerClass) { this(refname, handlerClass, null, null); } @@ -115,64 +103,8 @@ public class HandlerRef extends Referenc } - // ----------------------------------------------------- Instance Variables - - - // ------------------------------------------------------ Reference Methods - - - /** - * Retrieves the class name of the factory of the object to which this - * reference refers. - */ - @Override - public String getFactoryClassName() { - String factory = super.getFactoryClassName(); - if (factory != null) { - return factory; - } else { - factory = System.getProperty(Context.OBJECT_FACTORIES); - if (factory != null) { - return null; - } else { - return DEFAULT_FACTORY; - } - } - } - - - // --------------------------------------------------------- Public Methods - - - /** - * Return a String rendering of this object. - */ @Override - public String toString() { - - StringBuilder sb = new StringBuilder("HandlerRef["); - sb.append("className="); - sb.append(getClassName()); - sb.append(",factoryClassLocation="); - sb.append(getFactoryClassLocation()); - sb.append(",factoryClassName="); - sb.append(getFactoryClassName()); - Enumeration<RefAddr> refAddrs = getAll(); - while (refAddrs.hasMoreElements()) { - RefAddr refAddr = refAddrs.nextElement(); - sb.append(",{type="); - sb.append(refAddr.getType()); - sb.append(",content="); - sb.append(refAddr.getContent()); - sb.append("}"); - } - sb.append("]"); - return (sb.toString()); - + protected String getDefaultFactoryClassName() { + return DEFAULT_FACTORY; } - - - // ------------------------------------------------------------- Properties - - } Modified: tomcat/trunk/java/org/apache/naming/ResourceEnvRef.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/ResourceEnvRef.java?rev=1771226&r1=1771225&r2=1771226&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/ResourceEnvRef.java (original) +++ tomcat/trunk/java/org/apache/naming/ResourceEnvRef.java Thu Nov 24 20:52:31 2016 @@ -16,15 +16,12 @@ */ package org.apache.naming; -import javax.naming.Context; -import javax.naming.Reference; - /** * Represents a reference address to a resource environment. * * @author Remy Maucherat */ -public class ResourceEnvRef extends Reference { +public class ResourceEnvRef extends AbstractRef { private static final long serialVersionUID = 1L; @@ -33,7 +30,7 @@ public class ResourceEnvRef extends Refe * Default factory for this reference. */ public static final String DEFAULT_FACTORY = - org.apache.naming.factory.Constants.DEFAULT_RESOURCE_ENV_FACTORY; + org.apache.naming.factory.Constants.DEFAULT_RESOURCE_ENV_FACTORY; /** @@ -46,22 +43,8 @@ public class ResourceEnvRef extends Refe } - /** - * Retrieves the class name of the factory of the object to which this - * reference refers. - */ @Override - public String getFactoryClassName() { - String factory = super.getFactoryClassName(); - if (factory != null) { - return factory; - } else { - factory = System.getProperty(Context.OBJECT_FACTORIES); - if (factory != null) { - return null; - } else { - return DEFAULT_FACTORY; - } - } + protected String getDefaultFactoryClassName() { + return DEFAULT_FACTORY; } } Modified: tomcat/trunk/java/org/apache/naming/ResourceLinkRef.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/ResourceLinkRef.java?rev=1771226&r1=1771225&r2=1771226&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/ResourceLinkRef.java (original) +++ tomcat/trunk/java/org/apache/naming/ResourceLinkRef.java Thu Nov 24 20:52:31 2016 @@ -16,8 +16,6 @@ */ package org.apache.naming; -import javax.naming.Context; -import javax.naming.Reference; import javax.naming.StringRefAddr; /** @@ -25,7 +23,7 @@ import javax.naming.StringRefAddr; * * @author Remy Maucherat */ -public class ResourceLinkRef extends Reference { +public class ResourceLinkRef extends AbstractRef { private static final long serialVersionUID = 1L; @@ -34,7 +32,7 @@ public class ResourceLinkRef extends Ref * Default factory for this reference. */ public static final String DEFAULT_FACTORY = - org.apache.naming.factory.Constants.DEFAULT_RESOURCE_LINK_FACTORY; + org.apache.naming.factory.Constants.DEFAULT_RESOURCE_LINK_FACTORY; /** @@ -53,7 +51,7 @@ public class ResourceLinkRef extends Ref * factory (e.g. URL) */ public ResourceLinkRef(String resourceClass, String globalName, - String factory, String factoryLocation) { + String factory, String factoryLocation) { super(resourceClass, factory, factoryLocation); StringRefAddr refAddr = null; if (globalName != null) { @@ -63,22 +61,8 @@ public class ResourceLinkRef extends Ref } - /** - * Retrieves the class name of the factory of the object to which this - * reference refers. - */ @Override - public String getFactoryClassName() { - String factory = super.getFactoryClassName(); - if (factory != null) { - return factory; - } else { - factory = System.getProperty(Context.OBJECT_FACTORIES); - if (factory != null) { - return null; - } else { - return DEFAULT_FACTORY; - } - } + protected String getDefaultFactoryClassName() { + return DEFAULT_FACTORY; } } Modified: tomcat/trunk/java/org/apache/naming/ResourceRef.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/ResourceRef.java?rev=1771226&r1=1771225&r2=1771226&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/ResourceRef.java (original) +++ tomcat/trunk/java/org/apache/naming/ResourceRef.java Thu Nov 24 20:52:31 2016 @@ -14,15 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - - package org.apache.naming; -import java.util.Enumeration; - -import javax.naming.Context; -import javax.naming.RefAddr; -import javax.naming.Reference; import javax.naming.StringRefAddr; /** @@ -30,18 +23,16 @@ import javax.naming.StringRefAddr; * * @author Remy Maucherat */ -public class ResourceRef extends Reference { +public class ResourceRef extends AbstractRef { private static final long serialVersionUID = 1L; - // -------------------------------------------------------------- Constants - /** * Default factory for this reference. */ public static final String DEFAULT_FACTORY = - org.apache.naming.factory.Constants.DEFAULT_RESOURCE_FACTORY; + org.apache.naming.factory.Constants.DEFAULT_RESOURCE_FACTORY; /** @@ -67,8 +58,6 @@ public class ResourceRef extends Referen */ public static final String SINGLETON = "singleton"; - // ----------------------------------------------------------- Constructors - /** * Resource Reference. @@ -122,64 +111,8 @@ public class ResourceRef extends Referen } - // ----------------------------------------------------- Instance Variables - - - // ------------------------------------------------------ Reference Methods - - - /** - * Retrieves the class name of the factory of the object to which this - * reference refers. - */ @Override - public String getFactoryClassName() { - String factory = super.getFactoryClassName(); - if (factory != null) { - return factory; - } else { - factory = System.getProperty(Context.OBJECT_FACTORIES); - if (factory != null) { - return null; - } else { - return DEFAULT_FACTORY; - } - } + protected String getDefaultFactoryClassName() { + return DEFAULT_FACTORY; } - - - // --------------------------------------------------------- Public Methods - - - /** - * Return a String rendering of this object. - */ - @Override - public String toString() { - - StringBuilder sb = new StringBuilder("ResourceRef["); - sb.append("className="); - sb.append(getClassName()); - sb.append(",factoryClassLocation="); - sb.append(getFactoryClassLocation()); - sb.append(",factoryClassName="); - sb.append(getFactoryClassName()); - Enumeration<RefAddr> refAddrs = getAll(); - while (refAddrs.hasMoreElements()) { - RefAddr refAddr = refAddrs.nextElement(); - sb.append(",{type="); - sb.append(refAddr.getType()); - sb.append(",content="); - sb.append(refAddr.getContent()); - sb.append("}"); - } - sb.append("]"); - return (sb.toString()); - - } - - - // ------------------------------------------------------------- Properties - - } Modified: tomcat/trunk/java/org/apache/naming/ServiceRef.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/ServiceRef.java?rev=1771226&r1=1771225&r2=1771226&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/ServiceRef.java (original) +++ tomcat/trunk/java/org/apache/naming/ServiceRef.java Thu Nov 24 20:52:31 2016 @@ -14,16 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - - package org.apache.naming; -import java.util.Enumeration; import java.util.Vector; -import javax.naming.Context; -import javax.naming.RefAddr; -import javax.naming.Reference; import javax.naming.StringRefAddr; /** @@ -31,18 +25,16 @@ import javax.naming.StringRefAddr; * * @author Fabien Carrion */ - -public class ServiceRef extends Reference { +public class ServiceRef extends AbstractRef { private static final long serialVersionUID = 1L; - // -------------------------------------------------------------- Constants /** * Default factory for this reference. */ public static final String DEFAULT_FACTORY = - org.apache.naming.factory.Constants.DEFAULT_SERVICE_FACTORY; + org.apache.naming.factory.Constants.DEFAULT_SERVICE_FACTORY; /** @@ -61,7 +53,7 @@ public class ServiceRef extends Referenc /** * Wsdl Location address type. */ - public static final String WSDL = "wsdl"; + public static final String WSDL = "wsdl"; /** @@ -89,14 +81,13 @@ public class ServiceRef extends Referenc private final Vector<HandlerRef> handlers = new Vector<>(); - // ----------------------------------------------------------- Constructors - public ServiceRef(String refname, String serviceInterface, String[] serviceQname, String wsdl, String jaxrpcmapping) { this(refname, serviceInterface, serviceQname, wsdl, jaxrpcmapping, null, null); } + public ServiceRef(@SuppressWarnings("unused") String refname, String serviceInterface, String[] serviceQname, String wsdl, String jaxrpcmapping, @@ -126,12 +117,6 @@ public class ServiceRef extends Referenc } - // ----------------------------------------------------- Instance Variables - - - // ------------------------------------------------------ Reference Methods - - /** * Add and Get Handlers classes. * @return the handler @@ -151,59 +136,8 @@ public class ServiceRef extends Referenc } - /** - * Retrieves the class name of the factory of the object to which this - * reference refers. - * @return the factory - */ @Override - public String getFactoryClassName() { - String factory = super.getFactoryClassName(); - if (factory != null) { - return factory; - } else { - factory = System.getProperty(Context.OBJECT_FACTORIES); - if (factory != null) { - return null; - } else { - return DEFAULT_FACTORY; - } - } + protected String getDefaultFactoryClassName() { + return DEFAULT_FACTORY; } - - - // --------------------------------------------------------- Public Methods - - - /** - * Return a String rendering of this object. - */ - @Override - public String toString() { - - StringBuilder sb = new StringBuilder("ServiceRef["); - sb.append("className="); - sb.append(getClassName()); - sb.append(",factoryClassLocation="); - sb.append(getFactoryClassLocation()); - sb.append(",factoryClassName="); - sb.append(getFactoryClassName()); - Enumeration<RefAddr> refAddrs = getAll(); - while (refAddrs.hasMoreElements()) { - RefAddr refAddr = refAddrs.nextElement(); - sb.append(",{type="); - sb.append(refAddr.getType()); - sb.append(",content="); - sb.append(refAddr.getContent()); - sb.append("}"); - } - sb.append("]"); - return (sb.toString()); - - } - - - // ------------------------------------------------------------- Properties - - } Modified: tomcat/trunk/java/org/apache/naming/TransactionRef.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/TransactionRef.java?rev=1771226&r1=1771225&r2=1771226&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/naming/TransactionRef.java (original) +++ tomcat/trunk/java/org/apache/naming/TransactionRef.java Thu Nov 24 20:52:31 2016 @@ -14,32 +14,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - - package org.apache.naming; -import javax.naming.Context; -import javax.naming.Reference; - /** * Represents a reference address to a transaction. * * @author Remy Maucherat */ -public class TransactionRef extends Reference { +public class TransactionRef extends AbstractRef { private static final long serialVersionUID = 1L; - // -------------------------------------------------------------- Constants /** * Default factory for this reference. */ public static final String DEFAULT_FACTORY = - org.apache.naming.factory.Constants.DEFAULT_TRANSACTION_FACTORY; - - - // ----------------------------------------------------------- Constructors + org.apache.naming.factory.Constants.DEFAULT_TRANSACTION_FACTORY; /** @@ -61,33 +52,8 @@ public class TransactionRef extends Refe } - // ----------------------------------------------------- Instance Variables - - - // ------------------------------------------------------ Reference Methods - - - /** - * Retrieves the class name of the factory of the object to which this - * reference refers. - */ @Override - public String getFactoryClassName() { - String factory = super.getFactoryClassName(); - if (factory != null) { - return factory; - } else { - factory = System.getProperty(Context.OBJECT_FACTORIES); - if (factory != null) { - return null; - } else { - return DEFAULT_FACTORY; - } - } + protected String getDefaultFactoryClassName() { + return DEFAULT_FACTORY; } - - - // ------------------------------------------------------------- Properties - - } Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1771226&r1=1771225&r2=1771226&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Thu Nov 24 20:52:31 2016 @@ -94,6 +94,10 @@ <bug>60393</bug>: Use consistent parameter naming in implementations of <code>Realm#authenticate(GSSContext, boolean)</code>. (markt) </scode> + <scode> + Refactor the <code>org.apache.naming</code> package to reduce duplicate + code. Duplicate code identified by the Simian tool. (markt) + </scode> </changelog> </subsection> <subsection name="Coyote"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org