8214139: Remove wrapper methods from {Base,Html}Configuration
authorjjg
Wed, 21 Nov 2018 12:36:16 -0800
changeset 52644 43efb4ca6d6c
parent 52643 f8fb0c86f2b3
child 52645 74cf02d5f6e2
8214139: Remove wrapper methods from {Base,Html}Configuration Reviewed-by: pmuthuswamy, hannesw
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractIndexWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractModuleIndexWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractPackageIndexWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesFrameWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesIndexWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllPackagesIndexWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassUseWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstantsSummaryWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstructorWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DeprecatedListWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FrameOutputWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/NestedClassWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageTreeWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SerializedFormWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SingleIndexWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SplitIndexWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TreeWriter.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Navigation.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/CommentUtils.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeBuilder.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ClassBuilder.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MemberSummaryBuilder.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/SerializedFormBuilder.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/ParamTaglet.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/PropertyGetterTaglet.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/PropertySetterTaglet.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Extern.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/MetaKeywords.java
src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractIndexWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractIndexWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -440,7 +440,7 @@
         if (!configuration.packages.isEmpty()) {
             SearchIndexItem si = new SearchIndexItem();
             si.setCategory(resources.getText("doclet.Packages"));
-            si.setLabel(configuration.getText("doclet.All_Packages"));
+            si.setLabel(resources.getText("doclet.All_Packages"));
             si.setUrl(DocPaths.ALLPACKAGES_INDEX.getPath());
             configuration.packageSearchIndex.add(si);
         }
@@ -448,7 +448,7 @@
                 DocPaths.PACKAGE_SEARCH_INDEX_JS, configuration.packageSearchIndex, "packageSearchIndex");
         SearchIndexItem si = new SearchIndexItem();
         si.setCategory(resources.getText("doclet.Types"));
