Commits

Sam Adams committed e26e1df

Refactoring webapp - split into modules

  • Participants
  • Parent commits 82c67fe

Comments (0)

Files changed (21)

+
+Chempound can be run from the quixote-repository-webapp sub-project.
+
 Launching chempound
 
 Requires chempound.workspace and chempound.uri parameters to be set:
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>uk.ac.cam.ch.wwmm.quixote</groupId>
-    <artifactId>quixote-webapp</artifactId>
+    <artifactId>quixote-repository-aggregator</artifactId>
     <version>0.1-SNAPSHOT</version>
-    <packaging>war</packaging>
+    <packaging>pom</packaging>
 
-    <name>Quixote Data Repository</name>
+    <name>Quixote Data Repository Aggregator</name>
 
-    <dependencies>
-
-        <dependency>
-            <groupId>net.chempound</groupId>
-            <artifactId>chempound-webapp</artifactId>
-            <version>0.1-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>net.chempound.chemistry</groupId>
-            <artifactId>chemistry-search-structure</artifactId>
-            <version>0.1-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>net.chempound.chemistry</groupId>
-            <artifactId>chemistry-jmol-plugin</artifactId>
-            <version>0.1-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>net.chempound.plugins</groupId>
-            <artifactId>chempound-jquery-plugin</artifactId>
-            <version>0.1-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>net.chempound.crystallography</groupId>
-            <artifactId>crystallography-handler</artifactId>
-            <version>0.1-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>net.chempound.compchem</groupId>
-            <artifactId>compchem-handler</artifactId>
-            <version>0.1-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <version>[1.6.1]</version>
-        </dependency>
-
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>2.5</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-            <version>3.0</version>
-        </dependency>
-        <dependency>
-            <groupId>com.google.inject.extensions</groupId>
-            <artifactId>guice-servlet</artifactId>
-            <version>3.0</version>
-        </dependency>
-
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.mortbay.jetty</groupId>
-                <artifactId>maven-jetty-plugin</artifactId>
-                <version>6.1.26</version>
-                <configuration>
-                    <contextPath>/</contextPath>
-                    <scanIntervalSeconds>5</scanIntervalSeconds>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-    <repositories>
-        <repository>
-            <id>ucc-repo</id>
-            <url>https://maven.ch.cam.ac.uk/m2repo</url>
-        </repository>
-    </repositories>
-
-    <profiles>
-
-        <profile>
-            <id>demo</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.mortbay.jetty</groupId>
-                        <artifactId>maven-jetty-plugin</artifactId>
-                        <configuration>
-                            <systemProperties>
-                                <systemProperty>
-                                    <name>chempound.uri</name>
-                                    <value>http://localhost:8080/</value>
-                                </systemProperty>
-                                <systemProperty>
-                                    <name>chempound.workspace</name>
-                                    <value>./target/quixote-workspace</value>
-                                </systemProperty>
-                            </systemProperties>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-
-    </profiles>
+    <modules>
+        <module>quixote-repository</module>
+        <module>quixote-repository-webapp</module>
+    </modules>
 
 </project>

File quixote-repository-webapp/pom.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <parent>
+        <groupId>net.chempound</groupId>
+        <artifactId>chempound-parent</artifactId>
+        <version>1-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>uk.ac.cam.ch.wwmm.quixote</groupId>
+    <artifactId>quixote-repository-webapp</artifactId>
+    <version>0.1-SNAPSHOT</version>
+    <packaging>war</packaging>
+
+    <name>Quixote Data Repository :: WebApp</name>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>uk.ac.cam.ch.wwmm.quixote</groupId>
+            <artifactId>quixote-repository</artifactId>
+            <version>0.1-SNAPSHOT</version>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.mortbay.jetty</groupId>
+                <artifactId>maven-jetty-plugin</artifactId>
+                <version>6.1.26</version>
+                <configuration>
+                    <contextPath>/</contextPath>
+                    <scanIntervalSeconds>5</scanIntervalSeconds>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>ucc-repo</id>
+            <url>https://maven.ch.cam.ac.uk/m2repo</url>
+        </repository>
+    </repositories>
+
+    <profiles>
+
+        <profile>
+            <id>demo</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.mortbay.jetty</groupId>
+                        <artifactId>maven-jetty-plugin</artifactId>
+                        <configuration>
+                            <systemProperties>
+                                <systemProperty>
+                                    <name>chempound.uri</name>
+                                    <value>http://localhost:8080/</value>
+                                </systemProperty>
+                                <systemProperty>
+                                    <name>chempound.workspace</name>
+                                    <value>./target/quixote-workspace</value>
+                                </systemProperty>
+                            </systemProperties>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+
+    </profiles>
+
+</project>

