ISIS-1521: recreating helloworld archetype
Project: http://git-wip-us.apache.org/repos/asf/isis/repo Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/e9f6463f Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/e9f6463f Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/e9f6463f Branch: refs/heads/release-1.15.0-RC1 Commit: e9f6463f001da06ae6f0d6920c108802a82bf5b6 Parents: a71c318 Author: Dan Haywood <d...@haywood-associates.co.uk> Authored: Sun Aug 6 10:14:02 2017 +0100 Committer: Dan Haywood <d...@haywood-associates.co.uk> Committed: Sun Aug 6 10:14:02 2017 +0100 ---------------------------------------------------------------------- example/archetype/helloworld/pom.xml | 78 + .../appended-resources/supplemental-models.xml | 26 + .../META-INF/maven/archetype-metadata.xml | 79 + .../archetype-resources/.gitattributes | 51 + .../resources/archetype-resources/.gitignore | 41 + .../resources/archetype-resources/README.adoc | 30 + .../logging-dn-enhance.properties | 44 + .../main/resources/archetype-resources/pom.xml | 154 + .../src/main/java/META-INF/persistence.xml | 29 + .../application/HelloWorldAppManifest.java | 42 + .../java/domainapp/application/isis.properties | 59 + .../java/domainapp/dom/HelloWorldModule.java | 26 + .../domainapp/dom/impl/HelloWorldObject.java | 114 + .../dom/impl/HelloWorldObject.layout.xml | 73 + .../domainapp/dom/impl/HelloWorldObject.png | Bin 0 -> 653 bytes .../domainapp/dom/impl/HelloWorldObjects.java | 81 + .../domainapp/webapp/HelloWorldApplication.java | 72 + .../src/main/java/domainapp/webapp/welcome.html | 34 + .../src/main/webapp/WEB-INF/isis.properties | 41 + .../src/main/webapp/WEB-INF/logging.properties | 232 + .../src/main/webapp/WEB-INF/shiro.ini | 58 + .../src/main/webapp/WEB-INF/web.xml | 331 + .../src/main/webapp/about/images/isis-logo.png | Bin 0 -> 14160 bytes .../src/main/webapp/about/index.html | 110 + .../src/main/webapp/css/application.css | 19 + .../src/main/webapp/scripts/application.js | 3 + .../src/main/webapp/swagger-ui/00-README.md | 5 + .../src/main/webapp/swagger-ui/css/print.css | 1 + .../src/main/webapp/swagger-ui/css/reset.css | 1 + .../src/main/webapp/swagger-ui/css/screen.css | 1 + .../src/main/webapp/swagger-ui/css/style.css | 1 + .../main/webapp/swagger-ui/css/typography.css | 0 .../webapp/swagger-ui/fonts/DroidSans-Bold.ttf | Bin 0 -> 42480 bytes .../main/webapp/swagger-ui/fonts/DroidSans.ttf | Bin 0 -> 41028 bytes .../main/webapp/swagger-ui/images/collapse.gif | Bin 0 -> 69 bytes .../main/webapp/swagger-ui/images/expand.gif | Bin 0 -> 73 bytes .../webapp/swagger-ui/images/explorer_icons.png | Bin 0 -> 5115 bytes .../webapp/swagger-ui/images/favicon-16x16.png | Bin 0 -> 445 bytes .../webapp/swagger-ui/images/favicon-32x32.png | Bin 0 -> 1141 bytes .../main/webapp/swagger-ui/images/favicon.ico | Bin 0 -> 5430 bytes .../webapp/swagger-ui/images/logo_small.png | Bin 0 -> 455 bytes .../webapp/swagger-ui/images/pet_store_api.png | Bin 0 -> 631 bytes .../main/webapp/swagger-ui/images/throbber.gif | Bin 0 -> 9257 bytes .../webapp/swagger-ui/images/wordnik_api.png | Bin 0 -> 670 bytes .../webapp/swagger-ui/index-ORIG-2.2.10.html | 129 + .../src/main/webapp/swagger-ui/index.html | 171 + .../src/main/webapp/swagger-ui/lang/ca.js | 53 + .../src/main/webapp/swagger-ui/lang/el.js | 56 + .../src/main/webapp/swagger-ui/lang/en.js | 56 + .../src/main/webapp/swagger-ui/lang/es.js | 53 + .../src/main/webapp/swagger-ui/lang/fr.js | 54 + .../src/main/webapp/swagger-ui/lang/geo.js | 56 + .../src/main/webapp/swagger-ui/lang/it.js | 52 + .../src/main/webapp/swagger-ui/lang/ja.js | 56 + .../src/main/webapp/swagger-ui/lang/ko-kr.js | 53 + .../src/main/webapp/swagger-ui/lang/pl.js | 53 + .../src/main/webapp/swagger-ui/lang/pt.js | 53 + .../src/main/webapp/swagger-ui/lang/ru.js | 56 + .../src/main/webapp/swagger-ui/lang/tr.js | 53 + .../main/webapp/swagger-ui/lang/translator.js | 39 + .../src/main/webapp/swagger-ui/lang/zh-cn.js | 56 + .../main/webapp/swagger-ui/lib/backbone-min.js | 1 + .../src/main/webapp/swagger-ui/lib/es5-shim.js | 1 + .../webapp/swagger-ui/lib/handlebars-4.0.5.js | 3 + .../swagger-ui/lib/highlight.9.1.0.pack.js | 1 + .../lib/highlight.9.1.0.pack_extended.js | 1 + .../webapp/swagger-ui/lib/jquery-1.8.0.min.js | 3 + .../webapp/swagger-ui/lib/jquery.ba-bbq.min.js | 1 + .../webapp/swagger-ui/lib/jquery.slideto.min.js | 1 + .../webapp/swagger-ui/lib/jquery.wiggle.min.js | 1 + .../main/webapp/swagger-ui/lib/js-yaml.min.js | 2 + .../webapp/swagger-ui/lib/jsoneditor.min.js | 5 + .../main/webapp/swagger-ui/lib/lodash.min.js | 2 + .../src/main/webapp/swagger-ui/lib/marked.js | 1 + .../swagger-ui/lib/object-assign-pollyfill.js | 1 + .../webapp/swagger-ui/lib/sanitize-html.min.js | 4 + .../main/webapp/swagger-ui/lib/swagger-oauth.js | 1 + .../src/main/webapp/swagger-ui/o2c.html | 23 + .../src/main/webapp/swagger-ui/swagger-ui.js | 25344 +++++++++++++++++ .../main/webapp/swagger-ui/swagger-ui.min.js | 15 + .../dom/impl/HelloWorldObjectTest_delete.java | 72 + .../impl/HelloWorldObjectTest_updateName.java | 43 + .../projects/basic/archetype.properties | 5 + .../src/test/resources/projects/basic/goal.txt | 0 84 files changed, 28466 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/pom.xml ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/pom.xml b/example/archetype/helloworld/pom.xml new file mode 100644 index 0000000..270f1a4 --- /dev/null +++ b/example/archetype/helloworld/pom.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.isis.archetype</groupId> + <artifactId>helloworld-archetype</artifactId> + <version>1.15.0-SNAPSHOT</version> + <packaging>maven-archetype</packaging> + <name>helloworld-archetype</name> + <build> + <extensions> + <extension> + <groupId>org.apache.maven.archetype</groupId> + <artifactId>archetype-packaging</artifactId> + <version>2.2</version> + </extension> + </extensions> + <pluginManagement> + <plugins> + <plugin> + <artifactId>maven-archetype-plugin</artifactId> + <version>2.2</version> + </plugin> + </plugins> + </pluginManagement> + </build> + <description>This module defines a standard parent POM to use for various Incode applications and modules. + Its primary purpose is to make it easy to use a set up maven mixins (https://github.com/odavid/maven-plugins) + within child POMs. Specifically this means locking down the versions of plugins using pluginManagement. + + It does NOT define any mixins for Apache Isis.</description> + <url>https://github.com/incodehq/incode-build/helloworld</url> + <developers> + <developer> + <id>danhaywood</id> + <name>Dan Haywood</name> + <email>d...@haywood-associates.co.uk</email> + </developer> + </developers> + <licenses> + <license> + <name>The Apache Software License, Version 2.0</name> + <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> + <distribution>repo</distribution> + </license> + </licenses> + <scm> + <connection>scm:git:g...@github.com:incodehq/incode-build.git/helloworld</connection> + <developerConnection>scm:git:g...@github.com:incodehq/incode-build.git/helloworld</developerConnection> + <url>g...@github.com:incodehq/incode-build.git/helloworld</url> + </scm> + <parent> + <groupId>org.apache.isis.core</groupId> + <artifactId>isis</artifactId> + <version>1.15.0</version> + <relativePath>../../../core/pom.xml</relativePath> + </parent> + <properties> + <archetype.test.skip>true</archetype.test.skip> + </properties> +</project> http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/appended-resources/supplemental-models.xml ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/appended-resources/supplemental-models.xml b/example/archetype/helloworld/src/main/appended-resources/supplemental-models.xml new file mode 100644 index 0000000..01c58d8 --- /dev/null +++ b/example/archetype/helloworld/src/main/appended-resources/supplemental-models.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<supplementalDataModels + xmlns="http://maven.apache.org/supplemental-model/1.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/supplemental-model/1.0.0 + http://maven.apache.org/xsd/supplemental-model-1.0.0.xsd"> + +</supplementalDataModels> http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/META-INF/maven/archetype-metadata.xml ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/META-INF/maven/archetype-metadata.xml b/example/archetype/helloworld/src/main/resources/META-INF/maven/archetype-metadata.xml new file mode 100644 index 0000000..3d3fcec --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<archetype-descriptor xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0" name="helloworld" xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <fileSets> + <fileSet filtered="true" encoding="UTF-8"> + <directory>src/main/java</directory> + <includes> + <include>**/*.java</include> + <include>**/*.xml</include> + <include>**/*.html</include> + <include>**/*.properties</include> + </includes> + </fileSet> + <fileSet encoding="UTF-8"> + <directory>src/main/java</directory> + <includes> + <include>**/*.png</include> + </includes> + </fileSet> + <fileSet filtered="true" encoding="UTF-8"> + <directory>src/main/webapp</directory> + <includes> + <include>**/*.xml</include> + <include>**/*.html</include> + <include>**/*.properties</include> + </includes> + </fileSet> + <fileSet encoding="UTF-8"> + <directory>src/main/webapp</directory> + <includes> + <include>**/*.css</include> + <include>**/*.ico</include> + <include>**/*.gif</include> + <include>**/*.ini</include> + <include>**/*.md</include> + <include>**/*.ttf</include> + <include>**/*.png</include> + <include>**/*.js</include> + </includes> + </fileSet> + <fileSet filtered="true" encoding="UTF-8"> + <directory>src/test/java</directory> + <includes> + <include>**/*.java</include> + </includes> + </fileSet> + <fileSet filtered="true" encoding="UTF-8"> + <directory/> + <includes> + <include>logging-dn-enhance.properties</include> + </includes> + </fileSet> + <fileSet encoding="UTF-8"> + <directory/> + <includes> + <include>.gitattributes</include> + <include>.gitignore</include> + <include>README.adoc</include> + </includes> + </fileSet> + </fileSets> +</archetype-descriptor> http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/.gitattributes ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/.gitattributes b/example/archetype/helloworld/src/main/resources/archetype-resources/.gitattributes new file mode 100644 index 0000000..b1eafb6 --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/.gitattributes @@ -0,0 +1,51 @@ +# +# +# text files are normalized (convert crlf => lf) +# binary files are not normalized (binary is a macro for -text -diff) +# +# + + +# Unless otherwise stated, assume text + +* text=auto + + +*.java text diff=java +*.html text diff=html +*.xhtml text diff=html +*.xml text +*.txt text + + +*.jar binary +*.so binary +*.dll binary + +# images +*.jpg binary +*.jpeg binary +*.png binary +*.pdn binary +*.pdn binary + + +*.cs text diff=csharp + +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain + http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/.gitignore ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/.gitignore b/example/archetype/helloworld/src/main/resources/archetype-resources/.gitignore new file mode 100644 index 0000000..e859485 --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/.gitignore @@ -0,0 +1,41 @@ +*~ +*.swp +*.class +bin/ +target/ +target-ide/ +logs/ +.settings/ +.project +.classpath +.idea +*.iml + +build/ + +JArchitectOut/ +*.jdproj + +neo4j_DB/ + +# log files +datanucleus.log +isis.log +i18n-po.log +hs_err_pid*.log + +# Package Files # +*.war +*.ear + +dependency-reduced-pom.xml +pom.xml.tag +pom.xml.next +pom.xml.releaseBackup +pom.xml.versionsBackup + +.clover/ + + +rebel.xml +translations.pot http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/README.adoc ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/README.adoc b/example/archetype/helloworld/src/main/resources/archetype-resources/README.adoc new file mode 100644 index 0000000..575ac2a --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/README.adoc @@ -0,0 +1,30 @@ +# HelloWorld + +This application was generated by the link:http://isis.apache.org[Apache Isis] link:http://isis.apache.org/guides/ugfun.html#_ugfun_getting-started_helloworld-archetype[helloworld archetype]. +It is intended as a starting point to learn what Apache Isis is all about. + + +== Quick start + +Build using: + +[source,bash] +---- +mvn clean install +---- + +Run using: + +[source,bash] +---- +mvn jetty:run +---- + +Login using: + +* username: `sven` +* password: `pass` + +The app runs with HSQLDB running in-memory. + + http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/logging-dn-enhance.properties ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/logging-dn-enhance.properties b/example/archetype/helloworld/src/main/resources/archetype-resources/logging-dn-enhance.properties new file mode 100644 index 0000000..2040d89 --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/logging-dn-enhance.properties @@ -0,0 +1,44 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +${symbol_pound} Licensed to the Apache Software Foundation (ASF) under one +${symbol_pound} or more contributor license agreements. See the NOTICE file +${symbol_pound} distributed with this work for additional information +${symbol_pound} regarding copyright ownership. The ASF licenses this file +${symbol_pound} to you under the Apache License, Version 2.0 (the +${symbol_pound} "License"); you may not use this file except in compliance +${symbol_pound} with the License. You may obtain a copy of the License at +${symbol_pound} +${symbol_pound} http://www.apache.org/licenses/LICENSE-2.0 +${symbol_pound} +${symbol_pound} Unless required by applicable law or agreed to in writing, +${symbol_pound} software distributed under the License is distributed on an +${symbol_pound} "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +${symbol_pound} KIND, either express or implied. See the License for the +${symbol_pound} specific language governing permissions and limitations +${symbol_pound} under the License. + +${symbol_pound} LOG4J Configuration +${symbol_pound} =================== + +${symbol_pound} Basic logging goes to "datanucleus.log" +log4j.appender.A1=org.apache.log4j.FileAppender +log4j.appender.A1.File=datanucleus.log +log4j.appender.A1.layout=org.apache.log4j.PatternLayout +log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - %m%n +${symbol_pound}log4j.appender.A1.Threshold=INFO + +${symbol_pound} Categories +${symbol_pound} Each category can be set to a "level", and to direct to an appender + +${symbol_pound} Default to DEBUG level for all DataNucleus categories +log4j.logger.DataNucleus = DEBUG, A1 + +log4j.category.com.mchange.v2.c3p0=INFO, A1 +log4j.category.com.mchange.v2.resourcepool=INFO, A1 +log4j.category.org.logicalcobwebs.proxool=INFO,A1 + + +${symbol_pound} Hbase libs logging +log4j.category.org.apache.hadoop=INFO,A1 +log4j.category.org.apache.zookeeper=INFO,A1 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/pom.xml ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/pom.xml b/example/archetype/helloworld/src/main/resources/archetype-resources/pom.xml new file mode 100644 index 0000000..fb3c632 --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/pom.xml @@ -0,0 +1,154 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--><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.incode</groupId> + <artifactId>incode-build</artifactId> + <version>2</version> + </parent> + + <groupId>${groupId}</groupId> + <artifactId>${artifactId}</artifactId> + <version>${version}</version> + + <name>HelloWorld</name> + + <packaging>war</packaging> + + <properties> + <isis.version>1.15.0</isis.version> + + <lombok.version>1.16.10</lombok.version> + + <compiler-plugin.source>1.8</compiler-plugin.source> + <compiler-plugin.target>1.8</compiler-plugin.target> + + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + + <maven-war-plugin.warName>${project.parent.artifactId}</maven-war-plugin.warName> + </properties> + + <build> + <resources> + <resource> + <directory>src/main/java</directory> + <includes> + <include>**</include> + </includes> + <excludes> + <exclude>**/*.java</exclude> + </excludes> + </resource> + </resources> + <plugins> + <plugin> + <groupId>com.github.odavid.maven.plugins</groupId> + <artifactId>mixin-maven-plugin</artifactId> + <version>0.1-alpha-39</version> + <extensions>true</extensions> + <configuration> + <mixins> + <mixin> + <groupId>com.danhaywood.mavenmixin</groupId> + <artifactId>standard</artifactId> + </mixin> + <mixin> + <groupId>com.danhaywood.mavenmixin</groupId> + <artifactId>datanucleusenhance</artifactId> + </mixin> + <mixin> + <groupId>com.danhaywood.mavenmixin</groupId> + <artifactId>surefire</artifactId> + </mixin> + <mixin> + <groupId>com.danhaywood.mavenmixin</groupId> + <artifactId>jettywar</artifactId> + </mixin> + </mixins> + </configuration> + </plugin> + </plugins> + </build> + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.isis.core</groupId> + <artifactId>isis</artifactId> + <version>${isis.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + <dependency> + <groupId>org.apache.isis.core</groupId> + <artifactId>isis-core-applib</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.isis.mavendeps</groupId> + <artifactId>isis-mavendeps-webapp</artifactId> + <type>pom</type> + </dependency> + <dependency> + <groupId>org.apache.isis.mavendeps</groupId> + <artifactId>isis-mavendeps-intellij</artifactId> + <type>pom</type> + </dependency> + <dependency> + <groupId>org.apache.isis.mavendeps</groupId> + <artifactId>isis-mavendeps-testing</artifactId> + <scope>test</scope> + <type>pom</type> + </dependency> + + <dependency> + <groupId>org.hsqldb</groupId> + <artifactId>hsqldb</artifactId> + </dependency> + + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>${lombok.version}</version> + <scope>provided</scope> + </dependency> + </dependencies> + + <profiles> + <profile> + <id>m2e</id> + <activation> + <property> + <name>m2e.version</name> + </property> + </activation> + <build> + <directory>target-ide</directory> + </build> + </profile> + </profiles> + +</project> http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/META-INF/persistence.xml ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/META-INF/persistence.xml b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/META-INF/persistence.xml new file mode 100644 index 0000000..ded9f77 --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/META-INF/persistence.xml @@ -0,0 +1,29 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +<?xml version="1.0" encoding="UTF-8" ?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<persistence xmlns="http://java.sun.com/xml/ns/persistence" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> + + <persistence-unit name="${artifactId}"/> + +</persistence> http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/HelloWorldAppManifest.java ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/HelloWorldAppManifest.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/HelloWorldAppManifest.java new file mode 100644 index 0000000..a594a3a --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/HelloWorldAppManifest.java @@ -0,0 +1,42 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package domainapp.application; + +import org.apache.isis.applib.AppManifestAbstract; + +import domainapp.dom.HelloWorldModule; + +/** + * Bootstrap the application. + */ +public class HelloWorldAppManifest extends AppManifestAbstract { + + public static final Builder BUILDER = Builder + .forModules(HelloWorldModule.class) + .withConfigurationPropertiesFile(HelloWorldAppManifest.class, "isis.properties") + .withAuthMechanism("shiro"); + + public HelloWorldAppManifest() { + super(BUILDER); + } + +} http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis.properties ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis.properties b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis.properties new file mode 100644 index 0000000..2d1507f --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/application/isis.properties @@ -0,0 +1,59 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +${symbol_pound} Licensed to the Apache Software Foundation (ASF) under one +${symbol_pound} or more contributor license agreements. See the NOTICE file +${symbol_pound} distributed with this work for additional information +${symbol_pound} regarding copyright ownership. The ASF licenses this file +${symbol_pound} to you under the Apache License, Version 2.0 (the +${symbol_pound} "License"); you may not use this file except in compliance +${symbol_pound} with the License. You may obtain a copy of the License at +${symbol_pound} +${symbol_pound} http://www.apache.org/licenses/LICENSE-2.0 +${symbol_pound} +${symbol_pound} Unless required by applicable law or agreed to in writing, +${symbol_pound} software distributed under the License is distributed on an +${symbol_pound} "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +${symbol_pound} KIND, either express or implied. See the License for the +${symbol_pound} specific language governing permissions and limitations +${symbol_pound} under the License. + + +isis.appManifest=domainapp.application.HelloWorldAppManifest + +isis.reflector.validator.allowDeprecated=false +isis.reflector.validator.noParamsOnly=true +isis.reflector.validator.explicitObjectType=true +isis.reflector.validator.serviceActionsOnly=true +isis.reflector.validator.mixinsOnly=true + + +isis.reflector.facet.cssClassFa.patterns=${symbol_escape} + new.*:fa-plus,${symbol_escape} + add.*:fa-plus-square,${symbol_escape} + create.*:fa-plus,${symbol_escape} + update.*:fa-edit,${symbol_escape} + delete.*:fa-trash,${symbol_escape} + find.*:fa-search,${symbol_escape} + list.*:fa-list + +isis.reflector.facet.cssClass.patterns=${symbol_escape} + delete.*:btn-danger + +isis.objects.editing=false + + +isis.viewer.wicket.maxTitleLengthInStandaloneTables=0 +isis.viewer.wicket.maxTitleLengthInParentedTables=0 + + +isis.persistor.datanucleus.impl.datanucleus.schema.autoCreateAll=true +isis.persistor.datanucleus.impl.datanucleus.schema.validateTables=true +isis.persistor.datanucleus.impl.datanucleus.schema.validateConstraints=true + + +isis.persistor.datanucleus.impl.datanucleus.persistenceByReachabilityAtCommit=false +isis.persistor.datanucleus.impl.datanucleus.identifier.case=MixedCase +isis.persistor.datanucleus.impl.datanucleus.cache.level2.type=none +isis.persistor.datanucleus.impl.datanucleus.cache.level2.mode=ENABLE_SELECTIVE + http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/HelloWorldModule.java ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/HelloWorldModule.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/HelloWorldModule.java new file mode 100644 index 0000000..04bee0c --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/HelloWorldModule.java @@ -0,0 +1,26 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package domainapp.dom; + +public final class HelloWorldModule { + private HelloWorldModule(){} +} http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.java ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.java new file mode 100644 index 0000000..5e0c7b0 --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.java @@ -0,0 +1,114 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package domainapp.dom.impl; + +import javax.jdo.annotations.IdGeneratorStrategy; +import javax.jdo.annotations.IdentityType; +import javax.jdo.annotations.VersionStrategy; + +import com.google.common.collect.Ordering; + +import org.apache.isis.applib.annotation.Action; +import org.apache.isis.applib.annotation.Auditing; +import org.apache.isis.applib.annotation.CommandReification; +import org.apache.isis.applib.annotation.DomainObject; +import org.apache.isis.applib.annotation.Editing; +import org.apache.isis.applib.annotation.Parameter; +import org.apache.isis.applib.annotation.ParameterLayout; +import org.apache.isis.applib.annotation.Property; +import org.apache.isis.applib.annotation.Publishing; +import org.apache.isis.applib.annotation.SemanticsOf; +import org.apache.isis.applib.annotation.Title; +import org.apache.isis.applib.services.message.MessageService; +import org.apache.isis.applib.services.repository.RepositoryService; +import org.apache.isis.applib.services.title.TitleService; + +@javax.jdo.annotations.PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "${artifactId}" ) +@javax.jdo.annotations.DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id") +@javax.jdo.annotations.Version(strategy= VersionStrategy.DATE_TIME, column ="version") +@javax.jdo.annotations.Queries({ + @javax.jdo.annotations.Query( + name = "findByName", + value = "SELECT " + + "FROM domainapp.dom.impl.HelloWorldObject " + + "WHERE name.indexOf(:name) >= 0 ") +}) +@javax.jdo.annotations.Unique(name="HelloWorldObject_name_UNQ", members = {"name"}) +@DomainObject(auditing = Auditing.ENABLED) +public class HelloWorldObject implements Comparable<HelloWorldObject> { + + public HelloWorldObject(final String name) { + this.name = name; + } + + @javax.jdo.annotations.Column(allowsNull = "false", length = 40) + @lombok.Getter @lombok.Setter + @Property(editing = Editing.DISABLED) + @Title(prepend = "Object: ") + private String name; + + @javax.jdo.annotations.Column(allowsNull = "true", length = 4000) + @lombok.Getter @lombok.Setter + @Property(editing = Editing.ENABLED) + private String notes; + + + @Action(semantics = SemanticsOf.IDEMPOTENT, command = CommandReification.ENABLED, publishing = Publishing.ENABLED) + public HelloWorldObject updateName( + @Parameter(maxLength = 40) + @ParameterLayout(named = "Name") + final String name) { + setName(name); + return this; + } + + public String default0UpdateName() { + return getName(); + } + + + @Action(semantics = SemanticsOf.NON_IDEMPOTENT_ARE_YOU_SURE) + public void delete() { + final String title = titleService.titleOf(this); + messageService.informUser(String.format("'%s' deleted", title)); + repositoryService.removeAndFlush(this); + } + + + @Override + public int compareTo(final HelloWorldObject other) { + return Ordering.natural().onResultOf(HelloWorldObject::getName).compare(this, other); + } + + + //region > injected services + @javax.inject.Inject + RepositoryService repositoryService; + + @javax.inject.Inject + TitleService titleService; + + @javax.inject.Inject + MessageService messageService; + //endregion + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.layout.xml ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.layout.xml b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.layout.xml new file mode 100644 index 0000000..b80abcc --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.layout.xml @@ -0,0 +1,73 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<bs3:grid xsi:schemaLocation="http://isis.apache.org/applib/layout/component http://isis.apache.org/applib/layout/component/component.xsd http://isis.apache.org/applib/layout/grid/bootstrap3 http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd" xmlns:c="http://isis.apache.org/applib/layout/component" xmlns:bs3="http://isis.apache.org/applib/layout/grid/bootstrap3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <bs3:row> + <bs3:col span="12" unreferencedActions="true"> + <c:domainObject bookmarking="AS_ROOT"/> + </bs3:col> + </bs3:row> + <bs3:row> + <bs3:col span="6"> + <bs3:tabGroup> + <bs3:tab name="General"> + <bs3:row> + <bs3:col span="12"> + <c:fieldSet name="Name"> + <c:action id="delete"> + <c:describedAs>Deletes this object from the persistent datastore</c:describedAs> + </c:action> + <c:property id="name" namedEscaped="true"> + <c:action id="updateName"> + <c:describedAs>Updates the object's name</c:describedAs> + </c:action> + </c:property> + <c:property id="notes" namedEscaped="true" multiLine="10" hidden="ALL_TABLES"/> + </c:fieldSet> + </bs3:col> + </bs3:row> + </bs3:tab> + <bs3:tab name="Other"> + <bs3:row> + <bs3:col span="12"> + <c:fieldSet name="Other" unreferencedProperties="true"/> + </bs3:col> + </bs3:row> + </bs3:tab> + <bs3:tab name="Metadata"> + <bs3:row> + <bs3:col span="12"> + <c:fieldSet name="Metadata"/> + </bs3:col> + </bs3:row> + </bs3:tab> + </bs3:tabGroup> + <bs3:tabGroup> + </bs3:tabGroup> + </bs3:col> + <bs3:col span="6"> + <bs3:tabGroup unreferencedCollections="true"> + </bs3:tabGroup> + </bs3:col> + </bs3:row> +</bs3:grid> http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.png ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.png b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.png new file mode 100644 index 0000000..0bd6f57 Binary files /dev/null and b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObject.png differ http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java new file mode 100644 index 0000000..c89d3af --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/dom/impl/HelloWorldObjects.java @@ -0,0 +1,81 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package domainapp.dom.impl; + +import java.util.List; + +import org.apache.isis.applib.annotation.Action; +import org.apache.isis.applib.annotation.DomainService; +import org.apache.isis.applib.annotation.MemberOrder; +import org.apache.isis.applib.annotation.NatureOfService; +import org.apache.isis.applib.annotation.Parameter; +import org.apache.isis.applib.annotation.ParameterLayout; +import org.apache.isis.applib.annotation.RestrictTo; +import org.apache.isis.applib.annotation.SemanticsOf; +import org.apache.isis.applib.query.QueryDefault; +import org.apache.isis.applib.services.registry.ServiceRegistry2; +import org.apache.isis.applib.services.repository.RepositoryService; + +@DomainService( + nature = NatureOfService.VIEW_MENU_ONLY, + objectType = "${artifactId}.HelloWorldObjects" +) +public class HelloWorldObjects { + + @Action(semantics = SemanticsOf.NON_IDEMPOTENT) + @MemberOrder(sequence = "1") + public HelloWorldObject create( + @Parameter(maxLength = 40) + @ParameterLayout(named = "Name") + final String name) { + final HelloWorldObject object = new HelloWorldObject(name); + serviceRegistry.injectServicesInto(object); + repositoryService.persistAndFlush(object); + return object; + } + + @Action(semantics = SemanticsOf.SAFE) + @MemberOrder(sequence = "2") + public List<HelloWorldObject> findByName(final String name) { + return repositoryService.allMatches( + new QueryDefault<>( + HelloWorldObject.class, + "findByName", + "name", name)); + } + + @Action(semantics = SemanticsOf.SAFE, restrictTo = RestrictTo.PROTOTYPING) + @MemberOrder(sequence = "3") + public List<HelloWorldObject> listAll() { + return repositoryService.allInstances(HelloWorldObject.class); + } + + + //region > injected services + @javax.inject.Inject + RepositoryService repositoryService; + + @javax.inject.Inject + ServiceRegistry2 serviceRegistry; + //endregion + +} http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/webapp/HelloWorldApplication.java ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/webapp/HelloWorldApplication.java b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/webapp/HelloWorldApplication.java new file mode 100644 index 0000000..d55654f --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/webapp/HelloWorldApplication.java @@ -0,0 +1,72 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package domainapp.webapp; + +import java.io.InputStream; + +import com.google.inject.AbstractModule; +import com.google.inject.Module; +import com.google.inject.name.Names; +import com.google.inject.util.Modules; +import com.google.inject.util.Providers; + +import org.apache.isis.viewer.wicket.viewer.IsisWicketApplication; + +import de.agilecoders.wicket.core.Bootstrap; +import de.agilecoders.wicket.core.settings.IBootstrapSettings; +import de.agilecoders.wicket.themes.markup.html.bootswatch.BootswatchTheme; +import de.agilecoders.wicket.themes.markup.html.bootswatch.BootswatchThemeProvider; + +public class HelloWorldApplication extends IsisWicketApplication { + + private static final long serialVersionUID = 1L; + + @Override + protected void init() { + super.init(); + + IBootstrapSettings settings = Bootstrap.getSettings(); + settings.setThemeProvider(new BootswatchThemeProvider(BootswatchTheme.Flatly)); + } + + @Override + protected Module newIsisWicketModule() { + final Module isisDefaults = super.newIsisWicketModule(); + + final Module overrides = new AbstractModule() { + @Override + protected void configure() { + bind(String.class).annotatedWith(Names.named("applicationName")).toInstance("Hello World App"); + bind(String.class).annotatedWith(Names.named("applicationCss")).toInstance("css/application.css"); + bind(String.class).annotatedWith(Names.named("applicationJs")).toInstance("scripts/application.js"); + bind(String.class).annotatedWith(Names.named("welcomeMessage")).toInstance(readLines(getClass(), "welcome.html", + "This is the hello world app")); + bind(String.class).annotatedWith(Names.named("aboutMessage")).toInstance("Hello World App"); + bind(InputStream.class).annotatedWith(Names.named("metaInfManifest")).toProvider( + Providers.of(getServletContext().getResourceAsStream("/META-INF/MANIFEST.MF"))); + } + }; + + return Modules.override(isisDefaults).with(overrides); + } + +} http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/webapp/welcome.html ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/webapp/welcome.html b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/webapp/welcome.html new file mode 100644 index 0000000..f3ec7b0 --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/java/domainapp/webapp/welcome.html @@ -0,0 +1,34 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<p class="intro"> + <a href="http://isis.apache.org" target="_blank">Apache Isis</a>™ is a platform to let you rapidly develop + domain-driven apps in Java. + <br/> + <br/> + This app has been generated using Apache Isis' + <a href="http://isis.apache.org/guides/ugfun.html${symbol_pound}_ugfun_getting-started_hellow%6Frld-archetype" target="_blank">Hello World</a> archetype. Hello World is a tiny application, intended to make it easy to start learning how to write apps on top of the framework. + <br/> + <br/> + <br/> + For more details, see the <a href="http://isis.apache.org/documentation.html" target="_blank">Apache Isis website</a>. +</p> http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/isis.properties ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/isis.properties b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/isis.properties new file mode 100644 index 0000000..111f5ce --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/isis.properties @@ -0,0 +1,41 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +${symbol_pound} Licensed to the Apache Software Foundation (ASF) under one +${symbol_pound} or more contributor license agreements. See the NOTICE file +${symbol_pound} distributed with this work for additional information +${symbol_pound} regarding copyright ownership. The ASF licenses this file +${symbol_pound} to you under the Apache License, Version 2.0 (the +${symbol_pound} "License"); you may not use this file except in compliance +${symbol_pound} with the License. You may obtain a copy of the License at +${symbol_pound} +${symbol_pound} http://www.apache.org/licenses/LICENSE-2.0 +${symbol_pound} +${symbol_pound} Unless required by applicable law or agreed to in writing, +${symbol_pound} software distributed under the License is distributed on an +${symbol_pound} "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +${symbol_pound} KIND, either express or implied. See the License for the +${symbol_pound} specific language governing permissions and limitations +${symbol_pound} under the License. + + + + +${symbol_pound} +${symbol_pound} Specify the modules (= entities + services) and other components that make up +${symbol_pound} this application. +${symbol_pound} + +isis.appManifest=domainapp.application.HelloWorldAppManifest + + + +${symbol_pound}isis.services.eventbus.implementation=guava +isis.services.eventbus.implementation=axon + + + +isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionDriverName=org.hsqldb.jdbcDriver +isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionURL=jdbc:hsqldb:mem:test +isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionUserName=sa +isis.persistor.datanucleus.impl.javax.jdo.option.ConnectionPassword= http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/logging.properties ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/logging.properties b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/logging.properties new file mode 100644 index 0000000..ae3070e --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/logging.properties @@ -0,0 +1,232 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +${symbol_pound} Licensed to the Apache Software Foundation (ASF) under one +${symbol_pound} or more contributor license agreements. See the NOTICE file +${symbol_pound} distributed with this work for additional information +${symbol_pound} regarding copyright ownership. The ASF licenses this file +${symbol_pound} to you under the Apache License, Version 2.0 (the +${symbol_pound} "License"); you may not use this file except in compliance +${symbol_pound} with the License. You may obtain a copy of the License at +${symbol_pound} +${symbol_pound} http://www.apache.org/licenses/LICENSE-2.0 +${symbol_pound} +${symbol_pound} Unless required by applicable law or agreed to in writing, +${symbol_pound} software distributed under the License is distributed on an +${symbol_pound} "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +${symbol_pound} KIND, either express or implied. See the License for the +${symbol_pound} specific language governing permissions and limitations +${symbol_pound} under the License. + + +${symbol_pound} +${symbol_pound} Isis uses log4j is used to provide system logging +${symbol_pound} +log4j.rootCategory=INFO, Console +${symbol_pound}log4j.rootCategory=DEBUG, Console + + +${symbol_pound} The console appender +log4j.appender.Console=org.apache.log4j.ConsoleAppender +log4j.appender.Console.target=System.out +log4j.appender.Console.layout=org.apache.log4j.PatternLayout +log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} [%-20c{1} %-10t %-5p] %m%n + + +${symbol_pound} The stderr appender +log4j.appender.Stderr=org.apache.log4j.ConsoleAppender +log4j.appender.Stderr.target=System.err +log4j.appender.Stderr.layout=org.apache.log4j.PatternLayout +log4j.appender.Stderr.layout.ConversionPattern=%d{ABSOLUTE} [%-20c{1} %-10t %-5p] %m%n + + +${symbol_pound} other appenders +log4j.appender.File=org.apache.log4j.RollingFileAppender +log4j.appender.File.file=isis.log +log4j.appender.File.append=false +log4j.appender.File.layout=org.apache.log4j.PatternLayout +log4j.appender.File.layout.ConversionPattern=%d [%-20c{1} %-10t %-5p] %m%n + +log4j.appender.sql=org.apache.log4j.RollingFileAppender +log4j.appender.sql.File=./logs/sql.log +log4j.appender.sql.Append=false +log4j.appender.sql.layout=org.apache.log4j.PatternLayout +log4j.appender.sql.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n + +log4j.appender.sqltiming=org.apache.log4j.RollingFileAppender +log4j.appender.sqltiming.File=./logs/sqltiming.log +log4j.appender.sqltiming.Append=false +log4j.appender.sqltiming.layout=org.apache.log4j.PatternLayout +log4j.appender.sqltiming.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n + +log4j.appender.jdbc=org.apache.log4j.RollingFileAppender +log4j.appender.jdbc.File=./logs/jdbc.log +log4j.appender.jdbc.Append=false +log4j.appender.jdbc.layout=org.apache.log4j.PatternLayout +log4j.appender.jdbc.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n + +log4j.appender.connection=org.apache.log4j.RollingFileAppender +log4j.appender.connection.File=./logs/connection.log +log4j.appender.connection.Append=false +log4j.appender.connection.layout=org.apache.log4j.PatternLayout +log4j.appender.connection.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n + +log4j.appender.wicket.i18n=org.apache.log4j.RollingFileAppender +log4j.appender.wicket.i18n.file=./logs/wicket-i18n.log +log4j.appender.wicket.i18n.append=false +log4j.appender.wicket.i18n.layout=org.apache.log4j.PatternLayout +log4j.appender.wicket.i18n.layout.ConversionPattern=%d [%-20c{1} %-10t %-5p] %m%n + + +${symbol_pound} publishing +log4j.appender.PublisherServiceLogging=org.apache.log4j.FileAppender +log4j.appender.PublisherServiceLogging.File=./logs/PublisherServiceLogging.log +log4j.appender.PublisherServiceLogging.Append=false +log4j.appender.PublisherServiceLogging.layout=org.apache.log4j.PatternLayout +log4j.appender.PublisherServiceLogging.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n + +log4j.logger.org.apache.isis.applib.services.publish.PublisherServiceLogging=DEBUG,PublisherServiceLogging +log4j.additivity.org.apache.isis.applib.services.publish.PublisherServiceLogging=false + + +${symbol_pound} auditing +log4j.appender.AuditerServiceLogging=org.apache.log4j.FileAppender +log4j.appender.AuditerServiceLogging.File=./logs/AuditerServiceLogging.log +log4j.appender.AuditerServiceLogging.Append=false +log4j.appender.AuditerServiceLogging.layout=org.apache.log4j.PatternLayout +log4j.appender.AuditerServiceLogging.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %m%n + +log4j.logger.org.apache.isis.applib.services.audit.AuditerServiceLogging=DEBUG,AuditerServiceLogging +log4j.additivity.org.apache.isis.applib.services.audit.AuditerServiceLogging=false + + + + +! turn on the internal log4j debugging flag so we can see what it is doing +${symbol_pound}log4j.debug=true + + +${symbol_pound} DataNucleus +${symbol_pound} the first two log the DML and DDL (if set to DEBUG) +log4j.logger.DataNucleus.Datastore.Native=DEBUG, Console, sql +log4j.logger.DataNucleus.Datastore.Schema=DEBUG, Console, sql +${symbol_pound}log4j.logger.DataNucleus.Datastore.Native=WARN, Console +${symbol_pound}log4j.logger.DataNucleus.Datastore.Schema=WARN, Console +${symbol_pound} the remainder can probably be left to WARN +log4j.logger.DataNucleus.Persistence=WARN, Console +log4j.logger.DataNucleus.Transaction=WARN, Console +log4j.logger.DataNucleus.Connection=WARN, Console +log4j.logger.DataNucleus.Query=WARN, Console +log4j.logger.DataNucleus.Cache=WARN, Console +log4j.logger.DataNucleus.MetaData=WARN, Console +log4j.logger.DataNucleus.Datastore=WARN, Console +log4j.logger.DataNucleus.Datastore.Persist=WARN, Console +log4j.logger.DataNucleus.Datastore.Retrieve=WARN, Console +log4j.logger.DataNucleus.General=WARN, Console +log4j.logger.DataNucleus.Lifecycle=WARN, Console +log4j.logger.DataNucleus.ValueGeneration=WARN, Console +log4j.logger.DataNucleus.Enhancer=WARN, Console +log4j.logger.DataNucleus.SchemaTool=ERROR, Console +log4j.logger.DataNucleus.JDO=WARN, Console +log4j.logger.DataNucleus.JPA=ERROR, Console +log4j.logger.DataNucleus.JCA=WARN, Console +log4j.logger.DataNucleus.IDE=ERROR, Console + +log4j.additivity.DataNucleus.Datastore.Native=false +log4j.additivity.DataNucleus.Datastore.Schema=false +log4j.additivity.DataNucleus.Datastore.Persistence=false +log4j.additivity.DataNucleus.Datastore.Transaction=false +log4j.additivity.DataNucleus.Datastore.Connection=false +log4j.additivity.DataNucleus.Datastore.Query=false +log4j.additivity.DataNucleus.Datastore.Cache=false +log4j.additivity.DataNucleus.Datastore.MetaData=false +log4j.additivity.DataNucleus.Datastore.Datastore=false +log4j.additivity.DataNucleus.Datastore.Datastore.Persist=false +log4j.additivity.DataNucleus.Datastore.Datastore.Retrieve=false +log4j.additivity.DataNucleus.Datastore.General=false +log4j.additivity.DataNucleus.Datastore.Lifecycle=false +log4j.additivity.DataNucleus.Datastore.ValueGeneration=false +log4j.additivity.DataNucleus.Datastore.Enhancer=false +log4j.additivity.DataNucleus.Datastore.SchemaTool=false +log4j.additivity.DataNucleus.Datastore.JDO=false +log4j.additivity.DataNucleus.Datastore.JPA=false +log4j.additivity.DataNucleus.Datastore.JCA=false +log4j.additivity.DataNucleus.Datastore.IDE=false + + +${symbol_pound} if using log4jdbc-remix as JDBC driver +${symbol_pound}log4j.logger.jdbc.sqlonly=DEBUG, sql, Console +${symbol_pound}log4j.additivity.jdbc.sqlonly=false +${symbol_pound}log4j.logger.jdbc.resultsettable=DEBUG, jdbc, Console +${symbol_pound}log4j.additivity.jdbc.resultsettable=false + +${symbol_pound}log4j.logger.jdbc.audit=WARN,jdbc, Console +${symbol_pound}log4j.additivity.jdbc.audit=false +${symbol_pound}log4j.logger.jdbc.resultset=WARN,jdbc +${symbol_pound}log4j.additivity.jdbc.resultset=false +${symbol_pound}log4j.logger.jdbc.sqltiming=WARN,sqltiming +${symbol_pound}log4j.additivity.jdbc.sqltiming=false +${symbol_pound}log4j.logger.jdbc.connection=FATAL,connection +${symbol_pound}log4j.additivity.jdbc.connection=false + + + +${symbol_pound} track Isis/JDO lifecycle integration + +${symbol_pound}log4j.logger.org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.persistence.FrameworkSynchronizer=DEBUG, Console +${symbol_pound}log4j.additivity.org.apache.isis.runtimes.dflt.objectstores.jdo.datanucleus.persistence.FrameworkSynchronizer=false + +${symbol_pound}log4j.logger.org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener=DEBUG,Console +${symbol_pound}log4j.additivity.org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener=false + + + + +${symbol_pound} track Isis/Wicket lifecycle integration + +${symbol_pound}log4j.logger.org.apache.isis.viewer.wicket.viewer.integration.wicket.WebRequestCycleForIsis=DEBUG, Console +${symbol_pound}log4j.additivity.org.apache.isis.viewer.wicket.viewer.integration.wicket.WebRequestCycleForIsis=false + +${symbol_pound}log4j.logger.org.apache.isis.viewer.wicket.viewer.integration.isis.IsisContextForWicket=INFO,Console +${symbol_pound}log4j.additivity.org.apache.isis.viewer.wicket.viewer.integration.isis.IsisContextForWicket=false + +log4j.logger.org.apache.isis.viewer.wicket.viewer.TargetRespondListenerToResetQueryResultCache=DEBUG,Console +log4j.additivity.org.apache.isis.viewer.wicket.viewer.TargetRespondListenerToResetQueryResultCache=false + + + +${symbol_pound} quieten some of the noisier classes in Isis' bootstrapping +log4j.logger.org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder=WARN,Console +log4j.additivity.org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder=false + +log4j.logger.org.apache.isis.core.metamodel.specloader.ServiceInitializer=WARN,Console +log4j.additivity.org.apache.isis.core.metamodel.specloader.ServiceInitializer=false + +log4j.logger.org.apache.isis.core.runtime.services.ServicesInstallerFromConfiguration=WARN,Console +log4j.additivity.org.apache.isis.core.runtime.services.ServicesInstallerFromConfiguration=false + +log4j.logger.org.apache.isis.core.commons.config.IsisConfigurationDefault=INFO,Console +log4j.additivity.org.apache.isis.core.commons.config.IsisConfigurationDefault=false + + +log4j.logger.org.apache.isis.core.runtime.installers.InstallerLookupDefault=WARN,Console +log4j.additivity.org.apache.isis.core.runtime.installers.InstallerLookupDefault=false + +log4j.logger.org.apache.isis.core.runtime.threadpool.ThreadPoolSupport=INFO,Console +log4j.additivity.org.apache.isis.core.runtime.threadpool.ThreadPoolSupport=false + + + +${symbol_pound} quieten Shiro +log4j.logger.org.apache.shiro.realm.AuthorizingRealm=WARN,Console +log4j.additivity.org.apache.shiro.realm.AuthorizingRealm=false + + +${symbol_pound} Application-specific logging +log4j.logger.dom.simple.SimpleObject=DEBUG, Stderr +log4j.additivity.dom.simple.SimpleObject=false + + +${symbol_pound} ERROR to suppress the WARNings we get as of 1.15.0 +log4j.logger.org.apache.wicket.page.XmlPartialPageUpdate=ERROR,console +log4j.additivity.org.apache.wicket.page.XmlPartialPageUpdate=false http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/shiro.ini ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/shiro.ini b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/shiro.ini new file mode 100644 index 0000000..bc52895 --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/shiro.ini @@ -0,0 +1,58 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +[main] + + +# to use .ini file +securityManager.realms = $iniRealm + + +# ----------------------------------------------------------------------------- +# Users and their assigned roles +# +# Each line conforms to the format defined in the +# org.apache.shiro.realm.text.TextConfigurationRealm#setUserDefinitions JavaDoc +# ----------------------------------------------------------------------------- + +[users] +# user = password, role1, role2, role3, ... + + +sven = pass, admin_role +dick = pass, user_role +bob = pass, user_role +joe = pass, user_role + + + +# ----------------------------------------------------------------------------- +# Roles with assigned permissions +# +# Each line conforms to the format defined in the +# org.apache.shiro.realm.text.TextConfigurationRealm#setRoleDefinitions JavaDoc +# ----------------------------------------------------------------------------- + +[roles] +# role = perm1, perm2, perm3, ... +# perm in format: packageName:className:memberName:r,w + +user_role = *:HelloWorldObjects:*:*,\ + *:HelloWorldObject:*:* +admin_role = * http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..ab65538 --- /dev/null +++ b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,331 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> +<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>Hello World</display-name> + + <welcome-file-list> + <welcome-file>about/index.html</welcome-file> + </welcome-file-list> + + <!-- shiro security configuration --> + <listener> + <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class> + </listener> + + <filter> + <filter-name>ShiroFilter</filter-name> + <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class> + </filter> + + <filter-mapping> + <filter-name>ShiroFilter</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> + + + + <!-- which configuration directory to read overloaded property files from --> + <!-- + By default the framework will read configuration properties from the WEB-INF + directory (where this web.xml file resides). + + If you want to read configuration files from some other external directory, + and the location of that external directory is the same/standardized for all + locations where you intend to deploy the WAR file, you can uncomment the + 'isis.config.dir' context parameter, below, and set it to that standardized + location, eg: + + <context-param> + <param-name>isis.config.dir</param-name> + <param-value>/usr/local/conf</param-value> + </context-param> + + If however the location of the external directory changes from one deployment + to another (eg system testing, UAT, production etc) then you should be + able to override the context parameter through the servlet container's own + (proprietary) configuration files. + + For example, if deploying to Tomcat, you can edit ${symbol_dollar}CATALINA_BASE/conf/context.xml, + and add: + + <Parameter name="isis.config.dir" + value="/usr/local/conf/systest" + override="false"/> + + For more detail see: http://tomcat.apache.org/tomcat-7.0-doc/config/context.html${symbol_pound}Context_Parameters + --> + + + <!-- + determines which additional configuration files to search for + --> + <context-param> + <param-name>isis.viewers</param-name> + <param-value>wicket,restfulobjects</param-value> + </context-param> + + + + <!-- + for diagnostics + --> + <filter> + <filter-name>IsisLogOnExceptionFilter</filter-name> + <filter-class>org.apache.isis.core.webapp.diagnostics.IsisLogOnExceptionFilter</filter-class> + </filter> + <filter-mapping> + <filter-name>IsisLogOnExceptionFilter</filter-name> + <url-pattern>/wicket/*</url-pattern> + </filter-mapping> + <filter-mapping> + <filter-name>IsisLogOnExceptionFilter</filter-name> + <url-pattern>/restful/*</url-pattern> + </filter-mapping> + + + + <!-- cache static resources for 1 day --> + <filter> + <filter-name>ResourceCachingFilter</filter-name> + <filter-class>org.apache.isis.core.webapp.content.ResourceCachingFilter</filter-class> + <init-param> + <param-name>CacheTime</param-name> + <param-value>86400</param-value> + </init-param> + </filter> + <filter-mapping> + <filter-name>ResourceCachingFilter</filter-name> + <url-pattern>*.css</url-pattern> + </filter-mapping> + <filter-mapping> + <filter-name>ResourceCachingFilter</filter-name> + <url-pattern>*.png</url-pattern> + </filter-mapping> + <filter-mapping> + <filter-name>ResourceCachingFilter</filter-name> + <url-pattern>*.jpg</url-pattern> + </filter-mapping> + <filter-mapping> + <filter-name>ResourceCachingFilter</filter-name> + <url-pattern>*.jpeg</url-pattern> + </filter-mapping> + <filter-mapping> + <filter-name>ResourceCachingFilter</filter-name> + <url-pattern>*.gif</url-pattern> + </filter-mapping> + <filter-mapping> + <filter-name>ResourceCachingFilter</filter-name> + <url-pattern>*.svg</url-pattern> + </filter-mapping> + <filter-mapping> + <filter-name>ResourceCachingFilter</filter-name> + <url-pattern>*.js</url-pattern> + </filter-mapping> + <filter-mapping> + <filter-name>ResourceCachingFilter</filter-name> + <url-pattern>*.html</url-pattern> + </filter-mapping> + <filter-mapping> + <filter-name>ResourceCachingFilter</filter-name> + <url-pattern>*.swf</url-pattern> + </filter-mapping> + + <servlet> + <servlet-name>Resource</servlet-name> + <servlet-class>org.apache.isis.core.webapp.content.ResourceServlet</servlet-class> + </servlet> + <servlet-mapping> + <servlet-name>Resource</servlet-name> + <url-pattern>*.css</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>Resource</servlet-name> + <url-pattern>*.png</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>Resource</servlet-name> + <url-pattern>*.jpg</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>Resource</servlet-name> + <url-pattern>*.jpeg</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>Resource</servlet-name> + <url-pattern>*.gif</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>Resource</servlet-name> + <url-pattern>*.svg</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>Resource</servlet-name> + <url-pattern>*.js</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>Resource</servlet-name> + <url-pattern>*.html</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>Resource</servlet-name> + <url-pattern>*.swf</url-pattern> + </servlet-mapping> + + + <servlet> + <servlet-name>WebjarsServlet</servlet-name> + <servlet-class>org.webjars.servlet.WebjarsServlet</servlet-class> + <init-param> + <param-name>disableCache</param-name> + <param-value>false</param-value> + </init-param> + <load-on-startup>2</load-on-startup> + </servlet> + <servlet-mapping> + <servlet-name>WebjarsServlet</servlet-name> + <url-pattern>/webjars/*</url-pattern> + </servlet-mapping> + + + + <!-- + - + - config specific to the wicket-viewer + - + --> + <filter> + <filter-name>WicketFilter</filter-name> + <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> + <init-param> + <param-name>applicationClassName</param-name> + <param-value>domainapp.webapp.HelloWorldApplication</param-value> + </init-param> + </filter> + <filter-mapping> + <filter-name>WicketFilter</filter-name> + <url-pattern>/wicket/*</url-pattern> + </filter-mapping> + + + <context-param> + <param-name>configuration</param-name> + <!-- + <param-value>deployment</param-value> + --> + <param-value>development</param-value> + </context-param> + + + <!-- + - + - config specific to the restfulobjects-viewer + - + --> + + <!-- + THE FOLLOWING CONFIGURATION IS NOT REQUIRED IF THE WICKET VIEWER IS IN USE. + IF THE WICKET VIEWER CONFIGURATION IS REMOVED, THEN UNCOMMENT + + <listener> + <listener-class>org.apache.isis.core.webapp.IsisWebAppBootstrapper</listener-class> + </listener> + + <context-param> + <param-name>deploymentType</param-name> + <param-value>SERVER_PROTOTYPE</param-value> + </context-param> + + <context-param> + <param-name>isis.viewers</param-name> + <param-value>restfulobjects</param-value> + </context-param> + --> + + <!-- bootstrap the RestEasy framework --> + <listener> + <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class> + </listener> + + <!-- used by RestEasy to determine the JAX-RS resources and other related configuration --> + <context-param> + <param-name>javax.ws.rs.Application</param-name> + <param-value>org.apache.isis.viewer.restfulobjects.server.RestfulObjectsApplication</param-value> + </context-param> + + <context-param> + <param-name>resteasy.servlet.mapping.prefix</param-name> + <param-value>/restful/</param-value> + </context-param> + + + <!-- authenticate user, set up an Isis session --> + <filter> + <filter-name>IsisSessionFilterForRestfulObjects</filter-name> + <filter-class>org.apache.isis.core.webapp.IsisSessionFilter</filter-class> + <!-- authentication required for REST --> + <init-param> + <param-name>authenticationSessionStrategy</param-name> + <param-value>org.apache.isis.viewer.restfulobjects.server.authentication.AuthenticationSessionStrategyBasicAuth</param-value> + </init-param> + <init-param> + <!-- what to do if no session was found... --> + <param-name>whenNoSession</param-name> + <!-- ... 401 and a basic authentication challenge if request originates from web browser --> + <param-value>auto</param-value> + </init-param> + <init-param> + <param-name>passThru</param-name> + <param-value>/restful/swagger</param-value> + </init-param> + </filter> + <filter-mapping> + <!-- this is mapped to the entire app; however the IsisSessionFilter will "notice" if the session filter has already been + executed for the request pipeline, and if so will do nothing --> + <filter-name>IsisSessionFilterForRestfulObjects</filter-name> + <servlet-name>RestfulObjectsRestEasyDispatcher</servlet-name> + </filter-mapping> + + <filter> + <filter-name>IsisTransactionFilterForRestfulObjects</filter-name> + <filter-class>org.apache.isis.viewer.restfulobjects.server.webapp.IsisTransactionFilterForRestfulObjects</filter-class> + </filter> + <filter-mapping> + <filter-name>IsisTransactionFilterForRestfulObjects</filter-name> + <servlet-name>RestfulObjectsRestEasyDispatcher</servlet-name> + </filter-mapping> + + + <servlet> + <servlet-name>RestfulObjectsRestEasyDispatcher</servlet-name> + <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class> + </servlet> + <servlet-mapping> + <servlet-name>RestfulObjectsRestEasyDispatcher</servlet-name> + <url-pattern>/restful/*</url-pattern> + </servlet-mapping> + + +</web-app> http://git-wip-us.apache.org/repos/asf/isis/blob/e9f6463f/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/about/images/isis-logo.png ---------------------------------------------------------------------- diff --git a/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/about/images/isis-logo.png b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/about/images/isis-logo.png new file mode 100644 index 0000000..5284fe7 Binary files /dev/null and b/example/archetype/helloworld/src/main/resources/archetype-resources/src/main/webapp/about/images/isis-logo.png differ