You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/05/05 18:43:52 UTC

git commit: ISIS-719: use webjars for 3rd party css and jquery.

Repository: isis
Updated Branches:
  refs/heads/master 3c4069f23 -> f5fdfbbd8


ISIS-719: use webjars for 3rd party css and jquery.

For JQuery we use Wicket's version
For bootstrap, we seem to be using a slight custom version compared to the vanilla version.

So, although this commit adds in the infrastructure for webjars, it doesn't actually take use of it.

Even so, have still decided to commit, since may be of use in future for other dependencies (or if we decide to use a different version of jQuery than the one that is bundled with Wicket).


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/f5fdfbbd
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/f5fdfbbd
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/f5fdfbbd

Branch: refs/heads/master
Commit: f5fdfbbd8857aa9eb7fc7d90640152b1da9b84e9
Parents: 3c4069f
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon May 5 17:27:14 2014 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon May 5 17:43:38 2014 +0100

----------------------------------------------------------------------
 .../wicket/viewer/IsisWicketApplication.java    | 12 ++++++++++
 component/viewer/wicket/pom.xml                 | 25 +++++++++++++++++++-
 component/viewer/wicket/ui/pom.xml              | 11 +++++++++
 .../viewer/wicket/ui/pages/PageAbstract.html    |  6 +++--
 .../viewer/wicket/ui/pages/PageAbstract.java    | 17 +++++++++++++
 core/pom.xml                                    |  2 +-
 6 files changed, 69 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/f5fdfbbd/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 014e06f..9a8f426 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -37,6 +37,11 @@ import com.google.inject.Inject;
 import com.google.inject.Injector;
 import com.google.inject.Module;
 
+import de.agilecoders.wicket.webjars.WicketWebjars;
+import de.agilecoders.wicket.webjars.collectors.AssetPathCollector;
+import de.agilecoders.wicket.webjars.collectors.VfsJarAssetPathCollector;
+import de.agilecoders.wicket.webjars.settings.WebjarsSettings;
+
 import org.apache.wicket.Application;
 import org.apache.wicket.ConverterLocator;
 import org.apache.wicket.IConverterLocator;