File quixote-repository-webapp/quixote-repository-webapp.iml

+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="web" name="Web">
+      <configuration>
+        <descriptors>
+          <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" />
+        </descriptors>
+        <webroots>
+          <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
+        </webroots>
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module" module-name="quixote-repository" />
+    <orderEntry type="module" module-name="chempound-webapp" />
+    <orderEntry type="module" module-name="chempound-api" />
+    <orderEntry type="module" module-name="chempound-rdf-vocabs" />
+    <orderEntry type="library" name="Maven: com.hp.hpl.jena:jena:2.6.3" level="project" />
+    <orderEntry type="library" name="Maven: com.hp.hpl.jena:iri:0.8" level="project" />
+    <orderEntry type="library" name="Maven: com.ibm.icu:icu4j:3.4.4" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.hp.hpl.jena:iri:sources:0.8" level="project" />
+    <orderEntry type="library" name="Maven: xerces:xercesImpl:2.8.0" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.6.1" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.6.1" level="project" />
+    <orderEntry type="library" name="Maven: log4j:log4j:1.2.16" level="project" />
+    <orderEntry type="module" module-name="chempound-rdf-cml" />
+    <orderEntry type="library" name="Maven: com.hp.hpl.jena:arq:2.8.4" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.hp.hpl.jena:jena:sources:2.6.3" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.hp.hpl.jena:jena:test-jar:test-sources:2.6.3" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.woodstox:wstx-asl:3.2.9" level="project" />
+    <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.lucene:lucene-core:2.3.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-io:commons-io:2.0" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.4" level="project" />
+    <orderEntry type="library" name="Maven: com.google.inject:guice:3.0" level="project" />
+    <orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
+    <orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.16" level="project" />
+    <orderEntry type="module" module-name="chempound-app" />
+    <orderEntry type="library" name="Maven: com.hp.hpl.jena:tdb:0.8.6" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.hp.hpl.jena:arq:sources:2.8.4" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.hp.hpl.jena:arq:test-sources:2.8.4" level="project" />
+    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:1.8.4" level="project" />
+    <orderEntry type="library" name="Maven: javax.transaction:jta:1.1" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.atomxom:atomxom-feeds:0.2-SNAPSHOT" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.atomxom:atomxom-core:0.2-SNAPSHOT" level="project" />
+    <orderEntry type="library" name="Maven: xom:xom:1.2.5" level="project" />
+    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.3.03" level="project" />
+    <orderEntry type="library" name="Maven: xalan:xalan:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: joda-time:joda-time:1.6.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.0.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.3.1" level="project" />
+    <orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.4c" level="project" />
+    <orderEntry type="module" module-name="chempound-webapi" />
+    <orderEntry type="library" name="Maven: org.restlet.jee:org.restlet:2.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.osgi:org.osgi.core:4.0.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.inject.extensions:guice-multibindings:3.0" level="project" />
+    <orderEntry type="library" name="Maven: org.restlet.jee:org.restlet.ext.freemarker:2.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.restlet.jee:org.restlet.ext.fileupload:2.0.7" level="project" />
+    <orderEntry type="library" name="Maven: uk.ac.cam.ch.wwmm.commons-fileupload:commons-fileupload:1.2.1-ucc-SNAPSHOT" level="project" />
+    <orderEntry type="library" name="Maven: org.restlet.jee:org.restlet.ext.json:2.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.restlet.jee:org.restlet.lib.org.json:2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.restlet.jee:org.restlet.ext.servlet:2.0.7" level="project" />
+    <orderEntry type="library" name="Maven: com.google.inject.extensions:guice-servlet:3.0" level="project" />
+    <orderEntry type="library" name="Maven: org.swordapp:server:2.0-r339" level="project" />
+    <orderEntry type="library" name="Maven: javax.servlet:servlet-api:2.5" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.abdera:abdera-client:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.abdera:abdera-core:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.abdera:abdera-i18n:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-activation_1.0.2_spec:1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.abdera:abdera-parser:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.ws.commons.axiom:axiom-impl:1.2.10" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.ws.commons.axiom:axiom-api:1.2.10" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-activation_1.1_spec:1.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-javamail_1.4_spec:1.6" level="project" />
+    <orderEntry type="library" name="Maven: jaxen:jaxen:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.2.1" level="project" />
+    <orderEntry type="module" module-name="chemistry-search-structure" />
+    <orderEntry type="module" module-name="chemistry-common" />
+    <orderEntry type="library" name="Maven: cml:cmlxom:3.1-SNAPSHOT" level="project" />
+    <orderEntry type="library" name="Maven: org.xml-cml:euclid:1.1-SNAPSHOT" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-math:2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.ccil.cowan.tagsoup:tagsoup:1.2" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.jni-inchi:jni-inchi:0.7" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.jnati:jnati-deploy:0.3" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.jnati:jnati-core:0.3" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava-collections:r03" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava-annotations:r03" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava-primitives:r03" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava-base:r03" level="project" />
+    <orderEntry type="library" name="Maven: cml:jumbo:6.0.0-SNAPSHOT" level="project" />
+    <orderEntry type="library" name="Maven: org.xml-cml:cmlxom:3.2-SNAPSHOT" level="project" />
+    <orderEntry type="module" module-name="chemistry-jmol-plugin" />
+    <orderEntry type="module" module-name="chempound-jquery-plugin" />
+    <orderEntry type="module" module-name="crystallography-handler" />
+    <orderEntry type="module" module-name="crystallography-common" />
+    <orderEntry type="module" module-name="compchem-handler" />
+    <orderEntry type="module" module-name="compchem-common" />
+  </component>
+</module>
+

