Author: michiel Date: 2010-04-27 18:40:00 +0200 (Tue, 27 Apr 2010) New Revision: 42063
Added: speeltuin/mihxil/forms/example-webapp/ speeltuin/mihxil/forms/example-webapp/jetty-env.xml speeltuin/mihxil/forms/example-webapp/pom.xml speeltuin/mihxil/forms/example-webapp/src/ speeltuin/mihxil/forms/example-webapp/src/main/ speeltuin/mihxil/forms/example-webapp/src/main/webapp/ speeltuin/mihxil/forms/example-webapp/src/main/webapp/WEB-INF/ speeltuin/mihxil/forms/example-webapp/src/main/webapp/WEB-INF/web.xml speeltuin/mihxil/forms/example-webapp/src/main/webapp/index.jsp speeltuin/mihxil/forms/example-webapp/src/main/webapp/mmbase Modified: speeltuin/mihxil/forms/pom.xml speeltuin/mihxil/forms/src/main/java/org/mmbase/bridge/forms/FormsCloud.java speeltuin/mihxil/forms/src/main/java/org/mmbase/bridge/forms/FormsCloudContext.java speeltuin/mihxil/forms/src/test/java/org/mmbase/bridge/forms/FormsCloudTest.java Log: Property changes on: speeltuin/mihxil/forms/example-webapp ___________________________________________________________________ Name: svn:ignore + target data Added: speeltuin/mihxil/forms/example-webapp/jetty-env.xml =================================================================== --- speeltuin/mihxil/forms/example-webapp/jetty-env.xml (rev 0) +++ speeltuin/mihxil/forms/example-webapp/jetty-env.xml 2010-04-27 16:40:00 UTC (rev 42063) @@ -0,0 +1,83 @@ +<?xml version="1.0"?> +<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> +<!--This resouce configuration points to the test database--> +<Configure class="org.mortbay.jetty.webapp.WebAppContext"> + + + <!-- + 'rapid' development of templates in the base-webapp would e.g. go with this: + --> + + <Set name="baseResource"> + <New class="org.mortbay.resource.ResourceCollection"> + <Arg> + <Array type="java.lang.String"> + <Item>src/main/webapp</Item> + <Item>/Users/michiel/mmbase/9/base-webapp/src/main/webapp</Item> + <Item>/Users/michiel/mmbase/9/base-webapp/target/base-webapp-1.9-servlet25-SNAPSHOT</Item> + </Array> + </Arg> + </New> + </Set> + + <!-- + When using jetty:run use an hsql database in the directory 'data'. + --> + + <New class="org.mortbay.jetty.plus.naming.EnvEntry"> + <Arg type="java.lang.String">mmbase/mmbaseroot/database</Arg> + <Arg type="java.lang.String">hsqldb_csv</Arg> + <Arg type="boolean">true</Arg> + </New> + + <New class="org.mortbay.jetty.plus.naming.EnvEntry"> + <Arg type="java.lang.String">mmbase/mmbaseroot/datasource</Arg> + <Arg type="java.lang.String">jdbc/MMBase</Arg> + <Arg type="boolean">true</Arg> + </New> + + <New class="org.mortbay.jetty.plus.naming.Resource"> + <Arg>jdbc/MMBase</Arg> + <Arg> + <New class="com.mchange.v2.c3p0.ComboPooledDataSource"> + <Set name="driverClass">org.hsqldb.jdbcDriver</Set> + <Set name="jdbcUrl"><SystemProperty name="jdbcUrl" default="jdbc:hsqldb:file:data/mmbase" /></Set> + <Set name="user">sa</Set> + <Set name="password"></Set> + </New> + </Arg> + </New> + + + <!-- + Put all mmbase date files there too. + --> + <New class="org.mortbay.jetty.plus.naming.EnvEntry"> + <Arg type="java.lang.String">mmbase/mmbaseroot/datadir</Arg> + <Arg type="java.lang.String">data</Arg> + <Arg type="boolean">true</Arg> + </New> + + <New class="org.mortbay.jetty.plus.naming.Resource"> + <Arg>mail/Session</Arg> + <Arg> + <New class="org.mortbay.naming.factories.MailSessionReference"> + <Set name="user">[email protected]</Set> + <Set name="password">mmbase</Set> + <Set name="properties"> + <New class="java.util.Properties"> + <Put name="mail.smtp.host">smtp.gmail.com</Put> + <Put name="mail.smtp.port">465</Put> + <Put name="mail.smtp.auth">true</Put> + <Put name="mail.smtp.starttls.enable">true</Put> + <Put name="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</Put> + + </New> + </Set> + </New> + </Arg> + </New> + + +</Configure> + Added: speeltuin/mihxil/forms/example-webapp/pom.xml =================================================================== --- speeltuin/mihxil/forms/example-webapp/pom.xml (rev 0) +++ speeltuin/mihxil/forms/example-webapp/pom.xml 2010-04-27 16:40:00 UTC (rev 42063) @@ -0,0 +1,155 @@ +<?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/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.mmbase</groupId> + <artifactId>mmbase-parent</artifactId> + <version>2.0-SNAPSHOT</version> + </parent> + + <artifactId>example-webapp</artifactId> + <packaging>war</packaging> + <name>MMBase Example webapp</name> + <version>${base.version}</version> + + <properties> + <my.postfix>${mmbase.version.postfix}</my.postfix> + <base.version>${mmbase.version.number}${my.postfix}</base.version> + <jdbcUrl>jdbc:hsqldb:file:data/mmbase</jdbcUrl> + <!-- E.g. use + -DjdbcUrl=jdbc:hsqldb:hsql://localhost/testb + to connect to a running hsql, e.g. needed when testing clustering + --> + </properties> + + <build> + <defaultGoal>install</defaultGoal> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>tomcat-maven-plugin</artifactId> + <configuration> + <warSourceDirectory>src/main/webapp</warSourceDirectory> + </configuration> + </plugin> + <plugin> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty-maven-plugin</artifactId> + <version>7.0.0.pre5</version> + <configuration> + <jettyEnvXml>${basedir}/jetty-env.xml</jettyEnvXml> + <systemProperties> + <systemProperty> + <name>jdbcUrl</name> + <value>${jdbcUrl}</value> + </systemProperty> + <systemProperty> + <name>com.sun.management.jmxremote</name> + <value></value> + </systemProperty> + <systemProperty> + <name>java.awt.headless</name> + <value>true</value> + </systemProperty> + <systemProperty> + <name>org.mortbay.util.FileResource.checkAliases</name> + <value>false</value> + </systemProperty> + + </systemProperties> + </configuration> + <dependencies> + <dependency> + <groupId>c3p0</groupId> + <artifactId>c3p0</artifactId> + <version>0.9.1.2</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>hsqldb</groupId> + <artifactId>hsqldb</artifactId> + <version>1.8.0.7</version> + </dependency> + </dependencies> + </plugin> + <!-- + it's broken. + <plugin> + <groupId>com.caucho</groupId> + <artifactId>resin-maven-plugin</artifactId> + <version>4.0.0</version> + </plugin> + --> + + </plugins> + </build> + + <dependencies> + + <dependency> + <groupId>org.mmbase</groupId> + <artifactId>mmbase</artifactId> + <version>${mmbase.version}</version> + <scope>provided</scope> + </dependency> + + + <dependency> + <groupId>org.mmbase</groupId> + <artifactId>base-webapp</artifactId> + <version>${base.version}</version> + <type>war</type> + </dependency> + + <dependency> + <groupId>org.mmbase</groupId> + <artifactId>mmbase</artifactId> + <version>${mmbase.version}</version> + <type>jar</type> + <classifier>tests</classifier> + </dependency> + <dependency> + <groupId>org.mmbase</groupId> + <artifactId>mmbase-resources</artifactId> + <version>${mmbase.version}</version> + <type>war</type> + </dependency> + <dependency> + <groupId>org.mmbase</groupId> + <artifactId>mmbase-mynews</artifactId> + <version>${mmbase.version}</version> + <type>war</type> + </dependency> + <dependency> + <groupId>org.mmbase</groupId> + <artifactId>mmbase-forms</artifactId> + <version>0.1-SNAPSHOT</version> + <type>war</type> + </dependency> + <dependency> + <groupId>org.mmbase</groupId> + <artifactId>mmbase-forms</artifactId> + <version>0.1-SNAPSHOT</version> + <classifier>tests</classifier> + </dependency> + <dependency> + <groupId>hsqldb</groupId> + <artifactId>hsqldb</artifactId> + <version>1.8.0.7</version> + </dependency> + + </dependencies> + + <pluginRepositories> + <pluginRepository> + <id>caucho</id> + <name>Caucho</name> + <url>http://caucho.com/m2</url> + </pluginRepository> + </pluginRepositories> + +</project> + Added: speeltuin/mihxil/forms/example-webapp/src/main/webapp/WEB-INF/web.xml =================================================================== --- speeltuin/mihxil/forms/example-webapp/src/main/webapp/WEB-INF/web.xml (rev 0) +++ speeltuin/mihxil/forms/example-webapp/src/main/webapp/WEB-INF/web.xml 2010-04-27 16:40:00 UTC (rev 42063) @@ -0,0 +1,236 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + If you use an application server which does not support web-app version 2.4 (e.g. Tomcat 4.x, + Orion), then you can use web-2.3.xml in stead of this. + + Web-app 2.4 gives the possibility to use EL (Expression Language) + + $Id: web.xml 35123 2009-05-12 21:20:03Z michiel $ +--> +<web-app 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" + version="2.4"> + <description> + MMBase is an open-source content managment system. See http://www.mmbase.org/ + </description> + + <display-name>MMBase distro</display-name> + <context-param> + <param-name>mmbase.taglib.eval_body_include</param-name> + <param-value>true</param-value> + </context-param> + <context-param> + <param-name>mmbase.defaultRelationStepDirection</param-name> + <param-value>DESTINATION</param-value> + </context-param> + + <filter> + <filter-name>FrameworkFilter</filter-name> + <filter-class>org.mmbase.framework.FrameworkFilter</filter-class> + <init-param> + <param-name>excludes</param-name> + <param-value>([.]ico$|[.]jpg$|[.]gif$|[.]png$|[.]css$|[.]js$|[.]jsp$|[.]do$)|/errorpages|/editors</param-value> + </init-param> + </filter> + + <!-- + Filter for jumpers + Uncomment this code if you want to activate the jumpers filter. + You need to install the jumpers builder first + --> + <!-- + <filter> + <filter-name>Jumpers Filter</filter-name> + <filter-class>org.mmbase.servlet.JumpersFilter</filter-class> + </filter> + + <filter-mapping> + <filter-name>Jumpers Filter</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> + --> + <filter-mapping> + <filter-name>FrameworkFilter</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> + + + <listener> + <!-- + Used by file servlet to detect which file can be deleted again + Sometimes files ar ecreate for a certain user only. + --> + <listener-class>org.mmbase.servlet.FileServletSessionListener</listener-class> + </listener> + + <listener> + <listener-class>org.mmbase.bridge.mock.MockSetup</listener-class> + </listener> + + + <!-- The base MMBase servlet informs about the current MMBase version --> + <servlet> + <servlet-name>version</servlet-name> + <servlet-class>org.mmbase.servlet.MMBaseServlet</servlet-class> + <load-on-startup>1</load-on-startup> + </servlet> + + <!-- The MMBase image serving servlet. --> + <servlet> + <servlet-name>images</servlet-name> + <servlet-class>org.mmbase.servlet.ImageServlet</servlet-class> + <init-param> + <!-- Expire time of original images. Cached images never expire. --> + <param-name>expire</param-name> + <!-- 10 minutes (default is one hour)--> + <param-value>600</param-value> + </init-param> + <init-param> + <!-- Whether to accepts image conversion on the URL --> + <param-name>convert</param-name> + <param-value>false</param-value> + </init-param> + <init-param> + <!-- Field of image node to use for 'last modified' --> + <param-name>lastmodifiedfield</param-name> + <param-value></param-value> + </init-param> + <load-on-startup>2</load-on-startup> + </servlet> + + <!-- The MMBase attachment serving servlet. --> + <servlet> + <servlet-name>attachments</servlet-name> + <servlet-class>org.mmbase.servlet.AttachmentServlet</servlet-class> + <init-param> + <!-- Expire time of original images. Cached images never expire. --> + <param-name>expire</param-name> + <!-- 10 minutes (default is one hour)--> + <param-value>600</param-value> + </init-param> + <init-param> + <!-- Field of attachment node to use for 'last modified' --> + <param-name>lastmodifiedfield</param-name> + <param-value></param-value> + </init-param> + <load-on-startup>3</load-on-startup> + </servlet> + + <servlet> + <servlet-name>files</servlet-name> + <servlet-class>org.mmbase.servlet.FileServlet</servlet-class> + <init-param> + <param-name>listings</param-name> + <param-value>true</param-value> + </init-param> + <init-param> + <param-name>comparator</param-name> + <param-value>org.mmbase.servlet.FileNameComparator</param-value> + </init-param> + <load-on-startup>4</load-on-startup> + </servlet> + + + <!-- + <servlet> + <servlet-name>servscan</servlet-name> + <display-name>Servscan Servlet</display-name> + <description>Needed for parsing scan pages</description> + <servlet-class>org.mmbase.servlet.servscan</servlet-class> + <load-on-startup>6</load-on-startup> + </servlet> + --> + + <!-- mapping for version-request --> + <servlet-mapping> + <servlet-name>version</servlet-name> + <url-pattern>/version</url-pattern> + </servlet-mapping> + + <!-- mapping for image-requests --> + <servlet-mapping> + <servlet-name>images</servlet-name> + <url-pattern>/mmbase/images/*</url-pattern> + </servlet-mapping> + + <!-- mapping for attachment-requests --> + <servlet-mapping> + <servlet-name>attachments</servlet-name> + <url-pattern>/mmbase/attachments/*</url-pattern> + </servlet-mapping> + + + <servlet-mapping> + <servlet-name>files</servlet-name> + <url-pattern>/files/*</url-pattern> + </servlet-mapping> + + + + <!-- + <servlet-mapping> + <servlet-name>servscan</servlet-name> + <url-pattern>*.shtml</url-pattern> + </servlet-mapping> + --> + + + <welcome-file-list> + <welcome-file>index.jspx</welcome-file> + <welcome-file>index.jsp</welcome-file> + <welcome-file>default.jsp</welcome-file> + <welcome-file>index.html</welcome-file> + <welcome-file>index.shtml</welcome-file> + </welcome-file-list> + + <error-page> + <error-code>400</error-code> + <location>/mmbase/errorpages/400.jsp</location> + </error-page> + <error-page> + <error-code>403</error-code> + <location>/mmbase/errorpages/403.jsp</location> + </error-page> + <error-page> + <error-code>404</error-code> + <location>/mmbase/errorpages/404.jsp</location> + </error-page> + <error-page> + <exception-type>java.lang.Exception</exception-type> + <location>/mmbase/errorpages/500.jsp</location> + </error-page> + <error-page> + <error-code>503</error-code> + <location>/mmbase/errorpages/503.jsp</location> + </error-page> + + <env-entry> + <env-entry-name>mmbase/rmmci/bindname</env-entry-name> + <env-entry-type>java.lang.String</env-entry-type> + <env-entry-value>exampleremotecontext</env-entry-value> + </env-entry> + + <resource-ref> + <description> + Datasource for the MMBase Database. This datasource must be + configured in the application server. + This entry is not needed in tomcat, but jetty needs it. + </description> + <res-ref-name>jdbc/MMBase</res-ref-name> + <res-type>javax.sql.DataSource</res-type> + <res-auth>Container</res-auth> + </resource-ref> + + <!-- email app is installed, so mail could be sent --> + <resource-ref> + <description> + Mail resource for MMBase. + Don't forget the configure it with your app-server. + </description> + <res-ref-name>mail/Session</res-ref-name> + <res-type>javax.mail.Session</res-type> + <res-auth>Container</res-auth> + </resource-ref> + +</web-app> Added: speeltuin/mihxil/forms/example-webapp/src/main/webapp/index.jsp =================================================================== --- speeltuin/mihxil/forms/example-webapp/src/main/webapp/index.jsp (rev 0) +++ speeltuin/mihxil/forms/example-webapp/src/main/webapp/index.jsp 2010-04-27 16:40:00 UTC (rev 42063) @@ -0,0 +1,33 @@ +<jsp:root version="2.0" + xmlns:jsp="http://java.sun.com/JSP/Page" + xmlns:c="http://java.sun.com/jsp/jstl/core" + xmlns:fmt="http://java.sun.com/jsp/jstl/fmt" + xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0"> + + <mm:content expires="0" + type="application/xhtml+xml" + unacceptable="CRIPPLE" + postprocessor="none" language="client"> + + <mm:cloud uri="forms:local"> + <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl"> + <mm:formatter xslt="xslt/framework/head.xslt" escape="none"> + <head> + <title>MMBase</title> + <mm:link page="/mmbase/admin/css/admin.css"> + <link rel="stylesheet" href="${_}" type="text/css" /> + </mm:link> + <mm:link page="/mmbase/style/images/favicon.ico"> + <link rel="icon" href="${_}" type="image/x-icon" /> + <link rel="shortcut icon" href="${_}" type="image/x-icon" /> + </mm:link> + </head> + </mm:formatter> + <body> + bla bla + </body> + </html> + </mm:cloud> + </mm:content> +</jsp:root> + Added: speeltuin/mihxil/forms/example-webapp/src/main/webapp/mmbase =================================================================== --- speeltuin/mihxil/forms/example-webapp/src/main/webapp/mmbase (rev 0) +++ speeltuin/mihxil/forms/example-webapp/src/main/webapp/mmbase 2010-04-27 16:40:00 UTC (rev 42063) @@ -0,0 +1 @@ +link /Users/michiel/mmbase/9/base-webapp/src/main/webapp/mmbase \ No newline at end of file Property changes on: speeltuin/mihxil/forms/example-webapp/src/main/webapp/mmbase ___________________________________________________________________ Name: svn:special + * Modified: speeltuin/mihxil/forms/pom.xml =================================================================== --- speeltuin/mihxil/forms/pom.xml 2010-04-27 16:00:30 UTC (rev 42062) +++ speeltuin/mihxil/forms/pom.xml 2010-04-27 16:40:00 UTC (rev 42063) @@ -4,7 +4,7 @@ <parent> <groupId>org.mmbase</groupId> <artifactId>mmbase-application-parent</artifactId> - <version>1.9-SNAPSHOT</version> + <version>2.0-SNAPSHOT</version> </parent> <artifactId>mmbase-forms</artifactId> @@ -14,7 +14,7 @@ <description> This is an alternative implementation of the MMBase bridge. The idea is that in stead of 'real' - nodemanager it contains only 'virtual' nodemanager. Every nodemanager corresponds with a + nodemanagers it contains only 'virtual' nodemanagers. Every nodemanager corresponds with a 'form'. The forms can then be rendered with JSP just like you would render a form for an actual MMBase node. Modified: speeltuin/mihxil/forms/src/main/java/org/mmbase/bridge/forms/FormsCloud.java =================================================================== --- speeltuin/mihxil/forms/src/main/java/org/mmbase/bridge/forms/FormsCloud.java 2010-04-27 16:00:30 UTC (rev 42062) +++ speeltuin/mihxil/forms/src/main/java/org/mmbase/bridge/forms/FormsCloud.java 2010-04-27 16:40:00 UTC (rev 42063) @@ -71,7 +71,7 @@ public Form getNodeManager(String name) throws NotFoundException { NodeManagerDescription nm = getNodeManagerDescriptions().get(name); if (nm == null) throw new NotFoundException(name); - String className = nm.reader.getClassName(); + String className = nm.reader == null ? null : nm.reader.getClassName(); if (className == null || className.length() == 0) { return new Form(this, nm); } else { Modified: speeltuin/mihxil/forms/src/main/java/org/mmbase/bridge/forms/FormsCloudContext.java =================================================================== --- speeltuin/mihxil/forms/src/main/java/org/mmbase/bridge/forms/FormsCloudContext.java 2010-04-27 16:00:30 UTC (rev 42062) +++ speeltuin/mihxil/forms/src/main/java/org/mmbase/bridge/forms/FormsCloudContext.java 2010-04-27 16:40:00 UTC (rev 42063) @@ -48,6 +48,10 @@ for (String formName : forms.getChildContexts(null, false)) { ResourceLoader form = forms.getChildResourceLoader(formName); final Map<String, NodeManagerDescription> context = new HashMap<String, NodeManagerDescription>(); + context.put("typedef", + new NodeManagerDescription("typedef", new HashMap<String, Field>(), 0)); + + for(String nodeManager : form.getResourcePaths(ResourceLoader.XML_PATTERN, true)) { try { InputSource is = form.getInputSource(nodeManager); Modified: speeltuin/mihxil/forms/src/test/java/org/mmbase/bridge/forms/FormsCloudTest.java =================================================================== --- speeltuin/mihxil/forms/src/test/java/org/mmbase/bridge/forms/FormsCloudTest.java 2010-04-27 16:00:30 UTC (rev 42062) +++ speeltuin/mihxil/forms/src/test/java/org/mmbase/bridge/forms/FormsCloudTest.java 2010-04-27 16:40:00 UTC (rev 42063) @@ -48,7 +48,7 @@ assertTrue(aaNode > 0); CloudContext cc = ContextProvider.getCloudContext("forms:mock:local"); Cloud cloud = cc.getCloud("test"); - assertEquals(1, cloud.getNodeManagers().size()); + assertEquals(2, cloud.getNodeManagers().size()); // every cloud has 'typedef' Node n = cloud.getNode(aaNode); assertNotNull(n); @@ -64,7 +64,7 @@ assertTrue(aaNode > 0); CloudContext cc = ContextProvider.getCloudContext("forms:mock:local"); Cloud cloud = cc.getCloud("test2"); - assertEquals(2, cloud.getNodeManagers().size()); + assertEquals(3, cloud.getNodeManagers().size()); Node n = cloud.getNode(aaNode); _______________________________________________ Cvs mailing list [email protected] http://lists.mmbase.org/mailman/listinfo/cvs
