Fix bootstrap and angular resources
diff --git a/.classpath b/.classpath
index 3b00822..d531303 100644
--- a/.classpath
+++ b/.classpath
@@ -112,7 +112,7 @@
 	<classpathentry kind="lib" path="ext/platform-3.4.0.jar" sourcepath="ext/src/platform-3.4.0.jar"/>
 	<classpathentry kind="lib" path="ext/mockito-core-1.10.19.jar" sourcepath="ext/src/mockito-core-1.10.19.jar"/>
 	<classpathentry kind="lib" path="ext/objenesis-2.1.jar" sourcepath="ext/src/objenesis-2.1.jar"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
diff --git a/src/main/java/com/gitblit/wicket/ng/NgController.java b/src/main/java/com/gitblit/wicket/ng/NgController.java
index 648a12d..65ba78c 100644
--- a/src/main/java/com/gitblit/wicket/ng/NgController.java
+++ b/src/main/java/com/gitblit/wicket/ng/NgController.java
@@ -17,13 +17,16 @@
 

 import java.text.MessageFormat;

 import java.util.HashMap;

+import java.util.List;

 import java.util.Map;

 

 import org.apache.wicket.Component;

 import org.apache.wicket.behavior.Behavior;

+import org.apache.wicket.markup.head.HeaderItem;

 import org.apache.wicket.markup.head.IHeaderResponse;

 import org.apache.wicket.markup.head.JavaScriptHeaderItem;

 import org.apache.wicket.request.resource.PackageResourceReference;

+import org.apache.wicket.resource.JQueryResourceReference;

 

 import com.google.gson.Gson;

 import com.google.gson.GsonBuilder;

@@ -56,7 +59,16 @@
 	@Override

 	public void renderHead(Component component, IHeaderResponse response) {

 		// add Google AngularJS reference

-		response.render(JavaScriptHeaderItem.forReference(new PackageResourceReference(NgController.class, "angular.js")));

+		response.render(JavaScriptHeaderItem.forReference(new PackageResourceReference(NgController.class, "angular.js"){

+			private static final long serialVersionUID = 1L;

+

+			@Override

+			public List<HeaderItem> getDependencies() {

+				List<HeaderItem> deps = super.getDependencies();

+				deps.add(JavaScriptHeaderItem.forReference(JQueryResourceReference.get()));

+				return deps;

+			}

+		}));

 

 		Gson gson = new GsonBuilder().create();

 

@@ -71,7 +83,7 @@
 		}

 		line(sb, "}");

 

-		response.render(JavaScriptHeaderItem.forScript(sb.toString(), "angularController"));