File quixote-repository-webapp/run.bat

+mvn -Dchempound.workspace=target/workspace -Dchempound.uri=http://localhost:8181/ -Djetty.port=8181 compile jetty:run

File quixote-repository-webapp/run.sh

+#!/bin/bash
+mvn -Dchempound.workspace=target/workspace -Dchempound.uri=http://localhost:8181/ -Djetty.port=8181 compile jetty:run

File quixote-repository-webapp/src/main/webapp/WEB-INF/web.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
+         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">
+
+    <display-name>Quixote Chempound</display-name>
+
+    <listener>
+        <listener-class>uk.ac.cam.ch.wwmm.quixote.QuixoteChempoundServletConfig</listener-class>
+    </listener>
+
+    <filter>
+        <filter-name>guiceFilter</filter-name>
+        <filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
+    </filter>
+
+    <filter-mapping>
+        <filter-name>guiceFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>
+
+</web-app>

File quixote-repository/pom.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <parent>
+        <groupId>net.chempound</groupId>
+        <artifactId>chempound-parent</artifactId>
+        <version>1-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>uk.ac.cam.ch.wwmm.quixote</groupId>
+    <artifactId>quixote-repository</artifactId>
+    <version>0.1-SNAPSHOT</version>
+
+    <name>Quixote Data Repository</name>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>net.chempound</groupId>
+            <artifactId>chempound-webapp</artifactId>
+            <version>0.1-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>net.chempound.chemistry</groupId>
+            <artifactId>chemistry-search-structure</artifactId>
+            <version>0.1-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>net.chempound.chemistry</groupId>
+            <artifactId>chemistry-jmol-plugin</artifactId>
+            <version>0.1-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>net.chempound.plugins</groupId>
+            <artifactId>chempound-jquery-plugin</artifactId>
+            <version>0.1-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>net.chempound.crystallography</groupId>
+            <artifactId>crystallography-handler</artifactId>
+            <version>0.1-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>net.chempound.compchem</groupId>
+            <artifactId>compchem-handler</artifactId>
+            <version>0.1-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <version>[1.6.1]</version>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+            <version>2.5</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.google.inject</groupId>
+            <artifactId>guice</artifactId>
+            <version>3.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.inject.extensions</groupId>
+            <artifactId>guice-servlet</artifactId>
+            <version>3.0</version>
+        </dependency>
+
+    </dependencies>
+
+    <repositories>
+        <repository>
+            <id>ucc-repo</id>
+            <url>https://maven.ch.cam.ac.uk/m2repo</url>
+        </repository>
+    </repositories>
+
+</project>