@@ -220,6 +225,13 @@ public class IsisWicketApplication extends AuthenticatedWebApplication implement
     protected void init() {
         try {
             super.init();
+
+            // install 2 default collector instances 
+            // (FileAssetPathCollector(WEBJARS_PATH_PREFIX), JarAssetPathCollector)
+            // and a webjars resource finder.
+            WebjarsSettings settings = new WebjarsSettings();
+
+            WicketWebjars.install(this, settings);
             
             String isisConfigDir = getServletContext().getInitParameter("isis.config.dir");
             final String loggingPropertiesDir;

http://git-wip-us.apache.org/repos/asf/isis/blob/f5fdfbbd/component/viewer/wicket/pom.xml
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/pom.xml b/component/viewer/wicket/pom.xml
index e3c88de..b99c076 100644
--- a/component/viewer/wicket/pom.xml
+++ b/component/viewer/wicket/pom.xml
@@ -43,6 +43,9 @@
         <wicket.version>6.15.0</wicket.version>
         <wicket-jquery-ui.version>6.15.0</wicket-jquery-ui.version>
         <wicketstuff.version>6.15.0</wicketstuff.version>
+
+        <wicket-webjars.version>0.4.1</wicket-webjars.version>
+        <webjars-bootstrap.version>2.3.2</webjars-bootstrap.version>
         
         <wicket-select2.version>2.2.2</wicket-select2.version>
     </properties>
@@ -261,13 +264,33 @@
 			    <version>${wicket-select2.version}</version>
 				<exclusions>
 					<exclusion>
-		        			<!-- for dependency convergence -->
+	        			<!-- for dependency convergence -->
 						<groupId>org.apache.wicket</groupId>
 						<artifactId>wicket-core</artifactId>
 					</exclusion>
 				</exclusions>
 			</dependency>
 
+            <!-- Webjars -->
+            <dependency>
+                <groupId>de.agilecoders.wicket.webjars</groupId>
+                <artifactId>wicket-webjars</artifactId>
+                <version>${wicket-webjars.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <!-- for dependency convergence -->
+                        <groupId>org.apache.wicket</groupId>
+                        <artifactId>wicket-core</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+    
+            <dependency>
+                <groupId>org.webjars</groupId>
+                <artifactId>bootstrap</artifactId>
+                <version>${webjars-bootstrap.version}</version>
+            </dependency>
+
 			<!-- Other -->
 			<dependency>
 				<groupId>org.slf4j</groupId>

http://git-wip-us.apache.org/repos/asf/isis/blob/f5fdfbbd/component/viewer/wicket/ui/pom.xml
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/pom.xml b/component/viewer/wicket/ui/pom.xml
index b085474..79675eb 100644
--- a/component/viewer/wicket/ui/pom.xml
+++ b/component/viewer/wicket/ui/pom.xml
@@ -106,6 +106,17 @@
 		    <artifactId>wicket-select2</artifactId>
 		</dependency>
 
+        <!-- WEBJARS -->
+        <dependency>
+            <groupId>de.agilecoders.wicket.webjars</groupId>
+            <artifactId>wicket-webjars</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.webjars</groupId>
+            <artifactId>bootstrap</artifactId>
+        </dependency>
+
 		<!-- LOGGING DEPENDENCIES - LOG4J -->
 
 		<dependency>

http://git-wip-us.apache.org/repos/asf/isis/blob/f5fdfbbd/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
index c7bc655..9f422c4 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
@@ -24,8 +24,10 @@
       lang="en">
 	<wicket:head>
         <wicket:link>
-    		<link href="cssreset.css" rel="stylesheet" type="text/css"/>
-    		<link href="bootstrap/css/bootstrap.css" rel="stylesheet" type="text/css"/>
+        
+            <!--  using our own copy rather than a webjars vanilla copy; see comments in PageAbstract#renderHead -->
+            <link href="bootstrap/css/bootstrap.css" rel="stylesheet" type="text/css"/>
+
     		<link href="PageAbstract.css" rel="stylesheet" type="text/css" ></link>
             <link href="isis-wicket-theme/jquery-ui-1.10.2.custom.css" rel="stylesheet" type="text/css"/>
             <link href="jquery.jgrowl.css" rel="stylesheet" type="text/css"/>

http://git-wip-us.apache.org/repos/asf/isis/blob/f5fdfbbd/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index 5d9396c..11a4400 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -19,19 +19,25 @@
 
 package org.apache.isis.viewer.wicket.ui.pages;
 
+import java.net.URL;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
 import com.google.common.base.Strings;
+import com.google.common.io.Resources;
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
 
+import de.agilecoders.wicket.webjars.request.resource.WebjarsCssResourceReference;
+import de.agilecoders.wicket.webjars.request.resource.WebjarsJavaScriptResourceReference;
+
 import org.apache.wicket.Application;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.Page;
 import org.apache.wicket.RestartResponseAtInterceptPageException;
 import org.apache.wicket.event.Broadcast;
+import org.apache.wicket.markup.head.CssHeaderItem;
 import org.apache.wicket.markup.head.CssReferenceHeaderItem;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
@@ -46,6 +52,7 @@ import org.apache.wicket.markup.html.link.ExternalLink;
 import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.resource.CssResourceReference;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -240,8 +247,18 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
 
     @Override
     public void renderHead(IHeaderResponse response) {
+        
         super.renderHead(response);
+
         response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(Application.get().getJavaScriptLibrarySettings().getJQueryReference())));
+        response.render(new PriorityHeaderItem(CssReferenceHeaderItem.forReference(new CssResourceReference(PageAbstract.class, "cssreset.css"))));
+        
+        // this works, but renders slightly differently (even though rendered in same place as own copy)
+        // I'm guessing that our bootstrap is customized (was not a 'vanilla' installation).
+        // have therefore left in 
+        
+        //response.render(new PriorityHeaderItem(CssHeaderItem.forReference(new WebjarsCssResourceReference("bootstrap/2.3.2/css/bootstrap.css"))));
+        
         response.render(JavaScriptReferenceHeaderItem.forReference(JQUERY_JGROWL_JS));
         response.render(JavaScriptReferenceHeaderItem.forReference(JQUERY_LIVEQUERY_JS));
         response.render(JavaScriptReferenceHeaderItem.forReference(JQUERY_ISIS_WICKET_VIEWER_JS));

http://git-wip-us.apache.org/repos/asf/isis/blob/f5fdfbbd/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 03cd826..4012e15 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -71,7 +71,7 @@
         <projectUrl>${project.url}</projectUrl>
 
 		<license.additional-notes>In addition, Isis uses some Javascript libraries:
-* JQuery core and JQuery UI, licensed under the MIT license [1].
+* JQuery UI, licensed under the MIT license [1].
 * Twitter Bootstrap, licensed under ASL v2 [2]
 * JGrowl (JQuery plugin), licensed under MIT license [3]
 * LiveQuery (JQuery plugin), licensed under MIT license [4]