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 2013/03/13 00:32:22 UTC
[8/38] git commit: ISIS-326: fixes for Tomcat lookup from JNDI
ISIS-326: fixes for Tomcat lookup from JNDI
* MessageBroker must be serializable, suspicion is that it without it being serializable tomcat throws exception causing transactions to abort
* DataNucleusPersistenceMechanism looks first for 'datanucleus.ConnectionFactoryName' (JNDI), else falls back to the JNDI.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/23c80d31
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/23c80d31
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/23c80d31
Branch: refs/heads/dan/ISIS-233-ro
Commit: 23c80d31dce1c62940beca049f84ca3b8fb324a5
Parents: afd39be
Author: Dan Haywood <da...@apache.org>
Authored: Mon Mar 11 19:21:00 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Mon Mar 11 20:48:25 2013 +0000
----------------------------------------------------------------------
.../DataNucleusPersistenceMechanismInstaller.java | 27 +++++++-----
.../wicket/ui/components/about/AboutPanel.java | 2 -
.../core/commons/authentication/MessageBroker.java | 3 +-
.../system/transaction/MessageBrokerDefault.java | 7 ++-
.../viewer-webapp/pom.xml | 34 ++++++++-------
.../WEB-INF/persistor_datanucleus.properties | 11 +++-
.../viewer-webapp/src/main/webapp/WEB-INF/web.xml | 12 +++++
7 files changed, 60 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/23c80d31/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java b/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
index 96982f3..f8053ed 100644
--- a/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
+++ b/component/objectstore/jdo/jdo-datanucleus/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusPersistenceMechanismInstaller.java
@@ -70,8 +70,8 @@ import org.apache.isis.objectstore.jdo.metamodel.specloader.validator.JdoMetaMod
*/
public class DataNucleusPersistenceMechanismInstaller extends PersistenceMechanismInstallerAbstract {
-
public static final String NAME = "datanucleus";
+
private static final String ISIS_CONFIG_PREFIX = "isis.persistor.datanucleus.impl";
private DataNucleusApplicationComponents applicationComponents = null;
@@ -108,22 +108,27 @@ public class DataNucleusPersistenceMechanismInstaller extends PersistenceMechani
private static void addDataNucleusPropertiesIfRequired(
final Map<String, String> props) {
putIfNotPresent(props, "javax.jdo.PersistenceManagerFactoryClass", "org.datanucleus.api.jdo.JDOPersistenceManagerFactory");
-
- putIfNotPresent(props, "javax.jdo.option.ConnectionDriverName", "org.hsqldb.jdbcDriver");
- putIfNotPresent(props, "javax.jdo.option.ConnectionURL", "jdbc:hsqldb:mem:test;hsqldb.sqllog=3");
- putIfNotPresent(props, "javax.jdo.option.ConnectionUserName", "sa");
- putIfNotPresent(props, "javax.jdo.option.ConnectionPassword", "");
-
+
putIfNotPresent(props, "datanucleus.autoCreateSchema", "true");
putIfNotPresent(props, "datanucleus.validateSchema", "true");
putIfNotPresent(props, "datanucleus.cache.level2.type", "none");
- }
+ if(props.containsKey("datanucleus.ConnectionFactoryName")) {
+ // JNDI connection properties present; do nothing
+ return;
+ } else {
+ // use JDBC connection properties; put if not present
+ putIfNotPresent(props, "javax.jdo.option.ConnectionDriverName", "org.hsqldb.jdbcDriver");
+ putIfNotPresent(props, "javax.jdo.option.ConnectionURL", "jdbc:hsqldb:mem:test;hsqldb.sqllog=3");
+ putIfNotPresent(props, "javax.jdo.option.ConnectionUserName", "sa");
+ putIfNotPresent(props, "javax.jdo.option.ConnectionPassword", "");
+ }
+ }
private static void putIfNotPresent(
- final Map<String, String> props,
- String key,
- String value) {
+ final Map<String, String> props,
+ String key,
+ String value) {
if(!props.containsKey(key)) {
props.put(key, value);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/23c80d31/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/about/AboutPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/about/AboutPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/about/AboutPanel.java
index 8522849..0700bdb 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/about/AboutPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/about/AboutPanel.java
@@ -53,13 +53,11 @@ public class AboutPanel extends PanelAbstract<AboutModel> {
public AboutPanel(final String id) {
super(id);
- //getModel().setObject(aboutMessage);
if(jarManifestModel == null) {
jarManifestModel = new JarManifestModel(aboutMessage, metaInfManifestIs);
}
- //add(new MultiLineLabel(ID_MESSAGE, jarManifestModel.getAboutMessage()).setEscapeModelStrings(false));
add(new JarManifestPanel(ID_MANIFEST_ATTRIBUTES, jarManifestModel));
}
http://git-wip-us.apache.org/repos/asf/isis/blob/23c80d31/core/metamodel/src/main/java/org/apache/isis/core/commons/authentication/MessageBroker.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/authentication/MessageBroker.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/authentication/MessageBroker.java
index f5552f2..2dc1d5b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/authentication/MessageBroker.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/authentication/MessageBroker.java
@@ -19,13 +19,14 @@
package org.apache.isis.core.commons.authentication;
+import java.io.Serializable;
import java.util.List;
/**
* Moving from runtime, so that can preserve messages between interactions that
* correspond to the same session.
*/
-public interface MessageBroker {
+public interface MessageBroker extends Serializable {
void addMessage(String message);
List<String> getMessages();
http://git-wip-us.apache.org/repos/asf/isis/blob/23c80d31/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/MessageBrokerDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/MessageBrokerDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/MessageBrokerDefault.java
index 8a4a682..495a1d2 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/MessageBrokerDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/MessageBrokerDefault.java
@@ -23,17 +23,18 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import com.google.common.collect.Lists;
-
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.debug.DebugBuilder;
import org.apache.isis.core.commons.debug.DebuggableWithTitle;
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.commons.lang.StringUtils;
-import org.apache.isis.core.runtime.system.context.IsisContext;
+
+import com.google.common.collect.Lists;
public class MessageBrokerDefault implements MessageBroker, DebuggableWithTitle {
+ private static final long serialVersionUID = 1L;
+
private final List<String> messages = Lists.newArrayList();
private final List<String> warnings = Lists.newArrayList();
private String applicationError;
http://git-wip-us.apache.org/repos/asf/isis/blob/23c80d31/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
index d53afce..08b335a 100644
--- a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
+++ b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/pom.xml
@@ -92,10 +92,11 @@
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
+ <warName>quickstart</warName>
<archive>
<manifest>
<addClasspath>false</addClasspath>
- </manifest>
+ </manifest>
<manifestEntries>
<Build-Time>${maven.build.timestamp}</Build-Time>
<Build-Host>${agent.name}</Build-Host>
@@ -107,17 +108,6 @@
</manifestEntries>
</archive>
</configuration>
- <!--
- <executions>
- <execution>
- <id>default-war</id>
- <phase>package</phase>
- <goals>
- <goal>war</goal>
- </goals>
- </execution>
- </executions>
- -->
</plugin>
</plugins>
@@ -255,14 +245,26 @@
<!--
<dependency>
+ <groupId>postgresql</groupId>
+ <artifactId>postgresql</artifactId>
+ <version>9.1-901.jdbc4</version>
+ </dependency>
+ -->
+
+ <!--
+ mvn install:install-file -Dfile=sqljdbc4.jar \
+ -DgroupId=com.microsoft.sqlserver \
+ -DartifactId=jdbc \
+ -Dversion=4.0 \
+ -Dpackaging=jar
+ -->
+ <!--
+ <dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>jdbc</artifactId>
<version>4.0</version>
- <scope>system</scope>
- <optional>true</optional>
- <systemPath>${basedir}/lib/sqljdbc4.jar</systemPath>
</dependency>
- -->
+ -->
<dependency>
<groupId>org.lazyluke</groupId>
http://git-wip-us.apache.org/repos/asf/isis/blob/23c80d31/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
index 06701df..b47fd70 100644
--- a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
+++ b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties
@@ -41,6 +41,11 @@ isis.persistor.datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit=fa
# (also update the pom.xml to reference the appropriate JDBC driver)
#############################################################################
+
+# uncomment to use JNDI rather than direct JDBC
+# isis.persistor.datanucleus.impl.datanucleus.ConnectionFactoryName=java:comp/env/jdbc/quickstart
+
+
#
# HSQLDB in-memory
#
@@ -99,9 +104,9 @@ isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=
# MS SQL Server
#
#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=com.microsoft.sqlserver.jdbc.SQLServerDriver
-#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:sqlserver://127.0.0.1:1433;instance=SQLEXPRESS;databaseName=jdo
-#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=jdo
-#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=jdopass
+#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:sqlserver://127.0.0.1:1433;instance=.;databaseName=quickstart
+#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=sa
+#isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword=p4ssword
#
# MS SQL Server (using log4jdbc-remix)
http://git-wip-us.apache.org/repos/asf/isis/blob/23c80d31/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/web.xml b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/web.xml
index 13e575e..46ccbe0 100644
--- a/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/web.xml
+++ b/example/application/quickstart_wicket_restful_jdo/viewer-webapp/src/main/webapp/WEB-INF/web.xml
@@ -253,5 +253,17 @@
</servlet-mapping>
+ <!--
+ uncomment to use JNDI rather than JDBC
+ -->
+ <!--
+ <resource-ref>
+ <description>db</description>
+ <res-ref-name>jdbc/quickstart</res-ref-name>
+ <res-type>javax.sql.DataSource</res-type>
+ <res-auth>Container</res-auth>
+ </resource-ref>
+ -->
+
</web-app>