File quixote-repository/quixote-repository.iml

+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="web" name="Web">
+      <configuration>
+        <descriptors>
+          <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" />
+        </descriptors>
+        <webroots>
+          <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
+        </webroots>
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module" module-name="chempound-webapp" />
+    <orderEntry type="module" module-name="chempound-api" />
+    <orderEntry type="module" module-name="chempound-rdf-vocabs" />
+    <orderEntry type="library" name="Maven: com.hp.hpl.jena:jena:2.6.3" level="project" />
+    <orderEntry type="library" name="Maven: com.hp.hpl.jena:iri:0.8" level="project" />
+    <orderEntry type="library" name="Maven: com.ibm.icu:icu4j:3.4.4" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.hp.hpl.jena:iri:sources:0.8" level="project" />
+    <orderEntry type="library" name="Maven: xerces:xercesImpl:2.8.0" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.6.1" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.6.1" level="project" />
+    <orderEntry type="library" name="Maven: log4j:log4j:1.2.16" level="project" />
+    <orderEntry type="module" module-name="chempound-rdf-cml" />
+    <orderEntry type="library" name="Maven: com.hp.hpl.jena:arq:2.8.4" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.hp.hpl.jena:jena:sources:2.6.3" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.hp.hpl.jena:jena:test-jar:test-sources:2.6.3" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.woodstox:wstx-asl:3.2.9" level="project" />
+    <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.lucene:lucene-core:2.3.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-io:commons-io:2.0" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.4" level="project" />
+    <orderEntry type="library" name="Maven: com.google.inject:guice:3.0" level="project" />
+    <orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
+    <orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
+    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.16" level="project" />
+    <orderEntry type="module" module-name="chempound-app" />
+    <orderEntry type="library" name="Maven: com.hp.hpl.jena:tdb:0.8.6" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.hp.hpl.jena:arq:sources:2.8.4" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.hp.hpl.jena:arq:test-sources:2.8.4" level="project" />
+    <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:1.8.4" level="project" />
+    <orderEntry type="library" name="Maven: javax.transaction:jta:1.1" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.atomxom:atomxom-feeds:0.2-SNAPSHOT" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.atomxom:atomxom-core:0.2-SNAPSHOT" level="project" />
+    <orderEntry type="library" name="Maven: xom:xom:1.2.5" level="project" />
+    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.3.03" level="project" />
+    <orderEntry type="library" name="Maven: xalan:xalan:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: joda-time:joda-time:1.6.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.0.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.3.1" level="project" />
+    <orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.4c" level="project" />
+    <orderEntry type="module" module-name="chempound-webapi" />
+    <orderEntry type="library" name="Maven: org.restlet.jee:org.restlet:2.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.osgi:org.osgi.core:4.0.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.inject.extensions:guice-multibindings:3.0" level="project" />
+    <orderEntry type="library" name="Maven: org.restlet.jee:org.restlet.ext.freemarker:2.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.restlet.jee:org.restlet.ext.fileupload:2.0.7" level="project" />
+    <orderEntry type="library" name="Maven: uk.ac.cam.ch.wwmm.commons-fileupload:commons-fileupload:1.2.1-ucc-SNAPSHOT" level="project" />
+    <orderEntry type="library" name="Maven: org.restlet.jee:org.restlet.ext.json:2.0.7" level="project" />
+    <orderEntry type="library" name="Maven: org.restlet.jee:org.restlet.lib.org.json:2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.restlet.jee:org.restlet.ext.servlet:2.0.7" level="project" />
+    <orderEntry type="library" name="Maven: com.google.inject.extensions:guice-servlet:3.0" level="project" />
+    <orderEntry type="library" name="Maven: org.swordapp:server:2.0-r339" level="project" />
+    <orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:servlet-api:2.5" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.abdera:abdera-client:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.abdera:abdera-core:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.abdera:abdera-i18n:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-activation_1.0.2_spec:1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.abdera:abdera-parser:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.ws.commons.axiom:axiom-impl:1.2.10" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.ws.commons.axiom:axiom-api:1.2.10" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-activation_1.1_spec:1.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-javamail_1.4_spec:1.6" level="project" />
+    <orderEntry type="library" name="Maven: jaxen:jaxen:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.2.1" level="project" />
+    <orderEntry type="module" module-name="chemistry-search-structure" />
+    <orderEntry type="module" module-name="chemistry-common" />
+    <orderEntry type="library" name="Maven: cml:cmlxom:3.1-SNAPSHOT" level="project" />
+    <orderEntry type="library" name="Maven: org.xml-cml:euclid:1.1-SNAPSHOT" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-math:2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.ccil.cowan.tagsoup:tagsoup:1.2" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.jni-inchi:jni-inchi:0.7" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.jnati:jnati-deploy:0.3" level="project" />
+    <orderEntry type="library" name="Maven: net.sf.jnati:jnati-core:0.3" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava-collections:r03" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava-annotations:r03" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava-primitives:r03" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava-base:r03" level="project" />
+    <orderEntry type="library" name="Maven: cml:jumbo:6.0.0-SNAPSHOT" level="project" />
+    <orderEntry type="library" name="Maven: org.xml-cml:cmlxom:3.2-SNAPSHOT" level="project" />
+    <orderEntry type="module" module-name="chemistry-jmol-plugin" />
+    <orderEntry type="module" module-name="chempound-jquery-plugin" />
+    <orderEntry type="module" module-name="crystallography-handler" />
+    <orderEntry type="module" module-name="crystallography-common" />
+    <orderEntry type="module" module-name="compchem-handler" />
+    <orderEntry type="module" module-name="compchem-common" />
+  </component>
+</module>
+

