Subsonic-->Libresonic regex
@@ -2,21 +2,21 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic-assembly</artifactId>
|
<artifactId>libresonic-assembly</artifactId>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<name>Subsonic Assembly</name>
|
<name>Libresonic Assembly</name>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.0.1</version>
|
<version>6.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic-main</artifactId>
|
<artifactId>libresonic-main</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
<type>war</type>
|
<type>war</type>
|
||||||
</dependency>
|
</dependency>
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<finalName>subsonic-${project.version}</finalName>
|
<finalName>libresonic-${project.version}</finalName>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
|
||||||
<!-- Configuration of assembly plugin for creating the distributions. -->
|
<!-- Configuration of assembly plugin for creating the distributions. -->
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
</fileSet>
|
</fileSet>
|
||||||
|
|
||||||
<fileSet>
|
<fileSet>
|
||||||
<directory>../subsonic-main</directory>
|
<directory>../libresonic-main</directory>
|
||||||
<includes>
|
<includes>
|
||||||
<include>src/**</include>
|
<include>src/**</include>
|
||||||
<include>pom.xml</include>
|
<include>pom.xml</include>
|
||||||
@@ -31,25 +31,25 @@
|
|||||||
<include>README.TXT</include>
|
<include>README.TXT</include>
|
||||||
<include>Getting Started.html</include>
|
<include>Getting Started.html</include>
|
||||||
</includes>
|
</includes>
|
||||||
<outputDirectory>subsonic-main</outputDirectory>
|
<outputDirectory>libresonic-main</outputDirectory>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
|
|
||||||
<fileSet>
|
<fileSet>
|
||||||
<directory>../subsonic-rest-api</directory>
|
<directory>../libresonic-rest-api</directory>
|
||||||
<includes>
|
<includes>
|
||||||
<include>src/**</include>
|
<include>src/**</include>
|
||||||
<include>pom.xml</include>
|
<include>pom.xml</include>
|
||||||
</includes>
|
</includes>
|
||||||
<outputDirectory>subsonic-rest-api</outputDirectory>
|
<outputDirectory>libresonic-rest-api</outputDirectory>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
|
|
||||||
<fileSet>
|
<fileSet>
|
||||||
<directory>../subsonic-sonos-api</directory>
|
<directory>../libresonic-sonos-api</directory>
|
||||||
<includes>
|
<includes>
|
||||||
<include>src/**</include>
|
<include>src/**</include>
|
||||||
<include>pom.xml</include>
|
<include>pom.xml</include>
|
||||||
</includes>
|
</includes>
|
||||||
<outputDirectory>subsonic-sonos-api</outputDirectory>
|
<outputDirectory>libresonic-sonos-api</outputDirectory>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
|
|
||||||
</fileSets>
|
</fileSets>
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
<includeBaseDirectory>false</includeBaseDirectory>
|
<includeBaseDirectory>false</includeBaseDirectory>
|
||||||
<fileSets>
|
<fileSets>
|
||||||
<fileSet>
|
<fileSet>
|
||||||
<directory>../subsonic-main</directory>
|
<directory>../libresonic-main</directory>
|
||||||
<outputDirectory/>
|
<outputDirectory/>
|
||||||
<includes>
|
<includes>
|
||||||
<include>README.TXT</include>
|
<include>README.TXT</include>
|
||||||
@@ -17,25 +17,25 @@
|
|||||||
</includes>
|
</includes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
<fileSet>
|
<fileSet>
|
||||||
<directory>../subsonic-main/target</directory>
|
<directory>../libresonic-main/target</directory>
|
||||||
<outputDirectory/>
|
<outputDirectory/>
|
||||||
<includes>
|
<includes>
|
||||||
<include>*.war</include>
|
<include>*.war</include>
|
||||||
</includes>
|
</includes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
<fileSet>
|
<fileSet>
|
||||||
<directory>../subsonic-booter/target</directory>
|
<directory>../libresonic-booter/target</directory>
|
||||||
<outputDirectory/>
|
<outputDirectory/>
|
||||||
<includes>
|
<includes>
|
||||||
<include>subsonic-booter-jar-with-dependencies.jar</include>
|
<include>libresonic-booter-jar-with-dependencies.jar</include>
|
||||||
</includes>
|
</includes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
<fileSet>
|
<fileSet>
|
||||||
<directory>../subsonic-booter/src/main/script</directory>
|
<directory>../libresonic-booter/src/main/script</directory>
|
||||||
<outputDirectory/>
|
<outputDirectory/>
|
||||||
<includes>
|
<includes>
|
||||||
<include>subsonic.sh</include>
|
<include>libresonic.sh</include>
|
||||||
<include>subsonic.bat</include>
|
<include>libresonic.bat</include>
|
||||||
</includes>
|
</includes>
|
||||||
<fileMode>0777</fileMode>
|
<fileMode>0777</fileMode>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
<includeBaseDirectory>false</includeBaseDirectory>
|
<includeBaseDirectory>false</includeBaseDirectory>
|
||||||
<fileSets>
|
<fileSets>
|
||||||
<fileSet>
|
<fileSet>
|
||||||
<directory>../subsonic-main</directory>
|
<directory>../libresonic-main</directory>
|
||||||
<outputDirectory></outputDirectory>
|
<outputDirectory></outputDirectory>
|
||||||
<includes>
|
<includes>
|
||||||
<include>README.TXT</include>
|
<include>README.TXT</include>
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
</includes>
|
</includes>
|
||||||
</fileSet>
|
</fileSet>
|
||||||
<fileSet>
|
<fileSet>
|
||||||
<directory>../subsonic-main/target</directory>
|
<directory>../libresonic-main/target</directory>
|
||||||
<outputDirectory></outputDirectory>
|
<outputDirectory></outputDirectory>
|
||||||
<includes>
|
<includes>
|
||||||
<include>*.war</include>
|
<include>*.war</include>
|
||||||
@@ -2,13 +2,13 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic-booter</artifactId>
|
<artifactId>libresonic-booter</artifactId>
|
||||||
<name>Subsonic Booter</name>
|
<name>Libresonic Booter</name>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.0.1</version>
|
<version>6.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<finalName>subsonic-booter</finalName>
|
<finalName>libresonic-booter</finalName>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package net.sourceforge.subsonic.booter;
|
package org.libresonic.player.booter;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -7,11 +7,11 @@ import javax.swing.JOptionPane;
|
|||||||
|
|
||||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.booter.agent.SettingsPanel;
|
import org.libresonic.player.booter.agent.SettingsPanel;
|
||||||
import net.sourceforge.subsonic.booter.agent.SubsonicAgent;
|
import org.libresonic.player.booter.agent.LibresonicAgent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Application entry point for Subsonic booter.
|
* Application entry point for Libresonic booter.
|
||||||
* <p/>
|
* <p/>
|
||||||
* Use command line argument "-agent" to start the Windows service monitoring agent,
|
* Use command line argument "-agent" to start the Windows service monitoring agent,
|
||||||
* or "-mac" to start the Mac version of the deployer.
|
* or "-mac" to start the Mac version of the deployer.
|
||||||
@@ -25,7 +25,7 @@ public class Main {
|
|||||||
|
|
||||||
if ("-agent".equals(contextName)) {
|
if ("-agent".equals(contextName)) {
|
||||||
|
|
||||||
SubsonicAgent agent = (SubsonicAgent) context.getBean("agent");
|
LibresonicAgent agent = (LibresonicAgent) context.getBean("agent");
|
||||||
SettingsPanel settingsPanel = (SettingsPanel) context.getBean("settingsPanel");
|
SettingsPanel settingsPanel = (SettingsPanel) context.getBean("settingsPanel");
|
||||||
|
|
||||||
agent.setElevated(args.contains("-elevated"));
|
agent.setElevated(args.contains("-elevated"));
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package net.sourceforge.subsonic.booter.agent;
|
package org.libresonic.player.booter.agent;
|
||||||
|
|
||||||
import java.awt.Desktop;
|
import java.awt.Desktop;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
@@ -16,35 +16,35 @@ import org.apache.commons.io.IOUtils;
|
|||||||
|
|
||||||
import com.jgoodies.looks.plastic.PlasticXPLookAndFeel;
|
import com.jgoodies.looks.plastic.PlasticXPLookAndFeel;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.booter.deployer.DeploymentStatus;
|
import org.libresonic.player.booter.deployer.DeploymentStatus;
|
||||||
import net.sourceforge.subsonic.booter.deployer.SubsonicDeployerService;
|
import org.libresonic.player.booter.deployer.LibresonicDeployerService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Responsible for deploying the Subsonic web app in
|
* Responsible for deploying the Libresonic web app in
|
||||||
* the embedded Jetty container.
|
* the embedded Jetty container.
|
||||||
*
|
*
|
||||||
* @author Sindre Mehus
|
* @author Sindre Mehus
|
||||||
*/
|
*/
|
||||||
public class SubsonicAgent {
|
public class LibresonicAgent {
|
||||||
|
|
||||||
private final List<SubsonicListener> listeners = new ArrayList<SubsonicListener>();
|
private final List<LibresonicListener> listeners = new ArrayList<LibresonicListener>();
|
||||||
private final TrayController trayController;
|
private final TrayController trayController;
|
||||||
private SubsonicFrame frame;
|
private LibresonicFrame frame;
|
||||||
private final SubsonicDeployerService service;
|
private final LibresonicDeployerService service;
|
||||||
private static final int POLL_INTERVAL_DEPLOYMENT_INFO_SECONDS = 5;
|
private static final int POLL_INTERVAL_DEPLOYMENT_INFO_SECONDS = 5;
|
||||||
private static final int POLL_INTERVAL_SERVICE_STATUS_SECONDS = 5;
|
private static final int POLL_INTERVAL_SERVICE_STATUS_SECONDS = 5;
|
||||||
private String url;
|
private String url;
|
||||||
private boolean serviceStatusPollingEnabled;
|
private boolean serviceStatusPollingEnabled;
|
||||||
private boolean elevated;
|
private boolean elevated;
|
||||||
|
|
||||||
public SubsonicAgent(SubsonicDeployerService service) {
|
public LibresonicAgent(LibresonicDeployerService service) {
|
||||||
this.service = service;
|
this.service = service;
|
||||||
setLookAndFeel();
|
setLookAndFeel();
|
||||||
trayController = new TrayController(this);
|
trayController = new TrayController(this);
|
||||||
startPolling();
|
startPolling();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFrame(SubsonicFrame frame) {
|
public void setFrame(LibresonicFrame frame) {
|
||||||
this.frame = frame;
|
this.frame = frame;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,7 +85,7 @@ public class SubsonicAgent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String getServiceStatus() throws Exception {
|
private String getServiceStatus() throws Exception {
|
||||||
Process process = Runtime.getRuntime().exec("subsonic-service.exe -status");
|
Process process = Runtime.getRuntime().exec("libresonic-service.exe -status");
|
||||||
return IOUtils.toString(process.getInputStream());
|
return IOUtils.toString(process.getInputStream());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ public class SubsonicAgent {
|
|||||||
|
|
||||||
public void startOrStopService(boolean start) {
|
public void startOrStopService(boolean start) {
|
||||||
try {
|
try {
|
||||||
String cmd = "subsonic-service.exe " + (start ? "-start" : "-stop");
|
String cmd = "libresonic-service.exe " + (start ? "-start" : "-stop");
|
||||||
System.err.println("Executing: " + cmd);
|
System.err.println("Executing: " + cmd);
|
||||||
|
|
||||||
Runtime.getRuntime().exec(cmd);
|
Runtime.getRuntime().exec(cmd);
|
||||||
@@ -114,7 +114,7 @@ public class SubsonicAgent {
|
|||||||
List<String> command = new ArrayList<String>();
|
List<String> command = new ArrayList<String>();
|
||||||
command.add("cmd");
|
command.add("cmd");
|
||||||
command.add("/c");
|
command.add("/c");
|
||||||
command.add("subsonic-agent-elevated.exe");
|
command.add("libresonic-agent-elevated.exe");
|
||||||
command.addAll(Arrays.asList(args));
|
command.addAll(Arrays.asList(args));
|
||||||
|
|
||||||
ProcessBuilder builder = new ProcessBuilder();
|
ProcessBuilder builder = new ProcessBuilder();
|
||||||
@@ -123,7 +123,7 @@ public class SubsonicAgent {
|
|||||||
builder.start();
|
builder.start();
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
} catch (Exception x) {
|
} catch (Exception x) {
|
||||||
JOptionPane.showMessageDialog(frame, "Failed to elevate Subsonic Control Panel. " + x, "Error", JOptionPane.WARNING_MESSAGE);
|
JOptionPane.showMessageDialog(frame, "Failed to elevate Libresonic Control Panel. " + x, "Error", JOptionPane.WARNING_MESSAGE);
|
||||||
x.printStackTrace();
|
x.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -154,7 +154,7 @@ public class SubsonicAgent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addListener(SubsonicListener listener) {
|
public void addListener(LibresonicListener listener) {
|
||||||
listeners.add(listener);
|
listeners.add(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,13 +163,13 @@ public class SubsonicAgent {
|
|||||||
url = status.getURL();
|
url = status.getURL();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (SubsonicListener listener : listeners) {
|
for (LibresonicListener listener : listeners) {
|
||||||
listener.notifyDeploymentStatus(status);
|
listener.notifyDeploymentStatus(status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void notifyServiceStatus(String status) {
|
private void notifyServiceStatus(String status) {
|
||||||
for (SubsonicListener listener : listeners) {
|
for (LibresonicListener listener : listeners) {
|
||||||
listener.notifyServiceStatus(status);
|
listener.notifyServiceStatus(status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
package net.sourceforge.subsonic.booter.agent;
|
package org.libresonic.player.booter.agent;
|
||||||
|
|
||||||
import com.jgoodies.forms.factories.Borders;
|
import com.jgoodies.forms.factories.Borders;
|
||||||
import com.jgoodies.forms.factories.ButtonBarFactory;
|
import com.jgoodies.forms.factories.ButtonBarFactory;
|
||||||
import net.sourceforge.subsonic.booter.Main;
|
import org.libresonic.player.booter.Main;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@@ -17,18 +17,18 @@ import java.util.Arrays;
|
|||||||
*
|
*
|
||||||
* @author Sindre Mehus
|
* @author Sindre Mehus
|
||||||
*/
|
*/
|
||||||
public class SubsonicFrame extends JFrame {
|
public class LibresonicFrame extends JFrame {
|
||||||
|
|
||||||
private final SubsonicAgent subsonicAgent;
|
private final LibresonicAgent libresonicAgent;
|
||||||
|
|
||||||
private final StatusPanel statusPanel;
|
private final StatusPanel statusPanel;
|
||||||
private final SettingsPanel settingsPanel;
|
private final SettingsPanel settingsPanel;
|
||||||
private JTabbedPane tabbedPane;
|
private JTabbedPane tabbedPane;
|
||||||
private JButton closeButton;
|
private JButton closeButton;
|
||||||
|
|
||||||
public SubsonicFrame(SubsonicAgent subsonicAgent, StatusPanel statusPanel, SettingsPanel settingsPanel) {
|
public LibresonicFrame(LibresonicAgent libresonicAgent, StatusPanel statusPanel, SettingsPanel settingsPanel) {
|
||||||
super("Subsonic Control Panel");
|
super("Libresonic Control Panel");
|
||||||
this.subsonicAgent = subsonicAgent;
|
this.libresonicAgent = libresonicAgent;
|
||||||
this.statusPanel = statusPanel;
|
this.statusPanel = statusPanel;
|
||||||
this.settingsPanel = settingsPanel;
|
this.settingsPanel = settingsPanel;
|
||||||
createComponents();
|
createComponents();
|
||||||
@@ -43,18 +43,18 @@ public class SubsonicFrame extends JFrame {
|
|||||||
private void setupIcons() {
|
private void setupIcons() {
|
||||||
Toolkit toolkit = Toolkit.getDefaultToolkit();
|
Toolkit toolkit = Toolkit.getDefaultToolkit();
|
||||||
|
|
||||||
// Window.setIconImages() was added in Java 1.6. Since Subsonic only requires 1.5, we
|
// Window.setIconImages() was added in Java 1.6. Since Libresonic only requires 1.5, we
|
||||||
// use reflection to invoke it.
|
// use reflection to invoke it.
|
||||||
try {
|
try {
|
||||||
Method method = Window.class.getMethod("setIconImages", java.util.List.class);
|
Method method = Window.class.getMethod("setIconImages", java.util.List.class);
|
||||||
java.util.List<Image> images = Arrays.asList(
|
java.util.List<Image> images = Arrays.asList(
|
||||||
toolkit.createImage(Main.class.getResource("/images/subsonic-16.png")),
|
toolkit.createImage(Main.class.getResource("/images/libresonic-16.png")),
|
||||||
toolkit.createImage(Main.class.getResource("/images/subsonic-32.png")),
|
toolkit.createImage(Main.class.getResource("/images/libresonic-32.png")),
|
||||||
toolkit.createImage(Main.class.getResource("/images/subsonic-512.png")));
|
toolkit.createImage(Main.class.getResource("/images/libresonic-512.png")));
|
||||||
method.invoke(this, images);
|
method.invoke(this, images);
|
||||||
} catch (Throwable x) {
|
} catch (Throwable x) {
|
||||||
// Fallback to old method.
|
// Fallback to old method.
|
||||||
setIconImage(toolkit.createImage(Main.class.getResource("/images/subsonic-32.png")));
|
setIconImage(toolkit.createImage(Main.class.getResource("/images/libresonic-32.png")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ public class SubsonicFrame extends JFrame {
|
|||||||
@Override
|
@Override
|
||||||
public void setVisible(boolean b) {
|
public void setVisible(boolean b) {
|
||||||
super.setVisible(b);
|
super.setVisible(b);
|
||||||
subsonicAgent.setServiceStatusPollingEnabled(b);
|
libresonicAgent.setServiceStatusPollingEnabled(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showStatusPanel() {
|
public void showStatusPanel() {
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
package net.sourceforge.subsonic.booter.agent;
|
package org.libresonic.player.booter.agent;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.booter.deployer.DeploymentStatus;
|
import org.libresonic.player.booter.deployer.DeploymentStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Callback interface implemented by GUI classes that wants to be notified when
|
* Callback interface implemented by GUI classes that wants to be notified when
|
||||||
* the state of the Subsonic deployment changes.
|
* the state of the Libresonic deployment changes.
|
||||||
*
|
*
|
||||||
* @author Sindre Mehus
|
* @author Sindre Mehus
|
||||||
*/
|
*/
|
||||||
public interface SubsonicListener {
|
public interface LibresonicListener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invoked when new information about the Subsonic deployment is available.
|
* Invoked when new information about the Libresonic deployment is available.
|
||||||
*
|
*
|
||||||
* @param deploymentStatus The new deployment status, or <code>null</code> if an
|
* @param deploymentStatus The new deployment status, or <code>null</code> if an
|
||||||
* error occurred while retrieving the status.
|
* error occurred while retrieving the status.
|
||||||
@@ -19,7 +19,7 @@ public interface SubsonicListener {
|
|||||||
void notifyDeploymentStatus(DeploymentStatus deploymentStatus);
|
void notifyDeploymentStatus(DeploymentStatus deploymentStatus);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invoked when new information about the Subsonic Windows service is available.
|
* Invoked when new information about the Libresonic Windows service is available.
|
||||||
*
|
*
|
||||||
* @param serviceStatus The new service status, or <code>null</code> if an
|
* @param serviceStatus The new service status, or <code>null</code> if an
|
||||||
* error occurred while retrieving the status.
|
* error occurred while retrieving the status.
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
package net.sourceforge.subsonic.booter.agent;
|
package org.libresonic.player.booter.agent;
|
||||||
|
|
||||||
import com.jgoodies.forms.builder.DefaultFormBuilder;
|
import com.jgoodies.forms.builder.DefaultFormBuilder;
|
||||||
import com.jgoodies.forms.factories.Borders;
|
import com.jgoodies.forms.factories.Borders;
|
||||||
import com.jgoodies.forms.factories.ButtonBarFactory;
|
import com.jgoodies.forms.factories.ButtonBarFactory;
|
||||||
import com.jgoodies.forms.layout.FormLayout;
|
import com.jgoodies.forms.layout.FormLayout;
|
||||||
import net.sourceforge.subsonic.booter.deployer.DeploymentStatus;
|
import org.libresonic.player.booter.deployer.DeploymentStatus;
|
||||||
import net.sourceforge.subsonic.booter.deployer.SubsonicDeployer;
|
import org.libresonic.player.booter.deployer.LibresonicDeployer;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@@ -29,15 +29,15 @@ import java.util.regex.Matcher;
|
|||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Panel displaying the settings of the Subsonic service.
|
* Panel displaying the settings of the Libresonic service.
|
||||||
*
|
*
|
||||||
* @author Sindre Mehus
|
* @author Sindre Mehus
|
||||||
*/
|
*/
|
||||||
public class SettingsPanel extends JPanel implements SubsonicListener {
|
public class SettingsPanel extends JPanel implements LibresonicListener {
|
||||||
|
|
||||||
private static final Format INTEGER_FORMAT = new DecimalFormat("0", DecimalFormatSymbols.getInstance(Locale.UK));
|
private static final Format INTEGER_FORMAT = new DecimalFormat("0", DecimalFormatSymbols.getInstance(Locale.UK));
|
||||||
|
|
||||||
private final SubsonicAgent subsonicAgent;
|
private final LibresonicAgent libresonicAgent;
|
||||||
private JFormattedTextField portTextField;
|
private JFormattedTextField portTextField;
|
||||||
private JCheckBox httpsPortCheckBox;
|
private JCheckBox httpsPortCheckBox;
|
||||||
private JFormattedTextField httpsPortTextField;
|
private JFormattedTextField httpsPortTextField;
|
||||||
@@ -45,14 +45,14 @@ public class SettingsPanel extends JPanel implements SubsonicListener {
|
|||||||
private JFormattedTextField memoryTextField;
|
private JFormattedTextField memoryTextField;
|
||||||
private JButton defaultButton;
|
private JButton defaultButton;
|
||||||
private JButton saveButton;
|
private JButton saveButton;
|
||||||
public SettingsPanel(SubsonicAgent subsonicAgent) {
|
public SettingsPanel(LibresonicAgent libresonicAgent) {
|
||||||
this.subsonicAgent = subsonicAgent;
|
this.libresonicAgent = libresonicAgent;
|
||||||
createComponents();
|
createComponents();
|
||||||
configureComponents();
|
configureComponents();
|
||||||
layoutComponents();
|
layoutComponents();
|
||||||
addBehaviour();
|
addBehaviour();
|
||||||
readValues();
|
readValues();
|
||||||
subsonicAgent.addListener(this);
|
libresonicAgent.addListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void readValues() {
|
public void readValues() {
|
||||||
@@ -68,21 +68,21 @@ public class SettingsPanel extends JPanel implements SubsonicListener {
|
|||||||
|
|
||||||
private int getHttpsPortFromOptionsFile() {
|
private int getHttpsPortFromOptionsFile() {
|
||||||
try {
|
try {
|
||||||
String s = grep("-Dsubsonic.httpsPort=(\\d+)");
|
String s = grep("-Dlibresonic.httpsPort=(\\d+)");
|
||||||
return Integer.parseInt(s);
|
return Integer.parseInt(s);
|
||||||
} catch (Exception x) {
|
} catch (Exception x) {
|
||||||
x.printStackTrace();
|
x.printStackTrace();
|
||||||
return SubsonicDeployer.DEFAULT_HTTPS_PORT;
|
return LibresonicDeployer.DEFAULT_HTTPS_PORT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getPortFromOptionsFile() {
|
private int getPortFromOptionsFile() {
|
||||||
try {
|
try {
|
||||||
String s = grep("-Dsubsonic.port=(\\d+)");
|
String s = grep("-Dlibresonic.port=(\\d+)");
|
||||||
return Integer.parseInt(s);
|
return Integer.parseInt(s);
|
||||||
} catch (Exception x) {
|
} catch (Exception x) {
|
||||||
x.printStackTrace();
|
x.printStackTrace();
|
||||||
return SubsonicDeployer.DEFAULT_PORT;
|
return LibresonicDeployer.DEFAULT_PORT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,20 +92,20 @@ public class SettingsPanel extends JPanel implements SubsonicListener {
|
|||||||
return Integer.parseInt(s);
|
return Integer.parseInt(s);
|
||||||
} catch (Exception x) {
|
} catch (Exception x) {
|
||||||
x.printStackTrace();
|
x.printStackTrace();
|
||||||
return SubsonicDeployer.DEFAULT_MEMORY_LIMIT;
|
return LibresonicDeployer.DEFAULT_MEMORY_LIMIT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getContextPathFromOptionsFile() {
|
private String getContextPathFromOptionsFile() {
|
||||||
try {
|
try {
|
||||||
String s = grep("-Dsubsonic.contextPath=(.*)");
|
String s = grep("-Dlibresonic.contextPath=(.*)");
|
||||||
if (s == null) {
|
if (s == null) {
|
||||||
throw new NullPointerException();
|
throw new NullPointerException();
|
||||||
}
|
}
|
||||||
return s;
|
return s;
|
||||||
} catch (Exception x) {
|
} catch (Exception x) {
|
||||||
x.printStackTrace();
|
x.printStackTrace();
|
||||||
return SubsonicDeployer.DEFAULT_CONTEXT_PATH;
|
return LibresonicDeployer.DEFAULT_CONTEXT_PATH;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ public class SettingsPanel extends JPanel implements SubsonicListener {
|
|||||||
private void configureComponents() {
|
private void configureComponents() {
|
||||||
contextPathComboBox.setEditable(true);
|
contextPathComboBox.setEditable(true);
|
||||||
contextPathComboBox.addItem("/");
|
contextPathComboBox.addItem("/");
|
||||||
contextPathComboBox.addItem("/subsonic");
|
contextPathComboBox.addItem("/libresonic");
|
||||||
contextPathComboBox.addItem("/music");
|
contextPathComboBox.addItem("/music");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,7 +145,7 @@ public class SettingsPanel extends JPanel implements SubsonicListener {
|
|||||||
saveButton.addActionListener(new ActionListener() {
|
saveButton.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
try {
|
try {
|
||||||
subsonicAgent.checkElevation("-settings", getMemoryLimit() + "," + getPort() + "," + getHttpsPort() + "," + getContextPath());
|
libresonicAgent.checkElevation("-settings", getMemoryLimit() + "," + getPort() + "," + getHttpsPort() + "," + getContextPath());
|
||||||
saveSettings(getMemoryLimit(), getPort(), getHttpsPort(), getContextPath());
|
saveSettings(getMemoryLimit(), getPort(), getHttpsPort(), getContextPath());
|
||||||
} catch (Exception x) {
|
} catch (Exception x) {
|
||||||
JOptionPane.showMessageDialog(SettingsPanel.this, x.getMessage(), "Error", JOptionPane.WARNING_MESSAGE);
|
JOptionPane.showMessageDialog(SettingsPanel.this, x.getMessage(), "Error", JOptionPane.WARNING_MESSAGE);
|
||||||
@@ -155,12 +155,12 @@ public class SettingsPanel extends JPanel implements SubsonicListener {
|
|||||||
|
|
||||||
defaultButton.addActionListener(new ActionListener() {
|
defaultButton.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
portTextField.setValue(SubsonicDeployer.DEFAULT_PORT);
|
portTextField.setValue(LibresonicDeployer.DEFAULT_PORT);
|
||||||
httpsPortTextField.setValue(4443);
|
httpsPortTextField.setValue(4443);
|
||||||
httpsPortTextField.setEnabled(false);
|
httpsPortTextField.setEnabled(false);
|
||||||
httpsPortCheckBox.setSelected(false);
|
httpsPortCheckBox.setSelected(false);
|
||||||
memoryTextField.setValue(SubsonicDeployer.DEFAULT_MEMORY_LIMIT);
|
memoryTextField.setValue(LibresonicDeployer.DEFAULT_MEMORY_LIMIT);
|
||||||
contextPathComboBox.setSelectedItem(SubsonicDeployer.DEFAULT_CONTEXT_PATH);
|
contextPathComboBox.setSelectedItem(LibresonicDeployer.DEFAULT_CONTEXT_PATH);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -237,14 +237,14 @@ public class SettingsPanel extends JPanel implements SubsonicListener {
|
|||||||
if (line.startsWith("-Xmx")) {
|
if (line.startsWith("-Xmx")) {
|
||||||
newLines.add("-Xmx" + memoryLimit + "m");
|
newLines.add("-Xmx" + memoryLimit + "m");
|
||||||
memoryLimitAdded = true;
|
memoryLimitAdded = true;
|
||||||
} else if (line.startsWith("-Dsubsonic.port=")) {
|
} else if (line.startsWith("-Dlibresonic.port=")) {
|
||||||
newLines.add("-Dsubsonic.port=" + port);
|
newLines.add("-Dlibresonic.port=" + port);
|
||||||
portAdded = true;
|
portAdded = true;
|
||||||
} else if (line.startsWith("-Dsubsonic.httpsPort=")) {
|
} else if (line.startsWith("-Dlibresonic.httpsPort=")) {
|
||||||
newLines.add("-Dsubsonic.httpsPort=" + httpsPort);
|
newLines.add("-Dlibresonic.httpsPort=" + httpsPort);
|
||||||
httpsPortAdded = true;
|
httpsPortAdded = true;
|
||||||
} else if (line.startsWith("-Dsubsonic.contextPath=")) {
|
} else if (line.startsWith("-Dlibresonic.contextPath=")) {
|
||||||
newLines.add("-Dsubsonic.contextPath=" + contextPath);
|
newLines.add("-Dlibresonic.contextPath=" + contextPath);
|
||||||
contextPathAdded = true;
|
contextPathAdded = true;
|
||||||
} else {
|
} else {
|
||||||
newLines.add(line);
|
newLines.add(line);
|
||||||
@@ -255,25 +255,25 @@ public class SettingsPanel extends JPanel implements SubsonicListener {
|
|||||||
newLines.add("-Xmx" + memoryLimit + "m");
|
newLines.add("-Xmx" + memoryLimit + "m");
|
||||||
}
|
}
|
||||||
if (!portAdded) {
|
if (!portAdded) {
|
||||||
newLines.add("-Dsubsonic.port=" + port);
|
newLines.add("-Dlibresonic.port=" + port);
|
||||||
}
|
}
|
||||||
if (!httpsPortAdded) {
|
if (!httpsPortAdded) {
|
||||||
newLines.add("-Dsubsonic.httpsPort=" + httpsPort);
|
newLines.add("-Dlibresonic.httpsPort=" + httpsPort);
|
||||||
}
|
}
|
||||||
if (!contextPathAdded) {
|
if (!contextPathAdded) {
|
||||||
newLines.add("-Dsubsonic.contextPath=" + contextPath);
|
newLines.add("-Dlibresonic.contextPath=" + contextPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
writeLines(file, newLines);
|
writeLines(file, newLines);
|
||||||
|
|
||||||
JOptionPane.showMessageDialog(SettingsPanel.this,
|
JOptionPane.showMessageDialog(SettingsPanel.this,
|
||||||
"Please restart Subsonic for the new settings to take effect.",
|
"Please restart Libresonic for the new settings to take effect.",
|
||||||
"Settings changed", JOptionPane.INFORMATION_MESSAGE);
|
"Settings changed", JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private File getOptionsFile() throws SettingsException {
|
private File getOptionsFile() throws SettingsException {
|
||||||
File file = new File("subsonic-service.exe.vmoptions");
|
File file = new File("libresonic-service.exe.vmoptions");
|
||||||
if (!file.isFile() || !file.exists()) {
|
if (!file.isFile() || !file.exists()) {
|
||||||
throw new SettingsException("File " + file.getAbsolutePath() + " not found.");
|
throw new SettingsException("File " + file.getAbsolutePath() + " not found.");
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
package net.sourceforge.subsonic.booter.agent;
|
package org.libresonic.player.booter.agent;
|
||||||
|
|
||||||
import com.jgoodies.forms.builder.DefaultFormBuilder;
|
import com.jgoodies.forms.builder.DefaultFormBuilder;
|
||||||
import com.jgoodies.forms.factories.Borders;
|
import com.jgoodies.forms.factories.Borders;
|
||||||
import com.jgoodies.forms.factories.ButtonBarFactory;
|
import com.jgoodies.forms.factories.ButtonBarFactory;
|
||||||
import com.jgoodies.forms.layout.FormLayout;
|
import com.jgoodies.forms.layout.FormLayout;
|
||||||
import net.sourceforge.subsonic.booter.deployer.DeploymentStatus;
|
import org.libresonic.player.booter.deployer.DeploymentStatus;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@@ -14,15 +14,15 @@ import java.text.DateFormat;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Panel displaying the status of the Subsonic service.
|
* Panel displaying the status of the Libresonic service.
|
||||||
*
|
*
|
||||||
* @author Sindre Mehus
|
* @author Sindre Mehus
|
||||||
*/
|
*/
|
||||||
public class StatusPanel extends JPanel implements SubsonicListener {
|
public class StatusPanel extends JPanel implements LibresonicListener {
|
||||||
|
|
||||||
private static final DateFormat DATE_FORMAT = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.US);
|
private static final DateFormat DATE_FORMAT = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.US);
|
||||||
|
|
||||||
private final SubsonicAgent subsonicAgent;
|
private final LibresonicAgent libresonicAgent;
|
||||||
|
|
||||||
private JTextField statusTextField;
|
private JTextField statusTextField;
|
||||||
private JTextField startedTextField;
|
private JTextField startedTextField;
|
||||||
@@ -32,13 +32,13 @@ public class StatusPanel extends JPanel implements SubsonicListener {
|
|||||||
private JButton stopButton;
|
private JButton stopButton;
|
||||||
private JButton urlButton;
|
private JButton urlButton;
|
||||||
|
|
||||||
public StatusPanel(SubsonicAgent subsonicAgent) {
|
public StatusPanel(LibresonicAgent libresonicAgent) {
|
||||||
this.subsonicAgent = subsonicAgent;
|
this.libresonicAgent = libresonicAgent;
|
||||||
createComponents();
|
createComponents();
|
||||||
configureComponents();
|
configureComponents();
|
||||||
layoutComponents();
|
layoutComponents();
|
||||||
addBehaviour();
|
addBehaviour();
|
||||||
subsonicAgent.addListener(this);
|
libresonicAgent.addListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createComponents() {
|
private void createComponents() {
|
||||||
@@ -86,19 +86,19 @@ public class StatusPanel extends JPanel implements SubsonicListener {
|
|||||||
private void addBehaviour() {
|
private void addBehaviour() {
|
||||||
urlButton.addActionListener(new ActionListener() {
|
urlButton.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
subsonicAgent.openBrowser();
|
libresonicAgent.openBrowser();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
startButton.addActionListener(new ActionListener() {
|
startButton.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
subsonicAgent.checkElevation("-start");
|
libresonicAgent.checkElevation("-start");
|
||||||
subsonicAgent.startOrStopService(true);
|
libresonicAgent.startOrStopService(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
stopButton.addActionListener(new ActionListener() {
|
stopButton.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
subsonicAgent.checkElevation("-stop");
|
libresonicAgent.checkElevation("-stop");
|
||||||
subsonicAgent.startOrStopService(false);
|
libresonicAgent.startOrStopService(false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package net.sourceforge.subsonic.booter.agent;
|
package org.libresonic.player.booter.agent;
|
||||||
|
|
||||||
import java.awt.Image;
|
import java.awt.Image;
|
||||||
import java.awt.MenuItem;
|
import java.awt.MenuItem;
|
||||||
@@ -12,16 +12,16 @@ import java.net.URL;
|
|||||||
import javax.swing.AbstractAction;
|
import javax.swing.AbstractAction;
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.booter.deployer.DeploymentStatus;
|
import org.libresonic.player.booter.deployer.DeploymentStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controls the Subsonic tray icon.
|
* Controls the Libresonic tray icon.
|
||||||
*
|
*
|
||||||
* @author Sindre Mehus
|
* @author Sindre Mehus
|
||||||
*/
|
*/
|
||||||
public class TrayController implements SubsonicListener {
|
public class TrayController implements LibresonicListener {
|
||||||
|
|
||||||
private final SubsonicAgent subsonicAgent;
|
private final LibresonicAgent libresonicAgent;
|
||||||
private TrayIcon trayIcon;
|
private TrayIcon trayIcon;
|
||||||
|
|
||||||
private Action openAction;
|
private Action openAction;
|
||||||
@@ -30,48 +30,48 @@ public class TrayController implements SubsonicListener {
|
|||||||
private Image startedImage;
|
private Image startedImage;
|
||||||
private Image stoppedImage;
|
private Image stoppedImage;
|
||||||
|
|
||||||
public TrayController(SubsonicAgent subsonicAgent) {
|
public TrayController(LibresonicAgent libresonicAgent) {
|
||||||
this.subsonicAgent = subsonicAgent;
|
this.libresonicAgent = libresonicAgent;
|
||||||
try {
|
try {
|
||||||
createActions();
|
createActions();
|
||||||
createComponents();
|
createComponents();
|
||||||
addBehaviour();
|
addBehaviour();
|
||||||
installComponents();
|
installComponents();
|
||||||
subsonicAgent.addListener(this);
|
libresonicAgent.addListener(this);
|
||||||
} catch (Throwable x) {
|
} catch (Throwable x) {
|
||||||
System.err.println("Disabling tray support.");
|
System.err.println("Disabling tray support.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showMessage() {
|
public void showMessage() {
|
||||||
trayIcon.displayMessage("Subsonic", "Subsonic is now running. Click this balloon to get started.",
|
trayIcon.displayMessage("Libresonic", "Libresonic is now running. Click this balloon to get started.",
|
||||||
TrayIcon.MessageType.INFO);
|
TrayIcon.MessageType.INFO);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createActions() {
|
private void createActions() {
|
||||||
openAction = new AbstractAction("Open Subsonic in Browser") {
|
openAction = new AbstractAction("Open Libresonic in Browser") {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
subsonicAgent.openBrowser();
|
libresonicAgent.openBrowser();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
controlPanelAction = new AbstractAction("Subsonic Control Panel") {
|
controlPanelAction = new AbstractAction("Libresonic Control Panel") {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
subsonicAgent.showStatusPanel();
|
libresonicAgent.showStatusPanel();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
hideAction = new AbstractAction("Hide Tray Icon") {
|
hideAction = new AbstractAction("Hide Tray Icon") {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
subsonicAgent.exit();
|
libresonicAgent.exit();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createComponents() {
|
private void createComponents() {
|
||||||
startedImage = createImage("/images/subsonic-started-16.png");
|
startedImage = createImage("/images/libresonic-started-16.png");
|
||||||
stoppedImage = createImage("/images/subsonic-stopped-16.png");
|
stoppedImage = createImage("/images/libresonic-stopped-16.png");
|
||||||
|
|
||||||
PopupMenu menu = new PopupMenu();
|
PopupMenu menu = new PopupMenu();
|
||||||
menu.add(createMenuItem(openAction));
|
menu.add(createMenuItem(openAction));
|
||||||
@@ -79,7 +79,7 @@ public class TrayController implements SubsonicListener {
|
|||||||
menu.addSeparator();
|
menu.addSeparator();
|
||||||
menu.add(createMenuItem(hideAction));
|
menu.add(createMenuItem(hideAction));
|
||||||
|
|
||||||
trayIcon = new TrayIcon(stoppedImage, "Subsonic Music Streamer", menu);
|
trayIcon = new TrayIcon(stoppedImage, "Libresonic Music Streamer", menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Image createImage(String resourceName) {
|
private Image createImage(String resourceName) {
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package net.sourceforge.subsonic.booter.deployer;
|
package org.libresonic.player.booter.deployer;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package net.sourceforge.subsonic.booter.deployer;
|
package org.libresonic.player.booter.deployer;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
@@ -20,42 +20,42 @@ import org.mortbay.jetty.security.SslSocketConnector;
|
|||||||
import org.mortbay.jetty.webapp.WebAppContext;
|
import org.mortbay.jetty.webapp.WebAppContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Responsible for deploying the Subsonic web app in
|
* Responsible for deploying the Libresonic web app in
|
||||||
* the embedded Jetty container.
|
* the embedded Jetty container.
|
||||||
* <p/>
|
* <p/>
|
||||||
* The following system properties may be used to customize the behaviour:
|
* The following system properties may be used to customize the behaviour:
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li><code>subsonic.contextPath</code> - The context path at which Subsonic is deployed. Default "/".</li>
|
* <li><code>libresonic.contextPath</code> - The context path at which Libresonic is deployed. Default "/".</li>
|
||||||
* <li><code>subsonic.port</code> - The port Subsonic will listen to. Default 4040.</li>
|
* <li><code>libresonic.port</code> - The port Libresonic will listen to. Default 4040.</li>
|
||||||
* <li><code>subsonic.httpsPort</code> - The port Subsonic will listen to for HTTPS. Default 0, which disables HTTPS.</li>
|
* <li><code>libresonic.httpsPort</code> - The port Libresonic will listen to for HTTPS. Default 0, which disables HTTPS.</li>
|
||||||
* <li><code>subsonic.war</code> - Subsonic WAR file, or exploded directory. Default "subsonic.war".</li>
|
* <li><code>libresonic.war</code> - Libresonic WAR file, or exploded directory. Default "libresonic.war".</li>
|
||||||
* <li><code>subsonic.createLinkFile</code> - If set to "true", a Subsonic.url file is created in the working directory.</li>
|
* <li><code>libresonic.createLinkFile</code> - If set to "true", a Libresonic.url file is created in the working directory.</li>
|
||||||
* <li><code>subsonic.ssl.keystore</code> - Path to an alternate SSL keystore.</li>
|
* <li><code>libresonic.ssl.keystore</code> - Path to an alternate SSL keystore.</li>
|
||||||
* <li><code>subsonic.ssl.password</code> - Password of the alternate SSL keystore.</li>
|
* <li><code>libresonic.ssl.password</code> - Password of the alternate SSL keystore.</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
*
|
*
|
||||||
* @author Sindre Mehus
|
* @author Sindre Mehus
|
||||||
*/
|
*/
|
||||||
public class SubsonicDeployer implements SubsonicDeployerService {
|
public class LibresonicDeployer implements LibresonicDeployerService {
|
||||||
|
|
||||||
public static final String DEFAULT_HOST = "0.0.0.0";
|
public static final String DEFAULT_HOST = "0.0.0.0";
|
||||||
public static final int DEFAULT_PORT = 4040;
|
public static final int DEFAULT_PORT = 4040;
|
||||||
public static final int DEFAULT_HTTPS_PORT = 0;
|
public static final int DEFAULT_HTTPS_PORT = 0;
|
||||||
public static final int DEFAULT_MEMORY_LIMIT = 150;
|
public static final int DEFAULT_MEMORY_LIMIT = 150;
|
||||||
public static final String DEFAULT_CONTEXT_PATH = "/";
|
public static final String DEFAULT_CONTEXT_PATH = "/";
|
||||||
public static final String DEFAULT_WAR = "subsonic.war";
|
public static final String DEFAULT_WAR = "libresonic.war";
|
||||||
private static final int MAX_IDLE_TIME_MILLIS = 7 * 24 * 60 * 60 * 1000; // One week.
|
private static final int MAX_IDLE_TIME_MILLIS = 7 * 24 * 60 * 60 * 1000; // One week.
|
||||||
private static final int HEADER_BUFFER_SIZE = 64 * 1024;
|
private static final int HEADER_BUFFER_SIZE = 64 * 1024;
|
||||||
|
|
||||||
// Subsonic home directory.
|
// Libresonic home directory.
|
||||||
private static final File SUBSONIC_HOME_WINDOWS = new File("c:/subsonic");
|
private static final File SUBSONIC_HOME_WINDOWS = new File("c:/libresonic");
|
||||||
private static final File SUBSONIC_HOME_OTHER = new File("/var/subsonic");
|
private static final File SUBSONIC_HOME_OTHER = new File("/var/libresonic");
|
||||||
|
|
||||||
private Throwable exception;
|
private Throwable exception;
|
||||||
private File subsonicHome;
|
private File libresonicHome;
|
||||||
private final Date startTime;
|
private final Date startTime;
|
||||||
|
|
||||||
public SubsonicDeployer() {
|
public LibresonicDeployer() {
|
||||||
|
|
||||||
// Enable shutdown hook for Ehcache.
|
// Enable shutdown hook for Ehcache.
|
||||||
System.setProperty("net.sf.ehcache.enableShutdownHook", "true");
|
System.setProperty("net.sf.ehcache.enableShutdownHook", "true");
|
||||||
@@ -66,16 +66,16 @@ public class SubsonicDeployer implements SubsonicDeployerService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void createLinkFile() {
|
private void createLinkFile() {
|
||||||
if ("true".equals(System.getProperty("subsonic.createLinkFile"))) {
|
if ("true".equals(System.getProperty("libresonic.createLinkFile"))) {
|
||||||
Writer writer = null;
|
Writer writer = null;
|
||||||
try {
|
try {
|
||||||
writer = new FileWriter("subsonic.url");
|
writer = new FileWriter("libresonic.url");
|
||||||
writer.append("[InternetShortcut]");
|
writer.append("[InternetShortcut]");
|
||||||
writer.append(System.getProperty("line.separator"));
|
writer.append(System.getProperty("line.separator"));
|
||||||
writer.append("URL=").append(getUrl());
|
writer.append("URL=").append(getUrl());
|
||||||
writer.flush();
|
writer.flush();
|
||||||
} catch (Throwable x) {
|
} catch (Throwable x) {
|
||||||
System.err.println("Failed to create subsonic.url.");
|
System.err.println("Failed to create libresonic.url.");
|
||||||
x.printStackTrace();
|
x.printStackTrace();
|
||||||
} finally {
|
} finally {
|
||||||
if (writer != null) {
|
if (writer != null) {
|
||||||
@@ -108,8 +108,8 @@ public class SubsonicDeployer implements SubsonicDeployerService {
|
|||||||
sslConnector.setHeaderBufferSize(HEADER_BUFFER_SIZE);
|
sslConnector.setHeaderBufferSize(HEADER_BUFFER_SIZE);
|
||||||
sslConnector.setHost(getHost());
|
sslConnector.setHost(getHost());
|
||||||
sslConnector.setPort(getHttpsPort());
|
sslConnector.setPort(getHttpsPort());
|
||||||
sslConnector.setKeystore(System.getProperty("subsonic.ssl.keystore", getClass().getResource("/subsonic.keystore").toExternalForm()));
|
sslConnector.setKeystore(System.getProperty("libresonic.ssl.keystore", getClass().getResource("/libresonic.keystore").toExternalForm()));
|
||||||
sslConnector.setPassword(System.getProperty("subsonic.ssl.password", "subsonic"));
|
sslConnector.setPassword(System.getProperty("libresonic.ssl.password", "libresonic"));
|
||||||
server.addConnector(sslConnector);
|
server.addConnector(sslConnector);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ public class SubsonicDeployer implements SubsonicDeployerService {
|
|||||||
server.addHandler(context);
|
server.addHandler(context);
|
||||||
server.start();
|
server.start();
|
||||||
|
|
||||||
System.err.println("Subsonic running on: " + getUrl());
|
System.err.println("Libresonic running on: " + getUrl());
|
||||||
if (isHttpsEnabled()) {
|
if (isHttpsEnabled()) {
|
||||||
System.err.println(" and: " + getHttpsUrl());
|
System.err.println(" and: " + getHttpsUrl());
|
||||||
}
|
}
|
||||||
@@ -155,8 +155,8 @@ public class SubsonicDeployer implements SubsonicDeployerService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private File getJettyDirectory() {
|
private File getJettyDirectory() {
|
||||||
File dir = new File(getSubsonicHome(), "jetty");
|
File dir = new File(getLibresonicHome(), "jetty");
|
||||||
String buildNumber = getSubsonicBuildNumber();
|
String buildNumber = getLibresonicBuildNumber();
|
||||||
if (buildNumber != null) {
|
if (buildNumber != null) {
|
||||||
dir = new File(dir, buildNumber);
|
dir = new File(dir, buildNumber);
|
||||||
}
|
}
|
||||||
@@ -169,7 +169,7 @@ public class SubsonicDeployer implements SubsonicDeployerService {
|
|||||||
return dir;
|
return dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getSubsonicBuildNumber() {
|
private String getLibresonicBuildNumber() {
|
||||||
File war = new File(getWar());
|
File war = new File(getWar());
|
||||||
InputStream in = null;
|
InputStream in = null;
|
||||||
try {
|
try {
|
||||||
@@ -194,12 +194,12 @@ public class SubsonicDeployer implements SubsonicDeployerService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String getContextPath() {
|
private String getContextPath() {
|
||||||
return System.getProperty("subsonic.contextPath", DEFAULT_CONTEXT_PATH);
|
return System.getProperty("libresonic.contextPath", DEFAULT_CONTEXT_PATH);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private String getWar() {
|
private String getWar() {
|
||||||
String war = System.getProperty("subsonic.war");
|
String war = System.getProperty("libresonic.war");
|
||||||
if (war == null) {
|
if (war == null) {
|
||||||
war = DEFAULT_WAR;
|
war = DEFAULT_WAR;
|
||||||
}
|
}
|
||||||
@@ -215,19 +215,19 @@ public class SubsonicDeployer implements SubsonicDeployerService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String getHost() {
|
private String getHost() {
|
||||||
return System.getProperty("subsonic.host", DEFAULT_HOST);
|
return System.getProperty("libresonic.host", DEFAULT_HOST);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getPort() {
|
private int getPort() {
|
||||||
int port = DEFAULT_PORT;
|
int port = DEFAULT_PORT;
|
||||||
|
|
||||||
String portString = System.getProperty("subsonic.port");
|
String portString = System.getProperty("libresonic.port");
|
||||||
if (portString != null) {
|
if (portString != null) {
|
||||||
port = Integer.parseInt(portString);
|
port = Integer.parseInt(portString);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Also set it so that the webapp can read it.
|
// Also set it so that the webapp can read it.
|
||||||
System.setProperty("subsonic.port", String.valueOf(port));
|
System.setProperty("libresonic.port", String.valueOf(port));
|
||||||
|
|
||||||
return port;
|
return port;
|
||||||
}
|
}
|
||||||
@@ -235,13 +235,13 @@ public class SubsonicDeployer implements SubsonicDeployerService {
|
|||||||
private int getHttpsPort() {
|
private int getHttpsPort() {
|
||||||
int port = DEFAULT_HTTPS_PORT;
|
int port = DEFAULT_HTTPS_PORT;
|
||||||
|
|
||||||
String portString = System.getProperty("subsonic.httpsPort");
|
String portString = System.getProperty("libresonic.httpsPort");
|
||||||
if (portString != null) {
|
if (portString != null) {
|
||||||
port = Integer.parseInt(portString);
|
port = Integer.parseInt(portString);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Also set it so that the webapp can read it.
|
// Also set it so that the webapp can read it.
|
||||||
System.setProperty("subsonic.httpsPort", String.valueOf(port));
|
System.setProperty("libresonic.httpsPort", String.valueOf(port));
|
||||||
|
|
||||||
return port;
|
return port;
|
||||||
}
|
}
|
||||||
@@ -293,20 +293,20 @@ public class SubsonicDeployer implements SubsonicDeployerService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the Subsonic home directory.
|
* Returns the Libresonic home directory.
|
||||||
*
|
*
|
||||||
* @return The Subsonic home directory, if it exists.
|
* @return The Libresonic home directory, if it exists.
|
||||||
* @throws RuntimeException If directory doesn't exist.
|
* @throws RuntimeException If directory doesn't exist.
|
||||||
*/
|
*/
|
||||||
private File getSubsonicHome() {
|
private File getLibresonicHome() {
|
||||||
|
|
||||||
if (subsonicHome != null) {
|
if (libresonicHome != null) {
|
||||||
return subsonicHome;
|
return libresonicHome;
|
||||||
}
|
}
|
||||||
|
|
||||||
File home;
|
File home;
|
||||||
|
|
||||||
String overrideHome = System.getProperty("subsonic.home");
|
String overrideHome = System.getProperty("libresonic.home");
|
||||||
if (overrideHome != null) {
|
if (overrideHome != null) {
|
||||||
home = new File(overrideHome);
|
home = new File(overrideHome);
|
||||||
} else {
|
} else {
|
||||||
@@ -318,15 +318,15 @@ public class SubsonicDeployer implements SubsonicDeployerService {
|
|||||||
if (!home.exists() || !home.isDirectory()) {
|
if (!home.exists() || !home.isDirectory()) {
|
||||||
boolean success = home.mkdirs();
|
boolean success = home.mkdirs();
|
||||||
if (success) {
|
if (success) {
|
||||||
subsonicHome = home;
|
libresonicHome = home;
|
||||||
} else {
|
} else {
|
||||||
String message = "The directory " + home + " does not exist. Please create it and make it writable. " +
|
String message = "The directory " + home + " does not exist. Please create it and make it writable. " +
|
||||||
"(You can override the directory location by specifying -Dsubsonic.home=... when " +
|
"(You can override the directory location by specifying -Dlibresonic.home=... when " +
|
||||||
"starting the servlet container.)";
|
"starting the servlet container.)";
|
||||||
System.err.println("ERROR: " + message);
|
System.err.println("ERROR: " + message);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
subsonicHome = home;
|
libresonicHome = home;
|
||||||
}
|
}
|
||||||
|
|
||||||
return home;
|
return home;
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package org.libresonic.player.booter.deployer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* RMI interface implemented by the Libresonic deployer and used by the agent.
|
||||||
|
*
|
||||||
|
* @author Sindre Mehus
|
||||||
|
*/
|
||||||
|
public interface LibresonicDeployerService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns information about the Libresonic deployment, such
|
||||||
|
* as URL, memory consumption, start time etc.
|
||||||
|
*
|
||||||
|
* @return Deployment information.
|
||||||
|
*/
|
||||||
|
DeploymentStatus getDeploymentInfo();
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.sourceforge.subsonic.booter.mac;
|
package org.libresonic.player.booter.mac;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.booter.deployer.SubsonicDeployerService;
|
import org.libresonic.player.booter.deployer.LibresonicDeployerService;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@@ -13,15 +13,15 @@ import java.net.URI;
|
|||||||
*
|
*
|
||||||
* @author Sindre Mehus
|
* @author Sindre Mehus
|
||||||
*/
|
*/
|
||||||
public class SubsonicController {
|
public class LibresonicController {
|
||||||
|
|
||||||
private final SubsonicDeployerService deployer;
|
private final LibresonicDeployerService deployer;
|
||||||
private final SubsonicFrame frame;
|
private final LibresonicFrame frame;
|
||||||
private Action openAction;
|
private Action openAction;
|
||||||
private Action controlPanelAction;
|
private Action controlPanelAction;
|
||||||
private Action quitAction;
|
private Action quitAction;
|
||||||
|
|
||||||
public SubsonicController(SubsonicDeployerService deployer, SubsonicFrame frame) {
|
public LibresonicController(LibresonicDeployerService deployer, LibresonicFrame frame) {
|
||||||
this.deployer = deployer;
|
this.deployer = deployer;
|
||||||
this.frame = frame;
|
this.frame = frame;
|
||||||
createActions();
|
createActions();
|
||||||
@@ -29,20 +29,20 @@ public class SubsonicController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void createActions() {
|
private void createActions() {
|
||||||
openAction = new AbstractAction("Open Subsonic Web Page") {
|
openAction = new AbstractAction("Open Libresonic Web Page") {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
openBrowser();
|
openBrowser();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
controlPanelAction = new AbstractAction("Subsonic Control Panel") {
|
controlPanelAction = new AbstractAction("Libresonic Control Panel") {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
frame.setActive(false);
|
frame.setActive(false);
|
||||||
frame.setActive(true);
|
frame.setActive(true);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
quitAction = new AbstractAction("Quit Subsonic") {
|
quitAction = new AbstractAction("Quit Libresonic") {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
}
|
}
|
||||||
@@ -56,9 +56,9 @@ public class SubsonicController {
|
|||||||
menu.addSeparator();
|
menu.addSeparator();
|
||||||
menu.add(createMenuItem(quitAction));
|
menu.add(createMenuItem(quitAction));
|
||||||
|
|
||||||
URL url = getClass().getResource("/images/subsonic-21.png");
|
URL url = getClass().getResource("/images/libresonic-21.png");
|
||||||
Image image = Toolkit.getDefaultToolkit().createImage(url);
|
Image image = Toolkit.getDefaultToolkit().createImage(url);
|
||||||
TrayIcon trayIcon = new TrayIcon(image, "Subsonic Music Streamer", menu);
|
TrayIcon trayIcon = new TrayIcon(image, "Libresonic Music Streamer", menu);
|
||||||
trayIcon.setImageAutoSize(false);
|
trayIcon.setImageAutoSize(false);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
package net.sourceforge.subsonic.booter.mac;
|
package org.libresonic.player.booter.mac;
|
||||||
|
|
||||||
import com.jgoodies.forms.factories.Borders;
|
import com.jgoodies.forms.factories.Borders;
|
||||||
import com.jgoodies.forms.factories.ButtonBarFactory;
|
import com.jgoodies.forms.factories.ButtonBarFactory;
|
||||||
import net.sourceforge.subsonic.booter.Main;
|
import org.libresonic.player.booter.Main;
|
||||||
import net.sourceforge.subsonic.booter.deployer.SubsonicDeployerService;
|
import org.libresonic.player.booter.deployer.LibresonicDeployerService;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@@ -12,25 +12,25 @@ import java.awt.event.ActionListener;
|
|||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Frame with Subsonic status. Used on Mac installs.
|
* Frame with Libresonic status. Used on Mac installs.
|
||||||
*
|
*
|
||||||
* @author Sindre Mehus
|
* @author Sindre Mehus
|
||||||
*/
|
*/
|
||||||
public class SubsonicFrame extends JFrame {
|
public class LibresonicFrame extends JFrame {
|
||||||
|
|
||||||
private final SubsonicDeployerService deployer;
|
private final LibresonicDeployerService deployer;
|
||||||
private StatusPanel statusPanel;
|
private StatusPanel statusPanel;
|
||||||
private JButton hideButton;
|
private JButton hideButton;
|
||||||
private JButton exitButton;
|
private JButton exitButton;
|
||||||
|
|
||||||
public SubsonicFrame(SubsonicDeployerService deployer) {
|
public LibresonicFrame(LibresonicDeployerService deployer) {
|
||||||
super("Subsonic");
|
super("Libresonic");
|
||||||
this.deployer = deployer;
|
this.deployer = deployer;
|
||||||
createComponents();
|
createComponents();
|
||||||
layoutComponents();
|
layoutComponents();
|
||||||
addBehaviour();
|
addBehaviour();
|
||||||
|
|
||||||
URL url = Main.class.getResource("/images/subsonic-512.png");
|
URL url = Main.class.getResource("/images/libresonic-512.png");
|
||||||
setIconImage(Toolkit.getDefaultToolkit().createImage(url));
|
setIconImage(Toolkit.getDefaultToolkit().createImage(url));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package net.sourceforge.subsonic.booter.mac;
|
package org.libresonic.player.booter.mac;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Desktop;
|
import java.awt.Desktop;
|
||||||
@@ -19,11 +19,11 @@ import com.jgoodies.forms.builder.DefaultFormBuilder;
|
|||||||
import com.jgoodies.forms.factories.Borders;
|
import com.jgoodies.forms.factories.Borders;
|
||||||
import com.jgoodies.forms.layout.FormLayout;
|
import com.jgoodies.forms.layout.FormLayout;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.booter.deployer.DeploymentStatus;
|
import org.libresonic.player.booter.deployer.DeploymentStatus;
|
||||||
import net.sourceforge.subsonic.booter.deployer.SubsonicDeployerService;
|
import org.libresonic.player.booter.deployer.LibresonicDeployerService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Panel displaying the status of the Subsonic service.
|
* Panel displaying the status of the Libresonic service.
|
||||||
*
|
*
|
||||||
* @author Sindre Mehus
|
* @author Sindre Mehus
|
||||||
*/
|
*/
|
||||||
@@ -31,14 +31,14 @@ public class StatusPanel extends JPanel {
|
|||||||
|
|
||||||
private static final DateFormat DATE_FORMAT = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.US);
|
private static final DateFormat DATE_FORMAT = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.US);
|
||||||
|
|
||||||
private final SubsonicDeployerService deployer;
|
private final LibresonicDeployerService deployer;
|
||||||
|
|
||||||
private JTextField startedTextField;
|
private JTextField startedTextField;
|
||||||
private JTextField memoryTextField;
|
private JTextField memoryTextField;
|
||||||
private JTextArea errorTextField;
|
private JTextArea errorTextField;
|
||||||
private JButton urlButton;
|
private JButton urlButton;
|
||||||
|
|
||||||
public StatusPanel(SubsonicDeployerService deployer) {
|
public StatusPanel(LibresonicDeployerService deployer) {
|
||||||
this.deployer = deployer;
|
this.deployer = deployer;
|
||||||
createComponents();
|
createComponents();
|
||||||
configureComponents();
|
configureComponents();
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
Manifest-Version: 1.0
|
||||||
|
Main-Class: org.libresonic.player.booter.Main
|
||||||
@@ -5,28 +5,28 @@
|
|||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
||||||
|
|
||||||
<bean id="service" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
|
<bean id="service" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
|
||||||
<property name="serviceUrl" value="rmi://localhost:9412/SubsonicDeployerService"/>
|
<property name="serviceUrl" value="rmi://localhost:9412/LibresonicDeployerService"/>
|
||||||
<property name="serviceInterface" value="net.sourceforge.subsonic.booter.deployer.SubsonicDeployerService"/>
|
<property name="serviceInterface" value="org.libresonic.player.booter.deployer.LibresonicDeployerService"/>
|
||||||
<property name="lookupStubOnStartup" value="false"/>
|
<property name="lookupStubOnStartup" value="false"/>
|
||||||
<property name="refreshStubOnConnectFailure" value="true"/>
|
<property name="refreshStubOnConnectFailure" value="true"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="agent" class="net.sourceforge.subsonic.booter.agent.SubsonicAgent">
|
<bean id="agent" class="org.libresonic.player.booter.agent.LibresonicAgent">
|
||||||
<constructor-arg ref="service"/>
|
<constructor-arg ref="service"/>
|
||||||
<property name="frame" ref="frame"/>
|
<property name="frame" ref="frame"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="frame" class="net.sourceforge.subsonic.booter.agent.SubsonicFrame">
|
<bean id="frame" class="org.libresonic.player.booter.agent.LibresonicFrame">
|
||||||
<constructor-arg ref="agent"/>
|
<constructor-arg ref="agent"/>
|
||||||
<constructor-arg ref="statusPanel"/>
|
<constructor-arg ref="statusPanel"/>
|
||||||
<constructor-arg ref="settingsPanel"/>
|
<constructor-arg ref="settingsPanel"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="settingsPanel" class="net.sourceforge.subsonic.booter.agent.SettingsPanel">
|
<bean id="settingsPanel" class="org.libresonic.player.booter.agent.SettingsPanel">
|
||||||
<constructor-arg ref="agent"/>
|
<constructor-arg ref="agent"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="statusPanel" class="net.sourceforge.subsonic.booter.agent.StatusPanel">
|
<bean id="statusPanel" class="org.libresonic.player.booter.agent.StatusPanel">
|
||||||
<constructor-arg ref="agent"/>
|
<constructor-arg ref="agent"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
@@ -4,12 +4,12 @@
|
|||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
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-2.5.xsd">
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
||||||
|
|
||||||
<bean id="service" class="net.sourceforge.subsonic.booter.deployer.SubsonicDeployer"/>
|
<bean id="service" class="org.libresonic.player.booter.deployer.LibresonicDeployer"/>
|
||||||
|
|
||||||
<bean class="org.springframework.remoting.rmi.RmiServiceExporter">
|
<bean class="org.springframework.remoting.rmi.RmiServiceExporter">
|
||||||
<property name="serviceName" value="SubsonicDeployerService"/>
|
<property name="serviceName" value="LibresonicDeployerService"/>
|
||||||
<property name="service" ref="service"/>
|
<property name="service" ref="service"/>
|
||||||
<property name="serviceInterface" value="net.sourceforge.subsonic.booter.deployer.SubsonicDeployerService"/>
|
<property name="serviceInterface" value="org.libresonic.player.booter.deployer.LibresonicDeployerService"/>
|
||||||
<property name="registryPort" value="9412"/>
|
<property name="registryPort" value="9412"/>
|
||||||
</bean>
|
</bean>
|
||||||
</beans>
|
</beans>
|
||||||
@@ -4,13 +4,13 @@
|
|||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
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-2.5.xsd">
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
||||||
|
|
||||||
<bean id="deployer" class="net.sourceforge.subsonic.booter.deployer.SubsonicDeployer"/>
|
<bean id="deployer" class="org.libresonic.player.booter.deployer.LibresonicDeployer"/>
|
||||||
|
|
||||||
<bean id="frame" class="net.sourceforge.subsonic.booter.mac.SubsonicFrame">
|
<bean id="frame" class="org.libresonic.player.booter.mac.LibresonicFrame">
|
||||||
<constructor-arg ref="deployer"/>
|
<constructor-arg ref="deployer"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="controller" class="net.sourceforge.subsonic.booter.mac.SubsonicController">
|
<bean id="controller" class="org.libresonic.player.booter.mac.LibresonicController">
|
||||||
<constructor-arg ref="deployer"/>
|
<constructor-arg ref="deployer"/>
|
||||||
<constructor-arg ref="frame"/>
|
<constructor-arg ref="frame"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
Before Width: | Height: | Size: 734 B After Width: | Height: | Size: 734 B |
|
Before Width: | Height: | Size: 673 B After Width: | Height: | Size: 673 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 810 B After Width: | Height: | Size: 810 B |
|
Before Width: | Height: | Size: 771 B After Width: | Height: | Size: 771 B |
@@ -1,24 +1,24 @@
|
|||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
<!--
|
<!--
|
||||||
~ This file is part of Subsonic.
|
~ This file is part of Libresonic.
|
||||||
~
|
~
|
||||||
~ Subsonic is free software: you can redistribute it and/or modify
|
~ Libresonic is free software: you can redistribute it and/or modify
|
||||||
~ it under the terms of the GNU General Public License as published by
|
~ it under the terms of the GNU General Public License as published by
|
||||||
~ the Free Software Foundation, either version 3 of the License, or
|
~ the Free Software Foundation, either version 3 of the License, or
|
||||||
~ (at your option) any later version.
|
~ (at your option) any later version.
|
||||||
~
|
~
|
||||||
~ Subsonic is distributed in the hope that it will be useful,
|
~ Libresonic is distributed in the hope that it will be useful,
|
||||||
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
~ GNU General Public License for more details.
|
~ GNU General Public License for more details.
|
||||||
~
|
~
|
||||||
~ You should have received a copy of the GNU General Public License
|
~ You should have received a copy of the GNU General Public License
|
||||||
~ along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
~ along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
~
|
~
|
||||||
~ Copyright 2014 (C) Sindre Mehus
|
~ Copyright 2014 (C) Sindre Mehus
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<web-app id="subsonic" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
|
<web-app id="libresonic" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
|
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
|
||||||
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
REM The directory where Libresonic will create files. Make sure it is writable.
|
||||||
|
set SUBSONIC_HOME=c:\libresonic
|
||||||
|
|
||||||
|
REM The host name or IP address on which to bind Libresonic. Only relevant if you have
|
||||||
|
REM multiple network interfaces and want to make Libresonic available on only one of them.
|
||||||
|
REM The default value 0.0.0.0 will bind Libresonic to all available network interfaces.
|
||||||
|
set SUBSONIC_HOST=0.0.0.0
|
||||||
|
|
||||||
|
REM The port on which Libresonic will listen for incoming HTTP traffic.
|
||||||
|
set SUBSONIC_PORT=4040
|
||||||
|
|
||||||
|
REM The port on which Libresonic will listen for incoming HTTPS traffic (0 to disable).
|
||||||
|
set SUBSONIC_HTTPS_PORT=0
|
||||||
|
|
||||||
|
REM The context path (i.e., the last part of the Libresonic URL). Typically "/" or "/libresonic".
|
||||||
|
set SUBSONIC_CONTEXT_PATH=/
|
||||||
|
|
||||||
|
REM The memory limit (max Java heap size) in megabytes.
|
||||||
|
set MAX_MEMORY=150
|
||||||
|
|
||||||
|
java -Xmx%MAX_MEMORY%m -Dlibresonic.home=%SUBSONIC_HOME% -Dlibresonic.host=%SUBSONIC_HOST% -Dlibresonic.port=%SUBSONIC_PORT% -Dlibresonic.httpsPort=%SUBSONIC_HTTPS_PORT% -Dlibresonic.contextPath=%SUBSONIC_CONTEXT_PATH% -jar libresonic-booter-jar-with-dependencies.jar
|
||||||
|
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
###################################################################################
|
###################################################################################
|
||||||
# Shell script for starting Subsonic. See http://subsonic.org.
|
# Shell script for starting Libresonic. See http://libresonic.org.
|
||||||
#
|
#
|
||||||
# Author: Sindre Mehus
|
# Author: Sindre Mehus
|
||||||
###################################################################################
|
###################################################################################
|
||||||
|
|
||||||
SUBSONIC_HOME=/var/subsonic
|
SUBSONIC_HOME=/var/libresonic
|
||||||
SUBSONIC_HOST=0.0.0.0
|
SUBSONIC_HOST=0.0.0.0
|
||||||
SUBSONIC_PORT=4040
|
SUBSONIC_PORT=4040
|
||||||
SUBSONIC_HTTPS_PORT=0
|
SUBSONIC_HTTPS_PORT=0
|
||||||
@@ -20,30 +20,30 @@ SUBSONIC_DEFAULT_PLAYLIST_FOLDER=/var/playlists
|
|||||||
quiet=0
|
quiet=0
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "Usage: subsonic.sh [options]"
|
echo "Usage: libresonic.sh [options]"
|
||||||
echo " --help This small usage guide."
|
echo " --help This small usage guide."
|
||||||
echo " --home=DIR The directory where Subsonic will create files."
|
echo " --home=DIR The directory where Libresonic will create files."
|
||||||
echo " Make sure it is writable. Default: /var/subsonic"
|
echo " Make sure it is writable. Default: /var/libresonic"
|
||||||
echo " --host=HOST The host name or IP address on which to bind Subsonic."
|
echo " --host=HOST The host name or IP address on which to bind Libresonic."
|
||||||
echo " Only relevant if you have multiple network interfaces and want"
|
echo " Only relevant if you have multiple network interfaces and want"
|
||||||
echo " to make Subsonic available on only one of them. The default value"
|
echo " to make Libresonic available on only one of them. The default value"
|
||||||
echo " will bind Subsonic to all available network interfaces. Default: 0.0.0.0"
|
echo " will bind Libresonic to all available network interfaces. Default: 0.0.0.0"
|
||||||
echo " --port=PORT The port on which Subsonic will listen for"
|
echo " --port=PORT The port on which Libresonic will listen for"
|
||||||
echo " incoming HTTP traffic. Default: 4040"
|
echo " incoming HTTP traffic. Default: 4040"
|
||||||
echo " --https-port=PORT The port on which Subsonic will listen for"
|
echo " --https-port=PORT The port on which Libresonic will listen for"
|
||||||
echo " incoming HTTPS traffic. Default: 0 (disabled)"
|
echo " incoming HTTPS traffic. Default: 0 (disabled)"
|
||||||
echo " --context-path=PATH The context path, i.e., the last part of the Subsonic"
|
echo " --context-path=PATH The context path, i.e., the last part of the Libresonic"
|
||||||
echo " URL. Typically '/' or '/subsonic'. Default '/'"
|
echo " URL. Typically '/' or '/libresonic'. Default '/'"
|
||||||
echo " --max-memory=MB The memory limit (max Java heap size) in megabytes."
|
echo " --max-memory=MB The memory limit (max Java heap size) in megabytes."
|
||||||
echo " Default: 100"
|
echo " Default: 100"
|
||||||
echo " --pidfile=PIDFILE Write PID to this file. Default not created."
|
echo " --pidfile=PIDFILE Write PID to this file. Default not created."
|
||||||
echo " --quiet Don't print anything to standard out. Default false."
|
echo " --quiet Don't print anything to standard out. Default false."
|
||||||
echo " --default-music-folder=DIR Configure Subsonic to use this folder for music. This option "
|
echo " --default-music-folder=DIR Configure Libresonic to use this folder for music. This option "
|
||||||
echo " only has effect the first time Subsonic is started. Default '/var/music'"
|
echo " only has effect the first time Libresonic is started. Default '/var/music'"
|
||||||
echo " --default-podcast-folder=DIR Configure Subsonic to use this folder for Podcasts. This option "
|
echo " --default-podcast-folder=DIR Configure Libresonic to use this folder for Podcasts. This option "
|
||||||
echo " only has effect the first time Subsonic is started. Default '/var/music/Podcast'"
|
echo " only has effect the first time Libresonic is started. Default '/var/music/Podcast'"
|
||||||
echo " --default-playlist-folder=DIR Configure Subsonic to use this folder for playlists. This option "
|
echo " --default-playlist-folder=DIR Configure Libresonic to use this folder for playlists. This option "
|
||||||
echo " only has effect the first time Subsonic is started. Default '/var/playlists'"
|
echo " only has effect the first time Libresonic is started. Default '/var/playlists'"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -100,9 +100,9 @@ if [ -e "${JAVA_HOME}" ]
|
|||||||
JAVA=${JAVA_HOME}/bin/java
|
JAVA=${JAVA_HOME}/bin/java
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create Subsonic home directory.
|
# Create Libresonic home directory.
|
||||||
mkdir -p ${SUBSONIC_HOME}
|
mkdir -p ${SUBSONIC_HOME}
|
||||||
LOG=${SUBSONIC_HOME}/subsonic_sh.log
|
LOG=${SUBSONIC_HOME}/libresonic_sh.log
|
||||||
rm -f ${LOG}
|
rm -f ${LOG}
|
||||||
|
|
||||||
cd $(dirname $0)
|
cd $(dirname $0)
|
||||||
@@ -111,17 +111,17 @@ if [ -L $0 ] && ([ -e /bin/readlink ] || [ -e /usr/bin/readlink ]); then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
${JAVA} -Xmx${SUBSONIC_MAX_MEMORY}m \
|
${JAVA} -Xmx${SUBSONIC_MAX_MEMORY}m \
|
||||||
-Dsubsonic.home=${SUBSONIC_HOME} \
|
-Dlibresonic.home=${SUBSONIC_HOME} \
|
||||||
-Dsubsonic.host=${SUBSONIC_HOST} \
|
-Dlibresonic.host=${SUBSONIC_HOST} \
|
||||||
-Dsubsonic.port=${SUBSONIC_PORT} \
|
-Dlibresonic.port=${SUBSONIC_PORT} \
|
||||||
-Dsubsonic.httpsPort=${SUBSONIC_HTTPS_PORT} \
|
-Dlibresonic.httpsPort=${SUBSONIC_HTTPS_PORT} \
|
||||||
-Dsubsonic.contextPath=${SUBSONIC_CONTEXT_PATH} \
|
-Dlibresonic.contextPath=${SUBSONIC_CONTEXT_PATH} \
|
||||||
-Dsubsonic.defaultMusicFolder=${SUBSONIC_DEFAULT_MUSIC_FOLDER} \
|
-Dlibresonic.defaultMusicFolder=${SUBSONIC_DEFAULT_MUSIC_FOLDER} \
|
||||||
-Dsubsonic.defaultPodcastFolder=${SUBSONIC_DEFAULT_PODCAST_FOLDER} \
|
-Dlibresonic.defaultPodcastFolder=${SUBSONIC_DEFAULT_PODCAST_FOLDER} \
|
||||||
-Dsubsonic.defaultPlaylistFolder=${SUBSONIC_DEFAULT_PLAYLIST_FOLDER} \
|
-Dlibresonic.defaultPlaylistFolder=${SUBSONIC_DEFAULT_PLAYLIST_FOLDER} \
|
||||||
-Djava.awt.headless=true \
|
-Djava.awt.headless=true \
|
||||||
-verbose:gc \
|
-verbose:gc \
|
||||||
-jar subsonic-booter-jar-with-dependencies.jar > ${LOG} 2>&1 &
|
-jar libresonic-booter-jar-with-dependencies.jar > ${LOG} 2>&1 &
|
||||||
|
|
||||||
# Write pid to pidfile if it is defined.
|
# Write pid to pidfile if it is defined.
|
||||||
if [ $SUBSONIC_PIDFILE ]; then
|
if [ $SUBSONIC_PIDFILE ]; then
|
||||||
@@ -129,6 +129,6 @@ if [ $SUBSONIC_PIDFILE ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $quiet = 0 ]; then
|
if [ $quiet = 0 ]; then
|
||||||
echo Started Subsonic [PID $!, ${LOG}]
|
echo Started Libresonic [PID $!, ${LOG}]
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -2,14 +2,14 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic-installer-debian</artifactId>
|
<artifactId>libresonic-installer-debian</artifactId>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<name>Subsonic Installer for Debian</name>
|
<name>Libresonic Installer for Debian</name>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.0.1</version>
|
<version>6.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
@@ -41,11 +41,11 @@
|
|||||||
</filterset>
|
</filterset>
|
||||||
</copy>
|
</copy>
|
||||||
|
|
||||||
<copy file="../subsonic-booter/src/main/script/subsonic.sh" todir="${project.build.directory}/deb/usr/share/subsonic"/>
|
<copy file="../libresonic-booter/src/main/script/libresonic.sh" todir="${project.build.directory}/deb/usr/share/libresonic"/>
|
||||||
<copy file="../subsonic-booter/target/subsonic-booter-jar-with-dependencies.jar" todir="${project.build.directory}/deb/usr/share/subsonic"/>
|
<copy file="../libresonic-booter/target/libresonic-booter-jar-with-dependencies.jar" todir="${project.build.directory}/deb/usr/share/libresonic"/>
|
||||||
<copy file="../subsonic-main/target/subsonic.war" todir="${project.build.directory}/deb/usr/share/subsonic"/>
|
<copy file="../libresonic-main/target/libresonic.war" todir="${project.build.directory}/deb/usr/share/libresonic"/>
|
||||||
<copy file="../subsonic-transcode/linux/ffmpeg" todir="${project.build.directory}/deb/var/subsonic/transcode"/>
|
<copy file="../libresonic-transcode/linux/ffmpeg" todir="${project.build.directory}/deb/var/libresonic/transcode"/>
|
||||||
<copy file="../subsonic-transcode/linux/lame" todir="${project.build.directory}/deb/var/subsonic/transcode"/>
|
<copy file="../libresonic-transcode/linux/lame" todir="${project.build.directory}/deb/var/libresonic/transcode"/>
|
||||||
|
|
||||||
<exec executable="chmod">
|
<exec executable="chmod">
|
||||||
<arg value="oug+x"/>
|
<arg value="oug+x"/>
|
||||||
@@ -53,10 +53,10 @@
|
|||||||
<arg value="${project.build.directory}/deb/DEBIAN/postinst"/>
|
<arg value="${project.build.directory}/deb/DEBIAN/postinst"/>
|
||||||
<arg value="${project.build.directory}/deb/DEBIAN/prerm"/>
|
<arg value="${project.build.directory}/deb/DEBIAN/prerm"/>
|
||||||
<arg value="${project.build.directory}/deb/DEBIAN/postrm"/>
|
<arg value="${project.build.directory}/deb/DEBIAN/postrm"/>
|
||||||
<arg value="${project.build.directory}/deb/usr/share/subsonic/subsonic.sh"/>
|
<arg value="${project.build.directory}/deb/usr/share/libresonic/libresonic.sh"/>
|
||||||
<arg value="${project.build.directory}/deb/etc/init.d/subsonic"/>
|
<arg value="${project.build.directory}/deb/etc/init.d/libresonic"/>
|
||||||
<arg value="${project.build.directory}/deb/var/subsonic/transcode/ffmpeg"/>
|
<arg value="${project.build.directory}/deb/var/libresonic/transcode/ffmpeg"/>
|
||||||
<arg value="${project.build.directory}/deb/var/subsonic/transcode/lame"/>
|
<arg value="${project.build.directory}/deb/var/libresonic/transcode/lame"/>
|
||||||
</exec>
|
</exec>
|
||||||
<exec executable="sleep">
|
<exec executable="sleep">
|
||||||
<arg value="2"/>
|
<arg value="2"/>
|
||||||
@@ -65,10 +65,10 @@
|
|||||||
<arg value="dpkg"/>
|
<arg value="dpkg"/>
|
||||||
<arg value="--build"/>
|
<arg value="--build"/>
|
||||||
<arg value="${project.build.directory}/deb"/>
|
<arg value="${project.build.directory}/deb"/>
|
||||||
<arg value="${project.build.directory}/subsonic-${project.version}.deb"/>
|
<arg value="${project.build.directory}/libresonic-${project.version}.deb"/>
|
||||||
</exec>
|
</exec>
|
||||||
<exec executable="lintian">
|
<exec executable="lintian">
|
||||||
<arg value="${project.build.directory}/subsonic-${project.version}.deb"/>
|
<arg value="${project.build.directory}/libresonic-${project.version}.deb"/>
|
||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/etc/default/libresonic
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
Package: subsonic
|
Package: libresonic
|
||||||
Version: @VERSION@
|
Version: @VERSION@
|
||||||
Section: Multimedia
|
Section: Multimedia
|
||||||
Priority: optional
|
Priority: optional
|
||||||
@@ -6,13 +6,13 @@ Recommends: ffmpeg
|
|||||||
Architecture: all
|
Architecture: all
|
||||||
Maintainer: Sindre Mehus <sindre@activeobjects.no>
|
Maintainer: Sindre Mehus <sindre@activeobjects.no>
|
||||||
Description: A web-based music streamer, jukebox and Podcast receiver
|
Description: A web-based music streamer, jukebox and Podcast receiver
|
||||||
Subsonic is a web-based music streamer, jukebox and Podcast receiver,
|
Libresonic is a web-based music streamer, jukebox and Podcast receiver,
|
||||||
providing access to your music collection wherever you are. Use it
|
providing access to your music collection wherever you are. Use it
|
||||||
to share your music with friends, or to listen to your music while away
|
to share your music with friends, or to listen to your music while away
|
||||||
from home.
|
from home.
|
||||||
.
|
.
|
||||||
Apps for Android, iPhone and Windows Phone are also available.
|
Apps for Android, iPhone and Windows Phone are also available.
|
||||||
.
|
.
|
||||||
Java 1.6 or higher is required to run Subsonic.
|
Java 1.6 or higher is required to run Libresonic.
|
||||||
.
|
.
|
||||||
Subsonic can be found at http://subsonic.org
|
Libresonic can be found at http://libresonic.org
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
ln -sf /usr/share/libresonic/libresonic.sh /usr/bin/libresonic
|
||||||
|
|
||||||
|
chmod 750 /var/libresonic
|
||||||
|
|
||||||
|
# Clear jetty cache.
|
||||||
|
rm -rf /var/libresonic/jetty
|
||||||
|
|
||||||
|
# Configure Libresonic service.
|
||||||
|
update-rc.d libresonic defaults 99
|
||||||
|
|
||||||
|
# Start Libresonic service.
|
||||||
|
invoke-rc.d libresonic start
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Remove symlink.
|
# Remove symlink.
|
||||||
rm -f /usr/bin/subsonic
|
rm -f /usr/bin/libresonic
|
||||||
|
|
||||||
# Remove startup scripts.
|
# Remove startup scripts.
|
||||||
update-rc.d -f subsonic remove
|
update-rc.d -f libresonic remove
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Stop Libresonic service.
|
||||||
|
if [ -e /etc/init.d/libresonic ]; then
|
||||||
|
invoke-rc.d libresonic stop
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Backup database.
|
||||||
|
if [ -e /var/libresonic/db ]; then
|
||||||
|
rm -rf /var/libresonic/db.backup
|
||||||
|
cp -R /var/libresonic/db /var/libresonic/db.backup
|
||||||
|
fi
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Stop Libresonic service.
|
||||||
|
if [ -e /etc/init.d/libresonic ]; then
|
||||||
|
invoke-rc.d libresonic stop
|
||||||
|
fi
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
#
|
#
|
||||||
# This is the configuration file for the Subsonic service
|
# This is the configuration file for the Libresonic service
|
||||||
# (/etc/init.d/subsonic)
|
# (/etc/init.d/libresonic)
|
||||||
#
|
#
|
||||||
# To change the startup parameters of Subsonic, modify
|
# To change the startup parameters of Libresonic, modify
|
||||||
# the SUBSONIC_ARGS variable below.
|
# the SUBSONIC_ARGS variable below.
|
||||||
#
|
#
|
||||||
# Type "/usr/share/subsonic/subsonic.sh --help" on the command line to read an
|
# Type "/usr/share/libresonic/libresonic.sh --help" on the command line to read an
|
||||||
# explanation of the different options.
|
# explanation of the different options.
|
||||||
#
|
#
|
||||||
# For example, to specify that Subsonic should use port 80 (for http)
|
# For example, to specify that Libresonic should use port 80 (for http)
|
||||||
# and 443 (for https), and use a Java memory heap size of 200 MB, use
|
# and 443 (for https), and use a Java memory heap size of 200 MB, use
|
||||||
# the following:
|
# the following:
|
||||||
#
|
#
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
SUBSONIC_ARGS="--max-memory=150"
|
SUBSONIC_ARGS="--max-memory=150"
|
||||||
|
|
||||||
|
|
||||||
# The user which should run the Subsonic process. Default "root".
|
# The user which should run the Libresonic process. Default "root".
|
||||||
# Note that non-root users are by default not allowed to use ports
|
# Note that non-root users are by default not allowed to use ports
|
||||||
# below 1024. Also make sure to grant the user write permissions in
|
# below 1024. Also make sure to grant the user write permissions in
|
||||||
# the music directories, otherwise changing album art and tags will fail.
|
# the music directories, otherwise changing album art and tags will fail.
|
||||||
@@ -1,25 +1,25 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
### BEGIN INIT INFO
|
### BEGIN INIT INFO
|
||||||
# Provides: subsonic
|
# Provides: libresonic
|
||||||
# Required-Start: $remote_fs $syslog
|
# Required-Start: $remote_fs $syslog
|
||||||
# Required-Stop: $remote_fs $syslog
|
# Required-Stop: $remote_fs $syslog
|
||||||
# Default-Start: 2 3 4 5
|
# Default-Start: 2 3 4 5
|
||||||
# Default-Stop: 0 1 6
|
# Default-Stop: 0 1 6
|
||||||
# Short-Description: Subsonic daemon
|
# Short-Description: Libresonic daemon
|
||||||
# Description: Starts the Subsonic daemon. Subsonic is a web-based
|
# Description: Starts the Libresonic daemon. Libresonic is a web-based
|
||||||
# music streamer, jukebox and Podcast receiver.
|
# music streamer, jukebox and Podcast receiver.
|
||||||
# See http://subsonic.org for more details.
|
# See http://libresonic.org for more details.
|
||||||
### END INIT INFO
|
### END INIT INFO
|
||||||
|
|
||||||
# Author: Sindre Mehus <sindre@activeobjects.no>
|
# Author: Sindre Mehus <sindre@activeobjects.no>
|
||||||
|
|
||||||
# To change the startup parameters of Subsonic, modify the service
|
# To change the startup parameters of Libresonic, modify the service
|
||||||
# configuration file /etc/default/subsonic rather than this file.
|
# configuration file /etc/default/libresonic rather than this file.
|
||||||
[ -r /etc/default/subsonic ] && . /etc/default/subsonic
|
[ -r /etc/default/libresonic ] && . /etc/default/libresonic
|
||||||
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||||
DESC="Subsonic Daemon"
|
DESC="Libresonic Daemon"
|
||||||
NAME=subsonic
|
NAME=libresonic
|
||||||
PIDFILE=/var/run/$NAME.pid
|
PIDFILE=/var/run/$NAME.pid
|
||||||
DAEMON=/usr/bin/$NAME
|
DAEMON=/usr/bin/$NAME
|
||||||
DAEMON_ARGS="--pidfile=$PIDFILE $SUBSONIC_ARGS"
|
DAEMON_ARGS="--pidfile=$PIDFILE $SUBSONIC_ARGS"
|
||||||
@@ -31,7 +31,7 @@ SCRIPTNAME=/etc/init.d/$NAME
|
|||||||
# Run as root if SUBSONIC_USER is not set.
|
# Run as root if SUBSONIC_USER is not set.
|
||||||
[ "$SUBSONIC_USER" = "" ] && SUBSONIC_USER=root
|
[ "$SUBSONIC_USER" = "" ] && SUBSONIC_USER=root
|
||||||
|
|
||||||
# Make sure Subsonic is started with system locale
|
# Make sure Libresonic is started with system locale
|
||||||
if [ -r /etc/default/locale ]; then
|
if [ -r /etc/default/locale ]; then
|
||||||
. /etc/default/locale
|
. /etc/default/locale
|
||||||
export LANG
|
export LANG
|
||||||
@@ -62,8 +62,8 @@ do_start()
|
|||||||
|
|
||||||
touch $PIDFILE
|
touch $PIDFILE
|
||||||
chown $SUBSONIC_USER $PIDFILE
|
chown $SUBSONIC_USER $PIDFILE
|
||||||
[ -e /var/subsonic ] && chown -R $SUBSONIC_USER /var/subsonic
|
[ -e /var/libresonic ] && chown -R $SUBSONIC_USER /var/libresonic
|
||||||
[ -e /tmp/subsonic ] && chown -R $SUBSONIC_USER /tmp/subsonic
|
[ -e /tmp/libresonic ] && chown -R $SUBSONIC_USER /tmp/libresonic
|
||||||
|
|
||||||
start-stop-daemon --start -c $SUBSONIC_USER --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS || return 2
|
start-stop-daemon --start -c $SUBSONIC_USER --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS || return 2
|
||||||
}
|
}
|
||||||
@@ -2,29 +2,29 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic-installer-mac</artifactId>
|
<artifactId>libresonic-installer-mac</artifactId>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<name>Subsonic Installer for Mac</name>
|
<name>Libresonic Installer for Mac</name>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.0.1</version>
|
<version>6.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic-main</artifactId>
|
<artifactId>libresonic-main</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
<type>war</type>
|
<type>war</type>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic-booter</artifactId>
|
<artifactId>libresonic-booter</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
@@ -52,41 +52,41 @@
|
|||||||
<mkdir dir="${project.build.directory}"/>
|
<mkdir dir="${project.build.directory}"/>
|
||||||
|
|
||||||
<appbundler outputdirectory="target"
|
<appbundler outputdirectory="target"
|
||||||
name="Subsonic"
|
name="Libresonic"
|
||||||
displayname="Subsonic"
|
displayname="Libresonic"
|
||||||
icon="src/subsonic.icns"
|
icon="src/libresonic.icns"
|
||||||
identifier="net.sourceforge.subsonic"
|
identifier="org.libresonic.player"
|
||||||
shortversion="${project.version}"
|
shortversion="${project.version}"
|
||||||
mainclassname="net.sourceforge.subsonic.booter.Main">
|
mainclassname="org.libresonic.player.booter.Main">
|
||||||
<runtime dir="${env.JAVA_HOME}"/>
|
<runtime dir="${env.JAVA_HOME}"/>
|
||||||
<classpath dir="..">
|
<classpath dir="..">
|
||||||
<include name="subsonic-booter/target/subsonic-booter-jar-with-dependencies.jar"/>
|
<include name="libresonic-booter/target/libresonic-booter-jar-with-dependencies.jar"/>
|
||||||
<include name="subsonic-main/target/subsonic.war"/>
|
<include name="libresonic-main/target/libresonic.war"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
<option value="-Dsubsonic.war=$APP_ROOT/Contents/Java/subsonic.war"/>
|
<option value="-Dlibresonic.war=$APP_ROOT/Contents/Java/libresonic.war"/>
|
||||||
<option value="-Dsubsonic.home=/Library/Application Support/Subsonic"/>
|
<option value="-Dlibresonic.home=/Library/Application Support/Libresonic"/>
|
||||||
<option value="-Dsubsonic.defaultMusicFolder=/Users/Shared/Music/iTunes/iTunes Media"/>
|
<option value="-Dlibresonic.defaultMusicFolder=/Users/Shared/Music/iTunes/iTunes Media"/>
|
||||||
<option value="-Dsubsonic.defaultPodcastFolder=/Users/Shared/Podcasts"/>
|
<option value="-Dlibresonic.defaultPodcastFolder=/Users/Shared/Podcasts"/>
|
||||||
<option value="-Dsubsonic.defaultPlaylistFolder=/Users/Shared/Playlists"/>
|
<option value="-Dlibresonic.defaultPlaylistFolder=/Users/Shared/Playlists"/>
|
||||||
<option value="-Dsubsonic.port=4040"/>
|
<option value="-Dlibresonic.port=4040"/>
|
||||||
<option value="-Dsubsonic.httpsPort=0"/>
|
<option value="-Dlibresonic.httpsPort=0"/>
|
||||||
<option value="-Dsubsonic.contextPath=/"/>
|
<option value="-Dlibresonic.contextPath=/"/>
|
||||||
<option value="-Dapple.awt.UIElement=true"/>
|
<option value="-Dapple.awt.UIElement=true"/>
|
||||||
<option value="-Xmx150m"/>
|
<option value="-Xmx150m"/>
|
||||||
<argument value="-mac"/>
|
<argument value="-mac"/>
|
||||||
</appbundler>
|
</appbundler>
|
||||||
|
|
||||||
<!--Requires installation of Packages, see http://s.sudre.free.fr/Software/Packages/about.html or subsonic-tools-->
|
<!--Requires installation of Packages, see http://s.sudre.free.fr/Software/Packages/about.html or libresonic-tools-->
|
||||||
<exec executable="/usr/local/bin/packagesbuild">
|
<exec executable="/usr/local/bin/packagesbuild">
|
||||||
<arg value="-v"/>
|
<arg value="-v"/>
|
||||||
<arg value="${project.basedir}/src/subsonic.pkgproj"/>
|
<arg value="${project.basedir}/src/libresonic.pkgproj"/>
|
||||||
</exec>
|
</exec>
|
||||||
|
|
||||||
<exec executable="/usr/bin/productsign">
|
<exec executable="/usr/bin/productsign">
|
||||||
<arg value="--sign"/>
|
<arg value="--sign"/>
|
||||||
<arg value="Sindre Mehus"/>
|
<arg value="Sindre Mehus"/>
|
||||||
<arg value="${project.build.directory}/subsonic.pkg"/>
|
<arg value="${project.build.directory}/libresonic.pkg"/>
|
||||||
<arg value="${project.build.directory}/subsonic-${project.version}.pkg"/>
|
<arg value="${project.build.directory}/libresonic-${project.version}.pkg"/>
|
||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
<key>GID</key>
|
<key>GID</key>
|
||||||
<integer>80</integer>
|
<integer>80</integer>
|
||||||
<key>PATH</key>
|
<key>PATH</key>
|
||||||
<string>../target/Subsonic.app</string>
|
<string>../target/Libresonic.app</string>
|
||||||
<key>PATH_TYPE</key>
|
<key>PATH_TYPE</key>
|
||||||
<integer>1</integer>
|
<integer>1</integer>
|
||||||
<key>PERMISSIONS</key>
|
<key>PERMISSIONS</key>
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
<key>GID</key>
|
<key>GID</key>
|
||||||
<integer>80</integer>
|
<integer>80</integer>
|
||||||
<key>PATH</key>
|
<key>PATH</key>
|
||||||
<string>../../subsonic-transcode/mac/ffmpeg</string>
|
<string>../../libresonic-transcode/mac/ffmpeg</string>
|
||||||
<key>PATH_TYPE</key>
|
<key>PATH_TYPE</key>
|
||||||
<integer>1</integer>
|
<integer>1</integer>
|
||||||
<key>PERMISSIONS</key>
|
<key>PERMISSIONS</key>
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
<key>GID</key>
|
<key>GID</key>
|
||||||
<integer>80</integer>
|
<integer>80</integer>
|
||||||
<key>PATH</key>
|
<key>PATH</key>
|
||||||
<string>Subsonic</string>
|
<string>Libresonic</string>
|
||||||
<key>PATH_TYPE</key>
|
<key>PATH_TYPE</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>PERMISSIONS</key>
|
<key>PERMISSIONS</key>
|
||||||
@@ -546,9 +546,9 @@
|
|||||||
<key>CONCLUSION_ACTION</key>
|
<key>CONCLUSION_ACTION</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>IDENTIFIER</key>
|
<key>IDENTIFIER</key>
|
||||||
<string>net.sourceforge.subsonic</string>
|
<string>org.libresonic.player</string>
|
||||||
<key>NAME</key>
|
<key>NAME</key>
|
||||||
<string>subsonic</string>
|
<string>libresonic</string>
|
||||||
<key>OVERWRITE_PERMISSIONS</key>
|
<key>OVERWRITE_PERMISSIONS</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>VERSION</key>
|
<key>VERSION</key>
|
||||||
@@ -586,7 +586,7 @@
|
|||||||
<key>BACKGROUND_PATH</key>
|
<key>BACKGROUND_PATH</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PATH</key>
|
<key>PATH</key>
|
||||||
<string>subsonic.png</string>
|
<string>libresonic.png</string>
|
||||||
<key>PATH_TYPE</key>
|
<key>PATH_TYPE</key>
|
||||||
<integer>1</integer>
|
<integer>1</integer>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -672,7 +672,7 @@
|
|||||||
<key>LANGUAGE</key>
|
<key>LANGUAGE</key>
|
||||||
<string>English</string>
|
<string>English</string>
|
||||||
<key>VALUE</key>
|
<key>VALUE</key>
|
||||||
<string>Subsonic</string>
|
<string>Libresonic</string>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -872,7 +872,7 @@
|
|||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>NAME</key>
|
<key>NAME</key>
|
||||||
<string>subsonic</string>
|
<string>libresonic</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<key>TYPE</key>
|
<key>TYPE</key>
|
||||||
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
SUBSONIC_HOME="/Library/Application Support/Subsonic"
|
SUBSONIC_HOME="/Library/Application Support/Libresonic"
|
||||||
|
|
||||||
chmod oug+rwx "$SUBSONIC_HOME"
|
chmod oug+rwx "$SUBSONIC_HOME"
|
||||||
chown root:admin "$SUBSONIC_HOME"
|
chown root:admin "$SUBSONIC_HOME"
|
||||||
@@ -10,4 +10,4 @@ chown root:admin "$SUBSONIC_HOME/transcode"
|
|||||||
|
|
||||||
rm -rf "$SUBSONIC_HOME/jetty"
|
rm -rf "$SUBSONIC_HOME/jetty"
|
||||||
|
|
||||||
echo Subsonic installation done
|
echo Libresonic installation done
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
SUBSONIC_HOME="/Library/Application Support/Subsonic"
|
SUBSONIC_HOME="/Library/Application Support/Libresonic"
|
||||||
|
|
||||||
# Backup database.
|
# Backup database.
|
||||||
|
|
||||||
@@ -2,14 +2,14 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic-installer-rpm</artifactId>
|
<artifactId>libresonic-installer-rpm</artifactId>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<name>Subsonic Installer for RPM</name>
|
<name>Libresonic Installer for RPM</name>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.0.1</version>
|
<version>6.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
<target>
|
<target>
|
||||||
<echo>Creating RPM package...</echo>
|
<echo>Creating RPM package...</echo>
|
||||||
|
|
||||||
<copy file="${basedir}/src/subsonic.spec"
|
<copy file="${basedir}/src/libresonic.spec"
|
||||||
todir="${project.build.directory}/rpm/SPECS">
|
todir="${project.build.directory}/rpm/SPECS">
|
||||||
<filterset>
|
<filterset>
|
||||||
<filter token="VERSION" value="${project.version}"/>
|
<filter token="VERSION" value="${project.version}"/>
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
</copy>
|
</copy>
|
||||||
|
|
||||||
<!--Remove ".beta" suffix from version tag.-->
|
<!--Remove ".beta" suffix from version tag.-->
|
||||||
<replace file="${project.build.directory}/rpm/SPECS/subsonic.spec">
|
<replace file="${project.build.directory}/rpm/SPECS/libresonic.spec">
|
||||||
<replacetoken>.beta1</replacetoken>
|
<replacetoken>.beta1</replacetoken>
|
||||||
<replacetoken>.beta2</replacetoken>
|
<replacetoken>.beta2</replacetoken>
|
||||||
<replacetoken>.beta3</replacetoken>
|
<replacetoken>.beta3</replacetoken>
|
||||||
@@ -70,20 +70,20 @@
|
|||||||
|
|
||||||
<mkdir dir="${project.build.directory}/rpm/RPMS/i386"/>
|
<mkdir dir="${project.build.directory}/rpm/RPMS/i386"/>
|
||||||
|
|
||||||
<copy file="${basedir}/src/etc/init.d/subsonic"
|
<copy file="${basedir}/src/etc/init.d/libresonic"
|
||||||
todir="${project.build.directory}/rpm/buildroot/etc/init.d"/>
|
todir="${project.build.directory}/rpm/buildroot/etc/init.d"/>
|
||||||
<copy file="${basedir}/src/etc/sysconfig/subsonic"
|
<copy file="${basedir}/src/etc/sysconfig/libresonic"
|
||||||
todir="${project.build.directory}/rpm/buildroot/etc/sysconfig"/>
|
todir="${project.build.directory}/rpm/buildroot/etc/sysconfig"/>
|
||||||
<copy file="../subsonic-booter/src/main/script/subsonic.sh"
|
<copy file="../libresonic-booter/src/main/script/libresonic.sh"
|
||||||
todir="${project.build.directory}/rpm/buildroot/usr/share/subsonic"/>
|
todir="${project.build.directory}/rpm/buildroot/usr/share/libresonic"/>
|
||||||
<copy file="../subsonic-booter/target/subsonic-booter-jar-with-dependencies.jar"
|
<copy file="../libresonic-booter/target/libresonic-booter-jar-with-dependencies.jar"
|
||||||
todir="${project.build.directory}/rpm/buildroot/usr/share/subsonic"/>
|
todir="${project.build.directory}/rpm/buildroot/usr/share/libresonic"/>
|
||||||
<copy file="../subsonic-main/target/subsonic.war"
|
<copy file="../libresonic-main/target/libresonic.war"
|
||||||
todir="${project.build.directory}/rpm/buildroot/usr/share/subsonic"/>
|
todir="${project.build.directory}/rpm/buildroot/usr/share/libresonic"/>
|
||||||
<copy file="../subsonic-transcode/linux/ffmpeg"
|
<copy file="../libresonic-transcode/linux/ffmpeg"
|
||||||
todir="${project.build.directory}/rpm/buildroot/var/subsonic/transcode"/>
|
todir="${project.build.directory}/rpm/buildroot/var/libresonic/transcode"/>
|
||||||
<copy file="../subsonic-transcode/linux/lame"
|
<copy file="../libresonic-transcode/linux/lame"
|
||||||
todir="${project.build.directory}/rpm/buildroot/var/subsonic/transcode"/>
|
todir="${project.build.directory}/rpm/buildroot/var/libresonic/transcode"/>
|
||||||
|
|
||||||
<exec executable="rpmbuild">
|
<exec executable="rpmbuild">
|
||||||
<arg value="-bb"/>
|
<arg value="-bb"/>
|
||||||
@@ -93,17 +93,17 @@
|
|||||||
<arg value="_topdir ${project.build.directory}/rpm"/>
|
<arg value="_topdir ${project.build.directory}/rpm"/>
|
||||||
<arg value="--target"/>
|
<arg value="--target"/>
|
||||||
<arg value="i386"/>
|
<arg value="i386"/>
|
||||||
<arg value="${project.build.directory}/rpm/SPECS/subsonic.spec"/>
|
<arg value="${project.build.directory}/rpm/SPECS/libresonic.spec"/>
|
||||||
</exec>
|
</exec>
|
||||||
|
|
||||||
<copy tofile="${project.build.directory}/subsonic-${project.version}.rpm">
|
<copy tofile="${project.build.directory}/libresonic-${project.version}.rpm">
|
||||||
<fileset dir="${project.build.directory}/rpm/RPMS/i386">
|
<fileset dir="${project.build.directory}/rpm/RPMS/i386">
|
||||||
<include name="*.rpm"/>
|
<include name="*.rpm"/>
|
||||||
</fileset>
|
</fileset>
|
||||||
</copy>
|
</copy>
|
||||||
|
|
||||||
<exec executable="rpmlint">
|
<exec executable="rpmlint">
|
||||||
<arg value="${project.build.directory}/subsonic-${project.version}.rpm"/>
|
<arg value="${project.build.directory}/libresonic-${project.version}.rpm"/>
|
||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -1,30 +1,30 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# subsonic This shell script takes care of starting and stopping Subsonic
|
# libresonic This shell script takes care of starting and stopping Libresonic
|
||||||
#
|
#
|
||||||
# chkconfig: - 80 20
|
# chkconfig: - 80 20
|
||||||
#
|
#
|
||||||
### BEGIN INIT INFO
|
### BEGIN INIT INFO
|
||||||
# Provides: subsonic
|
# Provides: libresonic
|
||||||
# Required-Start: $network $syslog
|
# Required-Start: $network $syslog
|
||||||
# Required-Stop: $network $syslog
|
# Required-Stop: $network $syslog
|
||||||
# Default-Start: 2 3 4 5
|
# Default-Start: 2 3 4 5
|
||||||
# Default-Stop: 0 1 6
|
# Default-Stop: 0 1 6
|
||||||
# Short-Description: Subsonic daemon
|
# Short-Description: Libresonic daemon
|
||||||
# Description: Starts the Subsonic daemon. Subsonic is a web-based
|
# Description: Starts the Libresonic daemon. Libresonic is a web-based
|
||||||
# music streamer, jukebox and Podcast receiver.
|
# music streamer, jukebox and Podcast receiver.
|
||||||
# See http://subsonic.org for more details.
|
# See http://libresonic.org for more details.
|
||||||
### END INIT INFO
|
### END INIT INFO
|
||||||
|
|
||||||
# Author: Sindre Mehus <sindre@activeobjects.no>
|
# Author: Sindre Mehus <sindre@activeobjects.no>
|
||||||
|
|
||||||
# To change the startup parameters of Subsonic, modify the service
|
# To change the startup parameters of Libresonic, modify the service
|
||||||
# configuration file /etc/sysconfig/subsonic rather than this file.
|
# configuration file /etc/sysconfig/libresonic rather than this file.
|
||||||
[ -r /etc/sysconfig/subsonic ] && . /etc/sysconfig/subsonic
|
[ -r /etc/sysconfig/libresonic ] && . /etc/sysconfig/libresonic
|
||||||
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||||
DESC="Subsonic Daemon"
|
DESC="Libresonic Daemon"
|
||||||
NAME=subsonic
|
NAME=libresonic
|
||||||
PIDFILE=/var/run/$NAME.pid
|
PIDFILE=/var/run/$NAME.pid
|
||||||
LOCKFILE=/var/lock/subsys/$NAME
|
LOCKFILE=/var/lock/subsys/$NAME
|
||||||
DAEMON=/usr/bin/$NAME
|
DAEMON=/usr/bin/$NAME
|
||||||
@@ -54,8 +54,8 @@ do_start()
|
|||||||
|
|
||||||
touch $PIDFILE
|
touch $PIDFILE
|
||||||
chown $SUBSONIC_USER $PIDFILE
|
chown $SUBSONIC_USER $PIDFILE
|
||||||
[ -e /var/subsonic ] && chown -R $SUBSONIC_USER /var/subsonic
|
[ -e /var/libresonic ] && chown -R $SUBSONIC_USER /var/libresonic
|
||||||
[ -e /tmp/subsonic ] && chown -R $SUBSONIC_USER /tmp/subsonic
|
[ -e /tmp/libresonic ] && chown -R $SUBSONIC_USER /tmp/libresonic
|
||||||
|
|
||||||
echo $"Starting $NAME ..."
|
echo $"Starting $NAME ..."
|
||||||
su -c "$DAEMON $DAEMON_ARGS" $SUBSONIC_USER
|
su -c "$DAEMON $DAEMON_ARGS" $SUBSONIC_USER
|
||||||
@@ -1,14 +1,14 @@
|
|||||||
#
|
#
|
||||||
# This is the configuration file for the Subsonic service
|
# This is the configuration file for the Libresonic service
|
||||||
# (/etc/init.d/subsonic)
|
# (/etc/init.d/libresonic)
|
||||||
#
|
#
|
||||||
# To change the startup parameters of Subsonic, modify
|
# To change the startup parameters of Libresonic, modify
|
||||||
# the SUBSONIC_ARGS variable below.
|
# the SUBSONIC_ARGS variable below.
|
||||||
#
|
#
|
||||||
# Type "/usr/share/subsonic/subsonic.sh --help" on the command line to read an
|
# Type "/usr/share/libresonic/libresonic.sh --help" on the command line to read an
|
||||||
# explanation of the different options.
|
# explanation of the different options.
|
||||||
#
|
#
|
||||||
# For example, to specify that Subsonic should use port 80 (for http)
|
# For example, to specify that Libresonic should use port 80 (for http)
|
||||||
# and 443 (for https), and use a Java memory heap size of 200 MB, use
|
# and 443 (for https), and use a Java memory heap size of 200 MB, use
|
||||||
# the following:
|
# the following:
|
||||||
#
|
#
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
SUBSONIC_ARGS="--max-memory=150"
|
SUBSONIC_ARGS="--max-memory=150"
|
||||||
|
|
||||||
|
|
||||||
# The user which should run the Subsonic process. Default "root".
|
# The user which should run the Libresonic process. Default "root".
|
||||||
# Note that non-root users are by default not allowed to use ports
|
# Note that non-root users are by default not allowed to use ports
|
||||||
# below 1024. Also make sure to grant the user write permissions in
|
# below 1024. Also make sure to grant the user write permissions in
|
||||||
# the music directories, otherwise changing album art and tags will fail.
|
# the music directories, otherwise changing album art and tags will fail.
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
Name: libresonic
|
||||||
|
Version: @VERSION@
|
||||||
|
Release: @BUILD_NUMBER@
|
||||||
|
Summary: A web-based music streamer, jukebox and Podcast receiver
|
||||||
|
|
||||||
|
Group: Applications/Multimedia
|
||||||
|
License: GPLv3
|
||||||
|
URL: http://libresonic.org
|
||||||
|
|
||||||
|
%description
|
||||||
|
Libresonic is a web-based music streamer, jukebox and Podcast receiver,
|
||||||
|
providing access to your music collection wherever you are. Use it
|
||||||
|
to share your music with friends, or to listen to your music while away
|
||||||
|
from home.
|
||||||
|
|
||||||
|
Apps for Android, iPhone and Windows Phone are also available.
|
||||||
|
|
||||||
|
Java 1.6 or higher is required to run Libresonic.
|
||||||
|
|
||||||
|
Libresonic can be found at http://libresonic.org
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(644,root,root,755)
|
||||||
|
/usr/share/libresonic/libresonic-booter-jar-with-dependencies.jar
|
||||||
|
/usr/share/libresonic/libresonic.war
|
||||||
|
%attr(755,root,root) /usr/share/libresonic/libresonic.sh
|
||||||
|
%attr(755,root,root) /etc/init.d/libresonic
|
||||||
|
%attr(755,root,root) /var/libresonic/transcode/ffmpeg
|
||||||
|
%attr(755,root,root) /var/libresonic/transcode/lame
|
||||||
|
%config(noreplace) /etc/sysconfig/libresonic
|
||||||
|
|
||||||
|
%pre
|
||||||
|
# Stop Libresonic service.
|
||||||
|
if [ -e /etc/init.d/libresonic ]; then
|
||||||
|
service libresonic stop
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Backup database.
|
||||||
|
if [ -e /var/libresonic/db ]; then
|
||||||
|
rm -rf /var/libresonic/db.backup
|
||||||
|
cp -R /var/libresonic/db /var/libresonic/db.backup
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
%post
|
||||||
|
ln -sf /usr/share/libresonic/libresonic.sh /usr/bin/libresonic
|
||||||
|
chmod 750 /var/libresonic
|
||||||
|
|
||||||
|
# Clear jetty cache.
|
||||||
|
rm -rf /var/libresonic/jetty
|
||||||
|
|
||||||
|
# For SELinux: Set security context
|
||||||
|
chcon -t java_exec_t /etc/init.d/libresonic 2>/dev/null
|
||||||
|
|
||||||
|
# Configure and start Libresonic service.
|
||||||
|
chkconfig --add libresonic
|
||||||
|
service libresonic start
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
%preun
|
||||||
|
# Only do it if uninstalling, not upgrading.
|
||||||
|
if [ $1 = 0 ] ; then
|
||||||
|
|
||||||
|
# Stop the service.
|
||||||
|
[ -e /etc/init.d/libresonic ] && service libresonic stop
|
||||||
|
|
||||||
|
# Remove symlink.
|
||||||
|
rm -f /usr/bin/libresonic
|
||||||
|
|
||||||
|
# Remove startup scripts.
|
||||||
|
chkconfig --del libresonic
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
@@ -2,14 +2,14 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic-installer-windows</artifactId>
|
<artifactId>libresonic-installer-windows</artifactId>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<name>Subsonic Installer for Windows</name>
|
<name>Libresonic Installer for Windows</name>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.0.1</version>
|
<version>6.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
@@ -21,15 +21,15 @@
|
|||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic-main</artifactId>
|
<artifactId>libresonic-main</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
<type>war</type>
|
<type>war</type>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic-booter</artifactId>
|
<artifactId>libresonic-booter</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
@@ -56,20 +56,20 @@
|
|||||||
<configuration>
|
<configuration>
|
||||||
<target>
|
<target>
|
||||||
<echo>Compiling exe4j...</echo>
|
<echo>Compiling exe4j...</echo>
|
||||||
<copy file="${basedir}/src/main/exe4j/subsonic-agent.exe.vmoptions" todir="${project.build.directory}"/>
|
<copy file="${basedir}/src/main/exe4j/libresonic-agent.exe.vmoptions" todir="${project.build.directory}"/>
|
||||||
<copy file="${basedir}/src/main/exe4j/subsonic-agent-elevated.exe.vmoptions" todir="${project.build.directory}"/>
|
<copy file="${basedir}/src/main/exe4j/libresonic-agent-elevated.exe.vmoptions" todir="${project.build.directory}"/>
|
||||||
<copy file="${basedir}/src/main/exe4j/subsonic-service.exe.vmoptions" todir="${project.build.directory}"/>
|
<copy file="${basedir}/src/main/exe4j/libresonic-service.exe.vmoptions" todir="${project.build.directory}"/>
|
||||||
<exec executable="${exe4j.home}/bin/exe4jc">
|
<exec executable="${exe4j.home}/bin/exe4jc">
|
||||||
<arg value="--license=L-SINDRE_MEHUS#14926715500010001-1ty7dbe11l10ll#140"/>
|
<arg value="--license=L-SINDRE_MEHUS#14926715500010001-1ty7dbe11l10ll#140"/>
|
||||||
</exec>
|
</exec>
|
||||||
<exec executable="${exe4j.home}/bin/exe4jc">
|
<exec executable="${exe4j.home}/bin/exe4jc">
|
||||||
<arg value="${basedir}/src/main/exe4j/subsonic-agent.exe4j"/>
|
<arg value="${basedir}/src/main/exe4j/libresonic-agent.exe4j"/>
|
||||||
</exec>
|
</exec>
|
||||||
<exec executable="${exe4j.home}/bin/exe4jc">
|
<exec executable="${exe4j.home}/bin/exe4jc">
|
||||||
<arg value="${basedir}/src/main/exe4j/subsonic-agent-elevated.exe4j"/>
|
<arg value="${basedir}/src/main/exe4j/libresonic-agent-elevated.exe4j"/>
|
||||||
</exec>
|
</exec>
|
||||||
<exec executable="${exe4j.home}/bin/exe4jc">
|
<exec executable="${exe4j.home}/bin/exe4jc">
|
||||||
<arg value="${basedir}/src/main/exe4j/subsonic-service.exe4j"/>
|
<arg value="${basedir}/src/main/exe4j/libresonic-service.exe4j"/>
|
||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -86,8 +86,8 @@
|
|||||||
<echo>Compiling NSIS script...</echo>
|
<echo>Compiling NSIS script...</echo>
|
||||||
<mkdir dir="${project.build.directory}"/>
|
<mkdir dir="${project.build.directory}"/>
|
||||||
<exec executable="${nsis.home}/makensis">
|
<exec executable="${nsis.home}/makensis">
|
||||||
<arg value="${basedir}/src/main/nsis/subsonic.nsi"/>
|
<arg value="${basedir}/src/main/nsis/libresonic.nsi"/>
|
||||||
<arg value="-XOutFile ${project.build.directory}/subsonic-${project.version}-setup.exe"/>
|
<arg value="-XOutFile ${project.build.directory}/libresonic-${project.version}-setup.exe"/>
|
||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,12 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<exe4j version="4.4.4" transformSequenceNumber="1">
|
<exe4j version="4.4.4" transformSequenceNumber="1">
|
||||||
<directoryPresets config="." />
|
<directoryPresets config="." />
|
||||||
<application name="Subsonic" distributionSourceDir="../../../target">
|
<application name="Libresonic" distributionSourceDir="../../../target">
|
||||||
<languages>
|
<languages>
|
||||||
<principalLanguage id="en" customLocalizationFile="" />
|
<principalLanguage id="en" customLocalizationFile="" />
|
||||||
</languages>
|
</languages>
|
||||||
</application>
|
</application>
|
||||||
<executable name="subsonic-agent-elevated" type="1" iconSet="true" iconFile="subsonic-16.ico" executableDir="" redirectStderr="true" stderrFile="log/subsonic-agent.log" stderrMode="overwrite" redirectStdout="false" stdoutFile="output.log" stdoutMode="overwrite" failOnStderrOutput="true" executableMode="1" changeWorkingDirectory="true" workingDirectory="." singleInstance="false" serviceStartType="2" serviceDependencies="" serviceDescription="Subsonic Music Streamer (http://subsonic.org)" jreLocation="" executionLevel="requireAdministrator" checkConsoleParameter="false" globalSingleInstance="false" amd64="false">
|
<executable name="libresonic-agent-elevated" type="1" iconSet="true" iconFile="libresonic-16.ico" executableDir="" redirectStderr="true" stderrFile="log/libresonic-agent.log" stderrMode="overwrite" redirectStdout="false" stdoutFile="output.log" stdoutMode="overwrite" failOnStderrOutput="true" executableMode="1" changeWorkingDirectory="true" workingDirectory="." singleInstance="false" serviceStartType="2" serviceDependencies="" serviceDescription="Libresonic Music Streamer (http://libresonic.org)" jreLocation="" executionLevel="requireAdministrator" checkConsoleParameter="false" globalSingleInstance="false" amd64="false">
|
||||||
<messageSet>
|
<messageSet>
|
||||||
<message id="NoJvmFound" text="Java was not found on your system. Please download Java from www.java.com." />
|
<message id="NoJvmFound" text="Java was not found on your system. Please download Java from www.java.com." />
|
||||||
</messageSet>
|
</messageSet>
|
||||||
@@ -18,14 +18,14 @@
|
|||||||
<versionLine x="0" y="0" text="" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
|
<versionLine x="0" y="0" text="" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
|
||||||
</text>
|
</text>
|
||||||
</splashScreen>
|
</splashScreen>
|
||||||
<java mainClass="net.sourceforge.subsonic.booter.Main" vmParameters="" arguments="-agent -elevated" allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true" minVersion="1.6" maxVersion="" allowBetaVM="true" jdkOnly="false">
|
<java mainClass="org.libresonic.player.booter.Main" vmParameters="" arguments="-agent -elevated" allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true" minVersion="1.6" maxVersion="" allowBetaVM="true" jdkOnly="false">
|
||||||
<searchSequence>
|
<searchSequence>
|
||||||
<registry />
|
<registry />
|
||||||
<envVar name="JAVA_HOME" />
|
<envVar name="JAVA_HOME" />
|
||||||
<envVar name="JDK_HOME" />
|
<envVar name="JDK_HOME" />
|
||||||
</searchSequence>
|
</searchSequence>
|
||||||
<classPath>
|
<classPath>
|
||||||
<archive location="./subsonic-booter-jar-with-dependencies.jar" failOnError="false" />
|
<archive location="./libresonic-booter-jar-with-dependencies.jar" failOnError="false" />
|
||||||
</classPath>
|
</classPath>
|
||||||
<nativeLibraryDirectories />
|
<nativeLibraryDirectories />
|
||||||
</java>
|
</java>
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<exe4j version="4.5.1" transformSequenceNumber="1">
|
<exe4j version="4.5.1" transformSequenceNumber="1">
|
||||||
<directoryPresets config="." />
|
<directoryPresets config="." />
|
||||||
<application name="Subsonic" distributionSourceDir="../../../target">
|
<application name="Libresonic" distributionSourceDir="../../../target">
|
||||||
<languages>
|
<languages>
|
||||||
<principalLanguage id="en" customLocalizationFile="" />
|
<principalLanguage id="en" customLocalizationFile="" />
|
||||||
</languages>
|
</languages>
|
||||||
</application>
|
</application>
|
||||||
<executable name="subsonic-agent" type="1" iconSet="true" iconFile="subsonic-16.ico" executableDir="" redirectStderr="true" stderrFile="log/subsonic-agent.log" stderrMode="overwrite" redirectStdout="false" stdoutFile="output.log" stdoutMode="overwrite" failOnStderrOutput="true" executableMode="1" changeWorkingDirectory="true" workingDirectory="." singleInstance="false" serviceStartType="2" serviceDependencies="" serviceDescription="Subsonic Music Streamer (http://subsonic.org)" jreLocation="" executionLevel="asInvoker" checkConsoleParameter="false" globalSingleInstance="false" amd64="false">
|
<executable name="libresonic-agent" type="1" iconSet="true" iconFile="libresonic-16.ico" executableDir="" redirectStderr="true" stderrFile="log/libresonic-agent.log" stderrMode="overwrite" redirectStdout="false" stdoutFile="output.log" stdoutMode="overwrite" failOnStderrOutput="true" executableMode="1" changeWorkingDirectory="true" workingDirectory="." singleInstance="false" serviceStartType="2" serviceDependencies="" serviceDescription="Libresonic Music Streamer (http://libresonic.org)" jreLocation="" executionLevel="asInvoker" checkConsoleParameter="false" globalSingleInstance="false" amd64="false">
|
||||||
<messageSet>
|
<messageSet>
|
||||||
<message id="NoJvmFound" text="Java was not found on your system. Please download Java (32-bit version) from java.com." />
|
<message id="NoJvmFound" text="Java was not found on your system. Please download Java (32-bit version) from java.com." />
|
||||||
<message id="JvmInPath" text="Java was not found on your system. Please download Java (32-bit version) from java.com." />
|
<message id="JvmInPath" text="Java was not found on your system. Please download Java (32-bit version) from java.com." />
|
||||||
@@ -24,14 +24,14 @@
|
|||||||
<versionLine x="0" y="0" text="" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
|
<versionLine x="0" y="0" text="" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
|
||||||
</text>
|
</text>
|
||||||
</splashScreen>
|
</splashScreen>
|
||||||
<java mainClass="net.sourceforge.subsonic.booter.Main" vmParameters="" arguments="-agent" allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true" minVersion="1.6" maxVersion="" allowBetaVM="true" jdkOnly="false">
|
<java mainClass="org.libresonic.player.booter.Main" vmParameters="" arguments="-agent" allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true" minVersion="1.6" maxVersion="" allowBetaVM="true" jdkOnly="false">
|
||||||
<searchSequence>
|
<searchSequence>
|
||||||
<registry />
|
<registry />
|
||||||
<envVar name="JAVA_HOME" />
|
<envVar name="JAVA_HOME" />
|
||||||
<envVar name="JDK_HOME" />
|
<envVar name="JDK_HOME" />
|
||||||
</searchSequence>
|
</searchSequence>
|
||||||
<classPath>
|
<classPath>
|
||||||
<archive location="./subsonic-booter-jar-with-dependencies.jar" failOnError="false" />
|
<archive location="./libresonic-booter-jar-with-dependencies.jar" failOnError="false" />
|
||||||
</classPath>
|
</classPath>
|
||||||
<nativeLibraryDirectories />
|
<nativeLibraryDirectories />
|
||||||
</java>
|
</java>
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
-Xmx150m
|
||||||
|
-verbose:gc
|
||||||
|
-Dlibresonic.host=0.0.0.0
|
||||||
|
-Dlibresonic.port=4040
|
||||||
|
-Dlibresonic.httpsPort=0
|
||||||
|
-Dlibresonic.contextPath=/
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<exe4j version="4.5.1" transformSequenceNumber="1">
|
<exe4j version="4.5.1" transformSequenceNumber="1">
|
||||||
<directoryPresets config="." />
|
<directoryPresets config="." />
|
||||||
<application name="Subsonic" distributionSourceDir="../../../target">
|
<application name="Libresonic" distributionSourceDir="../../../target">
|
||||||
<languages>
|
<languages>
|
||||||
<principalLanguage id="en" customLocalizationFile="" />
|
<principalLanguage id="en" customLocalizationFile="" />
|
||||||
</languages>
|
</languages>
|
||||||
</application>
|
</application>
|
||||||
<executable name="subsonic-service" type="1" iconSet="true" iconFile="subsonic-16.ico" executableDir="" redirectStderr="true" stderrFile="log/subsonic-service.log" stderrMode="overwrite" redirectStdout="false" stdoutFile="output.log" stdoutMode="overwrite" failOnStderrOutput="true" executableMode="3" changeWorkingDirectory="true" workingDirectory="." singleInstance="true" serviceStartType="2" serviceDependencies="" serviceDescription="Subsonic Music Streamer (http://subsonic.org)" jreLocation="" executionLevel="asInvoker" checkConsoleParameter="false" globalSingleInstance="false" amd64="false">
|
<executable name="libresonic-service" type="1" iconSet="true" iconFile="libresonic-16.ico" executableDir="" redirectStderr="true" stderrFile="log/libresonic-service.log" stderrMode="overwrite" redirectStdout="false" stdoutFile="output.log" stdoutMode="overwrite" failOnStderrOutput="true" executableMode="3" changeWorkingDirectory="true" workingDirectory="." singleInstance="true" serviceStartType="2" serviceDependencies="" serviceDescription="Libresonic Music Streamer (http://libresonic.org)" jreLocation="" executionLevel="asInvoker" checkConsoleParameter="false" globalSingleInstance="false" amd64="false">
|
||||||
<messageSet>
|
<messageSet>
|
||||||
<message id="NoJvmFound" text="Java was not found on your system. Please download Java (32-bit version) from java.com." />
|
<message id="NoJvmFound" text="Java was not found on your system. Please download Java (32-bit version) from java.com." />
|
||||||
<message id="JvmInPath" text="Java was not found on your system. Please download Java (32-bit version) from java.com." />
|
<message id="JvmInPath" text="Java was not found on your system. Please download Java (32-bit version) from java.com." />
|
||||||
@@ -24,14 +24,14 @@
|
|||||||
<versionLine x="0" y="0" text="" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
|
<versionLine x="0" y="0" text="" font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
|
||||||
</text>
|
</text>
|
||||||
</splashScreen>
|
</splashScreen>
|
||||||
<java mainClass="net.sourceforge.subsonic.booter.Main" vmParameters="-Dsubsonic.createLinkFile=true -Dsubsonic.windowsInstall=true" arguments="" allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true" minVersion="1.5" maxVersion="" allowBetaVM="true" jdkOnly="false">
|
<java mainClass="org.libresonic.player.booter.Main" vmParameters="-Dlibresonic.createLinkFile=true -Dlibresonic.windowsInstall=true" arguments="" allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true" minVersion="1.5" maxVersion="" allowBetaVM="true" jdkOnly="false">
|
||||||
<searchSequence>
|
<searchSequence>
|
||||||
<registry />
|
<registry />
|
||||||
<envVar name="JAVA_HOME" />
|
<envVar name="JAVA_HOME" />
|
||||||
<envVar name="JDK_HOME" />
|
<envVar name="JDK_HOME" />
|
||||||
</searchSequence>
|
</searchSequence>
|
||||||
<classPath>
|
<classPath>
|
||||||
<archive location="./subsonic-booter-jar-with-dependencies.jar" failOnError="false" />
|
<archive location="./libresonic-booter-jar-with-dependencies.jar" failOnError="false" />
|
||||||
</classPath>
|
</classPath>
|
||||||
<nativeLibraryDirectories />
|
<nativeLibraryDirectories />
|
||||||
</java>
|
</java>
|
||||||
@@ -0,0 +1,213 @@
|
|||||||
|
# libresonic.nsi
|
||||||
|
|
||||||
|
!include "WordFunc.nsh"
|
||||||
|
!include "MUI.nsh"
|
||||||
|
|
||||||
|
!insertmacro VersionCompare
|
||||||
|
|
||||||
|
# The name of the installer
|
||||||
|
Name "Libresonic"
|
||||||
|
|
||||||
|
# The default installation directory
|
||||||
|
InstallDir $PROGRAMFILES\Libresonic
|
||||||
|
|
||||||
|
# Registry key to check for directory (so if you install again, it will
|
||||||
|
# overwrite the old one automatically)
|
||||||
|
InstallDirRegKey HKLM "Software\Libresonic" "Install_Dir"
|
||||||
|
|
||||||
|
#--------------------------------
|
||||||
|
#Interface Configuration
|
||||||
|
|
||||||
|
!define MUI_HEADERIMAGE
|
||||||
|
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\orange.bmp"
|
||||||
|
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Getting Started.html"
|
||||||
|
!define MUI_FINISHPAGE_SHOWREADME_TEXT "View Getting Started document"
|
||||||
|
|
||||||
|
#--------------------------------
|
||||||
|
# Pages
|
||||||
|
|
||||||
|
# This page checks for JRE
|
||||||
|
Page custom CheckInstalledJRE
|
||||||
|
|
||||||
|
!insertmacro MUI_PAGE_WELCOME
|
||||||
|
!insertmacro MUI_PAGE_DIRECTORY
|
||||||
|
!insertmacro MUI_PAGE_INSTFILES
|
||||||
|
!insertmacro MUI_PAGE_FINISH
|
||||||
|
|
||||||
|
!insertmacro MUI_UNPAGE_WELCOME
|
||||||
|
!insertmacro MUI_UNPAGE_CONFIRM
|
||||||
|
!insertmacro MUI_UNPAGE_INSTFILES
|
||||||
|
|
||||||
|
# Languages
|
||||||
|
!insertmacro MUI_LANGUAGE "English"
|
||||||
|
|
||||||
|
Section "Libresonic"
|
||||||
|
|
||||||
|
SectionIn RO
|
||||||
|
|
||||||
|
# Install for all users
|
||||||
|
SetShellVarContext "all"
|
||||||
|
|
||||||
|
# Take backup of existing libresonic-service.exe.vmoptions
|
||||||
|
CopyFiles /SILENT $INSTDIR\libresonic-service.exe.vmoptions $TEMP\libresonic-service.exe.vmoptions
|
||||||
|
|
||||||
|
# Silently uninstall existing version.
|
||||||
|
ExecWait '"$INSTDIR\uninstall.exe" /S _?=$INSTDIR'
|
||||||
|
|
||||||
|
# Remove previous Jetty temp directory.
|
||||||
|
RMDir /r "c:\libresonic\jetty"
|
||||||
|
|
||||||
|
# Backup database.
|
||||||
|
RMDir /r "c:\libresonic\db.backup"
|
||||||
|
CreateDirectory "c:\libresonic\db.backup"
|
||||||
|
CopyFiles /SILENT "c:\libresonic\db\*" "c:\libresonic\db.backup"
|
||||||
|
|
||||||
|
# Set output path to the installation directory.
|
||||||
|
SetOutPath $INSTDIR
|
||||||
|
|
||||||
|
# Write files.
|
||||||
|
File ..\..\..\target\libresonic-agent.exe
|
||||||
|
File ..\..\..\target\libresonic-agent.exe.vmoptions
|
||||||
|
File ..\..\..\target\libresonic-agent-elevated.exe
|
||||||
|
File ..\..\..\target\libresonic-agent-elevated.exe.vmoptions
|
||||||
|
File ..\..\..\target\libresonic-service.exe
|
||||||
|
File ..\..\..\target\libresonic-service.exe.vmoptions
|
||||||
|
File ..\..\..\..\libresonic-booter\target\libresonic-booter-jar-with-dependencies.jar
|
||||||
|
File ..\..\..\..\libresonic-main\README.TXT
|
||||||
|
File ..\..\..\..\libresonic-main\LICENSE.TXT
|
||||||
|
File "..\..\..\..\libresonic-main\Getting Started.html"
|
||||||
|
File ..\..\..\..\libresonic-main\target\libresonic.war
|
||||||
|
File ..\..\..\..\libresonic-main\target\classes\version.txt
|
||||||
|
File ..\..\..\..\libresonic-main\target\classes\build_number.txt
|
||||||
|
|
||||||
|
# Write the installation path into the registry
|
||||||
|
WriteRegStr HKLM SOFTWARE\Libresonic "Install_Dir" "$INSTDIR"
|
||||||
|
|
||||||
|
# Write the uninstall keys for Windows
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Libresonic" "DisplayName" "Libresonic"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Libresonic" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Libresonic" "NoModify" 1
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Libresonic" "NoRepair" 1
|
||||||
|
WriteUninstaller "uninstall.exe"
|
||||||
|
|
||||||
|
# Restore libresonic-service.exe.vmoptions
|
||||||
|
CopyFiles /SILENT $TEMP\libresonic-service.exe.vmoptions $INSTDIR\libresonic-service.exe.vmoptions
|
||||||
|
Delete $TEMP\libresonic-service.exe.vmoptions
|
||||||
|
|
||||||
|
# Write transcoding pack files.
|
||||||
|
SetOutPath "c:\libresonic\transcode"
|
||||||
|
File ..\..\..\..\libresonic-transcode\windows\*.*
|
||||||
|
|
||||||
|
# Add Windows Firewall exception.
|
||||||
|
# (Requires NSIS plugin found on http://nsis.sourceforge.net/NSIS_Simple_Firewall_Plugin to be installed
|
||||||
|
# as NSIS_HOME/Plugins/SimpleFC.dll)
|
||||||
|
|
||||||
|
SimpleFC::AdvAddRule "Libresonic Service (TCP)" "" "6" "1" "1" "7" "1" "$INSTDIR\libresonic-service.exe" "" "" "Libresonic" "" "" "" ""
|
||||||
|
SimpleFC::AdvAddRule "Libresonic Service (UDP)" "" "17" "1" "1" "7" "1" "$INSTDIR\libresonic-service.exe" "" "" "Libresonic" "" "" "" ""
|
||||||
|
SimpleFC::AdvAddRule "Libresonic Agent (TCP)" "" "6" "1" "1" "7" "1" "$INSTDIR\libresonic-agent.exe" "" "" "Libresonic" "" "" "" ""
|
||||||
|
SimpleFC::AdvAddRule "Libresonic Agent (UDP)" "" "17" "1" "1" "7" "1" "$INSTDIR\libresonic-agent.exe" "" "" "Libresonic" "" "" "" ""
|
||||||
|
SimpleFC::AdvAddRule "Libresonic Agent Elevated (TCP)" "" "6" "1" "1" "7" "1" "$INSTDIR\libresonic-agent-elevated.exe" "" "" "Libresonic" "" "" "" ""
|
||||||
|
SimpleFC::AdvAddRule "Libresonic Agent Elevated (UDP)" "" "17" "1" "1" "7" "1" "$INSTDIR\libresonic-agent-elevated.exe" "" "" "Libresonic" "" "" "" ""
|
||||||
|
|
||||||
|
# Install and start service.
|
||||||
|
ExecWait '"$INSTDIR\libresonic-service.exe" -install'
|
||||||
|
ExecWait '"$INSTDIR\libresonic-service.exe" -start'
|
||||||
|
|
||||||
|
# Start agent.
|
||||||
|
Exec '"$INSTDIR\libresonic-agent-elevated.exe" -balloon'
|
||||||
|
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
|
||||||
|
Section "Start Menu Shortcuts"
|
||||||
|
|
||||||
|
CreateDirectory "$SMPROGRAMS\Libresonic"
|
||||||
|
CreateShortCut "$SMPROGRAMS\Libresonic\Open Libresonic.lnk" "$INSTDIR\libresonic.url" "" "$INSTDIR\libresonic-agent.exe" 0
|
||||||
|
CreateShortCut "$SMPROGRAMS\Libresonic\Libresonic Tray Icon.lnk" "$INSTDIR\libresonic-agent.exe" "-balloon" "$INSTDIR\libresonic-agent.exe" 0
|
||||||
|
CreateShortCut "$SMPROGRAMS\Libresonic\Start Libresonic Service.lnk" "$INSTDIR\libresonic-service.exe" "-start" "$INSTDIR\libresonic-service.exe" 0
|
||||||
|
CreateShortCut "$SMPROGRAMS\Libresonic\Stop Libresonic Service.lnk" "$INSTDIR\libresonic-service.exe" "-stop" "$INSTDIR\libresonic-service.exe" 0
|
||||||
|
CreateShortCut "$SMPROGRAMS\Libresonic\Uninstall Libresonic.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
|
||||||
|
CreateShortCut "$SMPROGRAMS\Libresonic\Getting Started.lnk" "$INSTDIR\Getting Started.html" "" "$INSTDIR\Getting Started.html" 0
|
||||||
|
|
||||||
|
CreateShortCut "$SMSTARTUP\Libresonic.lnk" "$INSTDIR\libresonic-agent.exe" "" "$INSTDIR\libresonic-agent.exe" 0
|
||||||
|
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
|
||||||
|
# Uninstaller
|
||||||
|
|
||||||
|
Section "Uninstall"
|
||||||
|
|
||||||
|
# Uninstall for all users
|
||||||
|
SetShellVarContext "all"
|
||||||
|
|
||||||
|
# Stop and uninstall service if present.
|
||||||
|
ExecWait '"$INSTDIR\libresonic-service.exe" -stop'
|
||||||
|
ExecWait '"$INSTDIR\libresonic-service.exe" -uninstall'
|
||||||
|
|
||||||
|
# Stop agent by killing it.
|
||||||
|
# (Requires NSIS plugin found on http://nsis.sourceforge.net/Processes_plug-in to be installed
|
||||||
|
# as NSIS_HOME/Plugins/Processes.dll)
|
||||||
|
Processes::KillProcess "libresonic-agent"
|
||||||
|
Processes::KillProcess "libresonic-agent-elevated"
|
||||||
|
Processes::KillProcess "ffmpeg"
|
||||||
|
|
||||||
|
# Remove registry keys
|
||||||
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Libresonic"
|
||||||
|
DeleteRegKey HKLM SOFTWARE\Libresonic
|
||||||
|
|
||||||
|
# Remove files.
|
||||||
|
Delete "$SMSTARTUP\Libresonic.lnk"
|
||||||
|
RMDir /r "$SMPROGRAMS\Libresonic"
|
||||||
|
Delete "$INSTDIR\build_number.txt"
|
||||||
|
Delete "$INSTDIR\elevate.exe"
|
||||||
|
Delete "$INSTDIR\Getting Started.html"
|
||||||
|
Delete "$INSTDIR\LICENSE.TXT"
|
||||||
|
Delete "$INSTDIR\README.TXT"
|
||||||
|
Delete "$INSTDIR\libresonic.url"
|
||||||
|
Delete "$INSTDIR\libresonic.war"
|
||||||
|
Delete "$INSTDIR\libresonic-agent.exe"
|
||||||
|
Delete "$INSTDIR\libresonic-agent.exe.vmoptions"
|
||||||
|
Delete "$INSTDIR\libresonic-agent-elevated.exe"
|
||||||
|
Delete "$INSTDIR\libresonic-agent-elevated.exe.vmoptions"
|
||||||
|
Delete "$INSTDIR\libresonic-booter-jar-with-dependencies.jar"
|
||||||
|
Delete "$INSTDIR\libresonic-service.exe"
|
||||||
|
Delete "$INSTDIR\libresonic-service.exe.vmoptions"
|
||||||
|
Delete "$INSTDIR\uninstall.exe"
|
||||||
|
Delete "$INSTDIR\version.txt"
|
||||||
|
RMDir /r "$INSTDIR\log"
|
||||||
|
RMDir "$INSTDIR"
|
||||||
|
|
||||||
|
# Remove Windows Firewall exception.
|
||||||
|
# (Requires NSIS plugin found on http://nsis.sourceforge.net/NSIS_Simple_Firewall_Plugin to be installed
|
||||||
|
# as NSIS_HOME/Plugins/SimpleFC.dll)
|
||||||
|
SimpleFC::AdvRemoveRule "Libresonic Service (TCP)"
|
||||||
|
SimpleFC::AdvRemoveRule "Libresonic Service (UDP)"
|
||||||
|
SimpleFC::AdvRemoveRule "Libresonic Agent (TCP)"
|
||||||
|
SimpleFC::AdvRemoveRule "Libresonic Agent (UDP)"
|
||||||
|
SimpleFC::AdvRemoveRule "Libresonic Agent Elevated (TCP)"
|
||||||
|
SimpleFC::AdvRemoveRule "Libresonic Agent Elevated (UDP)"
|
||||||
|
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
|
||||||
|
Function CheckInstalledJRE
|
||||||
|
# Read the value from the registry into the $0 register
|
||||||
|
ReadRegStr $0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" CurrentVersion
|
||||||
|
|
||||||
|
# Check JRE version. At least 1.6 is required.
|
||||||
|
# $1=0 Versions are equal
|
||||||
|
# $1=1 Installed version is newer
|
||||||
|
# $1=2 Installed version is older (or non-existent)
|
||||||
|
${VersionCompare} $0 "1.6" $1
|
||||||
|
IntCmp $1 2 InstallJRE 0 0
|
||||||
|
Return
|
||||||
|
|
||||||
|
InstallJRE:
|
||||||
|
# Launch Java web installer.
|
||||||
|
MessageBox MB_OK "Java was not found and will now be installed."
|
||||||
|
File /oname=$TEMP\jre-setup.exe jre-8u31-windows-i586-iftw.exe
|
||||||
|
ExecWait '"$TEMP\jre-setup.exe"' $0
|
||||||
|
Delete "$TEMP\jre-setup.exe"
|
||||||
|
|
||||||
|
FunctionEnd
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="refresh" content="0;URL=http://libresonic.org/pages/getting-started.jsp">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@@ -84,19 +84,19 @@ java version "1.6.0_18"
|
|||||||
OpenJDK Runtime Environment (IcedTea6 1.8.2) (6b18-1.8.2-4ubuntu1~9.04.1)
|
OpenJDK Runtime Environment (IcedTea6 1.8.2) (6b18-1.8.2-4ubuntu1~9.04.1)
|
||||||
OpenJDK Zero VM (build 14.0-b16, mixed mode)
|
OpenJDK Zero VM (build 14.0-b16, mixed mode)
|
||||||
|
|
||||||
root@ubuntu:/tmp# dpkg -i subsonic-4.4.deb
|
root@ubuntu:/tmp# dpkg -i libresonic-4.4.deb
|
||||||
Selecting previously deselected package subsonic.
|
Selecting previously deselected package libresonic.
|
||||||
(Reading database ... 21622 files and directories currently installed.)
|
(Reading database ... 21622 files and directories currently installed.)
|
||||||
Unpacking subsonic (from subsonic-4.4.deb) ...
|
Unpacking libresonic (from libresonic-4.4.deb) ...
|
||||||
Setting up subsonic (4.4) ...
|
Setting up libresonic (4.4) ...
|
||||||
Adding system startup for /etc/init.d/subsonic ...
|
Adding system startup for /etc/init.d/libresonic ...
|
||||||
/etc/rc0.d/K99subsonic -> ../init.d/subsonic
|
/etc/rc0.d/K99libresonic -> ../init.d/libresonic
|
||||||
/etc/rc1.d/K99subsonic -> ../init.d/subsonic
|
/etc/rc1.d/K99libresonic -> ../init.d/libresonic
|
||||||
/etc/rc6.d/K99subsonic -> ../init.d/subsonic
|
/etc/rc6.d/K99libresonic -> ../init.d/libresonic
|
||||||
/etc/rc2.d/S99subsonic -> ../init.d/subsonic
|
/etc/rc2.d/S99libresonic -> ../init.d/libresonic
|
||||||
/etc/rc3.d/S99subsonic -> ../init.d/subsonic
|
/etc/rc3.d/S99libresonic -> ../init.d/libresonic
|
||||||
/etc/rc4.d/S99subsonic -> ../init.d/subsonic
|
/etc/rc4.d/S99libresonic -> ../init.d/libresonic
|
||||||
/etc/rc5.d/S99subsonic -> ../init.d/subsonic
|
/etc/rc5.d/S99libresonic -> ../init.d/libresonic
|
||||||
Started Subsonic [PID 2596, /var/subsonic/subsonic_sh.log]
|
Started Libresonic [PID 2596, /var/libresonic/libresonic_sh.log]
|
||||||
|
|
||||||
http://192.168.0.100:4040
|
http://192.168.0.100:4040
|
||||||
@@ -27,8 +27,8 @@
|
|||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="module" module-name="subsonic-rest-api" />
|
<orderEntry type="module" module-name="libresonic-rest-api" />
|
||||||
<orderEntry type="module" module-name="subsonic-sonos-api" />
|
<orderEntry type="module" module-name="libresonic-sonos-api" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring:2.5.6" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring:2.5.6" level="project" />
|
||||||
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
|
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:2.5.6" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:2.5.6" level="project" />
|
||||||
@@ -2,13 +2,13 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic-main</artifactId>
|
<artifactId>libresonic-main</artifactId>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
<name>Subsonic Main</name>
|
<name>Libresonic Main</name>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>libresonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.0.1</version>
|
<version>6.0.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
@@ -16,14 +16,14 @@
|
|||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic-rest-api</artifactId>
|
<artifactId>libresonic-rest-api</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.sourceforge.subsonic</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>subsonic-sonos-api</artifactId>
|
<artifactId>libresonic-sonos-api</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
@@ -382,7 +382,7 @@
|
|||||||
</profiles>
|
</profiles>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<finalName>subsonic</finalName>
|
<finalName>libresonic</finalName>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
@@ -393,8 +393,8 @@
|
|||||||
<configuration>
|
<configuration>
|
||||||
<target>
|
<target>
|
||||||
<tstamp/>
|
<tstamp/>
|
||||||
<copy file="${basedir}/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_en.properties"
|
<copy file="${basedir}/src/main/resources/org.libresonic.player/i18n/ResourceBundle_en.properties"
|
||||||
tofile="${project.build.directory}/classes/net/sourceforge/subsonic/i18n/ResourceBundle.properties"/>
|
tofile="${project.build.directory}/classes/org.libresonic.player/i18n/ResourceBundle.properties"/>
|
||||||
<echo file="${project.build.directory}/classes/build_number.txt">${buildNumber}</echo>
|
<echo file="${project.build.directory}/classes/build_number.txt">${buildNumber}</echo>
|
||||||
<echo file="${project.build.directory}/classes/build_date.txt">${DSTAMP}</echo>
|
<echo file="${project.build.directory}/classes/build_date.txt">${DSTAMP}</echo>
|
||||||
<echo file="${project.build.directory}/classes/version.txt">${project.version}</echo>
|
<echo file="${project.build.directory}/classes/version.txt">${project.version}</echo>
|
||||||
@@ -1,26 +1,26 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic;
|
package org.libresonic.player;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.domain.Version;
|
import org.libresonic.player.domain.Version;
|
||||||
import net.sourceforge.subsonic.service.*;
|
import org.libresonic.player.service.*;
|
||||||
import net.sourceforge.subsonic.util.*;
|
import org.libresonic.player.util.*;
|
||||||
import org.apache.commons.lang.exception.*;
|
import org.apache.commons.lang.exception.*;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
@@ -28,7 +28,7 @@ import java.text.*;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Logger implementation which logs to SUBSONIC_HOME/subsonic.log.
|
* Logger implementation which logs to SUBSONIC_HOME/libresonic.log.
|
||||||
* <br/>
|
* <br/>
|
||||||
* Note: Third party logging libraries (such as log4j and Commons logging) are intentionally not
|
* Note: Third party logging libraries (such as log4j and Commons logging) are intentionally not
|
||||||
* used. These libraries causes a lot of headache when deploying to some application servers
|
* used. These libraries causes a lot of headache when deploying to some application servers
|
||||||
@@ -167,7 +167,7 @@ public class Logger {
|
|||||||
try {
|
try {
|
||||||
getPrintWriter().println(entry);
|
getPrintWriter().println(entry);
|
||||||
} catch (IOException x) {
|
} catch (IOException x) {
|
||||||
System.err.println("Failed to write to subsonic.log. " + x);
|
System.err.println("Failed to write to libresonic.log. " + x);
|
||||||
}
|
}
|
||||||
entries.add(entry);
|
entries.add(entry);
|
||||||
}
|
}
|
||||||
@@ -180,8 +180,8 @@ public class Logger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static File getLogFile() {
|
public static File getLogFile() {
|
||||||
File subsonicHome = SettingsService.getSubsonicHome();
|
File libresonicHome = SettingsService.getLibresonicHome();
|
||||||
return new File(subsonicHome, "subsonic.log");
|
return new File(libresonicHome, "libresonic.log");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1,27 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of Subsonic.
|
* This file is part of Libresonic.
|
||||||
*
|
*
|
||||||
* Subsonic is free software: you can redistribute it and/or modify
|
* Libresonic is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* Subsonic is distributed in the hope that it will be useful,
|
* Libresonic is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
* along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
* Copyright 2014 (C) Sindre Mehus
|
* Copyright 2014 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.domain.ArtistBio;
|
import org.libresonic.player.domain.ArtistBio;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Sindre Mehus
|
* @author Sindre Mehus
|
||||||
@@ -1,26 +1,26 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.Logger;
|
import org.libresonic.player.Logger;
|
||||||
import net.sourceforge.subsonic.service.SecurityService;
|
import org.libresonic.player.service.SecurityService;
|
||||||
import net.sourceforge.subsonic.util.BoundedList;
|
import org.libresonic.player.util.BoundedList;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.directwebremoting.WebContext;
|
import org.directwebremoting.WebContext;
|
||||||
import org.directwebremoting.WebContextFactory;
|
import org.directwebremoting.WebContextFactory;
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contains info about cover art images for an album.
|
* Contains info about cover art images for an album.
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
@@ -30,11 +30,11 @@ import org.apache.http.client.methods.HttpGet;
|
|||||||
import org.apache.http.impl.client.DefaultHttpClient;
|
import org.apache.http.impl.client.DefaultHttpClient;
|
||||||
import org.apache.http.params.HttpConnectionParams;
|
import org.apache.http.params.HttpConnectionParams;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.Logger;
|
import org.libresonic.player.Logger;
|
||||||
import net.sourceforge.subsonic.domain.MediaFile;
|
import org.libresonic.player.domain.MediaFile;
|
||||||
import net.sourceforge.subsonic.service.MediaFileService;
|
import org.libresonic.player.service.MediaFileService;
|
||||||
import net.sourceforge.subsonic.service.SecurityService;
|
import org.libresonic.player.service.SecurityService;
|
||||||
import net.sourceforge.subsonic.util.StringUtil;
|
import org.libresonic.player.util.StringUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides AJAX-enabled services for changing cover art images.
|
* Provides AJAX-enabled services for changing cover art images.
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contains lyrics info for a song.
|
* Contains lyrics info for a song.
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.StringReader;
|
import java.io.StringReader;
|
||||||
@@ -34,8 +34,8 @@ import org.jdom.Element;
|
|||||||
import org.jdom.Namespace;
|
import org.jdom.Namespace;
|
||||||
import org.jdom.input.SAXBuilder;
|
import org.jdom.input.SAXBuilder;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.Logger;
|
import org.libresonic.player.Logger;
|
||||||
import net.sourceforge.subsonic.util.StringUtil;
|
import org.libresonic.player.util.StringUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides AJAX-enabled services for retrieving song lyrics from chartlyrics.com.
|
* Provides AJAX-enabled services for retrieving song lyrics from chartlyrics.com.
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -27,16 +27,16 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
|
|
||||||
import org.directwebremoting.WebContextFactory;
|
import org.directwebremoting.WebContextFactory;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.Logger;
|
import org.libresonic.player.Logger;
|
||||||
import net.sourceforge.subsonic.domain.ArtistBio;
|
import org.libresonic.player.domain.ArtistBio;
|
||||||
import net.sourceforge.subsonic.domain.MediaFile;
|
import org.libresonic.player.domain.MediaFile;
|
||||||
import net.sourceforge.subsonic.domain.MusicFolder;
|
import org.libresonic.player.domain.MusicFolder;
|
||||||
import net.sourceforge.subsonic.domain.UserSettings;
|
import org.libresonic.player.domain.UserSettings;
|
||||||
import net.sourceforge.subsonic.service.LastFmService;
|
import org.libresonic.player.service.LastFmService;
|
||||||
import net.sourceforge.subsonic.service.MediaFileService;
|
import org.libresonic.player.service.MediaFileService;
|
||||||
import net.sourceforge.subsonic.service.NetworkService;
|
import org.libresonic.player.service.NetworkService;
|
||||||
import net.sourceforge.subsonic.service.SecurityService;
|
import org.libresonic.player.service.SecurityService;
|
||||||
import net.sourceforge.subsonic.service.SettingsService;
|
import org.libresonic.player.service.SettingsService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides miscellaneous AJAX-enabled services.
|
* Provides miscellaneous AJAX-enabled services.
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Details about what a user is currently listening to.
|
* Details about what a user is currently listening to.
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -29,17 +29,17 @@ import org.apache.commons.lang.StringUtils;
|
|||||||
import org.directwebremoting.WebContext;
|
import org.directwebremoting.WebContext;
|
||||||
import org.directwebremoting.WebContextFactory;
|
import org.directwebremoting.WebContextFactory;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.Logger;
|
import org.libresonic.player.Logger;
|
||||||
import net.sourceforge.subsonic.domain.AvatarScheme;
|
import org.libresonic.player.domain.AvatarScheme;
|
||||||
import net.sourceforge.subsonic.domain.MediaFile;
|
import org.libresonic.player.domain.MediaFile;
|
||||||
import net.sourceforge.subsonic.domain.PlayStatus;
|
import org.libresonic.player.domain.PlayStatus;
|
||||||
import net.sourceforge.subsonic.domain.Player;
|
import org.libresonic.player.domain.Player;
|
||||||
import net.sourceforge.subsonic.domain.UserSettings;
|
import org.libresonic.player.domain.UserSettings;
|
||||||
import net.sourceforge.subsonic.service.MediaScannerService;
|
import org.libresonic.player.service.MediaScannerService;
|
||||||
import net.sourceforge.subsonic.service.PlayerService;
|
import org.libresonic.player.service.PlayerService;
|
||||||
import net.sourceforge.subsonic.service.SettingsService;
|
import org.libresonic.player.service.SettingsService;
|
||||||
import net.sourceforge.subsonic.service.StatusService;
|
import org.libresonic.player.service.StatusService;
|
||||||
import net.sourceforge.subsonic.util.StringUtil;
|
import org.libresonic.player.util.StringUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides AJAX-enabled services for retrieving the currently playing file and directory.
|
* Provides AJAX-enabled services for retrieving the currently playing file and directory.
|
||||||
@@ -1,26 +1,26 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.util.StringUtil;
|
import org.libresonic.player.util.StringUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The playlist of a player.
|
* The playlist of a player.
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -35,29 +35,29 @@ import org.springframework.web.servlet.support.RequestContextUtils;
|
|||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.dao.MediaFileDao;
|
import org.libresonic.player.dao.MediaFileDao;
|
||||||
import net.sourceforge.subsonic.dao.PlayQueueDao;
|
import org.libresonic.player.dao.PlayQueueDao;
|
||||||
import net.sourceforge.subsonic.domain.MediaFile;
|
import org.libresonic.player.domain.MediaFile;
|
||||||
import net.sourceforge.subsonic.domain.MusicFolder;
|
import org.libresonic.player.domain.MusicFolder;
|
||||||
import net.sourceforge.subsonic.domain.PlayQueue;
|
import org.libresonic.player.domain.PlayQueue;
|
||||||
import net.sourceforge.subsonic.domain.Player;
|
import org.libresonic.player.domain.Player;
|
||||||
import net.sourceforge.subsonic.domain.PodcastEpisode;
|
import org.libresonic.player.domain.PodcastEpisode;
|
||||||
import net.sourceforge.subsonic.domain.PodcastStatus;
|
import org.libresonic.player.domain.PodcastStatus;
|
||||||
import net.sourceforge.subsonic.domain.SavedPlayQueue;
|
import org.libresonic.player.domain.SavedPlayQueue;
|
||||||
import net.sourceforge.subsonic.domain.UrlRedirectType;
|
import org.libresonic.player.domain.UrlRedirectType;
|
||||||
import net.sourceforge.subsonic.domain.UserSettings;
|
import org.libresonic.player.domain.UserSettings;
|
||||||
import net.sourceforge.subsonic.service.JukeboxService;
|
import org.libresonic.player.service.JukeboxService;
|
||||||
import net.sourceforge.subsonic.service.LastFmService;
|
import org.libresonic.player.service.LastFmService;
|
||||||
import net.sourceforge.subsonic.service.MediaFileService;
|
import org.libresonic.player.service.MediaFileService;
|
||||||
import net.sourceforge.subsonic.service.PlayerService;
|
import org.libresonic.player.service.PlayerService;
|
||||||
import net.sourceforge.subsonic.service.PlaylistService;
|
import org.libresonic.player.service.PlaylistService;
|
||||||
import net.sourceforge.subsonic.service.PodcastService;
|
import org.libresonic.player.service.PodcastService;
|
||||||
import net.sourceforge.subsonic.service.RatingService;
|
import org.libresonic.player.service.RatingService;
|
||||||
import net.sourceforge.subsonic.service.SearchService;
|
import org.libresonic.player.service.SearchService;
|
||||||
import net.sourceforge.subsonic.service.SecurityService;
|
import org.libresonic.player.service.SecurityService;
|
||||||
import net.sourceforge.subsonic.service.SettingsService;
|
import org.libresonic.player.service.SettingsService;
|
||||||
import net.sourceforge.subsonic.service.TranscodingService;
|
import org.libresonic.player.service.TranscodingService;
|
||||||
import net.sourceforge.subsonic.util.StringUtil;
|
import org.libresonic.player.util.StringUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides AJAX-enabled services for manipulating the play queue of a player.
|
* Provides AJAX-enabled services for manipulating the play queue of a player.
|
||||||
@@ -78,7 +78,7 @@ public class PlayQueueService {
|
|||||||
private SearchService searchService;
|
private SearchService searchService;
|
||||||
private RatingService ratingService;
|
private RatingService ratingService;
|
||||||
private PodcastService podcastService;
|
private PodcastService podcastService;
|
||||||
private net.sourceforge.subsonic.service.PlaylistService playlistService;
|
private org.libresonic.player.service.PlaylistService playlistService;
|
||||||
private MediaFileDao mediaFileDao;
|
private MediaFileDao mediaFileDao;
|
||||||
private PlayQueueDao playQueueDao;
|
private PlayQueueDao playQueueDao;
|
||||||
|
|
||||||
@@ -141,7 +141,7 @@ public class PlayQueueService {
|
|||||||
List<Integer> ids = MediaFile.toIdList(playQueue.getFiles());
|
List<Integer> ids = MediaFile.toIdList(playQueue.getFiles());
|
||||||
|
|
||||||
Integer currentId = currentSongIndex == -1 ? null : playQueue.getFile(currentSongIndex).getId();
|
Integer currentId = currentSongIndex == -1 ? null : playQueue.getFile(currentSongIndex).getId();
|
||||||
SavedPlayQueue savedPlayQueue = new SavedPlayQueue(null, username, ids, currentId, positionMillis, new Date(), "Subsonic");
|
SavedPlayQueue savedPlayQueue = new SavedPlayQueue(null, username, ids, currentId, positionMillis, new Date(), "Libresonic");
|
||||||
playQueueDao.savePlayQueue(savedPlayQueue);
|
playQueueDao.savePlayQueue(savedPlayQueue);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,27 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.domain.MediaFile;
|
import org.libresonic.player.domain.MediaFile;
|
||||||
import net.sourceforge.subsonic.domain.Playlist;
|
import org.libresonic.player.domain.Playlist;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The playlist of a player.
|
* The playlist of a player.
|
||||||
@@ -1,33 +1,33 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.dao.MediaFileDao;
|
import org.libresonic.player.dao.MediaFileDao;
|
||||||
import net.sourceforge.subsonic.domain.MediaFile;
|
import org.libresonic.player.domain.MediaFile;
|
||||||
import net.sourceforge.subsonic.domain.MusicFolder;
|
import org.libresonic.player.domain.MusicFolder;
|
||||||
import net.sourceforge.subsonic.domain.Player;
|
import org.libresonic.player.domain.Player;
|
||||||
import net.sourceforge.subsonic.domain.Playlist;
|
import org.libresonic.player.domain.Playlist;
|
||||||
import net.sourceforge.subsonic.i18n.SubsonicLocaleResolver;
|
import org.libresonic.player.i18n.LibresonicLocaleResolver;
|
||||||
import net.sourceforge.subsonic.service.MediaFileService;
|
import org.libresonic.player.service.MediaFileService;
|
||||||
import net.sourceforge.subsonic.service.PlayerService;
|
import org.libresonic.player.service.PlayerService;
|
||||||
import net.sourceforge.subsonic.service.SecurityService;
|
import org.libresonic.player.service.SecurityService;
|
||||||
import net.sourceforge.subsonic.service.SettingsService;
|
import org.libresonic.player.service.SettingsService;
|
||||||
import org.directwebremoting.WebContextFactory;
|
import org.directwebremoting.WebContextFactory;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@@ -50,11 +50,11 @@ public class PlaylistService {
|
|||||||
|
|
||||||
private MediaFileService mediaFileService;
|
private MediaFileService mediaFileService;
|
||||||
private SecurityService securityService;
|
private SecurityService securityService;
|
||||||
private net.sourceforge.subsonic.service.PlaylistService playlistService;
|
private org.libresonic.player.service.PlaylistService playlistService;
|
||||||
private MediaFileDao mediaFileDao;
|
private MediaFileDao mediaFileDao;
|
||||||
private SettingsService settingsService;
|
private SettingsService settingsService;
|
||||||
private PlayerService playerService;
|
private PlayerService playerService;
|
||||||
private SubsonicLocaleResolver localeResolver;
|
private LibresonicLocaleResolver localeResolver;
|
||||||
|
|
||||||
public List<Playlist> getReadablePlaylists() {
|
public List<Playlist> getReadablePlaylists() {
|
||||||
HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();
|
HttpServletRequest request = WebContextFactory.get().getHttpServletRequest();
|
||||||
@@ -139,7 +139,7 @@ public class PlaylistService {
|
|||||||
playlist.setChanged(now);
|
playlist.setChanged(now);
|
||||||
playlist.setShared(false);
|
playlist.setShared(false);
|
||||||
|
|
||||||
ResourceBundle bundle = ResourceBundle.getBundle("net.sourceforge.subsonic.i18n.ResourceBundle", locale);
|
ResourceBundle bundle = ResourceBundle.getBundle("org.libresonic.player.i18n.ResourceBundle", locale);
|
||||||
playlist.setName(bundle.getString("top.starred") + " " + dateFormat.format(now));
|
playlist.setName(bundle.getString("top.starred") + " " + dateFormat.format(now));
|
||||||
|
|
||||||
playlistService.createPlaylist(playlist);
|
playlistService.createPlaylist(playlist);
|
||||||
@@ -236,7 +236,7 @@ public class PlaylistService {
|
|||||||
return getPlaylist(id);
|
return getPlaylist(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPlaylistService(net.sourceforge.subsonic.service.PlaylistService playlistService) {
|
public void setPlaylistService(org.libresonic.player.service.PlaylistService playlistService) {
|
||||||
this.playlistService = playlistService;
|
this.playlistService = playlistService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,7 +260,7 @@ public class PlaylistService {
|
|||||||
this.playerService = playerService;
|
this.playerService = playerService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLocaleResolver(SubsonicLocaleResolver localeResolver) {
|
public void setLocaleResolver(LibresonicLocaleResolver localeResolver) {
|
||||||
this.localeResolver = localeResolver;
|
this.localeResolver = localeResolver;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Media folder scanning status.
|
* Media folder scanning status.
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
* This file is part of Subsonic.
|
* This file is part of Libresonic.
|
||||||
*
|
*
|
||||||
* Subsonic is free software: you can redistribute it and/or modify
|
* Libresonic is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* Subsonic is distributed in the hope that it will be useful,
|
* Libresonic is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU General Public License for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
* along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
* Copyright 2014 (C) Sindre Mehus
|
* Copyright 2014 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contains info about a similar artist.
|
* Contains info about a similar artist.
|
||||||
@@ -1,27 +1,27 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.Logger;
|
import org.libresonic.player.Logger;
|
||||||
import net.sourceforge.subsonic.dao.MediaFileDao;
|
import org.libresonic.player.dao.MediaFileDao;
|
||||||
import net.sourceforge.subsonic.domain.User;
|
import org.libresonic.player.domain.User;
|
||||||
import net.sourceforge.subsonic.service.SecurityService;
|
import org.libresonic.player.service.SecurityService;
|
||||||
import org.directwebremoting.WebContext;
|
import org.directwebremoting.WebContext;
|
||||||
import org.directwebremoting.WebContextFactory;
|
import org.directwebremoting.WebContextFactory;
|
||||||
|
|
||||||
@@ -1,33 +1,33 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of Subsonic.
|
This file is part of Libresonic.
|
||||||
|
|
||||||
Subsonic is free software: you can redistribute it and/or modify
|
Libresonic is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
Subsonic is distributed in the hope that it will be useful,
|
Libresonic is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
|
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
Copyright 2009 (C) Sindre Mehus
|
Copyright 2009 (C) Sindre Mehus
|
||||||
*/
|
*/
|
||||||
package net.sourceforge.subsonic.ajax;
|
package org.libresonic.player.ajax;
|
||||||
|
|
||||||
import org.apache.commons.io.FilenameUtils;
|
import org.apache.commons.io.FilenameUtils;
|
||||||
import org.apache.commons.lang.ObjectUtils;
|
import org.apache.commons.lang.ObjectUtils;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
|
||||||
import net.sourceforge.subsonic.Logger;
|
import org.libresonic.player.Logger;
|
||||||
import net.sourceforge.subsonic.domain.MediaFile;
|
import org.libresonic.player.domain.MediaFile;
|
||||||
import net.sourceforge.subsonic.service.MediaFileService;
|
import org.libresonic.player.service.MediaFileService;
|
||||||
import net.sourceforge.subsonic.service.metadata.MetaData;
|
import org.libresonic.player.service.metadata.MetaData;
|
||||||
import net.sourceforge.subsonic.service.metadata.MetaDataParser;
|
import org.libresonic.player.service.metadata.MetaDataParser;
|
||||||
import net.sourceforge.subsonic.service.metadata.MetaDataParserFactory;
|
import org.libresonic.player.service.metadata.MetaDataParserFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides AJAX-enabled services for editing tags in music files.
|
* Provides AJAX-enabled services for editing tags in music files.
|
||||||