From b2ff4bb56b21af384e5602ac68d80125b8da74ca Mon Sep 17 00:00:00 2001 From: Aleksandr Mashchenko Date: Tue, 28 Nov 2017 22:47:46 +0200 Subject: [PATCH] WW-4875 Add spring constant configuration --- .../struts2/spring/SpringConstants.java | 25 +++++++ .../spring/StrutsSpringObjectFactory.java | 6 +- .../config/entities/SpringConstantConfig.java | 70 +++++++++++++++++++ 3 files changed, 98 insertions(+), 3 deletions(-) create mode 100644 plugins/spring/src/main/java/org/apache/struts2/spring/SpringConstants.java create mode 100644 plugins/spring/src/main/java/org/apache/struts2/spring/config/entities/SpringConstantConfig.java diff --git a/plugins/spring/src/main/java/org/apache/struts2/spring/SpringConstants.java b/plugins/spring/src/main/java/org/apache/struts2/spring/SpringConstants.java new file mode 100644 index 000000000..f174e2ff6 --- /dev/null +++ b/plugins/spring/src/main/java/org/apache/struts2/spring/SpringConstants.java @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.struts2.spring; + +public class SpringConstants { + public static final String SPRING_CLASS_RELOADING_WATCH_LIST = "struts.class.reloading.watchList"; + public static final String SPRING_CLASS_RELOADING_ACCEPT_CLASSES = "struts.class.reloading.acceptClasses"; + public static final String SPRING_CLASS_RELOADING_RELOAD_CONFIG = "struts.class.reloading.reloadConfig"; +} diff --git a/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java b/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java index 8d6c229a7..157518c27 100644 --- a/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java +++ b/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java @@ -94,9 +94,9 @@ public class StrutsSpringObjectFactory extends SpringObjectFactory { return; } - String watchList = container.getInstance(String.class, "struts.class.reloading.watchList"); - String acceptClasses = container.getInstance(String.class, "struts.class.reloading.acceptClasses"); - String reloadConfig = container.getInstance(String.class, "struts.class.reloading.reloadConfig"); + String watchList = container.getInstance(String.class, SpringConstants.SPRING_CLASS_RELOADING_WATCH_LIST); + String acceptClasses = container.getInstance(String.class, SpringConstants.SPRING_CLASS_RELOADING_ACCEPT_CLASSES); + String reloadConfig = container.getInstance(String.class, SpringConstants.SPRING_CLASS_RELOADING_RELOAD_CONFIG); if ("true".equals(devMode) && StringUtils.isNotBlank(watchList) diff --git a/plugins/spring/src/main/java/org/apache/struts2/spring/config/entities/SpringConstantConfig.java b/plugins/spring/src/main/java/org/apache/struts2/spring/config/entities/SpringConstantConfig.java new file mode 100644 index 000000000..d948490ba --- /dev/null +++ b/plugins/spring/src/main/java/org/apache/struts2/spring/config/entities/SpringConstantConfig.java @@ -0,0 +1,70 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.struts2.spring.config.entities; + +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.regex.Pattern; + +import org.apache.commons.lang3.StringUtils; +import org.apache.struts2.config.entities.ConstantConfig; +import org.apache.struts2.spring.SpringConstants; + +public class SpringConstantConfig extends ConstantConfig { + private List classReloadingWatchList; + private Set classReloadingAcceptClasses; + private Boolean classReloadingReloadConfig; + + @Override + public Map getAllAsStringsMap() { + Map map = super.getAllAsStringsMap(); + + map.put(SpringConstants.SPRING_CLASS_RELOADING_WATCH_LIST, StringUtils.join(classReloadingWatchList, ',')); + map.put(SpringConstants.SPRING_CLASS_RELOADING_ACCEPT_CLASSES, StringUtils.join(classReloadingAcceptClasses, ',')); + map.put(SpringConstants.SPRING_CLASS_RELOADING_RELOAD_CONFIG, Objects.toString(classReloadingReloadConfig, null)); + + return map; + } + + public List getClassReloadingWatchList() { + return classReloadingWatchList; + } + + public void setClassReloadingWatchList(List classReloadingWatchList) { + this.classReloadingWatchList = classReloadingWatchList; + } + + public Set getClassReloadingAcceptClasses() { + return classReloadingAcceptClasses; + } + + public void setClassReloadingAcceptClasses(Set classReloadingAcceptClasses) { + this.classReloadingAcceptClasses = classReloadingAcceptClasses; + } + + public Boolean getClassReloadingReloadConfig() { + return classReloadingReloadConfig; + } + + public void setClassReloadingReloadConfig(Boolean classReloadingReloadConfig) { + this.classReloadingReloadConfig = classReloadingReloadConfig; + } +}