File quixote-repository/src/main/java/uk/ac/cam/ch/wwmm/quixote/QuixoteChempoundServletConfig.java

+package uk.ac.cam.ch.wwmm.quixote;
+
+import com.google.inject.AbstractModule;
+import net.chempound.webapp.ChempoundServletConfig;
+
+/**
+ * @author Sam Adams
+ */
+public class QuixoteChempoundServletConfig extends ChempoundServletConfig {
+
+    public QuixoteChempoundServletConfig() {
+        super();
+    }
+
+    protected AbstractModule getPluginsModule() {
+        return new QuixotePluginsModule();
+    }
+
+}

File quixote-repository/src/main/java/uk/ac/cam/ch/wwmm/quixote/QuixotePluginsModule.java

+package uk.ac.cam.ch.wwmm.quixote;
+
+import com.google.inject.AbstractModule;
+import net.chempound.compchem.CompChemModule;
+import net.chempound.crystal.CrystallographyModule;
+import net.chempound.plugins.jmol.JmolModule;
+import net.chempound.plugins.jquery.JQueryModule;
+import net.chempound.webapp.search.chemistry.StructureSearchProviderModule;
+
+/**
+ * @author Sam Adams
+ */
+public class QuixotePluginsModule extends AbstractModule {
+
+    @Override
+    protected void configure() {
+        install(new StructureSearchProviderModule());
+        install(new CrystallographyModule());
+        install(new CompChemModule());
+
+        install(new JQueryModule());
+        install(new JmolModule());
+    }
+
+}

File quixote-repository/src/main/java/uk/ac/cam/ch/wwmm/quixote/QuixoteWebappLauncher.java

+package uk.ac.cam.ch.wwmm.quixote;
+
+import com.google.inject.AbstractModule;
+import net.chempound.webapp.ChempoundWebappLauncher;
+
+/**
+ * @author Sam Adams
+ */
+public class QuixoteWebappLauncher extends ChempoundWebappLauncher {
+
+    public static void main(final String[] args) throws Exception {
+        final QuixoteWebappLauncher launcher = new QuixoteWebappLauncher();
+        launcher.start();
+    }
+
+    @Override
+    protected AbstractModule getPluginsModule() {
+        return new QuixotePluginsModule();
+    }
+
+}

File quixote-repository/src/main/resources/log4j.properties

+
+log4j.rootLogger = WARN, A
+
+log4j.appender.A = org.apache.log4j.ConsoleAppender
+log4j.appender.A.layout = org.apache.log4j.PatternLayout
+log4j.appender.A.layout.ConversionPattern = %-4r [%t] %-5p %c %x - %m%n
+log4j.appender.A.target = System.err
+
+log4j.logger.uk.ac.cam.ch.wwmm.chempound = DEBUG
+

File quixote-webapp.iml

