[nobug] refactoring and cleanups
diff --git a/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextInvocationContext.java b/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextInvocationContext.java
index d4dc09c..e428077 100644
--- a/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextInvocationContext.java
+++ b/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextInvocationContext.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
+ * Copyright (c) 2008, 2020 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
@@ -30,7 +30,7 @@
  * Structured Text quick assist invocation context.
  */
 public final class StructuredTextInvocationContext extends TextInvocationContext {
-	private Map fAttributes;
+	private Map<String, String> fAttributes;
 
 	/**
 	 * @param sourceViewer
@@ -38,7 +38,7 @@
 	 * @param length
 	 * @param attributes
 	 */
-	public StructuredTextInvocationContext(ISourceViewer sourceViewer, int offset, int length, Map attributes) {
+	public StructuredTextInvocationContext(ISourceViewer sourceViewer, int offset, int length, Map<String, String> attributes) {
 		super(sourceViewer, offset, length);
 		fAttributes = attributes;
 	}
diff --git a/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextViewerConfiguration.java b/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextViewerConfiguration.java
index 4e8effe..779f90d 100644
--- a/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextViewerConfiguration.java
+++ b/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextViewerConfiguration.java
@@ -178,7 +178,7 @@
 	 * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getAutoEditStrategies(org.eclipse.jface.text.source.ISourceViewer, java.lang.String)
 	 */
 	public IAutoEditStrategy[] getAutoEditStrategies(ISourceViewer sourceViewer, String contentType) {
-		List allStrategies = new ArrayList(0);
+		List<IAutoEditStrategy> allStrategies = new ArrayList<>(0);
 
 		IAutoEditStrategy[] superStrategies = super.getAutoEditStrategies(sourceViewer, contentType);
 		for (int i = 0; i < superStrategies.length; i++) {
@@ -186,12 +186,12 @@
 		}
 
 		// add auto edit strategies contributed by clients
-		List extendedAutoEdits = ExtendedConfigurationBuilder.getInstance().getConfigurations(AUTOEDITSTRATEGY, contentType);
+		List<IAutoEditStrategy> extendedAutoEdits = ExtendedConfigurationBuilder.getInstance().getConfigurations(AUTOEDITSTRATEGY, contentType);
 		if (!extendedAutoEdits.isEmpty()) {
 			allStrategies.addAll(extendedAutoEdits);
 		}
 
-		return (IAutoEditStrategy[]) allStrategies.toArray(new IAutoEditStrategy[allStrategies.size()]);
+		return allStrategies.toArray(new IAutoEditStrategy[allStrategies.size()]);
 	}
 
 	/**
@@ -582,6 +582,7 @@
 	public IQuickAssistAssistant getQuickAssistAssistant(ISourceViewer sourceViewer) {
 		if (fQuickAssistant == null) {
 			IQuickAssistAssistant assistant = new QuickAssistAssistant();
+
 			assistant.setQuickAssistProcessor(new CompoundQuickAssistProcessor());
 			assistant.setInformationControlCreator(getQuickAssistAssistantInformationControlCreator());
 
@@ -679,8 +680,8 @@
 	 * @return
 	 */
 	private ITextHover[] createDocumentationHovers(String partitionType) {
-		List extendedTextHover = ExtendedConfigurationBuilder.getInstance().getConfigurations(ExtendedConfigurationBuilder.DOCUMENTATIONTEXTHOVER, partitionType);
-		ITextHover[] hovers = (ITextHover[]) extendedTextHover.toArray(new ITextHover[extendedTextHover.size()]);
+		List<ITextHover> extendedTextHover = ExtendedConfigurationBuilder.getInstance().getConfigurations(ExtendedConfigurationBuilder.DOCUMENTATIONTEXTHOVER, partitionType);
+		ITextHover[] hovers = extendedTextHover.toArray(new ITextHover[extendedTextHover.size()]);
 		return hovers;
 	}
 
diff --git a/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/GenericCompletionProposalComputer.java b/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/GenericCompletionProposalComputer.java
index 96816fc..ed93a2f 100755
--- a/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/GenericCompletionProposalComputer.java
+++ b/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/GenericCompletionProposalComputer.java
@@ -17,6 +17,12 @@
 import java.util.List;

 import java.util.Set;

 

+import org.eclipse.core.filebuffers.FileBuffers;

+import org.eclipse.core.filebuffers.ITextFileBuffer;

+import org.eclipse.core.runtime.CoreException;

+import org.eclipse.core.runtime.IConfigurationElement;

+import org.eclipse.core.runtime.IExecutableExtension;

+import org.eclipse.core.runtime.IPath;

 import org.eclipse.core.runtime.IProgressMonitor;

 import org.eclipse.core.runtime.Platform;

 import org.eclipse.core.runtime.content.IContentType;

@@ -31,10 +37,10 @@
 import org.eclipse.wst.sse.ui.contentassist.ICompletionProposalComputer;

 import org.eclipse.wst.sse.ui.internal.Logger;

 

-public class GenericCompletionProposalComputer implements ICompletionProposalComputer {

+public class GenericCompletionProposalComputer implements ICompletionProposalComputer, IExecutableExtension {

 	List<IContentAssistProcessor> fContentAssistProcessors = null;

 	private String fLastErrorMessage;

-	private static final String fExampleFileName = "filename.html"; //$NON-NLS-1$

+	private String fDefaultFileName = "filename.html"; //$NON-NLS-1$

 

 	public void sessionEnded() {

 		fContentAssistProcessors = null;

@@ -52,10 +58,18 @@
 			viewer = (ISourceViewer) context.getViewer();

 		}

 		if (fContentAssistProcessors == null && viewer != null) {

+			String filename = fDefaultFileName;

+			ITextFileBuffer fileBuffer = FileBuffers.getTextFileBufferManager().getTextFileBuffer(viewer.getDocument());

+			if (fileBuffer != null) {

+				IPath path = fileBuffer.getLocation();

+				if (path != null  ) {

+					filename = path.lastSegment();

+				}

+			}

 			IContentTypeManager contentTypeManager = Platform.getContentTypeManager();

 			ContentAssistProcessorRegistry contentAssistProcessorRegistry = GenericEditorPlugin.getDefault().getContentAssistProcessorRegistry();

 			Set<IContentType> types = new HashSet<>();

-			types.addAll(Arrays.asList(contentTypeManager.findContentTypesFor(fExampleFileName)));

+			types.addAll(Arrays.asList(contentTypeManager.findContentTypesFor(filename)));

 			IContentType contentType = contentTypeManager.getContentType(IContentTypeManager.CT_TEXT);

 			types.add(contentType);

 			try {

@@ -93,7 +107,7 @@
 			IContentTypeManager contentTypeManager = Platform.getContentTypeManager();

 			ContentAssistProcessorRegistry contentAssistProcessorRegistry = GenericEditorPlugin.getDefault().getContentAssistProcessorRegistry();

 			Set<IContentType> types = new HashSet<>();

-			types.addAll(Arrays.asList(contentTypeManager.findContentTypesFor(fExampleFileName)));

+			types.addAll(Arrays.asList(contentTypeManager.findContentTypesFor(fDefaultFileName)));

 			IContentType contentType = contentTypeManager.getContentType(IContentTypeManager.CT_TEXT);

 			types.add(contentType);

 			fContentAssistProcessors = contentAssistProcessorRegistry.getContentAssistProcessors(viewer, null, types);

@@ -119,4 +133,11 @@
 	public String getErrorMessage() {

 		return fLastErrorMessage;

 	}

+

+	@Override

+	public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {

+		if (data instanceof String) {

+			fDefaultFileName = data.toString();

+		}

+	}

 }

diff --git a/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/CompoundQuickAssistProcessor.java b/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/CompoundQuickAssistProcessor.java
index acdcaa0..a9de0b1 100644
--- a/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/CompoundQuickAssistProcessor.java
+++ b/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/CompoundQuickAssistProcessor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
+ * Copyright (c) 2007, 2020 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
@@ -41,69 +41,74 @@
  */
 public class CompoundQuickAssistProcessor implements IQuickAssistProcessor {
 	private final String QUICK_ASSIST_PROCESSOR_EXTENDED_ID = IQuickAssistProcessor.class.getName();
-	private Map fProcessors;
+	private Map<String, Set<IQuickAssistProcessor>> fProcessors;
 	private IQuickAssistProcessor fQuickFixProcessor;
+
 	/**
 	 * list of partition types where extended processors have been installed
 	 */
-	private List fInstalledExtendedContentTypes;
+	private List<String> fInstalledExtendedContentTypes;
 
-	private Set getQuickAssistProcessors(String partitionType) {
+	private Set<IQuickAssistProcessor> getQuickAssistProcessors(IQuickAssistInvocationContext invocationContext, String partitionType) {
 		if (fInstalledExtendedContentTypes == null || !fInstalledExtendedContentTypes.contains(partitionType)) {
 			// get extended quick assist processors that have not already
 			// been set
-			List processors = ExtendedConfigurationBuilder.getInstance().getConfigurations(QUICK_ASSIST_PROCESSOR_EXTENDED_ID, partitionType);
+			List<IQuickAssistProcessor> processors = ExtendedConfigurationBuilder.getInstance().getConfigurations(QUICK_ASSIST_PROCESSOR_EXTENDED_ID, partitionType);
 			if (processors != null && !processors.isEmpty()) {
-				Iterator iter = processors.iterator();
+				Iterator<IQuickAssistProcessor> iter = processors.iterator();
 				while (iter.hasNext()) {
-					IQuickAssistProcessor processor = (IQuickAssistProcessor) iter.next();
+					IQuickAssistProcessor processor = iter.next();
 					setQuickAssistProcessor(partitionType, processor);
 				}
 			}
 			// add partition type to list of extended partition types
 			// installed (regardless of whether or not any extended content
-			// assist processors were installed because dont want to look it
+			// assist processors were installed because don't want to look it
 			// up every time)
-			if (fInstalledExtendedContentTypes == null)
-				fInstalledExtendedContentTypes = new ArrayList();
+			if (fInstalledExtendedContentTypes == null) {
+				fInstalledExtendedContentTypes = new ArrayList<>();
+			}
 			fInstalledExtendedContentTypes.add(partitionType);
 		}
 
-		Set processors = null;
-		if (fProcessors != null)
-			processors = (Set) fProcessors.get(partitionType);
+		Set<IQuickAssistProcessor> processors = null;
+		if (fProcessors != null) {
+			processors = fProcessors.get(partitionType);
+		}
 
 		return processors;
 	}
 
 	/**
-	 * Gets all the quick assist processors relevant to the partion which is
-	 * calcuated from the given document and offset.
+	 * Gets all the quick assist processors relevant to the partition which is
+	 * calculated from the given document and offset.
 	 * 
 	 * @param invocationContext
 	 * @return Set of quick assist processors or null if none exist
 	 */
-	private Set getQuickAssistProcessors(IQuickAssistInvocationContext invocationContext) {
-		Set processsors = null;
+	private Set<IQuickAssistProcessor> getQuickAssistProcessors(IQuickAssistInvocationContext invocationContext) {
+		Set<IQuickAssistProcessor> processors = null;
 
 		ISourceViewer sourceViewer = invocationContext.getSourceViewer();
 		if (sourceViewer != null) {
 			IDocument document = sourceViewer.getDocument();
 			try {
 				String partitionType;
-				if (document != null)
+				if (document != null) {
 					partitionType = TextUtilities.getContentType(document, IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING, invocationContext.getOffset(), true);
-				else
+				}
+				else {
 					partitionType = IDocument.DEFAULT_CONTENT_TYPE;
+				}
 
-				processsors = getQuickAssistProcessors(partitionType);
+				processors = getQuickAssistProcessors(invocationContext, partitionType);
 			}
 			catch (BadLocationException x) {
 				Logger.log(Logger.WARNING_DEBUG, x.getMessage(), x);
 			}
 		}
 
-		return processsors;
+		return processors;
 	}
 
 	/**
@@ -127,9 +132,9 @@
 	 */
 	private void setQuickAssistProcessor(String partitionType, IQuickAssistProcessor processor) {
 		if (fProcessors == null)
-			fProcessors = new HashMap();
+			fProcessors = new HashMap<>();
 
-		Set processors = (Set) fProcessors.get(partitionType);
+		Set<IQuickAssistProcessor> processors = fProcessors.get(partitionType);
 
 		if (processor == null && processors != null) {
 			// removing quick assist processor for this partition type
@@ -139,7 +144,7 @@
 		}
 		else {
 			if (processors == null) {
-				processors = new LinkedHashSet();
+				processors = new LinkedHashSet<>();
 			}
 			processors.add(processor);
 			fProcessors.put(partitionType, processors);
@@ -147,12 +152,12 @@
 	}
 
 	public boolean canAssist(IQuickAssistInvocationContext invocationContext) {
-		Set processors = getQuickAssistProcessors(invocationContext);
+		Set<IQuickAssistProcessor> processors = getQuickAssistProcessors(invocationContext);
 		if (processors != null) {
 			// iterate through list of processors until one processor says
 			// canAssist
-			for (Iterator it = processors.iterator(); it.hasNext();) {
-				IQuickAssistProcessor p = (IQuickAssistProcessor) it.next();
+			for (Iterator<IQuickAssistProcessor> it = processors.iterator(); it.hasNext();) {
+				IQuickAssistProcessor p = it.next();
 				if (p.canAssist(invocationContext))
 					return true;
 			}
@@ -167,7 +172,7 @@
 	}
 
 	public ICompletionProposal[] computeQuickAssistProposals(IQuickAssistInvocationContext invocationContext) {
-		List proposalsList = new ArrayList();
+		List<ICompletionProposal> proposalsList = new ArrayList<>();
 
 		// first get list of fixes
 		IQuickAssistProcessor processor = getQuickFixProcessor();
@@ -178,12 +183,12 @@
 
 		// no fixes, so try adding assists
 		if (proposalsList.isEmpty()) {
-			Set processors = getQuickAssistProcessors(invocationContext);
+			Set<IQuickAssistProcessor> processors = getQuickAssistProcessors(invocationContext);
 			if (processors != null) {
 				// iterate through list of processors until one processor says
 				// canAssist
-				for (Iterator it = processors.iterator(); it.hasNext();) {
-					IQuickAssistProcessor assistProcessor = (IQuickAssistProcessor) it.next();
+				for (Iterator<IQuickAssistProcessor> it = processors.iterator(); it.hasNext();) {
+					IQuickAssistProcessor assistProcessor = it.next();
 					ICompletionProposal[] assistProposals = assistProcessor.computeQuickAssistProposals(invocationContext);
 					if (assistProposals != null && assistProposals.length > 0) {
 						proposalsList.addAll(Arrays.asList(assistProposals));
@@ -202,7 +207,7 @@
 			return null;
 		}
 
-		return (ICompletionProposal[]) proposalsList.toArray(new ICompletionProposal[proposalsList.size()]);
+		return proposalsList.toArray(new ICompletionProposal[proposalsList.size()]);
 	}
 
 	public String getErrorMessage() {
diff --git a/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/QuickFixRegistry.java b/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/QuickFixRegistry.java
index 7826836..197267d 100644
--- a/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/QuickFixRegistry.java
+++ b/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/QuickFixRegistry.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2019 IBM Corporation and others.
+ * Copyright (c) 2008, 2020 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
@@ -40,7 +40,8 @@
 	/**
 	 * Table of queries for marker resolutions
 	 */
-	private Map resolutionQueries = new HashMap();
+	private Map<AnnotationQuery, Map<AnnotationQueryResult, Collection<IConfigurationElement>>> resolutionQueries = new HashMap<>();
+
 	/**
 	 * Resolution class attribute name in configuration element
 	 */
@@ -72,36 +73,36 @@
 	 * @param element
 	 *            the configuration element defining the result
 	 */
-	private void addQuery(Map table, AnnotationQuery query, AnnotationQueryResult result, IConfigurationElement element) {
+	private void addQuery(Map<AnnotationQuery, Map<AnnotationQueryResult, Collection<IConfigurationElement>>> table, AnnotationQuery query, AnnotationQueryResult result, IConfigurationElement element) {
 
 		// See if the query is already in the table
-		Map results = (Map) table.get(query);
+		Map<AnnotationQueryResult, Collection<IConfigurationElement>> results = table.get(query);
 		if (results == null) {
 			// Create a new results table
-			results = new HashMap();
+			results = new HashMap<>();
 
 			// Add the query to the table
 			table.put(query, results);
 		}
 
 		if (results.containsKey(result)) {
-			Collection currentElements = (Collection) results.get(result);
+			Collection<IConfigurationElement> currentElements = results.get(result);
 			currentElements.add(element);
 		}
 		else {
-			Collection elements = new HashSet();
-			elements.add(element);
+			Collection<IConfigurationElement> configElements = new HashSet<>();
+			configElements.add(element);
 
 			// Add the new result
-			results.put(result, elements);
+			results.put(result, configElements);
 		}
 	}
 
 	public IQuickAssistProcessor[] getQuickFixProcessors(Annotation anno) {
 		// Collect all matches
 		List<IQuickAssistProcessor> processors = new ArrayList<>();
-		for (Iterator iter = resolutionQueries.keySet().iterator(); iter.hasNext();) {
-			AnnotationQuery query = (AnnotationQuery) iter.next();
+		for (Iterator<AnnotationQuery> iter = resolutionQueries.keySet().iterator(); iter.hasNext();) {
+			AnnotationQuery query = iter.next();
 			AnnotationQueryResult result = null;
 			try {
 				/* AnnotationQuery objects are contributed by extension point */
@@ -112,13 +113,13 @@
 			}
 			if (result != null) {
 				// See if a matching result is registered
-				Map resultsTable = (Map) resolutionQueries.get(query);
+				Map<AnnotationQueryResult, Collection<IConfigurationElement>> resultsTable = resolutionQueries.get(query);
 
 				if (resultsTable.containsKey(result)) {
 
-					Iterator elements = ((Collection) resultsTable.get(result)).iterator();
+					Iterator<IConfigurationElement> elements = resultsTable.get(result).iterator();
 					while (elements.hasNext()) {
-						IConfigurationElement element = (IConfigurationElement) elements.next();
+						IConfigurationElement element = elements.next();
 
 						IQuickAssistProcessor processor = null;
 						try {
diff --git a/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/SourceValidationQuickAssistProcessor.java b/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/SourceValidationQuickAssistProcessor.java
index a2ce9ae..09dde2a 100644
--- a/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/SourceValidationQuickAssistProcessor.java
+++ b/core/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/SourceValidationQuickAssistProcessor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2020 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
@@ -53,23 +53,23 @@
 		int documentOffset = quickAssistContext.getOffset();
 		int length = viewer != null ? viewer.getSelectedRange().y : 0;
 
-		IAnnotationModel model = viewer.getAnnotationModel();
+		IAnnotationModel model = viewer != null ? viewer.getAnnotationModel() : null;
 		if (model == null)
 			return null;
 
-		List allProposals = new ArrayList();
+		List<ICompletionProposal> allProposals = new ArrayList<>();
 		if (model instanceof IAnnotationModelExtension2) {
-			Iterator iter = ((IAnnotationModelExtension2) model).getAnnotationIterator(documentOffset, length, true, true);
+			Iterator<Annotation> iter = ((IAnnotationModelExtension2) model).getAnnotationIterator(documentOffset, length, true, true);
 			while (iter.hasNext()) {
-				List processors = new ArrayList();
-				Annotation anno = (Annotation) iter.next();
+				List<IQuickAssistProcessor> processors = new ArrayList<>();
+				Annotation anno = iter.next();
 				if (canFix(anno)) {
 					// first check to see if annotation already has a quick
 					// fix processor attached to it
 					if (anno instanceof TemporaryAnnotation) {
 						Object o = ((TemporaryAnnotation) anno).getAdditionalFixInfo();
 						if (o instanceof IQuickAssistProcessor) {
-							processors.add(o);
+							processors.add((IQuickAssistProcessor) o);
 						}
 					}
 
@@ -78,7 +78,7 @@
 					processors.addAll(Arrays.asList(registry.getQuickFixProcessors(anno)));
 
 					// set up context
-					Map attributes = null;
+					Map<String, String> attributes = null;
 					if (anno instanceof TemporaryAnnotation) {
 						attributes = ((TemporaryAnnotation) anno).getAttributes();
 					}
@@ -87,8 +87,8 @@
 
 					// call each processor
 					for (int i = 0; i < processors.size(); ++i) {
-						List proposals = new ArrayList();
-						collectProposals((IQuickAssistProcessor) processors.get(i), anno, sseContext, proposals);
+						List<ICompletionProposal> proposals = new ArrayList<>();
+						collectProposals(processors.get(i), anno, sseContext, proposals);
 
 						if (proposals.size() > 0) {
 							allProposals.addAll(proposals);
@@ -102,10 +102,10 @@
 		if (allProposals.isEmpty())
 			return null;
 
-		return (ICompletionProposal[]) allProposals.toArray(new ICompletionProposal[allProposals.size()]);
+		return allProposals.toArray(new ICompletionProposal[allProposals.size()]);
 	}
 
-	private void collectProposals(IQuickAssistProcessor processor, Annotation annotation, IQuickAssistInvocationContext invocationContext, List proposalsList) {
+	private void collectProposals(IQuickAssistProcessor processor, Annotation annotation, IQuickAssistInvocationContext invocationContext, List<ICompletionProposal> proposalsList) {
 		ICompletionProposal[] proposals = processor.computeQuickAssistProposals(invocationContext);
 		if (proposals != null && proposals.length > 0) {
 			proposalsList.addAll(Arrays.asList(proposals));
diff --git a/site/category.xml b/site/category.xml
index 923b40e..3655397 100644
--- a/site/category.xml
+++ b/site/category.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-    Copyright (c) 2015, 2018 IBM Corporation and others.
+    Copyright (c) 2015, 2020 IBM Corporation and others.
     This program and the accompanying materials
     are made available under the terms of the Eclipse Public License 2.0
     which accompanies this distribution, and is available at
@@ -50,11 +50,11 @@
   <bundle id="org.eclipse.wtp.web.capabilities"><category name="wtp.bundles"/></bundle>
   <bundle id="org.eclipse.wtp.xml.capabilities"><category name="wtp.bundles"/></bundle>
 
-  <feature id="org.eclipse.wst.web_js_support.feature"><category name="wtp.js_sopport"/></feature>
-  <feature id="org.eclipse.wst.web_js_support_sdk.feature"><category name="wtp.js_sopport.sdk"/></feature>
+  <feature id="org.eclipse.wst.web_js_support.feature"><category name="wtp.js_support"/></feature>
+  <feature id="org.eclipse.wst.web_js_support_sdk.feature"><category name="wtp.js_support.sdk"/></feature>
 
-  <bundle id="org.eclipse.wst.jsdt.web.support.jsp"><category name="wtp.js_sopport"/></bundle>
-  <bundle id="org.eclipse.wtp.javascript.capabilities"><category name="wtp.js_sopport"/></bundle>
+  <bundle id="org.eclipse.wst.jsdt.web.support.jsp"><category name="wtp.js_support"/></bundle>
+  <bundle id="org.eclipse.wtp.javascript.capabilities"><category name="wtp.js_support"/></bundle>
   
   <!-- sources -->
 
@@ -76,11 +76,11 @@
   <feature id="org.eclipse.wst.xml.xpath2.processor.sdk.feature.source"><category name="wtp.sdk.sources"/></feature>
   <bundle id="org.eclipse.wst.xml.xpath2.processor.sdk.doc.source"><category name="wtp.bundles.sdk.sources"/></bundle>
 
-  <feature id="org.eclipse.wst.web_js_support.feature.source"><category name="wtp.js_sopport.sources"/></feature>
-  <feature id="org.eclipse.wst.web_js_support_sdk.feature.source"><category name="wtp.js_sopport.sdk.sources"/></feature>
+  <feature id="org.eclipse.wst.web_js_support.feature.source"><category name="wtp.js_support.sources"/></feature>
+  <feature id="org.eclipse.wst.web_js_support_sdk.feature.source"><category name="wtp.js_support.sdk.sources"/></feature>
   
-  <bundle id="org.eclipse.wst.jsdt.web.support.jsp.source"><category name="wtp.js_sopport.sources"/></bundle>
-  <bundle id="org.eclipse.wtp.javascript.capabilities.source"><category name="wtp.js_sopport.sources"/></bundle>
+  <bundle id="org.eclipse.wst.jsdt.web.support.jsp.source"><category name="wtp.js_support.sources"/></bundle>
+  <bundle id="org.eclipse.wtp.javascript.capabilities.source"><category name="wtp.js_support.sources"/></bundle>
 
   <!-- tests -->
 
@@ -90,7 +90,7 @@
   <feature id="org.eclipse.wst.xsl_tests.feature.source"><category name="wtp.tests"/></feature>
   <bundle id="org.eclipse.wst.xml.xpath2.wtptypes.tests.source"><category name="wtp.tests"/></bundle>
 
-  <feature id="org.eclipse.wst.web_js_support_tests.feature.source"><category name="wtp.js_sopport.tests"/></feature>
+  <feature id="org.eclipse.wst.web_js_support_tests.feature.source"><category name="wtp.js_support.tests"/></feature>
   
   <!-- bundles -->
 
@@ -113,9 +113,9 @@
   <category-def name="wtp.bundles.sources" label="Web Tools Platform (WTP) Bundle Sources"><description>These bundles provide sources.</description></category-def>
   <category-def name="wtp.bundles.sdk.sources" label="Web Tools Platform SDK (WTP SDK) Bundle Sources"><description>These bundles provide sources.</description></category-def>
 
-  <category-def name="wtp.js_sopport" label="Web Tools Platform (WTP) JavaScript Support"><description>These bundles are most likely include in features, but are provided here for completeness.</description></category-def>
+  <category-def name="wtp.js_support" label="Web Tools Platform (WTP) JavaScript Support"><description>These bundles are most likely include in features, but are provided here for completeness.</description></category-def>
   <category-def name="wtp.js_support.sdk" label="Web Tools Platform SDK (WTP SDK) JavaScript Support"><description>These bundles are most likely include in features, but are provided here for completeness.</description></category-def>
 
-  <category-def name="wtp.js_sopport.sources" label="Web Tools Platform (WTP) JavaScript Support Sources"><description>These bundles provide sources.</description></category-def>
-  <category-def name="wtp.js_sopport.sdk.sources" label="Web Tools Platform SDK (WTP SDK) JavaScript Support Sources"><description>These bundles provide sources.</description></category-def>
+  <category-def name="wtp.js_support.sources" label="Web Tools Platform (WTP) JavaScript Support Sources"><description>These bundles provide sources.</description></category-def>
+  <category-def name="wtp.js_support.sdk.sources" label="Web Tools Platform SDK (WTP SDK) JavaScript Support Sources"><description>These bundles provide sources.</description></category-def>
 </site>
diff --git a/web/bundles/org.eclipse.wst.html.ui/plugin.xml b/web/bundles/org.eclipse.wst.html.ui/plugin.xml
index 1763e02..3df0ea0 100755
--- a/web/bundles/org.eclipse.wst.html.ui/plugin.xml
+++ b/web/bundles/org.eclipse.wst.html.ui/plugin.xml
@@ -678,7 +678,7 @@
     <proposalComputer
           activate="false"
           categoryId="org.eclipse.wst.html.ui.proposalCategory.generic"
-          class="org.eclipse.wst.sse.ui.internal.contentassist.GenericCompletionProposalComputer"
+          class="org.eclipse.wst.sse.ui.internal.contentassist.GenericCompletionProposalComputer:example.html"
           id="org.eclipse.wst.html.ui.proposalComputer.generic">
        <contentType
              id="org.eclipse.wst.html.core.htmlsource">
diff --git a/web/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/search/JSPSearchTests.java b/web/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/search/JSPSearchTests.java
index fd3e913..34b93f8 100644
--- a/web/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/search/JSPSearchTests.java
+++ b/web/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/search/JSPSearchTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2018 IBM Corporation and others.
+ * Copyright (c) 2004, 2020 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
@@ -48,8 +48,8 @@
 	 */
 	class TestJspSearchRequestor extends BasicJSPSearchRequestor {
 
-		private List expected = null;
-		List actual = null;
+		List expected = null;
+		List<TestSearchMatch> actual = null;
 
 		public TestJspSearchRequestor() {
 			this.expected = new ArrayList();