diff --git a/libresonic-assembly/pom.xml b/libresonic-assembly/pom.xml
index 7f2b49bc..d77e8e89 100644
--- a/libresonic-assembly/pom.xml
+++ b/libresonic-assembly/pom.xml
@@ -9,7 +9,7 @@
org.libresonic.player
libresonic
- 6.1.beta2
+ 6.2.beta1.spring4
diff --git a/libresonic-booter/pom.xml b/libresonic-booter/pom.xml
index f4a68915..8831c500 100644
--- a/libresonic-booter/pom.xml
+++ b/libresonic-booter/pom.xml
@@ -8,7 +8,7 @@
org.libresonic.player
libresonic
- 6.1.beta2
+ 6.2.beta1.spring4
diff --git a/libresonic-installer-debian/pom.xml b/libresonic-installer-debian/pom.xml
index ac53d340..39baa5f9 100644
--- a/libresonic-installer-debian/pom.xml
+++ b/libresonic-installer-debian/pom.xml
@@ -9,7 +9,7 @@
org.libresonic.player
libresonic
- 6.1.beta2
+ 6.2.beta1.spring4
diff --git a/libresonic-installer-mac/pom.xml b/libresonic-installer-mac/pom.xml
index 432d5085..a20abb07 100644
--- a/libresonic-installer-mac/pom.xml
+++ b/libresonic-installer-mac/pom.xml
@@ -9,7 +9,7 @@
org.libresonic.player
libresonic
- 6.1.beta2
+ 6.2.beta1.spring4
diff --git a/libresonic-installer-rpm/pom.xml b/libresonic-installer-rpm/pom.xml
index 74e86211..794d29b3 100644
--- a/libresonic-installer-rpm/pom.xml
+++ b/libresonic-installer-rpm/pom.xml
@@ -9,7 +9,7 @@
org.libresonic.player
libresonic
- 6.1.beta2
+ 6.2.beta1.spring4
diff --git a/libresonic-installer-windows/pom.xml b/libresonic-installer-windows/pom.xml
index e9567211..b213a361 100644
--- a/libresonic-installer-windows/pom.xml
+++ b/libresonic-installer-windows/pom.xml
@@ -9,7 +9,7 @@
org.libresonic.player
libresonic
- 6.1.beta2
+ 6.2.beta1.spring4
diff --git a/libresonic-main/pom.xml b/libresonic-main/pom.xml
index bd604eba..910b1119 100644
--- a/libresonic-main/pom.xml
+++ b/libresonic-main/pom.xml
@@ -9,7 +9,7 @@
org.libresonic.player
libresonic
- 6.1.beta2
+ 6.2.beta1.spring4
@@ -332,33 +332,28 @@
org.apache.cxf
- cxf-rt-frontend-jaxws
+ cxf-core
${cxf.version}
org.apache.cxf
- cxf-rt-bindings-soap
+ cxf-rt-frontend-jaxws
${cxf.version}
org.apache.cxf
- cxf-rt-databinding-jaxb
+ cxf-rt-bindings-soap
${cxf.version}
org.apache.cxf
- cxf-api
+ cxf-rt-databinding-jaxb
${cxf.version}
-
- org.apache.cxf
- cxf-common-utilities
- ${cxf.version}
-
diff --git a/libresonic-main/src/main/java/org/libresonic/player/command/PasswordSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/PasswordSettingsCommand.java
deleted file mode 100644
index 8f12e554..00000000
--- a/libresonic-main/src/main/java/org/libresonic/player/command/PasswordSettingsCommand.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- This file is part of Libresonic.
-
- Libresonic is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Libresonic is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Libresonic. If not, see .
-
- Copyright 2016 (C) Libresonic Authors
- Based upon Subsonic, Copyright 2009 (C) Sindre Mehus
- */
-package org.libresonic.player.command;
-
-import org.libresonic.player.controller.*;
-
-/**
- * Command used in {@link PasswordSettingsController}.
- *
- * @author Sindre Mehus
- */
-public class PasswordSettingsCommand {
- private String username;
- private String password;
- private String confirmPassword;
- private boolean ldapAuthenticated;
- private boolean toast;
-
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getConfirmPassword() {
- return confirmPassword;
- }
-
- public void setConfirmPassword(String confirmPassword) {
- this.confirmPassword = confirmPassword;
- }
-
- public boolean isLdapAuthenticated() {
- return ldapAuthenticated;
- }
-
- public void setLdapAuthenticated(boolean ldapAuthenticated) {
- this.ldapAuthenticated = ldapAuthenticated;
- }
-
- public boolean isToast() {
- return toast;
- }
-
- public void setToast(boolean toast) {
- this.toast = toast;
- }
-}
\ No newline at end of file
diff --git a/libresonic-main/src/main/java/org/libresonic/player/command/PremiumSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/PremiumSettingsCommand.java
deleted file mode 100644
index f20014dc..00000000
--- a/libresonic-main/src/main/java/org/libresonic/player/command/PremiumSettingsCommand.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- This file is part of Libresonic.
-
- Libresonic is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Libresonic is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Libresonic. If not, see .
-
- Copyright 2016 (C) Libresonic Authors
- Based upon Subsonic, Copyright 2009 (C) Sindre Mehus
- */
-package org.libresonic.player.command;
-
-import org.apache.commons.lang.StringUtils;
-
-import org.libresonic.player.controller.PremiumSettingsController;
-import org.libresonic.player.domain.LicenseInfo;
-import org.libresonic.player.domain.User;
-
-/**
- * Command used in {@link PremiumSettingsController}.
- *
- * @author Sindre Mehus
- */
-public class PremiumSettingsCommand {
-
- private String path;
- private String brand;
- private LicenseInfo licenseInfo;
- private String licenseCode;
- private boolean forceChange;
- private boolean submissionError;
- private User user;
- private boolean toast;
-
- public String getPath() {
- return path;
- }
-
- public void setPath(String path) {
- this.path = path;
- }
-
- public String getBrand() {
- return brand;
- }
-
- public void setBrand(String brand) {
- this.brand = brand;
- }
-
- public LicenseInfo getLicenseInfo() {
- return licenseInfo;
- }
-
- public String getLicenseCode() {
- return licenseCode;
- }
-
- public void setLicenseCode(String licenseCode) {
- this.licenseCode = StringUtils.trimToNull(licenseCode);
- }
-
- public void setLicenseInfo(LicenseInfo licenseInfo) {
- this.licenseInfo = licenseInfo;
- }
-
- public boolean isForceChange() {
- return forceChange;
- }
-
- public void setForceChange(boolean forceChange) {
- this.forceChange = forceChange;
- }
-
- public boolean isSubmissionError() {
- return submissionError;
- }
-
- public void setSubmissionError(boolean submissionError) {
- this.submissionError = submissionError;
- }
-
- public void setUser(User user) {
- this.user = user;
- }
-
- public User getUser() {
- return user;
- }
-
- public void setToast(boolean toast) {
- this.toast = toast;
- }
-
- public boolean isToast() {
- return toast;
- }
-}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java
index 3622bedc..6cbc2392 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java
@@ -19,24 +19,33 @@
*/
package org.libresonic.player.controller;
+import org.apache.commons.lang.StringUtils;
import org.libresonic.player.command.AdvancedSettingsCommand;
import org.libresonic.player.service.SettingsService;
-import org.springframework.web.servlet.mvc.SimpleFormController;
-import org.apache.commons.lang.StringUtils;
-
-import javax.servlet.http.HttpServletRequest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.servlet.ModelAndView;
/**
* Controller for the page used to administrate advanced settings.
*
* @author Sindre Mehus
*/
-public class AdvancedSettingsController extends SimpleFormController {
+@Controller
+@RequestMapping("/advancedSettings")
+public class AdvancedSettingsController {
+ @Autowired
private SettingsService settingsService;
- @Override
- protected Object formBackingObject(HttpServletRequest request) throws Exception {
+ // TODO replace with @GetMapping in Spring 4
+ @RequestMapping(method = RequestMethod.GET)
+ protected String formBackingObject(Model model) throws Exception {
AdvancedSettingsCommand command = new AdvancedSettingsCommand();
command.setDownloadLimit(String.valueOf(settingsService.getDownloadBitrateLimit()));
command.setUploadLimit(String.valueOf(settingsService.getUploadBitrateLimit()));
@@ -53,12 +62,12 @@ public class AdvancedSettingsController extends SimpleFormController {
command.setSmtpUser(settingsService.getSmtpUser());
command.setSmtpFrom(settingsService.getSmtpFrom());
- return command;
+ model.addAttribute("command", command);
+ return "advancedSettings";
}
- @Override
- protected void doSubmitAction(Object comm) throws Exception {
- AdvancedSettingsCommand command = (AdvancedSettingsCommand) comm;
+ @RequestMapping(method = RequestMethod.POST)
+ protected String doSubmitAction(@ModelAttribute AdvancedSettingsCommand command,Model model) throws Exception {
command.setToast(true);
command.setReloadNeeded(false);
@@ -90,10 +99,8 @@ public class AdvancedSettingsController extends SimpleFormController {
settingsService.setSmtpPassword(command.getSmtpPassword());
}
- settingsService.save();
+ model.addAttribute("command", command);
+ return "advancedSettings";
}
- public void setSettingsService(SettingsService settingsService) {
- this.settingsService = settingsService;
- }
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/GeneralSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/GeneralSettingsController.java
index 9c1b5ffb..b549ee56 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/controller/GeneralSettingsController.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/controller/GeneralSettingsController.java
@@ -19,26 +19,37 @@
*/
package org.libresonic.player.controller;
-import java.util.Locale;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.web.servlet.mvc.SimpleFormController;
-
import org.libresonic.player.command.GeneralSettingsCommand;
import org.libresonic.player.domain.Theme;
import org.libresonic.player.service.SettingsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import java.util.Locale;
/**
* Controller for the page used to administrate general settings.
*
* @author Sindre Mehus
*/
-public class GeneralSettingsController extends SimpleFormController {
+@Controller
+@RequestMapping("/generalSettings")
+public class GeneralSettingsController {
+ @Autowired
private SettingsService settingsService;
- protected Object formBackingObject(HttpServletRequest request) throws Exception {
+ @RequestMapping(method = RequestMethod.GET)
+ protected String displayForm() throws Exception {
+ return "generalSettings";
+ }
+
+ @ModelAttribute
+ protected void formBackingObject(Model model) throws Exception {
GeneralSettingsCommand command = new GeneralSettingsCommand();
command.setCoverArtFileTypes(settingsService.getCoverArtFileTypes());
command.setIgnoredArticles(settingsService.getIgnoredArticles());
@@ -76,12 +87,11 @@ public class GeneralSettingsController extends SimpleFormController {
}
command.setLocales(localeStrings);
- return command;
-
+ model.addAttribute("command",command);
}
- protected void doSubmitAction(Object comm) throws Exception {
- GeneralSettingsCommand command = (GeneralSettingsCommand) comm;
+ @RequestMapping(method = RequestMethod.POST)
+ protected String doSubmitAction(@ModelAttribute("command") GeneralSettingsCommand command, Model model) throws Exception {
int themeIndex = Integer.parseInt(command.getThemeIndex());
Theme theme = settingsService.getAvailableThemes()[themeIndex];
@@ -112,9 +122,8 @@ public class GeneralSettingsController extends SimpleFormController {
settingsService.setThemeId(theme.getId());
settingsService.setLocale(locale);
settingsService.save();
- }
- public void setSettingsService(SettingsService settingsService) {
- this.settingsService = settingsService;
+ return "redirect:generalSettings.view";
}
+
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/LoginController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/LoginController.java
new file mode 100644
index 00000000..1c74da4d
--- /dev/null
+++ b/libresonic-main/src/main/java/org/libresonic/player/controller/LoginController.java
@@ -0,0 +1,66 @@
+package org.libresonic.player.controller;
+
+import org.libresonic.player.Logger;
+import org.libresonic.player.domain.User;
+import org.libresonic.player.service.PlaylistService;
+import org.libresonic.player.service.SecurityService;
+import org.libresonic.player.service.SettingsService;
+import org.libresonic.player.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.view.RedirectView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Spring MVC Controller that serves the login page.
+ */
+@Controller
+@RequestMapping("/login")
+public class LoginController {
+
+
+ private static final Logger LOG = Logger.getLogger(LoginController.class);
+
+ @Autowired
+ private SecurityService securityService;
+ @Autowired
+ private SettingsService settingsService;
+
+ @RequestMapping(method = { RequestMethod.GET, RequestMethod.POST })
+ public ModelAndView login(HttpServletRequest request, HttpServletResponse response) throws Exception {
+
+ // Auto-login if "user" and "password" parameters are given.
+ String username = request.getParameter("user");
+ String password = request.getParameter("password");
+ if (username != null && password != null) {
+ username = StringUtil.urlEncode(username);
+ password = StringUtil.urlEncode(password);
+ return new ModelAndView(new RedirectView("/j_spring_security_check?"+
+ UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_USERNAME_KEY+"=" + username +
+ "&"+UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_PASSWORD_KEY+"=" + password
+ ));
+ }
+
+ Map map = new HashMap();
+ map.put("logout", request.getParameter("logout") != null);
+ map.put("error", request.getParameter("error") != null);
+ map.put("brand", settingsService.getBrand());
+ map.put("loginMessage", settingsService.getLoginMessage());
+
+ User admin = securityService.getUserByName(User.USERNAME_ADMIN);
+ if (User.USERNAME_ADMIN.equals(admin.getPassword())) {
+ map.put("insecure", true);
+ }
+
+ return new ModelAndView("login", "model", map);
+ }
+
+}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java
index c332e2e4..31dd871d 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java
@@ -64,34 +64,6 @@ public class MultiController extends MultiActionController {
private SettingsService settingsService;
private PlaylistService playlistService;
- public ModelAndView login(HttpServletRequest request, HttpServletResponse response) throws Exception {
-
- // Auto-login if "user" and "password" parameters are given.
- String username = request.getParameter("user");
- String password = request.getParameter("password");
- if (username != null && password != null) {
- username = StringUtil.urlEncode(username);
- password = StringUtil.urlEncode(password);
- return new ModelAndView(new RedirectView("/j_spring_security_check?"+
- UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_USERNAME_KEY+"=" + username +
- "&"+UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_PASSWORD_KEY+"=" + password
- ));
- }
-
- Map map = new HashMap();
- map.put("logout", request.getParameter("logout") != null);
- map.put("error", request.getParameter("error") != null);
- map.put("brand", settingsService.getBrand());
- map.put("loginMessage", settingsService.getLoginMessage());
-
- User admin = securityService.getUserByName(User.USERNAME_ADMIN);
- if (User.USERNAME_ADMIN.equals(admin.getPassword())) {
- map.put("insecure", true);
- }
-
- return new ModelAndView("login", "model", map);
- }
-
public ModelAndView recover(HttpServletRequest request, HttpServletResponse response) throws Exception {
Map map = new HashMap();
diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/MusicFolderSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/MusicFolderSettingsController.java
index eaef1b65..47a66562 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/controller/MusicFolderSettingsController.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/controller/MusicFolderSettingsController.java
@@ -26,12 +26,14 @@ import org.libresonic.player.dao.MediaFileDao;
import org.libresonic.player.domain.MusicFolder;
import org.libresonic.player.service.MediaScannerService;
import org.libresonic.player.service.SettingsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.mvc.SimpleFormController;
-import org.springframework.web.servlet.view.RedirectView;
-
-import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
@@ -40,22 +42,38 @@ import java.util.List;
*
* @author Sindre Mehus
*/
-public class MusicFolderSettingsController extends SimpleFormController {
+@Controller
+@RequestMapping("/musicFolderSettings")
+public class MusicFolderSettingsController {
+ @Autowired
private SettingsService settingsService;
+ @Autowired
private MediaScannerService mediaScannerService;
+ @Autowired
private ArtistDao artistDao;
+ @Autowired
private AlbumDao albumDao;
+ @Autowired
private MediaFileDao mediaFileDao;
- protected Object formBackingObject(HttpServletRequest request) throws Exception {
+ @RequestMapping(method = RequestMethod.GET)
+ protected String displayForm() throws Exception {
+ return "musicFolderSettings";
+ }
+
+ @ModelAttribute
+ protected void formBackingObject(@RequestParam(value = "scanNow",required = false) String scanNow,
+ @RequestParam(value = "expunge",required = false) String expunge,
+ @RequestParam(value = "reload",required = false) String reload,
+ Model model) throws Exception {
MusicFolderSettingsCommand command = new MusicFolderSettingsCommand();
- if (request.getParameter("scanNow") != null) {
+ if (scanNow != null) {
settingsService.clearMusicFolderCache();
mediaScannerService.scanLibrary();
}
- if (request.getParameter("expunge") != null) {
+ if (expunge != null) {
expunge();
}
@@ -66,10 +84,12 @@ public class MusicFolderSettingsController extends SimpleFormController {
command.setScanning(mediaScannerService.isScanning());
command.setMusicFolders(wrap(settingsService.getAllMusicFolders(true, true)));
command.setNewMusicFolder(new MusicFolderSettingsCommand.MusicFolderInfo());
- command.setReload(request.getParameter("reload") != null || request.getParameter("scanNow") != null);
- return command;
+ command.setReload(reload != null || scanNow != null);
+
+ model.addAttribute("command",command);
}
+
private void expunge() {
artistDao.expunge();
albumDao.expunge();
@@ -84,9 +104,8 @@ public class MusicFolderSettingsController extends SimpleFormController {
return result;
}
- @Override
- protected ModelAndView onSubmit(Object comm) throws Exception {
- MusicFolderSettingsCommand command = (MusicFolderSettingsCommand) comm;
+ @RequestMapping(method = RequestMethod.POST)
+ protected String onSubmit(@ModelAttribute("command") MusicFolderSettingsCommand command, Model model) throws Exception {
for (MusicFolderSettingsCommand.MusicFolderInfo musicFolderInfo : command.getMusicFolders()) {
if (musicFolderInfo.isDelete()) {
@@ -111,26 +130,7 @@ public class MusicFolderSettingsController extends SimpleFormController {
settingsService.save();
mediaScannerService.schedule();
- return new ModelAndView(new RedirectView(getSuccessView() + ".view?reload"));
- }
-
- public void setSettingsService(SettingsService settingsService) {
- this.settingsService = settingsService;
+ return "redirect:musicFolderSettings.view";
}
- public void setMediaScannerService(MediaScannerService mediaScannerService) {
- this.mediaScannerService = mediaScannerService;
- }
-
- public void setArtistDao(ArtistDao artistDao) {
- this.artistDao = artistDao;
- }
-
- public void setAlbumDao(AlbumDao albumDao) {
- this.albumDao = albumDao;
- }
-
- public void setMediaFileDao(MediaFileDao mediaFileDao) {
- this.mediaFileDao = mediaFileDao;
- }
}
\ No newline at end of file
diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/NetworkSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/NetworkSettingsController.java
index 08824ccf..ed341e94 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/controller/NetworkSettingsController.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/controller/NetworkSettingsController.java
@@ -19,29 +19,36 @@
*/
package org.libresonic.player.controller;
-import java.util.Random;
-
-import javax.servlet.http.HttpServletRequest;
-
import org.apache.commons.lang.StringUtils;
-import org.springframework.web.servlet.mvc.SimpleFormController;
-
import org.libresonic.player.command.NetworkSettingsCommand;
import org.libresonic.player.domain.UrlRedirectType;
import org.libresonic.player.service.NetworkService;
import org.libresonic.player.service.SettingsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import java.util.Random;
/**
* Controller for the page used to change the network settings.
*
* @author Sindre Mehus
*/
-public class NetworkSettingsController extends SimpleFormController {
+@Controller
+@RequestMapping("/networkSettings")
+public class NetworkSettingsController {
+ @Autowired
private SettingsService settingsService;
+ @Autowired
private NetworkService networkService;
- protected Object formBackingObject(HttpServletRequest request) throws Exception {
+ @ModelAttribute
+ protected void formBackingObject(Model model) throws Exception {
NetworkSettingsCommand command = new NetworkSettingsCommand();
command.setPortForwardingEnabled(settingsService.isPortForwardingEnabled());
command.setUrlRedirectionEnabled(settingsService.isUrlRedirectionEnabled());
@@ -50,12 +57,16 @@ public class NetworkSettingsController extends SimpleFormController {
command.setUrlRedirectCustomUrl(settingsService.getUrlRedirectCustomUrl());
command.setPort(settingsService.getPort());
command.setLicenseInfo(settingsService.getLicenseInfo());
+ model.addAttribute("command",command);
+ }
- return command;
+ @RequestMapping(method = RequestMethod.GET)
+ protected String displayForm() throws Exception {
+ return "networkSettings";
}
- protected void doSubmitAction(Object cmd) throws Exception {
- NetworkSettingsCommand command = (NetworkSettingsCommand) cmd;
+ @RequestMapping(method = RequestMethod.POST)
+ protected String doSubmitAction(@ModelAttribute("command") NetworkSettingsCommand command, Model model) throws Exception {
command.setToast(true);
settingsService.setPortForwardingEnabled(command.isPortForwardingEnabled());
@@ -72,13 +83,7 @@ public class NetworkSettingsController extends SimpleFormController {
settingsService.save();
networkService.initPortForwarding(0);
networkService.initUrlRedirection(true);
+ return "networkSettings";
}
- public void setSettingsService(SettingsService settingsService) {
- this.settingsService = settingsService;
- }
-
- public void setNetworkService(NetworkService networkService) {
- this.networkService = networkService;
- }
}
\ No newline at end of file
diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/PasswordSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PasswordSettingsController.java
deleted file mode 100644
index 3fb1e1ce..00000000
--- a/libresonic-main/src/main/java/org/libresonic/player/controller/PasswordSettingsController.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- This file is part of Libresonic.
-
- Libresonic is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Libresonic is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Libresonic. If not, see .
-
- Copyright 2016 (C) Libresonic Authors
- Based upon Subsonic, Copyright 2009 (C) Sindre Mehus
- */
-package org.libresonic.player.controller;
-
-import org.springframework.web.servlet.mvc.*;
-import org.libresonic.player.service.*;
-import org.libresonic.player.command.*;
-import org.libresonic.player.domain.*;
-
-import javax.servlet.http.*;
-
-/**
- * Controller for the page used to change password.
- *
- * @author Sindre Mehus
- */
-public class PasswordSettingsController extends SimpleFormController {
-
- private SecurityService securityService;
-
- protected Object formBackingObject(HttpServletRequest request) throws Exception {
- PasswordSettingsCommand command = new PasswordSettingsCommand();
- User user = securityService.getCurrentUser(request);
- command.setUsername(user.getUsername());
- command.setLdapAuthenticated(user.isLdapAuthenticated());
- return command;
- }
-
- protected void doSubmitAction(Object comm) throws Exception {
- PasswordSettingsCommand command = (PasswordSettingsCommand) comm;
- User user = securityService.getUserByName(command.getUsername());
- user.setPassword(command.getPassword());
- securityService.updateUser(user);
-
- command.setPassword(null);
- command.setConfirmPassword(null);
- command.setToast(true);
- }
-
- public void setSecurityService(SecurityService securityService) {
- this.securityService = securityService;
- }
-}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/PersonalSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PersonalSettingsController.java
index 3a0cb5f0..f09afc82 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/controller/PersonalSettingsController.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PersonalSettingsController.java
@@ -19,35 +19,38 @@
*/
package org.libresonic.player.controller;
-import java.util.Date;
-import java.util.Locale;
-
-import javax.servlet.http.HttpServletRequest;
-
import org.apache.commons.lang.StringUtils;
-import org.springframework.web.servlet.mvc.SimpleFormController;
-
import org.libresonic.player.command.PersonalSettingsCommand;
-import org.libresonic.player.domain.AlbumListType;
-import org.libresonic.player.domain.AvatarScheme;
-import org.libresonic.player.domain.Theme;
-import org.libresonic.player.domain.User;
-import org.libresonic.player.domain.UserSettings;
+import org.libresonic.player.domain.*;
import org.libresonic.player.service.SecurityService;
import org.libresonic.player.service.SettingsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.Locale;
/**
* Controller for the page used to administrate per-user settings.
*
* @author Sindre Mehus
*/
-public class PersonalSettingsController extends SimpleFormController {
+@Controller
+@RequestMapping("/personalSettings")
+public class PersonalSettingsController {
+ @Autowired
private SettingsService settingsService;
+ @Autowired
private SecurityService securityService;
- @Override
- protected Object formBackingObject(HttpServletRequest request) throws Exception {
+ @ModelAttribute
+ protected void formBackingObject(HttpServletRequest request,Model model) throws Exception {
PersonalSettingsCommand command = new PersonalSettingsCommand();
User user = securityService.getCurrentUser(request);
@@ -100,12 +103,16 @@ public class PersonalSettingsController extends SimpleFormController {
}
}
- return command;
+ model.addAttribute("command",command);
+ }
+
+ @RequestMapping(method = RequestMethod.GET)
+ protected String displayForm() throws Exception {
+ return "personalSettings";
}
- @Override
- protected void doSubmitAction(Object comm) throws Exception {
- PersonalSettingsCommand command = (PersonalSettingsCommand) comm;
+ @RequestMapping(method = RequestMethod.POST)
+ protected String doSubmitAction(@ModelAttribute("command") PersonalSettingsCommand command,Model model) throws Exception {
int localeIndex = Integer.parseInt(command.getLocaleIndex());
Locale locale = null;
@@ -152,6 +159,9 @@ public class PersonalSettingsController extends SimpleFormController {
settingsService.updateUserSettings(settings);
command.setReloadNeeded(true);
+
+ model.addAttribute("command",command);
+ return "personalSettings";
}
private int getAvatarId(UserSettings userSettings) {
@@ -178,11 +188,4 @@ public class PersonalSettingsController extends SimpleFormController {
return avatarId;
}
- public void setSettingsService(SettingsService settingsService) {
- this.settingsService = settingsService;
- }
-
- public void setSecurityService(SecurityService securityService) {
- this.securityService = securityService;
- }
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/PlayerSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PlayerSettingsController.java
index 2a6d5d28..433467bb 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/controller/PlayerSettingsController.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PlayerSettingsController.java
@@ -19,37 +19,46 @@
*/
package org.libresonic.player.controller;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
import org.apache.commons.lang.StringUtils;
-import org.springframework.web.servlet.mvc.SimpleFormController;
-
import org.libresonic.player.command.PlayerSettingsCommand;
-import org.libresonic.player.domain.Player;
-import org.libresonic.player.domain.PlayerTechnology;
-import org.libresonic.player.domain.TranscodeScheme;
-import org.libresonic.player.domain.Transcoding;
-import org.libresonic.player.domain.User;
+import org.libresonic.player.domain.*;
import org.libresonic.player.service.PlayerService;
import org.libresonic.player.service.SecurityService;
import org.libresonic.player.service.TranscodingService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
/**
* Controller for the player settings page.
*
* @author Sindre Mehus
*/
-public class PlayerSettingsController extends SimpleFormController {
+@Controller
+@RequestMapping("/playerSettings")
+public class PlayerSettingsController {
+ @Autowired
private PlayerService playerService;
+ @Autowired
private SecurityService securityService;
+ @Autowired
private TranscodingService transcodingService;
- @Override
- protected Object formBackingObject(HttpServletRequest request) throws Exception {
+ @RequestMapping(method = RequestMethod.GET)
+ protected String displayForm() throws Exception {
+ return "playerSettings";
+ }
+
+ @ModelAttribute
+ protected void formBackingObject(HttpServletRequest request, Model model) throws Exception {
handleRequestParameters(request);
List players = getPlayers(request);
@@ -91,12 +100,11 @@ public class PlayerSettingsController extends SimpleFormController {
command.setPlayers(players.toArray(new Player[players.size()]));
command.setAdmin(user.isAdminRole());
- return command;
+ model.addAttribute("command",command);
}
- @Override
- protected void doSubmitAction(Object comm) throws Exception {
- PlayerSettingsCommand command = (PlayerSettingsCommand) comm;
+ @RequestMapping(method = RequestMethod.POST)
+ protected String doSubmitAction(@ModelAttribute("command") PlayerSettingsCommand command, Model model) throws Exception {
Player player = playerService.getPlayerById(command.getPlayerId());
player.setAutoControlEnabled(command.isAutoControlEnabled());
@@ -110,6 +118,7 @@ public class PlayerSettingsController extends SimpleFormController {
transcodingService.setTranscodingsForPlayer(player, command.getActiveTranscodingIds());
command.setReloadNeeded(true);
+ return "redirect:playerSettings.view";
}
private List getPlayers(HttpServletRequest request) {
@@ -135,15 +144,4 @@ public class PlayerSettingsController extends SimpleFormController {
}
}
- public void setSecurityService(SecurityService securityService) {
- this.securityService = securityService;
- }
-
- public void setPlayerService(PlayerService playerService) {
- this.playerService = playerService;
- }
-
- public void setTranscodingService(TranscodingService transcodingService) {
- this.transcodingService = transcodingService;
- }
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastSettingsController.java
index 3608b2f2..bec26a95 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastSettingsController.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastSettingsController.java
@@ -19,35 +19,45 @@
*/
package org.libresonic.player.controller;
-import org.springframework.web.servlet.mvc.SimpleFormController;
-import org.libresonic.player.service.SettingsService;
-import org.libresonic.player.service.PodcastService;
import org.libresonic.player.command.PodcastSettingsCommand;
-
-import javax.servlet.http.HttpServletRequest;
+import org.libresonic.player.service.PodcastService;
+import org.libresonic.player.service.SettingsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
/**
* Controller for the page used to administrate the Podcast receiver.
*
* @author Sindre Mehus
*/
-public class PodcastSettingsController extends SimpleFormController {
+@Controller
+@RequestMapping("/podcastSettings")
+public class PodcastSettingsController {
+ @Autowired
private SettingsService settingsService;
+ @Autowired
private PodcastService podcastService;
- protected Object formBackingObject(HttpServletRequest request) throws Exception {
+ @RequestMapping(method = RequestMethod.GET)
+ protected String formBackingObject(Model model) throws Exception {
PodcastSettingsCommand command = new PodcastSettingsCommand();
command.setInterval(String.valueOf(settingsService.getPodcastUpdateInterval()));
command.setEpisodeRetentionCount(String.valueOf(settingsService.getPodcastEpisodeRetentionCount()));
command.setEpisodeDownloadCount(String.valueOf(settingsService.getPodcastEpisodeDownloadCount()));
command.setFolder(settingsService.getPodcastFolder());
- return command;
+
+ model.addAttribute("command",command);
+ return "podcastSettings";
}
- protected void doSubmitAction(Object comm) throws Exception {
- PodcastSettingsCommand command = (PodcastSettingsCommand) comm;
+ @RequestMapping(method = RequestMethod.POST)
+ protected String doSubmitAction(@ModelAttribute PodcastSettingsCommand command, Model model) throws Exception {
command.setToast(true);
settingsService.setPodcastUpdateInterval(Integer.parseInt(command.getInterval()));
@@ -57,13 +67,8 @@ public class PodcastSettingsController extends SimpleFormController {
settingsService.save();
podcastService.schedule();
+ model.addAttribute("command",command);
+ return "podcastSettings";
}
- public void setSettingsService(SettingsService settingsService) {
- this.settingsService = settingsService;
- }
-
- public void setPodcastService(PodcastService podcastService) {
- this.podcastService = podcastService;
- }
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/PremiumSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PremiumSettingsController.java
deleted file mode 100644
index 39c29a6c..00000000
--- a/libresonic-main/src/main/java/org/libresonic/player/controller/PremiumSettingsController.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- This file is part of Libresonic.
-
- Libresonic is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Libresonic is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Libresonic. If not, see .
-
- Copyright 2016 (C) Libresonic Authors
- Based upon Subsonic, Copyright 2009 (C) Sindre Mehus
- */
-package org.libresonic.player.controller;
-
-import java.util.Date;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.validation.BindException;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.mvc.SimpleFormController;
-
-import org.libresonic.player.command.PremiumSettingsCommand;
-import org.libresonic.player.service.SecurityService;
-import org.libresonic.player.service.SettingsService;
-
-/**
- * Controller for the Subsonic Premium page.
- *
- * @author Sindre Mehus
- */
-public class PremiumSettingsController extends SimpleFormController {
-
- private SettingsService settingsService;
- private SecurityService securityService;
-
- protected Object formBackingObject(HttpServletRequest request) throws Exception {
- PremiumSettingsCommand command = new PremiumSettingsCommand();
- command.setPath(request.getParameter("path"));
- command.setForceChange(request.getParameter("change") != null);
- command.setLicenseInfo(settingsService.getLicenseInfo());
- command.setBrand(settingsService.getBrand());
- command.setUser(securityService.getCurrentUser(request));
- return command;
- }
-
- protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object com, BindException errors)
- throws Exception {
- PremiumSettingsCommand command = (PremiumSettingsCommand) com;
- Date now = new Date();
-
- settingsService.setLicenseCode(command.getLicenseCode());
- settingsService.setLicenseEmail(command.getLicenseInfo().getLicenseEmail());
- settingsService.setLicenseDate(now);
- settingsService.save();
- settingsService.scheduleLicenseValidation();
-
- // Reflect changes in view. The validator will validate the license asynchronously.
- command.setLicenseInfo(settingsService.getLicenseInfo());
- command.setToast(true);
-
- return new ModelAndView(getSuccessView(), errors.getModel());
- }
-
- public void setSettingsService(SettingsService settingsService) {
- this.settingsService = settingsService;
- }
-
- public void setSecurityService(SecurityService securityService) {
- this.securityService = securityService;
- }
-}
\ No newline at end of file
diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/SearchController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/SearchController.java
index a357b120..197d96b8 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/controller/SearchController.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/controller/SearchController.java
@@ -19,50 +19,57 @@
*/
package org.libresonic.player.controller;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
import org.apache.commons.lang.StringUtils;
-import org.springframework.validation.BindException;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.mvc.SimpleFormController;
-
import org.libresonic.player.command.SearchCommand;
-import org.libresonic.player.domain.MusicFolder;
-import org.libresonic.player.domain.SearchCriteria;
-import org.libresonic.player.domain.SearchResult;
-import org.libresonic.player.domain.User;
-import org.libresonic.player.domain.UserSettings;
+import org.libresonic.player.domain.*;
import org.libresonic.player.service.PlayerService;
import org.libresonic.player.service.SearchService;
import org.libresonic.player.service.SecurityService;
import org.libresonic.player.service.SettingsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
/**
* Controller for the search page.
*
* @author Sindre Mehus
*/
-public class SearchController extends SimpleFormController {
+@Controller
+@RequestMapping("/search")
+public class SearchController {
private static final int MATCH_COUNT = 25;
+ @Autowired
private SecurityService securityService;
+ @Autowired
private SettingsService settingsService;
+ @Autowired
private PlayerService playerService;
+ @Autowired
private SearchService searchService;
- @Override
- protected Object formBackingObject(HttpServletRequest request) throws Exception {
- return new SearchCommand();
+ @RequestMapping(method = RequestMethod.GET)
+ protected String displayForm() throws Exception {
+ return "search";
}
- @Override
- protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object com, BindException errors)
+ @ModelAttribute
+ protected void formBackingObject(HttpServletRequest request, Model model) throws Exception {
+ model.addAttribute("command",new SearchCommand());
+ }
+
+ @RequestMapping(method = RequestMethod.POST)
+ protected String onSubmit(HttpServletRequest request, HttpServletResponse response,@ModelAttribute("command") SearchCommand command, Model model)
throws Exception {
- SearchCommand command = (SearchCommand) com;
User user = securityService.getCurrentUser(request);
UserSettings userSettings = settingsService.getUserSettings(user.getUsername());
@@ -90,22 +97,7 @@ public class SearchController extends SimpleFormController {
command.setPlayer(playerService.getPlayer(request, response));
}
- return new ModelAndView(getSuccessView(), errors.getModel());
+ return "search";
}
- public void setSecurityService(SecurityService securityService) {
- this.securityService = securityService;
- }
-
- public void setSettingsService(SettingsService settingsService) {
- this.settingsService = settingsService;
- }
-
- public void setPlayerService(PlayerService playerService) {
- this.playerService = playerService;
- }
-
- public void setSearchService(SearchService searchService) {
- this.searchService = searchService;
- }
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/controller/UserSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/UserSettingsController.java
index 4a913f9f..02b8c294 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/controller/UserSettingsController.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/controller/UserSettingsController.java
@@ -19,6 +19,7 @@
*/
package org.libresonic.player.controller;
+import org.apache.commons.lang.StringUtils;
import org.libresonic.player.command.UserSettingsCommand;
import org.libresonic.player.domain.MusicFolder;
import org.libresonic.player.domain.TranscodeScheme;
@@ -28,14 +29,17 @@ import org.libresonic.player.service.SecurityService;
import org.libresonic.player.service.SettingsService;
import org.libresonic.player.service.TranscodingService;
import org.libresonic.player.util.Util;
-
-import org.apache.commons.lang.StringUtils;
+import org.libresonic.player.validator.UserSettingsValidator;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.ServletRequestBindingException;
import org.springframework.web.bind.ServletRequestUtils;
-import org.springframework.web.servlet.mvc.SimpleFormController;
+import org.springframework.web.bind.WebDataBinder;
+import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
-
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -45,14 +49,32 @@ import java.util.List;
*
* @author Sindre Mehus
*/
-public class UserSettingsController extends SimpleFormController {
+@Controller
+@RequestMapping("/userSettings")
+@SessionAttributes(value = "command")
+public class UserSettingsController {
+ @Autowired
private SecurityService securityService;
+ @Autowired
private SettingsService settingsService;
+ @Autowired
private TranscodingService transcodingService;
+ @Autowired
+ private UserSettingsValidator userSettingsValidator;
+
+ @InitBinder
+ protected void initBinder(WebDataBinder binder) {
+ binder.addValidators(userSettingsValidator);
+ }
+
+ @RequestMapping(method = RequestMethod.GET)
+ protected String displayForm() throws Exception {
+ return "userSettings";
+ }
- @Override
- protected Object formBackingObject(HttpServletRequest request) throws Exception {
+ @ModelAttribute
+ protected void formBackingObject(HttpServletRequest request,Model model) throws Exception {
UserSettingsCommand command = new UserSettingsCommand();
User user = getUser(request);
@@ -77,7 +99,7 @@ public class UserSettingsController extends SimpleFormController {
command.setAllMusicFolders(settingsService.getAllMusicFolders());
command.setAllowedMusicFolderIds(Util.toIntArray(getAllowedMusicFolderIds(user)));
- return command;
+ model.addAttribute("command",command);
}
private User getUser(HttpServletRequest request) throws ServletRequestBindingException {
@@ -103,9 +125,8 @@ public class UserSettingsController extends SimpleFormController {
return result;
}
- @Override
- protected void doSubmitAction(Object comm) throws Exception {
- UserSettingsCommand command = (UserSettingsCommand) comm;
+ @RequestMapping(method = RequestMethod.POST)
+ protected String doSubmitAction(@ModelAttribute("command") @Validated UserSettingsCommand command) throws Exception {
if (command.isDeleteUser()) {
deleteUser(command);
@@ -115,6 +136,8 @@ public class UserSettingsController extends SimpleFormController {
updateUser(command);
}
resetCommand(command);
+
+ return "userSettings";
}
private void deleteUser(UserSettingsCommand command) {
@@ -176,15 +199,4 @@ public class UserSettingsController extends SimpleFormController {
command.setReload(true);
}
- public void setSecurityService(SecurityService securityService) {
- this.securityService = securityService;
- }
-
- public void setSettingsService(SettingsService settingsService) {
- this.settingsService = settingsService;
- }
-
- public void setTranscodingService(TranscodingService transcodingService) {
- this.transcodingService = transcodingService;
- }
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/RatingDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/RatingDao.java
index 6572fac7..2dec6169 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/RatingDao.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/RatingDao.java
@@ -107,7 +107,7 @@ public class RatingDao extends AbstractDao {
*/
public Integer getRatingForUser(String username, MediaFile mediaFile) {
try {
- return getJdbcTemplate().queryForInt("select rating from user_rating where username=? and path=?", new Object[]{username, mediaFile.getPath()});
+ return getJdbcTemplate().queryForObject("select rating from user_rating where username=? and path=?", new Object[]{username, mediaFile.getPath()},Integer.class);
} catch (EmptyResultDataAccessException x) {
return null;
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/Schema.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/Schema.java
index 4cf63dca..13872a82 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/Schema.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/Schema.java
@@ -68,7 +68,7 @@ public abstract class Schema {
protected boolean rowExists(JdbcTemplate template, String whereClause, String table) {
try {
- int rowCount = template.queryForInt("select count(*) from " + table + " where " + whereClause);
+ int rowCount = template.queryForObject("select count(*) from " + table + " where " + whereClause,Integer.class);
return rowCount > 0;
} catch (Exception x) {
return false;
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema26.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema26.java
index 8094e7c2..05413aaf 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema26.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema26.java
@@ -35,7 +35,7 @@ public class Schema26 extends Schema {
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 2") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 2",Integer.class) == 0) {
LOG.info("Updating database schema to version 2.");
template.execute("insert into version values (2)");
}
@@ -99,7 +99,7 @@ public class Schema26 extends Schema {
LOG.info("Database column 'player.dynamic_ip' was added successfully.");
}
- if (template.queryForInt("select count(*) from role where id = 6") == 0) {
+ if (template.queryForObject("select count(*) from role where id = 6",Integer.class) == 0) {
LOG.info("Role 'comment' not found in database. Creating it.");
template.execute("insert into role values (6, 'comment')");
template.execute("insert into user_role " +
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema27.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema27.java
index baa4672e..08ae2aa4 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema27.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema27.java
@@ -35,7 +35,7 @@ public class Schema27 extends Schema {
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 3") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 3",Integer.class) == 0) {
LOG.info("Updating database schema to version 3.");
template.execute("insert into version values (3)");
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema28.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema28.java
index c1678f67..515a4c0f 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema28.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema28.java
@@ -35,7 +35,7 @@ public class Schema28 extends Schema {
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 4") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 4",Integer.class) == 0) {
LOG.info("Updating database schema to version 4.");
template.execute("insert into version values (4)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema29.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema29.java
index 2495af4b..bef298f9 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema29.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema29.java
@@ -35,7 +35,7 @@ public class Schema29 extends Schema {
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 5") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 5",Integer.class) == 0) {
LOG.info("Updating database schema to version 5.");
template.execute("insert into version values (5)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema30.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema30.java
index 4a72499b..18e73175 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema30.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema30.java
@@ -35,7 +35,7 @@ public class Schema30 extends Schema {
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 6") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 6", Integer.class) == 0) {
LOG.info("Updating database schema to version 6.");
template.execute("insert into version values (6)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema31.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema31.java
index a8bdc198..6019070c 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema31.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema31.java
@@ -35,7 +35,7 @@ public class Schema31 extends Schema {
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 7") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 7",Integer.class) == 0) {
LOG.info("Updating database schema to version 7.");
template.execute("insert into version values (7)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema32.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema32.java
index bc134665..85ad7f50 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema32.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema32.java
@@ -35,7 +35,7 @@ public class Schema32 extends Schema {
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 8") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 8",Integer.class) == 0) {
LOG.info("Updating database schema to version 8.");
template.execute("insert into version values (8)");
}
@@ -83,7 +83,7 @@ public class Schema32 extends Schema {
LOG.info("Database table 'podcast_episode' was created successfully.");
}
- if (template.queryForInt("select count(*) from role where id = 7") == 0) {
+ if (template.queryForObject("select count(*) from role where id = 7",Integer.class) == 0) {
LOG.info("Role 'podcast' not found in database. Creating it.");
template.execute("insert into role values (7, 'podcast')");
template.execute("insert into user_role " +
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema33.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema33.java
index c76376d1..ffb0f4c1 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema33.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema33.java
@@ -36,7 +36,7 @@ public class Schema33 extends Schema {
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 9") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 9",Integer.class) == 0) {
LOG.info("Updating database schema to version 9.");
template.execute("insert into version values (9)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema34.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema34.java
index 9fb38f88..7f3b09c6 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema34.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema34.java
@@ -36,7 +36,7 @@ public class Schema34 extends Schema {
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 10") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 10",Integer.class) == 0) {
LOG.info("Updating database schema to version 10.");
template.execute("insert into version values (10)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema35.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema35.java
index c7244686..5ed4b9d5 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema35.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema35.java
@@ -58,7 +58,7 @@ public class Schema35 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 11") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 11",Integer.class) == 0) {
LOG.info("Updating database schema to version 11.");
template.execute("insert into version values (11)");
}
@@ -75,7 +75,7 @@ public class Schema35 extends Schema {
LOG.info("Database column 'user_settings.web_player_default' was added successfully.");
}
- if (template.queryForInt("select count(*) from role where id = 8") == 0) {
+ if (template.queryForObject("select count(*) from role where id = 8",Integer.class) == 0) {
LOG.info("Role 'stream' not found in database. Creating it.");
template.execute("insert into role values (8, 'stream')");
template.execute("insert into user_role select distinct u.username, 8 from user u");
@@ -135,7 +135,7 @@ public class Schema35 extends Schema {
}
private void createAvatar(JdbcTemplate template, String avatar) {
- if (template.queryForInt("select count(*) from system_avatar where name = ?", new Object[]{avatar}) == 0) {
+ if (template.queryForObject("select count(*) from system_avatar where name = ?", new Object[]{avatar},Integer.class) == 0) {
InputStream in = null;
try {
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema36.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema36.java
index 2c763a77..03c71a7b 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema36.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema36.java
@@ -37,7 +37,7 @@ public class Schema36 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 12") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 12",Integer.class) == 0) {
LOG.info("Updating database schema to version 12.");
template.execute("insert into version values (12)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema37.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema37.java
index 25fd2fe4..7d29d7d6 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema37.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema37.java
@@ -37,19 +37,19 @@ public class Schema37 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 13") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 13",Integer.class) == 0) {
LOG.info("Updating database schema to version 13.");
template.execute("insert into version values (13)");
}
- if (template.queryForInt("select count(*) from role where id = 9") == 0) {
+ if (template.queryForObject("select count(*) from role where id = 9",Integer.class) == 0) {
LOG.info("Role 'settings' not found in database. Creating it.");
template.execute("insert into role values (9, 'settings')");
template.execute("insert into user_role select distinct u.username, 9 from user u");
LOG.info("Role 'settings' was created successfully.");
}
- if (template.queryForInt("select count(*) from role where id = 10") == 0) {
+ if (template.queryForObject("select count(*) from role where id = 10",Integer.class) == 0) {
LOG.info("Role 'jukebox' not found in database. Creating it.");
template.execute("insert into role values (10, 'jukebox')");
template.execute("insert into user_role " +
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema38.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema38.java
index a2b4a389..a3fdd4d6 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema38.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema38.java
@@ -37,7 +37,7 @@ public class Schema38 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 14") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 14",Integer.class) == 0) {
LOG.info("Updating database schema to version 14.");
template.execute("insert into version values (14)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema40.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema40.java
index 73c65737..4beaa679 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema40.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema40.java
@@ -37,7 +37,7 @@ public class Schema40 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 15") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 15",Integer.class) == 0) {
LOG.info("Updating database schema to version 15.");
template.execute("insert into version values (15)");
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema43.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema43.java
index 5af5726d..a0422784 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema43.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema43.java
@@ -40,12 +40,12 @@ public class Schema43 extends Schema {
public void execute(JdbcTemplate template) {
// version 16 was used for 4.3.beta1
- if (template.queryForInt("select count(*) from version where version = 16") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 16",Integer.class) == 0) {
LOG.info("Updating database schema to version 16.");
template.execute("insert into version values (16)");
}
- if (template.queryForInt("select count(*) from version where version = 17") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 17",Integer.class) == 0) {
LOG.info("Updating database schema to version 17.");
template.execute("insert into version values (17)");
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema45.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema45.java
index 72cdae1f..e03568ce 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema45.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema45.java
@@ -37,12 +37,12 @@ public class Schema45 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 18") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 18",Integer.class) == 0) {
LOG.info("Updating database schema to version 18.");
template.execute("insert into version values (18)");
}
- if (template.queryForInt("select count(*) from role where id = 11") == 0) {
+ if (template.queryForObject("select count(*) from role where id = 11",Integer.class) == 0) {
LOG.info("Role 'share' not found in database. Creating it.");
template.execute("insert into role values (11, 'share')");
template.execute("insert into user_role " +
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema46.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema46.java
index cd002ed2..814467e5 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema46.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema46.java
@@ -37,7 +37,7 @@ public class Schema46 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 19") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 19",Integer.class) == 0) {
LOG.info("Updating database schema to version 19.");
template.execute("insert into version values (19)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema47.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema47.java
index 09503566..cb23d28b 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema47.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema47.java
@@ -37,7 +37,7 @@ public class Schema47 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 20") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 20",Integer.class) == 0) {
LOG.info("Updating database schema to version 20.");
template.execute("insert into version values (20)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema49.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema49.java
index 8b49511c..59e7b447 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema49.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema49.java
@@ -37,7 +37,7 @@ public class Schema49 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 21") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 21",Integer.class) == 0) {
LOG.info("Updating database schema to version 21.");
template.execute("insert into version values (21)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema50.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema50.java
index 8db91f62..6d3c9f52 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema50.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema50.java
@@ -37,7 +37,7 @@ public class Schema50 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 22") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 22",Integer.class) == 0) {
LOG.info("Updating database schema to version 22.");
template.execute("insert into version values (22)");
@@ -57,7 +57,7 @@ public class Schema50 extends Schema {
}
// Added in 5.0.beta2
- if (template.queryForInt("select count(*) from version where version = 23") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 23",Integer.class) == 0) {
LOG.info("Updating database schema to version 23.");
template.execute("insert into version values (23)");
template.execute("update transcoding2 set step1='ffmpeg -i %s -map 0:0 -b:a %bk -v 0 -f mp3 -' where name='mp3 audio'");
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema51.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema51.java
index cccd762d..4285d147 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema51.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema51.java
@@ -36,7 +36,7 @@ public class Schema51 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 23") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 23",Integer.class) == 0) {
LOG.info("Updating database schema to version 23.");
template.execute("insert into version values (23)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema52.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema52.java
index 2853c256..a0c33dec 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema52.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema52.java
@@ -36,7 +36,7 @@ public class Schema52 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 24") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 24",Integer.class) == 0) {
LOG.info("Updating database schema to version 24.");
template.execute("insert into version values (24)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema53.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema53.java
index 9ebead30..caccee78 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema53.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema53.java
@@ -38,7 +38,7 @@ public class Schema53 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 25") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 25",Integer.class) == 0) {
LOG.info("Updating database schema to version 25.");
template.execute("insert into version values (25)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema61.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema61.java
index 378d11c3..cf61876a 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema61.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema61.java
@@ -34,7 +34,7 @@ public class Schema61 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 26") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 26",Integer.class) == 0) {
LOG.info("Updating database schema to version 26.");
template.execute("insert into version values (26)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema62.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema62.java
index 0c393ed2..cdd233c2 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema62.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema62.java
@@ -34,7 +34,7 @@ public class Schema62 extends Schema {
@Override
public void execute(JdbcTemplate template) {
- if (template.queryForInt("select count(*) from version where version = 27") == 0) {
+ if (template.queryForObject("select count(*) from version where version = 27",Integer.class) == 0) {
LOG.info("Updating database schema to version 27.");
template.execute("insert into version values (27)");
}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/validator/PasswordSettingsValidator.java b/libresonic-main/src/main/java/org/libresonic/player/validator/PasswordSettingsValidator.java
deleted file mode 100644
index 44b5260e..00000000
--- a/libresonic-main/src/main/java/org/libresonic/player/validator/PasswordSettingsValidator.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- This file is part of Libresonic.
-
- Libresonic is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Libresonic is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Libresonic. If not, see .
-
- Copyright 2016 (C) Libresonic Authors
- Based upon Subsonic, Copyright 2009 (C) Sindre Mehus
- */
-package org.libresonic.player.validator;
-
-import org.springframework.validation.*;
-import org.libresonic.player.command.*;
-import org.libresonic.player.controller.*;
-
-/**
- * Validator for {@link PasswordSettingsController}.
- *
- * @author Sindre Mehus
- */
-public class PasswordSettingsValidator implements Validator {
-
- public boolean supports(Class clazz) {
- return clazz.equals(PasswordSettingsCommand.class);
- }
-
- public void validate(Object obj, Errors errors) {
- PasswordSettingsCommand command = (PasswordSettingsCommand) obj;
-
- if (command.getPassword() == null || command.getPassword().length() == 0) {
- errors.rejectValue("password", "usersettings.nopassword");
- } else if (!command.getPassword().equals(command.getConfirmPassword())) {
- errors.rejectValue("password", "usersettings.wrongpassword");
- }
- }
-}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/validator/PremiumSettingsValidator.java b/libresonic-main/src/main/java/org/libresonic/player/validator/PremiumSettingsValidator.java
deleted file mode 100644
index e4a2438b..00000000
--- a/libresonic-main/src/main/java/org/libresonic/player/validator/PremiumSettingsValidator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- This file is part of Libresonic.
-
- Libresonic is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- Libresonic is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Libresonic. If not, see .
-
- Copyright 2016 (C) Libresonic Authors
- Based upon Subsonic, Copyright 2009 (C) Sindre Mehus
- */
-package org.libresonic.player.validator;
-
-import org.springframework.validation.Errors;
-import org.springframework.validation.Validator;
-
-import org.libresonic.player.command.PremiumSettingsCommand;
-import org.libresonic.player.controller.PremiumSettingsController;
-import org.libresonic.player.service.SettingsService;
-
-/**
- * Validator for {@link PremiumSettingsController}.
- *
- * @author Sindre Mehus
- */
-public class PremiumSettingsValidator implements Validator {
- private SettingsService settingsService;
-
- public boolean supports(Class clazz) {
- return clazz.equals(PremiumSettingsCommand.class);
- }
-
- public void validate(Object obj, Errors errors) {
- PremiumSettingsCommand command = (PremiumSettingsCommand) obj;
-
- if (!settingsService.isLicenseValid(command.getLicenseInfo().getLicenseEmail(), command.getLicenseCode())) {
- command.setSubmissionError(true);
- errors.rejectValue("licenseCode", "premium.invalidlicense");
- }
- }
-
- public void setSettingsService(SettingsService settingsService) {
- this.settingsService = settingsService;
- }
-}
diff --git a/libresonic-main/src/main/java/org/libresonic/player/validator/UserSettingsValidator.java b/libresonic-main/src/main/java/org/libresonic/player/validator/UserSettingsValidator.java
index 3686e8c6..755ae0ea 100644
--- a/libresonic-main/src/main/java/org/libresonic/player/validator/UserSettingsValidator.java
+++ b/libresonic-main/src/main/java/org/libresonic/player/validator/UserSettingsValidator.java
@@ -24,6 +24,8 @@ import org.libresonic.player.controller.UserSettingsController;
import org.libresonic.player.service.SecurityService;
import org.libresonic.player.service.SettingsService;
import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
@@ -32,9 +34,12 @@ import org.springframework.validation.Validator;
*
* @author Sindre Mehus
*/
+@Component
public class UserSettingsValidator implements Validator {
+ @Autowired
private SecurityService securityService;
+ @Autowired
private SettingsService settingsService;
/**
@@ -82,11 +87,4 @@ public class UserSettingsValidator implements Validator {
}
- public void setSecurityService(SecurityService securityService) {
- this.securityService = securityService;
- }
-
- public void setSettingsService(SettingsService settingsService) {
- this.settingsService = settingsService;
- }
}
\ No newline at end of file
diff --git a/libresonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml b/libresonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml
index f60c5951..ac13f0f0 100644
--- a/libresonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml
+++ b/libresonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml
@@ -3,9 +3,9 @@
xmlns:security="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security
- http://www.springframework.org/schema/security/spring-security-3.2.xsd">
+ http://www.springframework.org/schema/security/spring-security.xsd">
diff --git a/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml b/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml
index edece234..2a8fd8cc 100644
--- a/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml
+++ b/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml
@@ -2,7 +2,18 @@
+ xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:mvc="http://www.springframework.org/schema/mvc"
+ xsi:schemaLocation="
+ http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd
+ http://www.springframework.org/schema/context
+ http://www.springframework.org/schema/context/spring-context.xsd
+ http://www.springframework.org/schema/mvc
+ http://www.springframework.org/schema/mvc/spring-mvc.xsd">
+
+
+
@@ -150,26 +161,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -187,23 +181,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -214,55 +191,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -345,14 +278,6 @@
-
-
-
-
-
-
-
-
@@ -403,14 +328,6 @@
-
-
-
-
-
-
-
-
@@ -434,7 +351,10 @@
topController
randomPlayQueueController
changeCoverArtController
+
multiController
multiController
multiController
@@ -443,24 +363,13 @@
videoPlayerController
nowPlayingController
starredController
- searchController
settingsController
- playerSettingsController
dlnaSettingsController
sonosSettingsController
shareSettingsController
- musicFolderSettingsController
- networkSettingsController
transcodingSettingsController
internetRadioSettingsController
- podcastSettingsController
- generalSettingsController
- advancedSettingsController
- personalSettingsController
avatarUploadController
- userSettingsController
- passwordSettingsController
- premiumSettingsController
allmusicController
homeController
editTagsController
diff --git a/libresonic-main/src/test/java/org/libresonic/player/TestCaseUtils.java b/libresonic-main/src/test/java/org/libresonic/player/TestCaseUtils.java
index f6ac5d45..8be3071a 100644
--- a/libresonic-main/src/test/java/org/libresonic/player/TestCaseUtils.java
+++ b/libresonic-main/src/test/java/org/libresonic/player/TestCaseUtils.java
@@ -88,7 +88,7 @@ public class TestCaseUtils {
* @return
*/
public static Integer recordsInTable(String tableName, DaoHelper daoHelper) {
- return daoHelper.getJdbcTemplate().queryForInt("select count(1) from " + tableName);
+ return daoHelper.getJdbcTemplate().queryForObject("select count(1) from " + tableName,Integer.class);
}
diff --git a/libresonic-rest-api/pom.xml b/libresonic-rest-api/pom.xml
index dcb9249c..e95a1a8d 100644
--- a/libresonic-rest-api/pom.xml
+++ b/libresonic-rest-api/pom.xml
@@ -8,7 +8,7 @@
org.libresonic.player
libresonic
- 6.1.beta2
+ 6.2.beta1.spring4
diff --git a/libresonic-sonos-api/pom.xml b/libresonic-sonos-api/pom.xml
index ad46cb27..1012b990 100644
--- a/libresonic-sonos-api/pom.xml
+++ b/libresonic-sonos-api/pom.xml
@@ -8,7 +8,7 @@
org.libresonic.player
libresonic
- 6.1.beta2
+ 6.2.beta1.spring4
diff --git a/pom.xml b/pom.xml
index c96e0227..1070b1e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
org.libresonic.player
libresonic
- 6.1.beta2
+ 6.2.beta1.spring4
Libresonic
pom
@@ -16,8 +16,8 @@
true
iso-8859-1
- 2.4.2
- 3.2.17.RELEASE
+ 3.1.8
+ 4.3.4.RELEASE
3.2.9.RELEASE
@@ -230,7 +230,6 @@
-