+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="web" name="Web">
+      <configuration>
+        <webroots>
+          <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
+        </webroots>
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" />
+      <excludeFolder url="file://$MODULE_DIR$/target/archive-tmp" />
+      <excludeFolder url="file://$MODULE_DIR$/target/classes" />
+      <excludeFolder url="file://$MODULE_DIR$/target/maven-archiver" />
+      <excludeFolder url="file://$MODULE_DIR$/target/quixote-webapp-0.1-SNAPSHOT" />
+      <excludeFolder url="file://$MODULE_DIR$/target/surefire" />
+      <excludeFolder url="file://$MODULE_DIR$/target/test-classes" />
+      <excludeFolder url="file://$MODULE_DIR$/target/work" />
+      <excludeFolder url="file://$MODULE_DIR$/target/workspace" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
+

File run.bat

-mvn -Dchempound.workspace=target/workspace -Dchempound.uri=http://localhost:8181/ -Djetty.port=8181 compile jetty:run

File run.sh

-#!/bin/bash
-mvn -Dchempound.workspace=target/workspace -Dchempound.uri=http://localhost:8181/ -Djetty.port=8181 compile jetty:run

File src/main/java/uk/ac/cam/ch/wwmm/quixote/QuixoteChempoundServletConfig.java

-package uk.ac.cam.ch.wwmm.quixote;
-
-import com.google.inject.AbstractModule;
-import net.chempound.webapp.ChempoundServletConfig;
-
-/**
- * @author Sam Adams
- */
-public class QuixoteChempoundServletConfig extends ChempoundServletConfig {
-
-    public QuixoteChempoundServletConfig() {
-        super();
-    }
-
-    protected AbstractModule getPluginsModule() {
-        return new QuixotePluginsModule();
-    }
-
-}

File src/main/java/uk/ac/cam/ch/wwmm/quixote/QuixotePluginsModule.java

-package uk.ac.cam.ch.wwmm.quixote;
-
-import com.google.inject.AbstractModule;
-import net.chempound.compchem.CompChemModule;
-import net.chempound.crystal.CrystallographyModule;
-import net.chempound.plugins.jmol.JmolModule;
-import net.chempound.plugins.jquery.JQueryModule;
-import net.chempound.webapp.search.chemistry.StructureSearchProviderModule;
-
-/**
- * @author Sam Adams
- */
-public class QuixotePluginsModule extends AbstractModule {
-
-    @Override
-    protected void configure() {
-        install(new StructureSearchProviderModule());
-        install(new CrystallographyModule());
-        install(new CompChemModule());
-
-        install(new JQueryModule());
-        install(new JmolModule());
-    }
-
-}

File src/main/java/uk/ac/cam/ch/wwmm/quixote/QuixoteWebappLauncher.java

-package uk.ac.cam.ch.wwmm.quixote;
-
-import com.google.inject.AbstractModule;
-import net.chempound.webapp.ChempoundWebappLauncher;
-
-/**
- * @author Sam Adams
- */
-public class QuixoteWebappLauncher extends ChempoundWebappLauncher {
-
-    public static void main(final String[] args) throws Exception {
-        final QuixoteWebappLauncher launcher = new QuixoteWebappLauncher();
-        launcher.start();
-    }
-
-    @Override
-    protected AbstractModule getPluginsModule() {
-        return new QuixotePluginsModule();
-    }
-
-}

File src/main/resources/log4j.properties

-
-log4j.rootLogger = WARN, A
-
-log4j.appender.A = org.apache.log4j.ConsoleAppender
-log4j.appender.A.layout = org.apache.log4j.PatternLayout
-log4j.appender.A.layout.ConversionPattern = %-4r [%t] %-5p %c %x - %m%n
-log4j.appender.A.target = System.err
-
-log4j.logger.uk.ac.cam.ch.wwmm.chempound = DEBUG
-

File src/main/webapp/WEB-INF/web.xml

-<?xml version="1.0" encoding="UTF-8"?>
-<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
-         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">
-
-    <display-name>Quixote Chempound</display-name>
-
-    <listener>
-        <listener-class>uk.ac.cam.ch.wwmm.quixote.QuixoteChempoundServletConfig</listener-class>
-    </listener>
-
-    <filter>
-        <filter-name>guiceFilter</filter-name>
-        <filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
-    </filter>
-
-    <filter-mapping>
-        <filter-name>guiceFilter</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
-
-</web-app>