From f047b8b1303147523a1780e7f2b05f29ff0b157a Mon Sep 17 00:00:00 2001 From: meier123456 <140712436+meier123456@users.noreply.github.com> Date: Wed, 30 Aug 2023 09:14:38 +0200 Subject: [PATCH] Configuration option for CATALINA_BASE (#109) --- .../idea/plugins/tomcat/conf/TomcatRunConfiguration.java | 7 +++++++ .../idea/plugins/tomcat/conf/TomcatRunnerSettingsForm.java | 4 ++++ .../com/poratu/idea/plugins/tomcat/utils/PluginUtils.java | 6 +++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/poratu/idea/plugins/tomcat/conf/TomcatRunConfiguration.java b/src/main/java/com/poratu/idea/plugins/tomcat/conf/TomcatRunConfiguration.java index 184c2f9..a9255ca 100644 --- a/src/main/java/com/poratu/idea/plugins/tomcat/conf/TomcatRunConfiguration.java +++ b/src/main/java/com/poratu/idea/plugins/tomcat/conf/TomcatRunConfiguration.java @@ -212,6 +212,8 @@ public void setTomcatInfo(TomcatInfo tomcatInfo) { tomcatOptions.setTomcatInfo(tomcatInfo); } + public String getCatalinaBase() { return tomcatOptions.getCatalinaBase(); } + public void setCatalinaBase(String catalinaBase) { tomcatOptions.setCatalinaBase(catalinaBase); } public String getDocBase() { return tomcatOptions.getDocBase(); } @@ -296,6 +298,7 @@ public RunConfiguration clone() { private static class TomcatRunConfigurationOptions implements Serializable { private TomcatInfo tomcatInfo; + private String catalinaBase; private String docBase; private String contextPath; private Integer port = 8080; @@ -314,6 +317,10 @@ public void setTomcatInfo(TomcatInfo tomcatInfo) { this.tomcatInfo = tomcatInfo; } + @Nullable + public String getCatalinaBase() { return this.catalinaBase; } + public void setCatalinaBase(String catalinaBase) { this.catalinaBase = catalinaBase; } + @Nullable public String getDocBase() { return docBase; diff --git a/src/main/java/com/poratu/idea/plugins/tomcat/conf/TomcatRunnerSettingsForm.java b/src/main/java/com/poratu/idea/plugins/tomcat/conf/TomcatRunnerSettingsForm.java index da3be62..3957be7 100644 --- a/src/main/java/com/poratu/idea/plugins/tomcat/conf/TomcatRunnerSettingsForm.java +++ b/src/main/java/com/poratu/idea/plugins/tomcat/conf/TomcatRunnerSettingsForm.java @@ -54,6 +54,7 @@ public class TomcatRunnerSettingsForm implements Disposable { private JPanel mainPanel; private final JPanel tomcatField = new JPanel(new BorderLayout()); private final TomcatComboBox tomcatComboBox = new TomcatComboBox(); + private final JTextField catalinaBaseField = new JTextField(); private final TextFieldWithBrowseButton docBaseField = new TextFieldWithBrowseButton(); private final JPanel modulesComboBoxPanel = new JPanel(new GridBagLayout()); private final ModulesComboBox modulesComboBox = new ModulesComboBox(); @@ -156,6 +157,7 @@ protected void textChanged(@NotNull DocumentEvent e) { private void buildForm() { FormBuilder builder = FormBuilder.createFormBuilder() .addLabeledComponent("Tomcat server:", tomcatField) + .addLabeledComponent("CATALINA_BASE:", catalinaBaseField) .addLabeledComponent("Deployment directory:", docBaseField) .addLabeledComponent("Use classpath of module:", modulesComboBoxPanel) .addLabeledComponent("Context path:", contextPathField) @@ -175,6 +177,7 @@ public JPanel getMainPanel() { public void resetFrom(TomcatRunConfiguration configuration) { tomcatComboBox.setSelectedItem(configuration.getTomcatInfo()); + catalinaBaseField.setText(configuration.getCatalinaBase()); docBaseField.setText(configuration.getDocBase()); modulesComboBox.setSelectedModule(configuration.getModule()); contextPathField.setText(configuration.getContextPath()); @@ -192,6 +195,7 @@ public void resetFrom(TomcatRunConfiguration configuration) { public void applyTo(TomcatRunConfiguration configuration) throws ConfigurationException { try { configuration.setTomcatInfo((TomcatInfo) tomcatComboBox.getSelectedItem()); + configuration.setCatalinaBase(catalinaBaseField.getText()); configuration.setDocBase(docBaseField.getText()); configuration.setModule(modulesComboBox.getSelectedModule()); configuration.setContextPath(contextPathField.getText()); diff --git a/src/main/java/com/poratu/idea/plugins/tomcat/utils/PluginUtils.java b/src/main/java/com/poratu/idea/plugins/tomcat/utils/PluginUtils.java index b5e0fae..d0cca8f 100644 --- a/src/main/java/com/poratu/idea/plugins/tomcat/utils/PluginUtils.java +++ b/src/main/java/com/poratu/idea/plugins/tomcat/utils/PluginUtils.java @@ -21,6 +21,7 @@ import com.poratu.idea.plugins.tomcat.setting.TomcatInfo; import com.poratu.idea.plugins.tomcat.setting.TomcatServerManagerState; import com.poratu.idea.plugins.tomcat.setting.TomcatServersConfigurable; +import org.apache.commons.lang.StringUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -99,7 +100,10 @@ public static void chooseTomcat(UnaryOperator nameGenerator, Consumer