+		response.render(JavaScriptHeaderItem.forScript(sb.toString(), "angularController-"+name));

 	}

 

 	private void line(StringBuilder sb, String line) {

diff --git a/src/main/java/com/gitblit/wicket/pages/BasePage.html b/src/main/java/com/gitblit/wicket/pages/BasePage.html
index fe9cc48..9b02698 100644
--- a/src/main/java/com/gitblit/wicket/pages/BasePage.html
+++ b/src/main/java/com/gitblit/wicket/pages/BasePage.html
@@ -10,6 +10,7 @@
 		<meta name="viewport" content="width=device-width, initial-scale=1.0" />

 		<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

    		<title wicket:id="title">[page title]</title>

+   		

 		<link rel="icon" href="gitblt-favicon.png" type="image/png" />

 		<link rel="stylesheet" href="bootstrap/css/bootstrap.css"/>

 		<link rel="stylesheet" href="bootstrap/css/iconic.css"/>

@@ -48,7 +49,6 @@
 		</style>

 		

 		<!-- Include scripts at end for faster page loading -->

-<!-- 		<script type="text/javascript" src="bootstrap/js/jquery.js"></script> -->

 		<script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>		

 		<wicket:container wicket:id="bottomScripts"></wicket:container>

 	</body>

diff --git a/src/main/java/com/gitblit/wicket/pages/BasePage.java b/src/main/java/com/gitblit/wicket/pages/BasePage.java
index 0c35bb4..51e671c 100644
--- a/src/main/java/com/gitblit/wicket/pages/BasePage.java
+++ b/src/main/java/com/gitblit/wicket/pages/BasePage.java
@@ -40,8 +40,10 @@
 import org.apache.wicket.request.mapper.parameter.PageParameters;

 import org.apache.wicket.request.resource.ContextRelativeResourceReference;

 import org.apache.wicket.request.resource.JavaScriptResourceReference;

+import org.apache.wicket.resource.JQueryResourceReference;

 import org.apache.wicket.markup.head.CssHeaderItem;

 import org.apache.wicket.markup.head.IHeaderResponse;

+import org.apache.wicket.markup.head.JavaScriptHeaderItem;

 import org.apache.wicket.markup.html.basic.Label;

 import org.apache.wicket.markup.html.link.ExternalLink;

 import org.apache.wicket.markup.html.panel.FeedbackPanel;

@@ -67,6 +69,7 @@
 import com.gitblit.wicket.GitBlitWebApp;

 import com.gitblit.wicket.GitBlitWebSession;

 import com.gitblit.wicket.WicketUtils;

+import com.gitblit.wicket.resources.bootstrap.Bootstrap;

 

 public abstract class BasePage extends SessionPage {

 

@@ -96,9 +99,10 @@
 	@Override

 	public void renderHead(IHeaderResponse response) {

 		super.renderHead(response);

+		response.render(JavaScriptHeaderItem.forReference(JQueryResourceReference.get()));

+		

 		if (app().settings().getBoolean(Keys.web.useResponsiveLayout, true)) {

-			response.render(CssHeaderItem.forReference(

-					new ContextRelativeResourceReference("/bootstrap/css/bootstrap-responsive.css", false)));

+			response.render(CssHeaderItem.forReference(Application.get().getSharedResources().get(Bootstrap.BOOTSTRAP_RESPONSIVE_CSS_RESOURCE)));

 		}

 		if (app().settings().getBoolean(Keys.web.hideHeader, false)) {

 			response.render(CssHeaderItem.forReference(new ContextRelativeResourceReference("/hideheader.css", false)));

diff --git a/src/main/java/com/gitblit/wicket/resources/bootstrap/Bootstrap.java b/src/main/java/com/gitblit/wicket/resources/bootstrap/Bootstrap.java
index f675af6..0d0778d 100644
--- a/src/main/java/com/gitblit/wicket/resources/bootstrap/Bootstrap.java
+++ b/src/main/java/com/gitblit/wicket/resources/bootstrap/Bootstrap.java
@@ -1,14 +1,27 @@
 package com.gitblit.wicket.resources.bootstrap;
 
+import java.util.List;
+
+import org.apache.wicket.markup.head.HeaderItem;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
 import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.request.resource.CssPackageResource;
+import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.PackageResourceReference;
+import org.apache.wicket.request.resource.SharedResourceReference;
+import org.apache.wicket.resource.JQueryResourceReference;
 
 
 public class Bootstrap {
+	
+	public static final String BOOTSTRAP_RESPONSIVE_CSS_RESOURCE = "bootstrap:responsiveCss";
 
 	public static void install(WebApplication app) {
 		app.mountResource("/bootstrap/css/bootstrap.css", new PackageResourceReference(Bootstrap.class, "css/bootstrap.css"));
-		app.mountResource("/bootstrap/css/bootstrap-responsive.css", new PackageResourceReference(Bootstrap.class, "css/bootstrap-responsive.css"));
+
+		app.getSharedResources().add(BOOTSTRAP_RESPONSIVE_CSS_RESOURCE, new CssPackageResource(Bootstrap.class, "css/bootstrap-responsive.css", null, null, null));
+		app.mountResource("/bootstrap/css/bootstrap-responsive.css", app.getSharedResources().get(BOOTSTRAP_RESPONSIVE_CSS_RESOURCE));
+
 		app.mountResource("/bootstrap/css/iconic.css", new PackageResourceReference(Bootstrap.class, "css/iconic.css"));
 
 		app.mountResource("/bootstrap/font/iconic_fill.afm", new PackageResourceReference(Bootstrap.class, "font/iconic_fill.afm"));
@@ -30,7 +43,16 @@
 		app.mountResource("/bootstrap/img/glyphicons-halflings-white.png", new PackageResourceReference(Bootstrap.class, "img/glyphicons-halflings-white.png"));
 		app.mountResource("/bootstrap/img/glyphicons-halflings.png", new PackageResourceReference(Bootstrap.class, "img/glyphicons-halflings.png"));
 
-		app.mountResource("/bootstrap/js/bootstrap.js", new PackageResourceReference(Bootstrap.class, "js/bootstrap.js"));
+		app.mountResource("/bootstrap/js/bootstrap.js", new PackageResourceReference(Bootstrap.class, "js/bootstrap.js"){
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public List<HeaderItem> getDependencies() {
+				List<HeaderItem> deps = super.getDependencies();
+				deps.add(JavaScriptHeaderItem.forReference(JQueryResourceReference.get()));
+				return deps;
+			}
+		});
 	}
 
 }