-        si.setLabel(configuration.getText("doclet.All_Classes"));
+        si.setLabel(resources.getText("doclet.All_Classes"));
         si.setUrl(DocPaths.ALLCLASSES_INDEX.getPath());
         configuration.typeSearchIndex.add(si);
         createSearchIndexFile(DocPaths.TYPE_SEARCH_INDEX_JSON, DocPaths.TYPE_SEARCH_INDEX_ZIP,
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -326,7 +326,7 @@
         } else if (utils.isPrivate(member)) {
             code.addContent("private ");
         } else if (!utils.isPublic(member)) { // Package private
-            code.addContent(configuration.getText("doclet.Package_private"));
+            code.addContent(resources.getText("doclet.Package_private"));
             code.addContent(" ");
         }
         boolean isAnnotatedTypeElement = utils.isAnnotationType(member.getEnclosingElement());
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractModuleIndexWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractModuleIndexWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -129,7 +129,7 @@
      * @throws DocFileIOException if there is a problem building the module index file
      */
     protected void buildModuleIndexFile(String title, boolean includeScript) throws DocFileIOException {
-        String windowOverview = configuration.getText(title);
+        String windowOverview = resources.getText(title);
         Content body = getBody(includeScript, getWindowTitle(windowOverview));
         Content header = createTagIfAllowed(HtmlTag.HEADER, HtmlTree::HEADER, ContentBuilder::new);
         addNavigationBarHeader(header);
@@ -158,7 +158,7 @@
      */
     protected void buildModulePackagesIndexFile(String title,
             boolean includeScript, ModuleElement mdle) throws DocFileIOException {
-        String windowOverview = configuration.getText(title);
+        String windowOverview = resources.getText(title);
         Content body = getBody(includeScript, getWindowTitle(windowOverview));
         Content header = createTagIfAllowed(HtmlTag.HEADER, HtmlTree::HEADER, ContentBuilder::new);
         addNavigationBarHeader(header);
@@ -190,9 +190,9 @@
      */
     protected void addIndex(Content header, Content main) {
         addIndexContents(configuration.modules, "doclet.Module_Summary",
-                configuration.getText("doclet.Member_Table_Summary",
-                configuration.getText("doclet.Module_Summary"),
-                configuration.getText("doclet.modules")), header, main);
+                resources.getText("doclet.Member_Table_Summary",
+                resources.getText("doclet.Module_Summary"),
+                resources.getText("doclet.modules")), header, main);
     }
 
     /**
@@ -204,9 +204,9 @@
      */
     protected void addModulePackagesIndex(Content header, Content main, ModuleElement mdle) {
         addModulePackagesIndexContents("doclet.Module_Summary",
-                configuration.getText("doclet.Member_Table_Summary",
-                configuration.getText("doclet.Module_Summary"),
-                configuration.getText("doclet.modules")), header, main, mdle);
+                resources.getText("doclet.Member_Table_Summary",
+                resources.getText("doclet.Module_Summary"),
+                resources.getText("doclet.modules")), header, main, mdle);
     }
 
     /**
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractPackageIndexWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractPackageIndexWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -114,7 +114,7 @@
      * @throws DocFileIOException if there is a problem building the package index file
      */
     protected void buildPackageIndexFile(String title, boolean includeScript) throws DocFileIOException {
-        String windowOverview = configuration.getText(title);
+        String windowOverview = resources.getText(title);
         Content body = getBody(includeScript, getWindowTitle(windowOverview));
         Content header = createTagIfAllowed(HtmlTag.HEADER, HtmlTree::HEADER, ContentBuilder::new);
         addNavigationBarHeader(header);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesFrameWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesFrameWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -110,7 +110,7 @@
      * @param wantFrames True if we want frames.
      */
     protected void buildAllClassesFile(boolean wantFrames) throws DocFileIOException {
-        String label = configuration.getText("doclet.All_Classes");
+        String label = resources.getText("doclet.All_Classes");
         Content body = getBody(false, getWindowTitle(label));
         Content htmlTree = createTagIfAllowed(HtmlTag.MAIN, HtmlTree::MAIN, ContentBuilder::new);
         Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING,
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesIndexWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesIndexWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -101,7 +101,7 @@
      * Print all the classes in the file.
      */
     protected void buildAllClassesFile() throws DocFileIOException {
-        String label = configuration.getText("doclet.All_Classes");
+        String label = resources.getText("doclet.All_Classes");
         HtmlTree bodyTree = getBody(true, getWindowTitle(label));
         HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
                 ? HtmlTree.HEADER()
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllPackagesIndexWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllPackagesIndexWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -83,7 +83,7 @@
      * Print all the packages in the file.
      */
     protected void buildAllPackagesFile() throws DocFileIOException {
-        String label = configuration.getText("doclet.All_Packages");
+        String label = resources.getText("doclet.All_Packages");
         HtmlTree bodyTree = getBody(true, getWindowTitle(label));
         HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
                 ? HtmlTree.HEADER()
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassUseWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassUseWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -399,67 +399,67 @@
             LinkInfoImpl.Kind.CLASS_USE_HEADER, typeElement));
         Content pkgLink = getPackageLink(pkg, utils.getPackageName(pkg));
         classSubWriter.addUseInfo(pkgToClassAnnotations.get(pkg),
-                configuration.getContent("doclet.ClassUse_Annotation", classLink,
+                contents.getContent("doclet.ClassUse_Annotation", classLink,
                 pkgLink), classUseTableSummary, contentTree);
         classSubWriter.addUseInfo(pkgToClassTypeParameter.get(pkg),
-                configuration.getContent("doclet.ClassUse_TypeParameter", classLink,
+                contents.getContent("doclet.ClassUse_TypeParameter", classLink,
                 pkgLink), classUseTableSummary, contentTree);
         classSubWriter.addUseInfo(pkgToSubclass.get(pkg),
-                configuration.getContent("doclet.ClassUse_Subclass", classLink,
+                contents.getContent("doclet.ClassUse_Subclass", classLink,
                 pkgLink), subclassUseTableSummary, contentTree);
         classSubWriter.addUseInfo(pkgToSubinterface.get(pkg),
-                configuration.getContent("doclet.ClassUse_Subinterface", classLink,
+                contents.getContent("doclet.ClassUse_Subinterface", classLink,
                 pkgLink), subinterfaceUseTableSummary, contentTree);
         classSubWriter.addUseInfo(pkgToImplementingClass.get(pkg),
-                configuration.getContent("doclet.ClassUse_ImplementingClass", classLink,
+                contents.getContent("doclet.ClassUse_ImplementingClass", classLink,
                 pkgLink), classUseTableSummary, contentTree);
         fieldSubWriter.addUseInfo(pkgToField.get(pkg),
-                configuration.getContent("doclet.ClassUse_Field", classLink,
+                contents.getContent("doclet.ClassUse_Field", classLink,
                 pkgLink), fieldUseTableSummary, contentTree);
         fieldSubWriter.addUseInfo(pkgToFieldAnnotations.get(pkg),
-                configuration.getContent("doclet.ClassUse_FieldAnnotations", classLink,
+                contents.getContent("doclet.ClassUse_FieldAnnotations", classLink,
                 pkgLink), fieldUseTableSummary, contentTree);
         fieldSubWriter.addUseInfo(pkgToFieldTypeParameter.get(pkg),
-                configuration.getContent("doclet.ClassUse_FieldTypeParameter", classLink,
+                contents.getContent("doclet.ClassUse_FieldTypeParameter", classLink,
                 pkgLink), fieldUseTableSummary, contentTree);
         methodSubWriter.addUseInfo(pkgToMethodAnnotations.get(pkg),
-                configuration.getContent("doclet.ClassUse_MethodAnnotations", classLink,
+                contents.getContent("doclet.ClassUse_MethodAnnotations", classLink,
                 pkgLink), methodUseTableSummary, contentTree);
         methodSubWriter.addUseInfo(pkgToMethodParameterAnnotations.get(pkg),
-                configuration.getContent("doclet.ClassUse_MethodParameterAnnotations", classLink,
+                contents.getContent("doclet.ClassUse_MethodParameterAnnotations", classLink,
                 pkgLink), methodUseTableSummary, contentTree);
         methodSubWriter.addUseInfo(pkgToMethodTypeParameter.get(pkg),
-                configuration.getContent("doclet.ClassUse_MethodTypeParameter", classLink,
+                contents.getContent("doclet.ClassUse_MethodTypeParameter", classLink,
                 pkgLink), methodUseTableSummary, contentTree);
         methodSubWriter.addUseInfo(pkgToMethodReturn.get(pkg),
-                configuration.getContent("doclet.ClassUse_MethodReturn", classLink,
+                contents.getContent("doclet.ClassUse_MethodReturn", classLink,
                 pkgLink), methodUseTableSummary, contentTree);
         methodSubWriter.addUseInfo(pkgToMethodReturnTypeParameter.get(pkg),
-                configuration.getContent("doclet.ClassUse_MethodReturnTypeParameter", classLink,
+                contents.getContent("doclet.ClassUse_MethodReturnTypeParameter", classLink,
                 pkgLink), methodUseTableSummary, contentTree);
         methodSubWriter.addUseInfo(pkgToMethodArgs.get(pkg),
-                configuration.getContent("doclet.ClassUse_MethodArgs", classLink,
+                contents.getContent("doclet.ClassUse_MethodArgs", classLink,
                 pkgLink), methodUseTableSummary, contentTree);
         methodSubWriter.addUseInfo(pkgToMethodArgTypeParameter.get(pkg),
-                configuration.getContent("doclet.ClassUse_MethodArgsTypeParameters", classLink,
+                contents.getContent("doclet.ClassUse_MethodArgsTypeParameters", classLink,
                 pkgLink), methodUseTableSummary, contentTree);
         methodSubWriter.addUseInfo(pkgToMethodThrows.get(pkg),
-                configuration.getContent("doclet.ClassUse_MethodThrows", classLink,
+                contents.getContent("doclet.ClassUse_MethodThrows", classLink,
                 pkgLink), methodUseTableSummary, contentTree);
         constrSubWriter.addUseInfo(pkgToConstructorAnnotations.get(pkg),
-                configuration.getContent("doclet.ClassUse_ConstructorAnnotations", classLink,
+                contents.getContent("doclet.ClassUse_ConstructorAnnotations", classLink,
                 pkgLink), constructorUseTableSummary, contentTree);
         constrSubWriter.addUseInfo(pkgToConstructorParameterAnnotations.get(pkg),
-                configuration.getContent("doclet.ClassUse_ConstructorParameterAnnotations", classLink,
+                contents.getContent("doclet.ClassUse_ConstructorParameterAnnotations", classLink,
                 pkgLink), constructorUseTableSummary, contentTree);
         constrSubWriter.addUseInfo(pkgToConstructorArgs.get(pkg),
-                configuration.getContent("doclet.ClassUse_ConstructorArgs", classLink,
+                contents.getContent("doclet.ClassUse_ConstructorArgs", classLink,
                 pkgLink), constructorUseTableSummary, contentTree);
         constrSubWriter.addUseInfo(pkgToConstructorArgTypeParameter.get(pkg),
-                configuration.getContent("doclet.ClassUse_ConstructorArgsTypeParameters", classLink,
+                contents.getContent("doclet.ClassUse_ConstructorArgsTypeParameters", classLink,
                 pkgLink), constructorUseTableSummary, contentTree);
         constrSubWriter.addUseInfo(pkgToConstructorThrows.get(pkg),
-                configuration.getContent("doclet.ClassUse_ConstructorThrows", classLink,
+                contents.getContent("doclet.ClassUse_ConstructorThrows", classLink,
                 pkgLink), constructorUseTableSummary, contentTree);
     }
 
@@ -469,11 +469,11 @@
      * @return a content tree representing the class use header
      */
     protected HtmlTree getClassUseHeader() {
-        String cltype = configuration.getText(utils.isInterface(typeElement)
+        String cltype = resources.getText(utils.isInterface(typeElement)
                 ? "doclet.Interface"
                 : "doclet.Class");
         String clname = utils.getFullyQualifiedName(typeElement);
-        String title = configuration.getText("doclet.Window_ClassUse_Header",
+        String title = resources.getText("doclet.Window_ClassUse_Header",
                 cltype, clname);
         HtmlTree bodyTree = getBody(true, getWindowTitle(title));
         HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
@@ -485,7 +485,7 @@
         navBar.setNavLinkModule(mdleLinkContent);
         Content classLinkContent = getLink(new LinkInfoImpl(
                 configuration, LinkInfoImpl.Kind.CLASS_USE_HEADER, typeElement)
-                .label(configuration.getText("doclet.Class")));
+                .label(resources.getText("doclet.Class")));
         navBar.setNavLinkClass(classLinkContent);
         navBar.setUserHeader(getUserHeaderFooter(true));
         htmlTree.addContent(navBar.getContent(true));
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstantsSummaryWriterImpl.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstantsSummaryWriterImpl.java	Wed Nov 21 12:36:16 2018 -0800
@@ -97,8 +97,8 @@
     public ConstantsSummaryWriterImpl(HtmlConfiguration configuration) {
         super(configuration, DocPaths.CONSTANT_VALUES);
         this.configuration = configuration;
-        constantsTableSummary = configuration.getText("doclet.Constants_Table_Summary",
-                configuration.getText("doclet.Constants_Summary"));
+        constantsTableSummary = resources.getText("doclet.Constants_Table_Summary",
+                resources.getText("doclet.Constants_Summary"));
         constantsTableHeader = new TableHeader(
                 contents.modifierAndTypeLabel, contents.constantFieldLabel, contents.valueLabel);
         this.navBar = new Navigation(null, configuration, fixedNavDiv, PageMode.CONSTANTVALUES, path);
@@ -109,7 +109,7 @@
      */
     @Override
     public Content getHeader() {
-        String label = configuration.getText("doclet.Constants_Summary");
+        String label = resources.getText("doclet.Constants_Summary");
         HtmlTree bodyTree = getBody(true, getWindowTitle(label));
         HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
                 ? HtmlTree.HEADER()
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstructorWriterImpl.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ConstructorWriterImpl.java	Wed Nov 21 12:36:16 2018 -0800
@@ -308,7 +308,7 @@
                 code.addContent(Contents.SPACE);
             } else {
                 code.addContent(
-                        configuration.getText("doclet.Package_private"));
+                        resources.getText("doclet.Package_private"));
             }
             tdSummaryType.addContent(code);
         }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DeprecatedListWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DeprecatedListWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -378,7 +378,7 @@
      * @return a content tree for the header
      */
     public HtmlTree getHeader() {
-        String title = configuration.getText("doclet.Window_Deprecated_List");
+        String title = resources.getText("doclet.Window_Deprecated_List");
         HtmlTree bodyTree = getBody(true, getWindowTitle(title));
         HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
                 ? HtmlTree.HEADER()
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriterImpl.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriterImpl.java	Wed Nov 21 12:36:16 2018 -0800
@@ -249,12 +249,12 @@
         Content label;
         if (configuration.summarizeOverriddenMethods) {
             label = new StringContent(utils.isClass(typeElement)
-                    ? configuration.getText("doclet.Fields_Declared_In_Class")
-                    : configuration.getText("doclet.Fields_Declared_In_Interface"));
+                    ? resources.getText("doclet.Fields_Declared_In_Class")
+                    : resources.getText("doclet.Fields_Declared_In_Interface"));
         } else {
             label = new StringContent(utils.isClass(typeElement)
-                    ? configuration.getText("doclet.Fields_Inherited_From_Class")
-                    : configuration.getText("doclet.Fields_Inherited_From_Interface"));
+                    ? resources.getText("doclet.Fields_Inherited_From_Class")
+                    : resources.getText("doclet.Fields_Inherited_From_Interface"));
         }
         Content labelHeading = HtmlTree.HEADING(HtmlConstants.INHERITED_SUMMARY_HEADING,
                 label);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FrameOutputWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FrameOutputWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -115,7 +115,7 @@
         if (configuration.windowtitle.length() > 0) {
             printFramesDocument(configuration.windowtitle, body);
         } else {
-            printFramesDocument(configuration.getText("doclet.Generated_Docs_Untitled"), body);
+            printFramesDocument(resources.getText("doclet.Generated_Docs_Untitled"), body);
         }
     }
 
@@ -172,7 +172,7 @@
      */
     private void addAllModulesFrameTag(Content contentTree) {
         HtmlTree frame = HtmlTree.IFRAME(DocPaths.MODULE_OVERVIEW_FRAME.getPath(),
-                "packageListFrame", configuration.getText("doclet.All_Modules"));
+                "packageListFrame", resources.getText("doclet.All_Modules"));
         HtmlTree leftTop = HtmlTree.DIV(HtmlStyle.leftTop, frame);
         contentTree.addContent(leftTop);
     }
@@ -184,7 +184,7 @@
      */
     private void addAllPackagesFrameTag(Content contentTree) {
         HtmlTree frame = HtmlTree.IFRAME(DocPaths.OVERVIEW_FRAME.getPath(),
-                "packageListFrame", configuration.getText("doclet.All_Packages"));
+                "packageListFrame", resources.getText("doclet.All_Packages"));
         HtmlTree leftTop = HtmlTree.DIV(HtmlStyle.leftTop, frame);
         contentTree.addContent(leftTop);
     }
@@ -196,7 +196,7 @@
      */
     private void addAllClassesFrameTag(Content contentTree) {
         HtmlTree frame = HtmlTree.IFRAME(DocPaths.ALLCLASSES_FRAME.getPath(),
-                "packageFrame", configuration.getText("doclet.All_classes_and_interfaces"));
+                "packageFrame", resources.getText("doclet.All_classes_and_interfaces"));
         HtmlTree leftBottom = HtmlTree.DIV(HtmlStyle.leftBottom, frame);
         contentTree.addContent(leftBottom);
     }
@@ -208,7 +208,7 @@
      */
     private void addClassFrameTag(Content contentTree) {
         HtmlTree frame = HtmlTree.IFRAME(configuration.topFile.getPath(), "classFrame",
-                configuration.getText("doclet.Package_class_and_interface_descriptions"));
+                resources.getText("doclet.Package_class_and_interface_descriptions"));
         frame.setStyle(HtmlStyle.rightIframe);
         contentTree.addContent(frame);
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -87,7 +87,7 @@
      * @throws DocFileIOException if there is a problem while generating the documentation
      */
     protected void generateHelpFile() throws DocFileIOException {
-        String title = configuration.getText("doclet.Window_Help_title");
+        String title = resources.getText("doclet.Window_Help_title");
         HtmlTree body = getBody(true, getWindowTitle(title));
         HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
                 ? HtmlTree.HEADER()
@@ -314,7 +314,7 @@
                     : HtmlTree.LI(HtmlStyle.blockList, treeHead);
             Content treeIntro = contents.getContent("doclet.help.tree.intro",
                     links.createLink(DocPaths.OVERVIEW_TREE,
-                    configuration.getText("doclet.Class_Hierarchy")),
+                    resources.getText("doclet.Class_Hierarchy")),
                     HtmlTree.CODE(new StringContent("java.lang.Object")));
             Content treePara = HtmlTree.P(treeIntro);
             htmlTree.addContent(treePara);
@@ -338,7 +338,7 @@
                     : HtmlTree.LI(HtmlStyle.blockList, dHead);
             Content deprBody = contents.getContent("doclet.help.deprecated.body",
                     links.createLink(DocPaths.DEPRECATED_LIST,
-                    configuration.getText("doclet.Deprecated_API")));
+                    resources.getText("doclet.Deprecated_API")));
             Content dPara = HtmlTree.P(deprBody);
             htmlTree.addContent(dPara);
             if (configuration.allowTag(HtmlTag.SECTION)) {
@@ -353,10 +353,10 @@
             Content indexlink;
             if (configuration.splitindex) {
                 indexlink = links.createLink(DocPaths.INDEX_FILES.resolve(DocPaths.indexN(1)),
-                        configuration.getText("doclet.Index"));
+                        resources.getText("doclet.Index"));
             } else {
                 indexlink = links.createLink(DocPaths.INDEX_ALL,
-                        configuration.getText("doclet.Index"));
+                        resources.getText("doclet.Index"));
             }
             Content indexHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                     contents.getContent("doclet.help.index.head"));
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java	Wed Nov 21 12:36:16 2018 -0800
@@ -288,6 +288,10 @@
         return resources;
     }
 
+    public Contents getContents() {
+        return contents;
+    }
+
     @Override
     public Messages getMessages() {
         return messages;
@@ -307,7 +311,7 @@
         if (!helpfile.isEmpty()) {
             DocFile help = DocFile.createFileForInput(this, helpfile);
             if (!help.exists()) {
-                reporter.print(ERROR, getText("doclet.File_not_found", helpfile));
+                reporter.print(ERROR, resources.getText("doclet.File_not_found", helpfile));
                 return false;
             }
         }
@@ -315,7 +319,7 @@
         if (!stylesheetfile.isEmpty()) {
             DocFile stylesheet = DocFile.createFileForInput(this, stylesheetfile);
             if (!stylesheet.exists()) {
-                reporter.print(ERROR, getText("doclet.File_not_found", stylesheetfile));
+                reporter.print(ERROR, resources.getText("doclet.File_not_found", stylesheetfile));
                 return false;
             }
         }
@@ -323,7 +327,7 @@
         for (String ssheet : additionalStylesheets) {
             DocFile ssfile = DocFile.createFileForInput(this, ssheet);
             if (!ssfile.exists()) {
-                reporter.print(ERROR, getText("doclet.File_not_found", ssheet));
+                reporter.print(ERROR, resources.getText("doclet.File_not_found", ssheet));
                 return false;
             }
         }
@@ -505,63 +509,6 @@
         return (e == null || workArounds.haveDocLint());
     }
 
-    @Override
-    public String getText(String key) {
-        return resources.getText(key);
-    }
-
-    @Override
-    public String getText(String key, String... args) {
-        return resources.getText(key, (Object[]) args);
-    }
-
-   /**
-     * {@inheritdoc}
-     */
-    @Override
-    public Content getContent(String key) {
-        return contents.getContent(key);
-    }
-
-    /**
-     * Get the configuration string as a content.
-     *
-     * @param key the key to look for in the configuration file
-     * @param o   string or content argument added to configuration text
-     * @return a content tree for the text
-     */
-    @Override
-    public Content getContent(String key, Object o) {
-        return contents.getContent(key, o);
-    }
-
-    /**
-     * Get the configuration string as a content.
-     *
-     * @param key the key to look for in the configuration file
-     * @param o1 resource argument
-     * @param o2 resource argument
-     * @return a content tree for the text
-     */
-    @Override
-    public Content getContent(String key, Object o1, Object o2) {
-        return contents.getContent(key, o1, o2);
-    }
-
-    /**
-     * Get the configuration string as a content.
-     *
-     * @param key the key to look for in the configuration file
-     * @param o0  string or content argument added to configuration text
-     * @param o1  string or content argument added to configuration text
-     * @param o2  string or content argument added to configuration text
-     * @return a content tree for the text
-     */
-    @Override
-    public Content getContent(String key, Object o0, Object o1, Object o2) {
-        return contents.getContent(key, o0, o1, o2);
-    }
-
     protected void buildSearchTagIndex() {
         for (SearchIndexItem sii : tagSearchIndex) {
             String tagLabel = sii.getLabel();
@@ -628,12 +575,12 @@
                 @Override
                 public boolean process(String opt,  List<String> args) {
                     if (nohelp == true) {
-                        reporter.print(ERROR, getText("doclet.Option_conflict",
+                        reporter.print(ERROR, resources.getText("doclet.Option_conflict",
                                 "-helpfile", "-nohelp"));
                         return false;
                     }
                     if (!helpfile.isEmpty()) {
-                        reporter.print(ERROR, getText("doclet.Option_reuse",
+                        reporter.print(ERROR, resources.getText("doclet.Option_reuse",
                                 "-helpfile"));
                         return false;
                     }
@@ -644,7 +591,7 @@
             new Option(resources, "-html4") {
                 @Override
                 public boolean process(String opt,  List<String> args) {
-                    reporter.print(WARNING, getText("doclet.HTML_4_specified", helpfile));
+                    reporter.print(WARNING, resources.getText("doclet.HTML_4_specified", helpfile));
                     htmlVersion = HtmlVersion.HTML4;
                     return true;
                 }
@@ -661,7 +608,7 @@
                 public boolean process(String opt, List<String> args) {
                     nohelp = true;
                     if (!helpfile.isEmpty()) {
-                        reporter.print(ERROR, getText("doclet.Option_conflict",
+                        reporter.print(ERROR, resources.getText("doclet.Option_conflict",
                                 "-nohelp", "-helpfile"));
                         return false;
                     }
@@ -680,7 +627,7 @@
                 public boolean process(String opt,  List<String> args) {
                     createindex = false;
                     if (splitindex == true) {
-                        reporter.print(ERROR, getText("doclet.Option_conflict",
+                        reporter.print(ERROR, resources.getText("doclet.Option_conflict",
                                 "-noindex", "-splitindex"));
                         return false;
                     }
@@ -699,7 +646,7 @@
                 public boolean process(String opt,  List<String> args) {
                     nooverview = true;
                     if (overviewpath != null) {
-                        reporter.print(ERROR, getText("doclet.Option_conflict",
+                        reporter.print(ERROR, resources.getText("doclet.Option_conflict",
                                 "-nooverview", "-overview"));
                         return false;
                     }
@@ -718,7 +665,7 @@
                 public boolean process(String opt,  List<String> args) {
                     overviewpath = args.get(0);
                     if (nooverview == true) {
-                        reporter.print(ERROR, getText("doclet.Option_conflict",
+                        reporter.print(ERROR, resources.getText("doclet.Option_conflict",
                                 "-overview", "-nooverview"));
                         return false;
                     }
@@ -728,7 +675,7 @@
             new Option(resources, "--frames") {
                 @Override
                 public boolean process(String opt,  List<String> args) {
-                    reporter.print(WARNING, getText("doclet.Frames_specified", helpfile));
+                    reporter.print(WARNING, resources.getText("doclet.Frames_specified", helpfile));
                     frames = true;
                     return true;
                 }
@@ -752,7 +699,7 @@
                 public boolean process(String opt, List<String> args) {
                     splitindex = true;
                     if (createindex == false) {
-                        reporter.print(ERROR, getText("doclet.Option_conflict",
+                        reporter.print(ERROR, resources.getText("doclet.Option_conflict",
                                 "-splitindex", "-noindex"));
                         return false;
                     }
@@ -801,7 +748,7 @@
                     try {
                         URL ignored = new URL(docrootparent);
                     } catch (MalformedURLException e) {
-                        reporter.print(ERROR, getText("doclet.MalformedURL", docrootparent));
+                        reporter.print(ERROR, resources.getText("doclet.MalformedURL", docrootparent));
                         return false;
                     }
                     return true;
@@ -813,11 +760,11 @@
                     String dopt = opt.replace("-Xdoclint:", DocLint.XMSGS_CUSTOM_PREFIX);
                     doclintOpts.put(this, dopt);
                     if (dopt.contains("/")) {
-                        reporter.print(ERROR, getText("doclet.Option_doclint_no_qualifiers"));
+                        reporter.print(ERROR, resources.getText("doclet.Option_doclint_no_qualifiers"));
                         return false;
                     }
                     if (!DocLint.isValidOption(dopt)) {
-                        reporter.print(ERROR, getText("doclet.Option_doclint_invalid_arg"));
+                        reporter.print(ERROR, resources.getText("doclet.Option_doclint_invalid_arg"));
                         return false;
                     }
                     return true;
@@ -829,7 +776,7 @@
                     String dopt = opt.replace("-Xdoclint/package:", DocLint.XCHECK_PACKAGE);
                     doclintOpts.put(this, dopt);
                     if (!DocLint.isValidOption(dopt)) {
-                        reporter.print(ERROR, getText("doclet.Option_doclint_package_invalid_arg"));
+                        reporter.print(ERROR, resources.getText("doclet.Option_doclint_package_invalid_arg"));
                         return false;
                     }
                     return true;
@@ -854,7 +801,7 @@
             if (charset == null) {
                 charset = docencoding;
             } else if (!charset.equals(docencoding)) {
-                reporter.print(ERROR, getText("doclet.Option_conflict", "-charset", "-docencoding"));
+                reporter.print(ERROR, resources.getText("doclet.Option_conflict", "-charset", "-docencoding"));
                 return false;
             }
         }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java	Wed Nov 21 12:36:16 2018 -0800
@@ -297,12 +297,12 @@
         Content label;
         if (configuration.summarizeOverriddenMethods) {
             label = new StringContent(utils.isClass(typeElement)
-                    ? configuration.getText("doclet.Methods_Declared_In_Class")
-                    : configuration.getText("doclet.Methods_Declared_In_Interface"));
+                    ? resources.getText("doclet.Methods_Declared_In_Class")
+                    : resources.getText("doclet.Methods_Declared_In_Interface"));
         } else {
             label = new StringContent(utils.isClass(typeElement)
-                    ? configuration.getText("doclet.Methods_Inherited_From_Class")
-                    : configuration.getText("doclet.Methods_Inherited_From_Interface"));
+                    ? resources.getText("doclet.Methods_Inherited_From_Class")
+                    : resources.getText("doclet.Methods_Inherited_From_Interface"));
         }
         Content labelHeading = HtmlTree.HEADING(HtmlConstants.INHERITED_SUMMARY_HEADING,
                 label);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -118,8 +118,8 @@
                 = configuration.group.groupModules(configuration.modules);
 
         if (!groupModuleMap.keySet().isEmpty()) {
-            String tableSummary = configuration.getText("doclet.Member_Table_Summary",
-                    configuration.getText("doclet.Module_Summary"), configuration.getText("doclet.modules"));
+            String tableSummary = resources.getText("doclet.Member_Table_Summary",
+                    resources.getText("doclet.Module_Summary"), resources.getText("doclet.modules"));
             TableHeader header = new TableHeader(contents.moduleLabel, contents.descriptionLabel);
             Table table =  new Table(configuration.htmlVersion, HtmlStyle.overviewSummary)
                     .setSummary(tableSummary)
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java	Wed Nov 21 12:36:16 2018 -0800
@@ -538,7 +538,7 @@
                 String amrText = resources.getText("doclet.Indirect_Requires_Summary");
                 String amrTableSummary = resources.getText("doclet.Member_Table_Summary",
                         amrText,
-                        configuration.getText("doclet.modules"));
+                        resources.getText("doclet.modules"));
                 Content amrCaption = getTableCaption(new StringContent(amrText));
                 Table amrTable = getTable3(amrCaption, amrTableSummary, HtmlStyle.requiresSummary,
                             requiresTableHeader);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/NestedClassWriterImpl.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/NestedClassWriterImpl.java	Wed Nov 21 12:36:16 2018 -0800
@@ -153,12 +153,12 @@
         Content label;
         if (configuration.summarizeOverriddenMethods) {
             label = new StringContent(utils.isInterface(typeElement)
-                    ? configuration.getText("doclet.Nested_Classes_Interfaces_Declared_In_Interface")
-                    : configuration.getText("doclet.Nested_Classes_Interfaces_Declared_In_Class"));
+                    ? resources.getText("doclet.Nested_Classes_Interfaces_Declared_In_Interface")
+                    : resources.getText("doclet.Nested_Classes_Interfaces_Declared_In_Class"));
         } else {
             label = new StringContent(utils.isInterface(typeElement)
-                    ? configuration.getText("doclet.Nested_Classes_Interfaces_Inherited_From_Interface")
-                    : configuration.getText("doclet.Nested_Classes_Interfaces_Inherited_From_Class"));
+                    ? resources.getText("doclet.Nested_Classes_Interfaces_Inherited_From_Interface")
+                    : resources.getText("doclet.Nested_Classes_Interfaces_Inherited_From_Class"));
         }
         Content labelHeading = HtmlTree.HEADING(HtmlConstants.INHERITED_SUMMARY_HEADING,
                 label);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -102,8 +102,8 @@
                 = configuration.group.groupPackages(packages);
 
         if (!groupPackageMap.keySet().isEmpty()) {
-            String tableSummary = configuration.getText("doclet.Member_Table_Summary",
-                    configuration.getText("doclet.Package_Summary"), configuration.getText("doclet.packages"));
+            String tableSummary = resources.getText("doclet.Member_Table_Summary",
+                    resources.getText("doclet.Package_Summary"), resources.getText("doclet.packages"));
             Table table =  new Table(configuration.htmlVersion, HtmlStyle.overviewSummary)
                     .setSummary(tableSummary)
                     .setHeader(getPackageTableHeader())
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageTreeWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageTreeWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -139,7 +139,7 @@
      */
     protected HtmlTree getPackageTreeHeader() {
         String packageName = packageElement.isUnnamed() ? "" : utils.getPackageName(packageElement);
-        String title = packageName + " " + configuration.getText("doclet.Window_Class_Hierarchy");
+        String title = packageName + " " + resources.getText("doclet.Window_Class_Hierarchy");
         HtmlTree bodyTree = getBody(true, getWindowTitle(title));
         HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
                 ? HtmlTree.HEADER()
@@ -167,7 +167,7 @@
         div.addContent(span);
         HtmlTree ul = new HtmlTree (HtmlTag.UL);
         ul.setStyle(HtmlStyle.horizontal);
-        ul.addContent(getNavLinkMainTree(configuration.getText("doclet.All_Packages")));
+        ul.addContent(getNavLinkMainTree(resources.getText("doclet.All_Packages")));
         div.addContent(ul);
     }
 }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SerializedFormWriterImpl.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SerializedFormWriterImpl.java	Wed Nov 21 12:36:16 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -183,9 +183,9 @@
 
         //Print the heading.
         Content className = superClassLink == null ?
-            configuration.getContent(
+            contents.getContent(
             "doclet.Class_0_implements_serializable", classLink) :
-            configuration.getContent(
+            contents.getContent(
             "doclet.Class_0_extends_implements_serializable", classLink,
             superClassLink);
         li.addContent(HtmlTree.HEADING(HtmlConstants.SERIALIZED_MEMBER_HEADING,
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SingleIndexWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SingleIndexWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -91,7 +91,7 @@
      * @throws DocFileIOException if there is a problem generating the index
      */
     protected void generateIndexFile() throws DocFileIOException {
-        String title = configuration.getText("doclet.Window_Single_Index");
+        String title = resources.getText("doclet.Window_Single_Index");
         HtmlTree body = getBody(true, getWindowTitle(title));
         HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
                 ? HtmlTree.HEADER()
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SplitIndexWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SplitIndexWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -118,7 +118,7 @@
      * @throws DocFileIOException if there is a problem generating an index file
      */
     protected void generateIndexFile(Character unicode) throws DocFileIOException {
-        String title = configuration.getText("doclet.Window_Split_Index",
+        String title = resources.getText("doclet.Window_Split_Index",
                 unicode.toString());
         HtmlTree body = getBody(true, getWindowTitle(title));
         HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java	Wed Nov 21 12:36:16 2018 -0800
@@ -223,7 +223,7 @@
         ContentBuilder result = new ContentBuilder();
         CommentHelper ch = utils.getCommentHelper(element);
         result.addContent(HtmlTree.DT(HtmlTree.SPAN(HtmlStyle.returnLabel,
-                new StringContent(configuration.getText("doclet.Returns")))));
+                new StringContent(resources.getText("doclet.Returns")))));
         result.addContent(HtmlTree.DD(htmlWriter.commentTagsToContent(
                 returnTag, element, ch.getDescription(configuration, returnTag), false, inSummary)));
         return result;
@@ -249,7 +249,7 @@
                     utils.getSimpleName(holder);
             DocLink link = constantsPath.fragment(whichConstant);
             body.addContent(htmlWriter.links.createLink(link,
-                    new StringContent(configuration.getText("doclet.Constants_Summary"))));
+                    new StringContent(resources.getText("doclet.Constants_Summary"))));
         }
         if (utils.isClass(holder) && utils.isSerializable((TypeElement)holder)) {
             //Automatically add link to serialized form page for serializable classes.
@@ -259,7 +259,7 @@
                 DocPath serialPath = htmlWriter.pathToRoot.resolve(DocPaths.SERIALIZED_FORM);
                 DocLink link = serialPath.fragment(utils.getFullyQualifiedName(holder));
                 body.addContent(htmlWriter.links.createLink(link,
-                        new StringContent(configuration.getText("doclet.Serialized_Form"))));
+                        new StringContent(resources.getText("doclet.Serialized_Form"))));
             }
         }
         if (body.isEmpty())
@@ -267,7 +267,7 @@
 
         ContentBuilder result = new ContentBuilder();
         result.addContent(HtmlTree.DT(HtmlTree.SPAN(HtmlStyle.seeLabel,
-                new StringContent(configuration.getText("doclet.See_Also")))));
+                new StringContent(resources.getText("doclet.See_Also")))));
         result.addContent(HtmlTree.DD(body));
         return result;
 
@@ -329,7 +329,7 @@
      */
     public Content getThrowsHeader() {
         HtmlTree result = HtmlTree.DT(HtmlTree.SPAN(HtmlStyle.throwsLabel,
-                new StringContent(configuration.getText("doclet.Throws"))));
+                new StringContent(resources.getText("doclet.Throws"))));
         return result;
     }
 
@@ -461,7 +461,8 @@
                         return null;
                     }
                 }.visit(element);
-                si.setCategory(configuration.getContent("doclet.SearchTags").toString());
+                Contents contents = configuration.getContents();
+                si.setCategory(contents.getContent("doclet.SearchTags").toString());
                 configuration.tagSearchIndex.add(si);
             }
         }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TreeWriter.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TreeWriter.java	Wed Nov 21 12:36:16 2018 -0800
@@ -185,7 +185,7 @@
      * @return a content tree for the tree header
      */
     protected HtmlTree getTreeHeader() {
-        String title = configuration.getText("doclet.Window_Class_Hierarchy");
+        String title = resources.getText("doclet.Window_Class_Hierarchy");
         HtmlTree bodyTree = getBody(true, getWindowTitle(title));
         HtmlTree htmlTree = (configuration.allowTag(HtmlTag.HEADER))
                 ? HtmlTree.HEADER()
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Navigation.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Navigation.java	Wed Nov 21 12:36:16 2018 -0800
@@ -147,8 +147,8 @@
         this.pathToRoot = path.parent().invert();
         this.links = new Links(path, configuration.htmlVersion);
         this.topBottomNavContents = new HashMap<>();
-        this.rowListTitle = configuration.getText("doclet.Navigation");
-        this.searchLabel = configuration.getContent("doclet.search");
+        this.rowListTitle = configuration.getResources().getText("doclet.Navigation");
+        this.searchLabel = contents.getContent("doclet.search");
         populateNavContents(Position.TOP);
         populateNavContents(Position.BOTTOM);
     }
@@ -160,7 +160,7 @@
      */
     private void populateNavContents(Position position) {
         Deque<Content> queue = new ArrayDeque<>();
-        Content skipNavLinks = configuration.getContent("doclet.Skip_navigation_links");
+        Content skipNavLinks = contents.getContent("doclet.Skip_navigation_links");
         switch (position) {
             case TOP:
                 queue.addLast(links.createAnchor(SectionName.NAVBAR_TOP));
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java	Wed Nov 21 12:36:16 2018 -0800
@@ -271,7 +271,7 @@
     /**
      * The tracker of external package links.
      */
-    public final Extern extern = new Extern(this);
+    public Extern extern;
 
     public Reporter reporter;
 
@@ -648,8 +648,8 @@
                                 summarizeOverriddenMethods = false;
                                 break;
                             default:
-                                reporter.print(ERROR, getText("doclet.Option_invalid",
-                                        o, "--override-methods"));
+                                reporter.print(ERROR,
+                                        getResources().getText("doclet.Option_invalid",o, "--override-methods"));
                                 return false;
                         }
                         return true;
@@ -769,7 +769,7 @@
      * initializes certain components before anything else is started.
      */
     protected boolean finishOptionSettings0() throws DocletException {
-
+        extern = new Extern(this);
         initDestDirectory();
         for (String link : linkList) {
             extern.link(link, reporter);
@@ -807,17 +807,18 @@
 
     private void initDestDirectory() throws DocletException {
         if (!destDirName.isEmpty()) {
+            Resources resources = getResources();
             DocFile destDir = DocFile.createFileForDirectory(this, destDirName);
             if (!destDir.exists()) {
                 //Create the output directory (in case it doesn't exist yet)
-                reporter.print(NOTE, getText("doclet.dest_dir_create", destDirName));
+                reporter.print(NOTE, resources.getText("doclet.dest_dir_create", destDirName));
                 destDir.mkdirs();
             } else if (!destDir.isDirectory()) {
-                throw new SimpleDocletException(getText(
+                throw new SimpleDocletException(resources.getText(
                         "doclet.destination_directory_not_directory_0",
                         destDir.getPath()));
             } else if (!destDir.canWrite()) {
-                throw new SimpleDocletException(getText(
+                throw new SimpleDocletException(resources.getText(
                         "doclet.destination_directory_not_writable_0",
                         destDir.getPath()));
             }
@@ -974,7 +975,7 @@
         try {
             osw = new OutputStreamWriter(ost, docencoding);
         } catch (UnsupportedEncodingException exc) {
-            reporter.print(ERROR, getText("doclet.Encoding_not_supported", docencoding));
+            reporter.print(ERROR, getResources().getText("doclet.Encoding_not_supported", docencoding));
             return false;
         } finally {
             try {
@@ -1035,72 +1036,6 @@
     }
 
     /**
-     * Convenience method to obtain a resource from the doclet's
-     * {@link Resources resources}.
-     * Equivalent to <code>getResources.getText(key);</code>.
-     *
-     * @param key the key for the desired string
-     * @return the string for the given key
-     * @throws MissingResourceException if the key is not found in either
-     *                                  bundle.
-     */
-    public abstract String getText(String key);
-
-    /**
-     * Convenience method to obtain a resource from the doclet's
-     * {@link Resources resources}.
-     * Equivalent to <code>getResources.getText(key, args);</code>.
-     *
-     * @param key  the key for the desired string
-     * @param args values to be substituted into the resulting string
-     * @return the string for the given key
-     * @throws MissingResourceException if the key is not found in either
-     *                                  bundle.
-     */
-    public abstract String getText(String key, String... args);
-
-    /**
-     * Convenience method to obtain a resource from the doclet's
-     * {@link Resources resources} as a {@code Content} object.
-     *
-     * @param key the key for the desired string
-     * @return a content tree for the text
-     */
-    public abstract Content getContent(String key);
-
-    /**
-     * Convenience method to obtain a resource from the doclet's
-     * {@link Resources resources} as a {@code Content} object.
-     *
-     * @param key the key for the desired string
-     * @param o   string or content argument added to configuration text
-     * @return a content tree for the text
-     */
-    public abstract Content getContent(String key, Object o);
-
-    /**
-     * Convenience method to obtain a resource from the doclet's
-     * {@link Resources resources} as a {@code Content} object.
-     *
-     * @param key the key for the desired string
-     * @param o1  resource argument
-     * @param o2  resource argument
-     * @return a content tree for the text
-     */
-    public abstract Content getContent(String key, Object o1, Object o2);
-
-    /**
-     * Get the configuration string as a content.
-     *
-     * @param key the key for the desired string
-     * @param o0  string or content argument added to configuration text
-     * @param o1  string or content argument added to configuration text
-     * @param o2  string or content argument added to configuration text
-     * @return a content tree for the text
-     */
-    public abstract Content getContent(String key, Object o0, Object o1, Object o2);
-
-    /**
      * Return true if the TypeElement element is getting documented, depending upon
      * -nodeprecated option and the deprecation information. Return true if
      * -nodeprecated is not used. Return false if -nodeprecated is used and if
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/CommentUtils.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/CommentUtils.java	Wed Nov 21 12:36:16 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -65,6 +65,7 @@
 public class CommentUtils {
 
     final BaseConfiguration configuration;
+    final Resources resources;
     final DocTreeFactory treeFactory;
     final HashMap<Element, DocCommentDuo> dcTreesMap = new HashMap<>();
     final DocTrees trees;
@@ -72,6 +73,7 @@
 
     protected CommentUtils(BaseConfiguration configuration) {
         this.configuration = configuration;
+        resources = configuration.getResources();
         trees = configuration.docEnv.getDocTrees();
         treeFactory = trees.getDocTreeFactory();
         elementUtils = configuration.docEnv.getElementUtils();
@@ -110,15 +112,15 @@
         return (DocTree) text;
     }
 
-    public void setEnumValuesTree(BaseConfiguration config, Element e) {
-        Utils utils = config.utils;
+    public void setEnumValuesTree(Element e) {
+        Utils utils = configuration.utils;
         String klassName = utils.getSimpleName(utils.getEnclosingTypeElement(e));
 
         List<DocTree> fullBody = new ArrayList<>();
-        fullBody.add(treeFactory.newTextTree(config.getText("doclet.enum_values_doc.fullbody", klassName)));
+        fullBody.add(treeFactory.newTextTree(resources.getText("doclet.enum_values_doc.fullbody", klassName)));
 
         List<DocTree> descriptions = new ArrayList<>();
-        descriptions.add(treeFactory.newTextTree(config.getText("doclet.enum_values_doc.return")));
+        descriptions.add(treeFactory.newTextTree(resources.getText("doclet.enum_values_doc.return")));
 
         List<DocTree> tags = new ArrayList<>();
         tags.add(treeFactory.newReturnTree(descriptions));
@@ -126,15 +128,15 @@
         dcTreesMap.put(e, new DocCommentDuo(null, docTree));
     }
 
-    public void setEnumValueOfTree(BaseConfiguration config, Element e) {
+    public void setEnumValueOfTree(Element e) {
 
         List<DocTree> fullBody = new ArrayList<>();
-        fullBody.add(treeFactory.newTextTree(config.getText("doclet.enum_valueof_doc.fullbody")));
+        fullBody.add(treeFactory.newTextTree(resources.getText("doclet.enum_valueof_doc.fullbody")));
 
         List<DocTree> tags = new ArrayList<>();
 
         List<DocTree> paramDescs = new ArrayList<>();
-        paramDescs.add(treeFactory.newTextTree(config.getText("doclet.enum_valueof_doc.param_name")));
+        paramDescs.add(treeFactory.newTextTree(resources.getText("doclet.enum_valueof_doc.param_name")));
         ExecutableElement ee = (ExecutableElement) e;
         java.util.List<? extends VariableElement> parameters = ee.getParameters();
         VariableElement param = parameters.get(0);
@@ -142,17 +144,17 @@
         tags.add(treeFactory.newParamTree(false, id, paramDescs));
 
         List<DocTree> returnDescs = new ArrayList<>();
-        returnDescs.add(treeFactory.newTextTree(config.getText("doclet.enum_valueof_doc.return")));
+        returnDescs.add(treeFactory.newTextTree(resources.getText("doclet.enum_valueof_doc.return")));
         tags.add(treeFactory.newReturnTree(returnDescs));
 
         List<DocTree> throwsDescs = new ArrayList<>();
-        throwsDescs.add(treeFactory.newTextTree(config.getText("doclet.enum_valueof_doc.throws_ila")));
+        throwsDescs.add(treeFactory.newTextTree(resources.getText("doclet.enum_valueof_doc.throws_ila")));
 
         ReferenceTree ref = treeFactory.newReferenceTree("java.lang.IllegalArgumentException");
         tags.add(treeFactory.newThrowsTree(ref, throwsDescs));
 
         throwsDescs = new ArrayList<>();
-        throwsDescs.add(treeFactory.newTextTree(config.getText("doclet.enum_valueof_doc.throws_npe")));
+        throwsDescs.add(treeFactory.newTextTree(resources.getText("doclet.enum_valueof_doc.throws_npe")));
 
         ref = treeFactory.newReferenceTree("java.lang.NullPointerException");
         tags.add(treeFactory.newThrowsTree(ref, throwsDescs));
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeBuilder.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeBuilder.java	Wed Nov 21 12:36:16 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -106,7 +106,7 @@
      * @throws DocletException if there is a problem building the documentation
      */
     protected void buildAnnotationTypeDoc(Content contentTree) throws DocletException {
-        contentTree = writer.getHeader(configuration.getText("doclet.AnnotationType") +
+        contentTree = writer.getHeader(resources.getText("doclet.AnnotationType") +
                " " + utils.getSimpleName(annotationType));
         Content annotationContentTree = writer.getAnnotationContentHeader();
 
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ClassBuilder.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ClassBuilder.java	Wed Nov 21 12:36:16 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -135,7 +135,7 @@
         } else {
             key = "doclet.Class";
         }
-        contentTree = writer.getHeader(configuration.getText(key) + " "
+        contentTree = writer.getHeader(resources.getText(key) + " "
                 + utils.getSimpleName(typeElement));
         Content classContentTree = writer.getClassContentHeader();
 
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MemberSummaryBuilder.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MemberSummaryBuilder.java	Wed Nov 21 12:36:16 2018 -0800
@@ -358,13 +358,13 @@
             //add "[GS]ets the value of the property PROPERTY_NAME."
             if (isSetter) {
                 String text = MessageFormat.format(
-                        configuration.getText("doclet.PropertySetterWithName"),
+                        resources.getText("doclet.PropertySetterWithName"),
                         utils.propertyName((ExecutableElement)member));
                 fullBody.addAll(cmtutils.makeFirstSentenceTree(text));
             }
             if (isGetter) {
                 String text = MessageFormat.format(
-                        configuration.getText("doclet.PropertyGetterWithName"),
+                        resources.getText("doclet.PropertyGetterWithName"),
                         utils.propertyName((ExecutableElement) member));
                 fullBody.addAll(cmtutils.makeFirstSentenceTree(text));
             }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/SerializedFormBuilder.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/SerializedFormBuilder.java	Wed Nov 21 12:36:16 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -147,7 +147,7 @@
      * @throws DocletException if there is a problem while building the documentation
      */
     protected void buildSerializedForm(Content serializedTree) throws DocletException {
-        serializedTree = writer.getHeader(configuration.getText(
+        serializedTree = writer.getHeader(resources.getText(
                 "doclet.Serialized_Form"));
 
         buildSerializedFormSummaries(serializedTree);
@@ -297,14 +297,14 @@
         }
         if (!utils.serializationMethods(currentTypeElement).isEmpty()) {
             classContentTree.addContent(methodWriter.getSerializableMethods(
-                    configuration.getText("doclet.Serialized_Form_methods"),
+                    resources.getText("doclet.Serialized_Form_methods"),
                     serializableMethodTree));
             if (utils.isSerializable(currentTypeElement) && !utils.isExternalizable(currentTypeElement)) {
                 if (utils.serializationMethods(currentTypeElement).isEmpty()) {
                     Content noCustomizationMsg = methodWriter.getNoCustomizationMsg(
-                            configuration.getText("doclet.Serializable_no_customization"));
+                            resources.getText("doclet.Serializable_no_customization"));
                     classContentTree.addContent(methodWriter.getSerializableMethods(
-                    configuration.getText("doclet.Serialized_Form_methods"),
+                    resources.getText("doclet.Serialized_Form_methods"),
                     noCustomizationMsg));
                 }
             }
@@ -404,7 +404,7 @@
                 }
                 serializableFieldsTree.addContent(fieldsOverviewContentTree);
                 classContentTree.addContent(fieldWriter.getSerializableFields(
-                        configuration.getText("doclet.Serialized_Form_class"),
+                        resources.getText("doclet.Serialized_Form_class"),
                         serializableFieldsTree));
             }
         }
@@ -437,7 +437,7 @@
                 }
             }
             classContentTree.addContent(fieldWriter.getSerializableFields(
-                    configuration.getText("doclet.Serialized_Form_fields"),
+                    resources.getText("doclet.Serialized_Form_fields"),
                     serializableFieldsTree));
         }
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/ParamTaglet.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/ParamTaglet.java	Wed Nov 21 12:36:16 2018 -0800
@@ -267,7 +267,8 @@
     /**
      * Convert the individual ParamTag into Content.
      *
-     * @param isNonTypeParams true if this is just a regular param tag.  False
+     * @param e               the owner element
+     * @param isParams true   if this is just a regular param tag.  False
      *                        if this is a type param tag.
      * @param writer          the taglet writer for output writing.
      * @param paramTag        the tag whose inline tags will be printed.
@@ -281,7 +282,7 @@
             TagletWriter writer, DocTree paramTag, String name,
             boolean isFirstParam) {
         Content result = writer.getOutputInstance();
-        String header = writer.configuration().getText(
+        String header = writer.configuration().getResources().getText(
             isParams ? "doclet.Parameters" : "doclet.TypeParameters");
         if (isFirstParam) {
             result.addContent(writer.getParamHeader(header));
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/PropertyGetterTaglet.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/PropertyGetterTaglet.java	Wed Nov 21 12:36:16 2018 -0800
@@ -52,6 +52,6 @@
 
     @Override
     String getText(TagletWriter tagletWriter) {
-        return tagletWriter.configuration().getText("doclet.PropertyGetter");
+        return tagletWriter.configuration().getResources().getText("doclet.PropertyGetter");
     }
 }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/PropertySetterTaglet.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/PropertySetterTaglet.java	Wed Nov 21 12:36:16 2018 -0800
@@ -37,7 +37,7 @@
 public class PropertySetterTaglet extends BasePropertyTaglet {
 
     /**
-     * Construct a new PropertyGetterTaglet.
+     * Construct a new PropertySetterTaglet.
      */
     public PropertySetterTaglet () {
         super("propertySetter");
@@ -45,6 +45,6 @@
 
     @Override
     String getText(TagletWriter tagletWriter) {
-        return tagletWriter.configuration().getText("doclet.PropertySetter");
+        return tagletWriter.configuration().getResources().getText("doclet.PropertySetter");
     }
 }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Extern.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Extern.java	Wed Nov 21 12:36:16 2018 -0800
@@ -39,6 +39,7 @@
 
 import jdk.javadoc.doclet.Reporter;
 import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
+import jdk.javadoc.internal.doclets.toolkit.Resources;
 
 /**
  * Process and manage "-link" and "-linkoffline" to external packages. The
@@ -69,6 +70,10 @@
      */
     private final BaseConfiguration configuration;
 
+    private final Resources resources;
+
+    private final Utils utils;
+
     /**
      * True if we are using -linkoffline and false if -link is used instead.
      */
@@ -122,6 +127,8 @@
 
     public Extern(BaseConfiguration configuration) {
         this.configuration = configuration;
+        this.resources = configuration.getResources();
+        this.utils = configuration.utils;
     }
 
     /**
@@ -134,7 +141,7 @@
         if (packageItems.isEmpty()) {
             return false;
         }
-        PackageElement pe = configuration.utils.containingPackage(element);
+        PackageElement pe = utils.containingPackage(element);
         if (pe.isUnnamed()) {
             return false;
         }
@@ -242,7 +249,7 @@
         try {
             return new URL(url);
         } catch (MalformedURLException e) {
-            throw new Fault(configuration.getText("doclet.MalformedURL", url), e);
+            throw new Fault(resources.getText("doclet.MalformedURL", url), e);
         }
     }
 
@@ -262,13 +269,13 @@
     private Item findElementItem(Element element) {
         Item item = null;
         if (element instanceof ModuleElement) {
-            item = moduleItems.get(configuration.utils.getModuleName((ModuleElement)element));
+            item = moduleItems.get(utils.getModuleName((ModuleElement)element));
         }
         else if (element instanceof PackageElement) {
             PackageElement packageElement = (PackageElement)element;
-            ModuleElement moduleElement = configuration.utils.containingModule(packageElement);
-            Map<String, Item> pkgMap = packageItems.get(configuration.utils.getModuleName(moduleElement));
-            item = (pkgMap != null) ? pkgMap.get(configuration.utils.getPackageName(packageElement)) : null;
+            ModuleElement moduleElement = utils.containingModule(packageElement);
+            Map<String, Item> pkgMap = packageItems.get(utils.getModuleName(moduleElement));
+            item = (pkgMap != null) ? pkgMap.get(utils.getPackageName(packageElement)) : null;
         }
         return item;
     }
@@ -291,7 +298,7 @@
             URL link = elemlisturlpath.toURI().resolve(DocPaths.ELEMENT_LIST.getPath()).toURL();
             readElementList(link.openStream(), urlpath, false);
         } catch (URISyntaxException | MalformedURLException exc) {
-            throw new Fault(configuration.getText("doclet.MalformedURL", elemlisturlpath.toString()), exc);
+            throw new Fault(resources.getText("doclet.MalformedURL", elemlisturlpath.toString()), exc);
         } catch (IOException exc) {
             readAlternateURL(urlpath, elemlisturlpath);
         }
@@ -308,9 +315,9 @@
             URL link = elemlisturlpath.toURI().resolve(DocPaths.PACKAGE_LIST.getPath()).toURL();
             readElementList(link.openStream(), urlpath, false);
         } catch (URISyntaxException | MalformedURLException exc) {
-            throw new Fault(configuration.getText("doclet.MalformedURL", elemlisturlpath.toString()), exc);
+            throw new Fault(resources.getText("doclet.MalformedURL", elemlisturlpath.toString()), exc);
         } catch (IOException exc) {
-            throw new Fault(configuration.getText("doclet.URL_error", elemlisturlpath.toString()), exc);
+            throw new Fault(resources.getText("doclet.URL_error", elemlisturlpath.toString()), exc);
         }
     }
 
@@ -338,7 +345,7 @@
             if (file1.exists()) {
                 readElementList(file1, path);
             } else {
-                throw new Fault(configuration.getText("doclet.File_error", file.getPath()), null);
+                throw new Fault(resources.getText("doclet.File_error", file.getPath()), null);
             }
         }
     }
@@ -351,10 +358,10 @@
                         && !DocFile.createFileForInput(configuration, path).isAbsolute();
                 readElementList(file.openInputStream(), path, pathIsRelative);
             } else {
-                throw new Fault(configuration.getText("doclet.File_error", file.getPath()), null);
+                throw new Fault(resources.getText("doclet.File_error", file.getPath()), null);
             }
         } catch (IOException exc) {
-           throw new Fault(configuration.getText("doclet.File_error", file.getPath()), exc);
+            throw new Fault(resources.getText("doclet.File_error", file.getPath()), exc);
         }
     }
 
@@ -416,10 +423,10 @@
             ModuleElement me = (ModuleElement)pe.getEnclosingElement();
             if (me == null || me.isUnnamed()) {
                 if (moduleName != null)
-                    throw new Fault(configuration.getText("doclet.linkMismatch_PackagedLinkedtoModule",
+                    throw new Fault(resources.getText("doclet.linkMismatch_PackagedLinkedtoModule",
                             path), null);
             } else if (moduleName == null)
-                throw new Fault(configuration.getText("doclet.linkMismatch_ModuleLinkedtoPackage",
+                throw new Fault(resources.getText("doclet.linkMismatch_ModuleLinkedtoPackage",
                         path), null);
         }
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/MetaKeywords.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/MetaKeywords.java	Wed Nov 21 12:36:16 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -128,7 +128,7 @@
     public List<String> getOverviewMetaKeywords(String title, String docTitle) {
          List<String> result = new ArrayList<>(1);
         if (config.keywords) {
-            String windowOverview = config.getText(title);
+            String windowOverview = config.getResources().getText(title);
             if (docTitle.length() > 0) {
                 result.add(windowOverview + ", " + docTitle);
             } else {
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java	Wed Nov 21 15:06:13 2018 -0500
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java	Wed Nov 21 12:36:16 2018 -0800
@@ -86,6 +86,7 @@
 import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
 import jdk.javadoc.internal.doclets.toolkit.CommentUtils.DocCommentDuo;
 import jdk.javadoc.internal.doclets.toolkit.Messages;
+import jdk.javadoc.internal.doclets.toolkit.Resources;
 import jdk.javadoc.internal.doclets.toolkit.WorkArounds;
 import jdk.javadoc.internal.tool.DocEnvImpl;
 
@@ -110,6 +111,7 @@
 public class Utils {
     public final BaseConfiguration configuration;
     public final Messages messages;
+    public final Resources resources;
     public final DocTrees docTrees;
     public final Elements elementUtils;
     public final Types typeUtils;
@@ -118,6 +120,7 @@
     public Utils(BaseConfiguration c) {
         configuration = c;
         messages = configuration.getMessages();
+        resources = configuration.getResources();
         elementUtils = c.docEnv.getElementUtils();
         typeUtils = c.docEnv.getTypeUtils();
         docTrees = c.docEnv.getDocTrees();
@@ -1245,7 +1248,7 @@
             typeName = "doclet.Class";
         }
         typeName = lowerCaseOnly ? toLowerCase(typeName) : typeName;
-        return typeNameMap.computeIfAbsent(typeName, configuration :: getText);
+        return typeNameMap.computeIfAbsent(typeName, resources::getText);
     }
 
     private final Map<String, String> typeNameMap = new HashMap<>();
@@ -1368,11 +1371,11 @@
                 continue;
             if (ee.getSimpleName().contentEquals("values") && ee.getParameters().isEmpty()) {
                 removeCommentHelper(ee); // purge previous entry
-                configuration.cmtUtils.setEnumValuesTree(configuration, e);
+                configuration.cmtUtils.setEnumValuesTree(e);
             }
             if (ee.getSimpleName().contentEquals("valueOf") && ee.getParameters().size() == 1) {
                 removeCommentHelper(ee); // purge previous entry
-                configuration.cmtUtils.setEnumValueOfTree(configuration, e);
+                configuration.cmtUtils.setEnumValueOfTree(e);
             }
         }
     }
@@ -3087,7 +3090,7 @@
                             throw new JavaScriptScanner.Fault();
                         });
                     } catch (JavaScriptScanner.Fault jsf) {
-                        String text = configuration.getText("doclet.JavaScript_in_comment");
+                        String text = resources.getText("doclet.JavaScript_in_comment");
                         throw new UncheckedDocletException(new SimpleDocletException(text, jsf));
                     }
                 }
@@ -3123,7 +3126,7 @@
                     throw new JavaScriptScanner.Fault();
                 });
             } catch (JavaScriptScanner.Fault jsf) {
-                String text = configuration.getText("doclet.JavaScript_in_option", name);
+                String text = resources.getText("doclet.JavaScript_in_option", name);
                 throw new UncheckedDocletException(new SimpleDocletException(text, jsf));
             }
         }