All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.liferay.source.formatter.check.BaseJakartaTransformCheck Maven / Gradle / Ivy

There is a newer version: 1.0.739
Show newest version
/**
 * SPDX-FileCopyrightText: (c) 2025 Liferay, Inc. https://liferay.com
 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
 */

package com.liferay.source.formatter.check;

import com.liferay.portal.kernel.util.StringUtil;

import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;

/**
 * @author Alan Huang
 */
public abstract class BaseJakartaTransformCheck extends BaseFileCheck {

	protected String replace(String value) {
		for (Map.Entry entry : _replacementDashMap.entrySet()) {
			value = StringUtil.replace(value, entry.getKey(), entry.getValue());
		}

		for (Map.Entry entry : _replacementDotMap.entrySet()) {
			value = StringUtil.replace(value, entry.getKey(), entry.getValue());
		}

		for (Map.Entry entry :
				_replacementSlashMap.entrySet()) {

			value = StringUtil.replace(value, entry.getKey(), entry.getValue());
		}

		return StringUtil.replace(value, "JAVAX_", "JAKARTA_");
	}

	protected String replaceTaglibURIs(String content) {
		return StringUtil.replace(
			content,
			new String[] {
				"http://java.sun.com/jsp/jstl/core",
				"http://java.sun.com/jsp/jstl/fmt",
				"http://java.sun.com/jsp/jstl/functions",
				"http://java.sun.com/jsp/jstl/sql",
				"http://java.sun.com/jsp/jstl/xml"
			},
			new String[] {
				"jakarta.tags.core", "jakarta.tags.fmt",
				"jakarta.tags.functions", "jakarta.tags.sql", "jakarta.tags.xml"
			});
	}

	private static final Set _preservedSubpackageNames = new HashSet<>(
		Arrays.asList("annotation.processing", "transaction.xa"));
	private static final Map _replacementDashMap =
		new LinkedHashMap<>();
	private static final Map _replacementDotMap =
		new LinkedHashMap<>();
	private static final Map _replacementSlashMap =
		new LinkedHashMap<>();
	private static final Set _subpackageNames = new HashSet<>(
		Arrays.asList(
			"activation", "annotation", "batch", "decorator", "ejb", "el",
			"enterprise", "faces", "inject", "interceptor", "jms", "json",
			"jws", "mail", "mvc", "persistence", "portlet", "resource",
			"security.auth.message", "security.enterprise", "security.jacc",
			"servlet", "transaction", "validation", "websocket", "ws.rs",
			"xml.bind", "xml.soap", "xml.ws"));

	static {
		_subpackageNames.forEach(
			subpackageName -> {
				String javaxPackage = "javax." + subpackageName;
				String jakartaPackage = "jakarta." + subpackageName;

				_replacementDashMap.put(
					StringUtil.replace(javaxPackage, '.', '-'),
					StringUtil.replace(jakartaPackage, '.', '-'));
				_replacementDotMap.put(javaxPackage, jakartaPackage);
				_replacementSlashMap.put(
					StringUtil.replace(javaxPackage, '.', '/'),
					StringUtil.replace(jakartaPackage, '.', '/'));
			});

		// Order matters, preserved subpackage names need to be put into
		// replacement map later

		_preservedSubpackageNames.forEach(
			preservedSubpackageName -> {
				String preservedJavaxPackage =
					"javax." + preservedSubpackageName;
				String preservedJakartaPackage =
					"jakarta." + preservedSubpackageName;

				_replacementDashMap.put(
					StringUtil.replace(preservedJakartaPackage, '.', '-'),
					StringUtil.replace(preservedJavaxPackage, '.', '-'));
				_replacementDotMap.put(
					preservedJakartaPackage, preservedJavaxPackage);
				_replacementSlashMap.put(
					StringUtil.replace(preservedJakartaPackage, '.', '/'),
					StringUtil.replace(preservedJavaxPackage, '.', '/'));
			});

		_replacementDashMap.put(
			"X-JAVAX-PORTLET-NAMESPACED-RESPONSE",
			"X-JAKARTA-PORTLET-NAMESPACED-RESPONSE");
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy