You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ca...@apache.org on 2020/09/19 08:19:19 UTC

[royale-asjs] branch develop updated: maven-archetypes: "royale-jewel-application-archetype" now has -DincludeCrux=true (so "royale-jewe-cruxl-application-archetype" can be removed). Also get more improvements like package creation and names based on artifactId

This is an automated email from the ASF dual-hosted git repository.

carlosrovira pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new c7b5b45  maven-archetypes: "royale-jewel-application-archetype" now has -DincludeCrux=true (so "royale-jewe-cruxl-application-archetype" can be removed). Also get more improvements like package creation and names based on artifactId
c7b5b45 is described below

commit c7b5b45235af7e0e6ee49f9fcacf3caac4b2e56a
Author: Carlos Rovira <ca...@apache.org>
AuthorDate: Sat Sep 19 10:19:06 2020 +0200

    maven-archetypes: "royale-jewel-application-archetype" now has -DincludeCrux=true (so "royale-jewe-cruxl-application-archetype" can be removed). Also get more improvements like package creation and names based on artifactId
---
 .../royale-jewel-application-archetype/pom.xml     | 12 +++-
 .../META-INF/archetype-post-generate.groovy        | 71 ++++++++++++++++++
 .../META-INF/maven/archetype-metadata.xml          | 84 ++++++++++++++++++++++
 .../main/resources/META-INF/maven/archetype.xml    | 34 ---------
 ...pp.mxml.as3proj => __artifactId__.mxml.as3proj} |  4 +-
 .../resources/archetype-resources/asconfig.json    |  2 +-
 .../src/main/resources/archetype-resources/pom.xml | 24 ++++++-
 .../resources/jewel-example-index-template.html    |  3 +-
 .../main/royale/{App.mxml => __artifactId__.mxml}  | 30 ++++++--
 .../main/royale/{App.mxml => config/Beans.mxml}    | 24 +++----
 .../main/royale/events/SomeEvent.as}               | 44 +++++++-----
 .../main/royale/{App.mxml => views/MainView.mxml}  | 27 +++----
 12 files changed, 263 insertions(+), 96 deletions(-)

diff --git a/archetypes/royale-jewel-application-archetype/pom.xml b/archetypes/royale-jewel-application-archetype/pom.xml
index 1876ac8..221ab38 100644
--- a/archetypes/royale-jewel-application-archetype/pom.xml
+++ b/archetypes/royale-jewel-application-archetype/pom.xml
@@ -27,9 +27,19 @@
 
   <artifactId>royale-jewel-application-archetype</artifactId>
   <version>0.9.8-SNAPSHOT</version>
-  <packaging>jar</packaging>
+  <packaging>maven-archetype</packaging>
 
   <name>Apache Royale: Framework: Archetypes: Jewel Royale Application</name>
   <description>Maven archetype for creating Royale Maven project for building a Jewel Royale application for JavaScript output.</description>
 
+  <build>
+    <extensions>
+      <extension>
+        <groupId>org.apache.maven.archetype</groupId>
+        <artifactId>archetype-packaging</artifactId>
+        <version>3.1.1</version>
+      </extension>
+    </extensions>
+  </build>
+  
 </project>
diff --git a/archetypes/royale-jewel-application-archetype/src/main/resources/META-INF/archetype-post-generate.groovy b/archetypes/royale-jewel-application-archetype/src/main/resources/META-INF/archetype-post-generate.groovy
new file mode 100644
index 0000000..a005cea
--- /dev/null
+++ b/archetypes/royale-jewel-application-archetype/src/main/resources/META-INF/archetype-post-generate.groovy
@@ -0,0 +1,71 @@
+/**
+ *  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.
+ */
+
+
+//  This script will be executed upon creating a project from this archetype.
+//  https://maven.apache.org/archetype/maven-archetype-plugin/advanced-usage.html
+// 
+//  It will delete a the associated Crux folders if the value for the "includeCrux" property
+//  is set to false.
+
+import java.io.File
+import java.nio.file.Files
+import java.nio.file.Path
+import java.nio.file.Paths
+import org.apache.commons.io.FileUtils
+ 
+println "*******************************"
+println "  groovy post processing"
+println "*******************************"
+// println "artifactId: " + artifactId
+// println "request: " + request
+// println "archetypeArtifactId: " + request.getArchetypeArtifactId()
+// println "archetypeGroupId: " + request.getArchetypeGroupId()
+// println "archetypeVersion: " + request.getArchetypeVersion()
+// println "archetypeName: " + request.getArchetypeName()
+// println "artifactId: " + request.getArtifactId()
+// println "groupId: " + request.getGroupId()
+// println "version: " + request.getVersion()
+
+Properties properties = request.properties
+// println "Properties: " + properties
+// println "application: " + request.getProperties().getProperty("application")
+// println "moduele: " + request.getProperties().getProperty("module")
+
+// Application path
+Path appPath = Paths.get(request.outputDirectory, request.artifactId)// + File.separator + properties.get("application"))
+println "appPath prop : " + appPath
+String includeCrux = properties.get("includeCrux")
+println "includeCrux prop : " + includeCrux
+ 
+if (includeCrux.equals("false")) {
+    println "Not includin Crux - Deleting Crux files"
+
+    String packageProp = properties.get("package").equals('') ? "" : properties.get("package").replace(".", File.separator) + File.separator;
+    //println "package prop : " + packageProp
+    Path configPath = appPath.resolve("src" + File.separator + "main" + File.separator + "royale" + File.separator + packageProp + "config")   
+    Path eventsPath = appPath.resolve("src" + File.separator + "main" + File.separator + "royale" + File.separator + packageProp + "events")   
+    
+    //String configurationFile = "Beans.mxml";    
+    //Path cxfConfigPath = configPath.resolve(configurationFile)
+    //println "cxfConfigPath " + cxfConfigPath  
+    //Files.deleteIfExists cxfConfigPath
+
+    FileUtils.deleteDirectory(configPath.toFile());
+    FileUtils.deleteDirectory(eventsPath.toFile());
+}
+println "*******************************"
\ No newline at end of file
diff --git a/archetypes/royale-jewel-application-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/archetypes/royale-jewel-application-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
new file mode 100644
index 0000000..ade4552
--- /dev/null
+++ b/archetypes/royale-jewel-application-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -0,0 +1,84 @@
+<?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
+        xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0
+        https://maven.apache.org/xsd/archetype-descriptor-1.1.0.xsd"
+        xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        name="${artifactId}">
+
+  <fileSets>
+    <fileSet filtered="true" encoding="UTF-8">
+      <directory>.vscode</directory>
+      <includes>
+        <include>**/*.json</include>
+      </includes>
+    </fileSet>
+    <fileSet filtered="true" encoding="UTF-8">
+      <directory></directory>
+      <includes>
+        <include>__artifactId__.mxml.as3proj</include>
+        <include>asconfig.json</include>
+      </includes>
+    </fileSet>
+    <fileSet filtered="true" encoding="UTF-8">
+      <directory>src/main/resources</directory>
+      <includes>
+        <include>**/*.html</include>
+      </includes>
+    </fileSet>
+    <fileSet filtered="true" encoding="UTF-8">
+      <directory>src/main/sass</directory>
+      <includes>
+        <include>**/*.sass</include>
+      </includes>
+    </fileSet>
+    <fileSet filtered="true" encoding="UTF-8">
+      <directory>src/main/royale</directory>
+      <includes>
+        <include>__artifactId__.mxml</include>
+      </includes>
+    </fileSet>
+    <fileSet filtered="true" packaged="true" encoding="UTF-8">
+      <directory>src/main/royale</directory>
+      <includes>
+        <include>**/*.mxml</include>
+        <include>**/*.as</include>
+      </includes>
+      <excludes>
+        <exclude>__artifactId__.mxml</exclude>
+      </excludes>
+    </fileSet>      
+    <fileSet filtered="true" packaged="true" encoding="UTF-8">
+      <directory>src/test/royale</directory>
+      <includes>
+        <include>**/*.as</include>
+        <include>**/*.mxml</include>
+      </includes>
+    </fileSet>
+  </fileSets>
+
+  <requiredProperties>
+    <requiredProperty key="includeCrux"> 
+     	<defaultValue>false</defaultValue>
+    </requiredProperty>
+  </requiredProperties>
+
+</archetype-descriptor>
diff --git a/archetypes/royale-jewel-application-archetype/src/main/resources/META-INF/maven/archetype.xml b/archetypes/royale-jewel-application-archetype/src/main/resources/META-INF/maven/archetype.xml
deleted file mode 100644
index e0174a4..0000000
--- a/archetypes/royale-jewel-application-archetype/src/main/resources/META-INF/maven/archetype.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?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 xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0"
-           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-           xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0 http://maven.apache.org/xsd/archetype-1.0.0.xsd">
-  <id>royale-jewel-application-archetype</id>
-  <resources>
-    <resource>.vscode/launch.json</resource>
-    <resource>.vscode/tasks.json</resource>
-    <resource>asconfig.json</resource>
-    <resource>App.mxml.as3proj</resource>
-    <resource>src/main/resources/jewel-example-index-template.html</resource>
-    <resource>src/main/sass/default.sass</resource>
-    <resource>src/main/sass/_global.sass</resource>
-    <resource>src/main/royale/App.mxml</resource>
-  </resources>
-</archetype>
diff --git a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/App.mxml.as3proj b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/__artifactId__.mxml.as3proj
similarity index 97%
rename from archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/App.mxml.as3proj
rename to archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/__artifactId__.mxml.as3proj
index fce3894..a2952cb 100644
--- a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/App.mxml.as3proj
+++ b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/__artifactId__.mxml.as3proj
@@ -21,7 +21,7 @@
   <output>
     <movie width="800"/>
     <movie disabled="False"/>
-    <movie path="bin-debug/App.swf"/>
+    <movie path="bin-debug/${artifactId}.swf"/>
     <movie platform="Flash Player"/>
     <movie fps="60"/>
     <movie version="11"/>
@@ -48,7 +48,7 @@
     <option benchmark="False"/>
     <option showBindingWarnings="True"/>
     <option warnings="True"/>
-    <option customSDK="/Users/christofer.dutz/Downloads/MoonshineSDKs/Royale_SDK/apache-royale-0.9.6-bin-js/royale-asjs"/>
+    <option customSDK="/Users/christofer.dutz/Downloads/MoonshineSDKs/Royale_SDK/apache-royale-0.9.8-bin-js/royale-asjs"/>
     <option showActionScriptWarnings="True"/>
     <option antBuildPath="build/build.xml"/>
     <option verboseStackTraces="False"/>
diff --git a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/asconfig.json b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/asconfig.json
index 1570950..9adcd62 100644
--- a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/asconfig.json
+++ b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/asconfig.json
@@ -32,6 +32,6 @@
     "additionalOptions": "-js-dynamic-access-unknown-members=true",
     "files":
     [
-        "src/main/royale/App.mxml"
+        "src/main/royale/${artifactId}.mxml"
     ]
 }
diff --git a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/pom.xml b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/pom.xml
index 4cce7e3..b425971 100644
--- a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/pom.xml
@@ -48,11 +48,21 @@
         <version>${royale.compiler.version}</version>
         <extensions>true</extensions>
         <configuration>
-          <mainClass>App.mxml</mainClass>
+          <mainClass>\${artifactId}.mxml</mainClass>
           <targets>JSRoyale</targets>
           <debug>false</debug>
           <htmlTemplate>${dollar}{basedir}/src/main/resources/jewel-example-index-template.html</htmlTemplate>
-          <additionalCompilerOptions>-source-map=true;</additionalCompilerOptions>
+          <additionalCompilerOptions>
+            -source-map=true;
+#if (${includeCrux} == 'true' || ${includeCrux} == 'yes' || ${includeCrux} == 'y')
+            -js-default-initializers=true;
+            -compiler.exclude-defaults-css-files=MXRoyale-${royale.framework.version}-js.swc:defaults.css;
+            -keep-as3-metadata+=Inject,Dispatcher,EventHandler,PostConstruct,PreDestroy,ViewAdded,ViewRemoved,Bindable,Transient;
+            -keep-code-with-metadata=Inject;
+#end
+            <!-- to access JSON object graph subobjects --> 
+            <!-- -js-dynamic-access-unknown-members=true;  -->
+          </additionalCompilerOptions>
         </configuration>
         <dependencies>
           <dependency>
@@ -132,6 +142,16 @@
       <type>swc</type>
       <classifier>js</classifier>
     </dependency>
+#if (${includeCrux} == 'true' || ${includeCrux} == 'yes' || ${includeCrux} == 'y')
+    
+    <dependency>
+      <groupId>org.apache.royale.framework</groupId>
+      <artifactId>Crux</artifactId>
+      <version>0.9.8-SNAPSHOT</version>
+      <type>swc</type>
+      <classifier>js</classifier>
+    </dependency>
+#end
 
     <!-- Needed for JavaScript compilation -->
     <dependency>
diff --git a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/resources/jewel-example-index-template.html b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/resources/jewel-example-index-template.html
index 140ba98..d33d42b 100644
--- a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/resources/jewel-example-index-template.html
+++ b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/resources/jewel-example-index-template.html
@@ -14,13 +14,14 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
+#set($dollar = '$')
 <!DOCTYPE html>
 <html>
 <head>
 	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     <meta name="Custom Template for injecting custom style CSS">
     <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
-    <link rel="stylesheet" type="text/css" href="${application}.css">
+    <link rel="stylesheet" type="text/css" href="${dollar}{application}.css">
     <link href="https://fonts.googleapis.com/css?family=Lato:400,700" rel="stylesheet">
 ${head}
 </head>
diff --git a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/App.mxml b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/__artifactId__.mxml
similarity index 50%
copy from archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/App.mxml
copy to archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/__artifactId__.mxml
index 3a21b27..0ac287f 100644
--- a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/App.mxml
+++ b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/__artifactId__.mxml
@@ -17,20 +17,40 @@ See the License for the specific language governing permissions and
 limitations under the License.
 
 -->
+#set($finalpackage = "#if($package != '')$package.#{else}#end")
 <j:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
-                xmlns:js="library://ns.apache.org/royale/basic"
-                xmlns:j="library://ns.apache.org/royale/jewel">
+            xmlns:js="library://ns.apache.org/royale/basic"
+            xmlns:j="library://ns.apache.org/royale/jewel"
+#if (${includeCrux} == 'true' || ${includeCrux} == 'yes' || ${includeCrux} == 'y')
+            xmlns:crux="library://ns.apache.org/royale/crux"
+            xmlns:config="${finalpackage}config.*"
+#end
+            xmlns:views="${finalpackage}views.*">
 
     <!-- <fx:Style source="../../main/resources/default.css"/> -->
 
     <j:valuesImpl>
         <js:SimpleCSSValuesImpl />
     </j:valuesImpl>
+#if (${includeCrux} == 'true' || ${includeCrux} == 'yes' || ${includeCrux} == 'y')
+    <j:beads>
+		<crux:JSStageEvents packageExclusionFilter="_default_"/>
+        <crux:Crux>
+            <crux:beanProviders>
+                <config:Beans/>
+            </crux:beanProviders>
+            <crux:config>
+                <crux:CruxConfig
+                    eventPackages="${finalpackage}events.*"
+                    viewPackages="${finalpackage}views.*"
+                    />
+            </crux:config>
+        </crux:Crux>
+	</j:beads>
+#end
 
     <j:initialView>
-        <j:View>
-        	<j:Label text="Hello World!"/>
-        </j:View>
+        <views:MainView width="100%" height="100%"/>
     </j:initialView>
     
 </j:Application>
diff --git a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/App.mxml b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/config/Beans.mxml
similarity index 63%
copy from archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/App.mxml
copy to archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/config/Beans.mxml
index 3a21b27..9efab2a 100644
--- a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/App.mxml
+++ b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/config/Beans.mxml
@@ -17,20 +17,12 @@ See the License for the specific language governing permissions and
 limitations under the License.
 
 -->
-<j:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
-                xmlns:js="library://ns.apache.org/royale/basic"
-                xmlns:j="library://ns.apache.org/royale/jewel">
+<crux:BeanProvider
+    xmlns:fx="http://ns.adobe.com/mxml/2009"
+	xmlns:crux="library://ns.apache.org/royale/crux"
+	xmlns:mx="library://ns.apache.org/royale/mx">
+	
+    <!-- Add beans -->
+    <!-- <mx:HTTPService id="service"/> -->
 
-    <!-- <fx:Style source="../../main/resources/default.css"/> -->
-
-    <j:valuesImpl>
-        <js:SimpleCSSValuesImpl />
-    </j:valuesImpl>
-
-    <j:initialView>
-        <j:View>
-        	<j:Label text="Hello World!"/>
-        </j:View>
-    </j:initialView>
-    
-</j:Application>
+</crux:BeanProvider>
diff --git a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/asconfig.json b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/events/SomeEvent.as
similarity index 60%
copy from archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/asconfig.json
copy to archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/events/SomeEvent.as
index 1570950..f2ba5c8 100644
--- a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/asconfig.json
+++ b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/events/SomeEvent.as
@@ -16,22 +16,30 @@
 //  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////
+#set($finalpackage = "#if($package != '')$package.#{else}#end")
+package ${finalpackage}events
 {
-    "config": "royale",
-    "compilerOptions": {
-        "debug": false,
-        "targets": ["JSRoyale"],
-        "source-path": [
-            "src/main/resources"
-        ],
-        "source-map": true,
-        "html-template": "src/main/resources/jewel-example-index-template.html",
-        "theme": "${royalelib}/themes/JewelTheme/src/main/resources/defaults.css"
-    },
-    "copySourcePathAssets": true,
-    "additionalOptions": "-js-dynamic-access-unknown-members=true",
-    "files":
-    [
-        "src/main/royale/App.mxml"
-    ]
-}
+	import org.apache.royale.events.Event;
+
+	/**
+	 * Some Event
+	 */
+	public class SomeEvent extends Event
+	{
+		/**
+		 * Actions
+		 */
+		public static const SOME_ACTION:String = "some_action";
+		
+		/**
+         * constructor
+		 * 
+		 * This is just a normal Royale event which will be dispatched from a view instance.
+		 * The only thing to note is that we set 'bubbles' to true, so that the event will bubble
+		 * up the 'display' list, allowing Crux to listen for your events.
+		 */ 
+		public function SomeEvent(type:String) {
+			super(type, true);
+		}
+	}
+}
\ No newline at end of file
diff --git a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/App.mxml b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/views/MainView.mxml
similarity index 63%
rename from archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/App.mxml
rename to archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/views/MainView.mxml
index 3a21b27..22a7894 100644
--- a/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/App.mxml
+++ b/archetypes/royale-jewel-application-archetype/src/main/resources/archetype-resources/src/main/royale/views/MainView.mxml
@@ -17,20 +17,15 @@ See the License for the specific language governing permissions and
 limitations under the License.
 
 -->
-<j:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
-                xmlns:js="library://ns.apache.org/royale/basic"
-                xmlns:j="library://ns.apache.org/royale/jewel">
-
-    <!-- <fx:Style source="../../main/resources/default.css"/> -->
-
-    <j:valuesImpl>
-        <js:SimpleCSSValuesImpl />
-    </j:valuesImpl>
-
-    <j:initialView>
-        <j:View>
-        	<j:Label text="Hello World!"/>
-        </j:View>
-    </j:initialView>
+<j:View xmlns:fx="http://ns.adobe.com/mxml/2009"
+    xmlns:j="library://ns.apache.org/royale/jewel"
+    xmlns:js="library://ns.apache.org/royale/basic">
     
-</j:Application>
+    <j:VGroup>
+#if (${includeCrux} == 'true' || ${includeCrux} == 'yes' || ${includeCrux} == 'y')
+        <j:Label text="Hello Jewel + Crux!"/>
+#else
+        <j:Label text="Hello Jewel!"/>
+#end
+    </j:VGroup>
+</j:View>
\ No newline at end of file