--- /dev/null
+/*
+ * DemosceneMusic - Core.java - Copyright © 2012 David Roden
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package net.pterodactylus.demoscenemusic.core;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.sql.DataSource;
+
+import net.pterodactylus.demoscenemusic.data.DataManager;
+import net.pterodactylus.util.database.AbstractDatabase;
+import net.pterodactylus.util.database.Database;
+
+/**
+ * TODO
+ *
+ * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
+ */
+public class Core implements ServletContextListener {
+
+ private DataManager dataManager;
+
+ /**
+ * {@inheritDoc}
+ */
+ public void contextInitialized(ServletContextEvent servletContextEvent) {
+ Context context;
+ try {
+ context = new InitialContext();
+ DataSource dataSource = (DataSource) context.lookup("java:/comp/env/jdbc/demosceneMusic");
+ Database database = AbstractDatabase.fromDataSource(dataSource);
+ dataManager = new DataManager(database);
+ servletContextEvent.getServletContext().setAttribute("DataManager", dataManager);
+ } catch (NamingException ne1) {
+ servletContextEvent.getServletContext().log("Could not create database connection.", ne1);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void contextDestroyed(ServletContextEvent arg0) {
+ /* do nothing. */
+ }
+
+}
<display-name>DemosceneMusic</display-name>
<description>Database for all demoscene music</description>
+ <listener>
+ <description>Listener for context-related events</description>
+ <listener-class>net.pterodactylus.demoscenemusic.core.Core</listener-class>
+ </listener>
+
<context-param>
<description>The directory where the streaming files (MP3, Vorbis, etc.) are stored.</description>
<param-name>storage.streamed</param-name>