-
1. Re: Errai Navigation dependencies
jfuerth Jun 7, 2013 11:11 AM (in response to yagerhard)Hi Mark,
I guess you are you using the dependencies outlined in the reference guide: https://docs.jboss.org/author/display/ERRAI/Errai+UI+Navigation#ErraiUINavigation-GettingStarted -- this information is correct as far as I know.
Can you be specific about what's not working? Full output from a failed GWT compile would help me understand what the problem is.
-Jonathan
-
2. Re: Errai Navigation dependencies
yagerhard Jun 11, 2013 2:36 AM (in response to jfuerth)Hi Jonathan,
Here's the console:
================
2013-06-11 16:25:01.049 java[390:407] [Java CocoaComponent compatibility mode]: Enabled
2013-06-11 16:25:01.050 java[390:407] [Java CocoaComponent compatibility mode]: Setting timeout for SWT to 0.100000
Loading modules
com.mgb.rcs.App
Loading inherited module 'com.mgb.rcs.App'
Loading inherited module 'org.jboss.errai.ui.nav.Navigation'
Loading inherited module 'org.jboss.errai.enterprise.CDI'
[ERROR] Unable to find 'org/jboss/errai/enterprise/CDI.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?
[ERROR] Line 9: Unexpected exception while processing element 'inherits'
com.google.gwt.core.ext.UnableToCompleteException: (see previous log entries)
at com.google.gwt.dev.cfg.ModuleDefLoader.nestedLoad(ModuleDefLoader.java:304)
at com.google.gwt.dev.cfg.ModuleDefSchema$BodySchema.__inherits_begin(ModuleDefSchema.java:493)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.util.xml.HandlerMethod.invokeBegin(HandlerMethod.java:230)
.
.
.
Here's the GWT.xml
=================
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.6//EN" "http://google-web-toolkit.googlecode.com/svn/releases/1.6/distro-source/core/src/gwt-module.dtd"> <!-- ~ Copyright 2009 JBoss, a divison Red Hat, Inc ~ ~ Licensed 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. --> <module rename-to="App">
<inherits name='com.google.gwt.user.User'/> <inherits name="org.jboss.errai.bus.ErraiBus"/> <inherits name="org.jboss.errai.ui.nav.Navigation"/> <source path='client'/> <source path='shared'/> </module>
Here's the pom.xml
========================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright 2009 JBoss, a divison Red Hat, Inc
~
~ Licensed 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>
<name>rcs</name>
<groupId>com.mgb.rcs</groupId>
<artifactId>rcs</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<errai.version>2.3.1.Final</errai.version>
<gwt.version>2.4.0</gwt.version>
<gwt.maven.version>2.4.0</gwt.maven.version>
<slf4j.version>1.6.1</slf4j.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
</properties>
<dependencies>
<!-- Project Dependencies -->
<dependency>
<groupId>org.jboss.errai</groupId>
<artifactId>errai-common</artifactId>
<version>${errai.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.errai</groupId>
<artifactId>errai-bus</artifactId>
<version>${errai.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.errai</groupId>
<artifactId>errai-ioc</artifactId>
<version>${errai.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.errai</groupId>
<artifactId>errai-tools</artifactId>
<version>${errai.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.errai</groupId>
<artifactId>errai-navigation</artifactId>
<version>${errai.version}</version>
</dependency>
<!-- Add navigation requirements here -->
<!-- GWT and GWT Extensions -->
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>
<scope>provided</scope>
<version>${gwt.version}</version>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<scope>provided</scope>
<version>${gwt.version}</version>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-dev</artifactId>
<scope>provided</scope>
<version>${gwt.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- For testing -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<profiles>
<profile>
<id>jetty</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<webDescriptor>jetty</webDescriptor>
</properties>
</profile>
<profile>
<id>jboss5</id>
<properties>
<webDescriptor>jboss5</webDescriptor>
</properties>
<dependencies>
<dependency>
<groupId>org.jboss.errai</groupId>
<artifactId>errai-ioc</artifactId>
<exclusions>
<exclusion>
<artifactId>jsr250-api</artifactId>
<groupId>javax.annotation</groupId>
</exclusion>
</exclusions>
<scope>compile</scope>
<version>${errai.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.15.0-GA</version>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>jboss6</id>
<properties>
<webDescriptor>jboss6</webDescriptor>
</properties>
<dependencies>
<dependency>
<groupId>org.jboss.errai</groupId>
<artifactId>errai-ioc</artifactId>
<exclusions>
<exclusion>
<artifactId>jsr250-api</artifactId>
<groupId>javax.annotation</groupId>
</exclusion>
<exclusion>
<artifactId>javax.inject</artifactId>
<groupId>javax.inject</groupId>
</exclusion>
</exclusions>
<scope>compile</scope>
<version>${errai.version}</version>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.15.0-GA</version>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>jboss7</id>
<properties>
<webDescriptor>jboss7</webDescriptor>
</properties>
</profile>
<profile>
<id>tomcat</id>
<properties>
<webDescriptor>tomcat</webDescriptor>
</properties>
</profile>
<!-- OpenShift Express Profiles -->
<profile>
<id>openshift</id>
<properties>
<webDescriptor>jboss7</webDescriptor>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<outputFileNameMapping>@{artifactId}@-@{baseVersion}@@{dashClassifier?}@.@{extension}@</outputFileNameMapping>
<packagingExcludes>**/javax/**/*.*,**/client/local/**/*.class</packagingExcludes>
<outputDirectory>deployments</outputDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>jboss.package</id>
<phase>prepare-package</phase>
<configuration>
<tasks>
<copy file="src/jboss/web.xml" toDir="src/main/webapp/WEB-INF"
overwrite="true" />
<delete file="src/main/webapp/WEB-INF/jetty-env.xml" />
<delete file="src/main/webapp/WEB-INF/classes/jndi.properties" />
<copy todir="src/main/webapp/app/">
<fileset dir="war.cache/app/" />
</copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>${gwt.maven.version}</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>openshift-prepare</id>
<properties>
<webDescriptor>jboss7</webDescriptor>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warSourceDirectory>war.cache</warSourceDirectory>
<webappDirectory>war.cache</webappDirectory>
<outputFileNameMapping>@{artifactId}@-@{baseVersion}@@{dashClassifier?}@.@{extension}@</outputFileNameMapping>
<packagingExcludes>**/javax/**/*.*,**/client/local/**/*.class</packagingExcludes>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>src/${webDescriptor}</directory>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>jboss.package</id>
<phase>prepare-package</phase>
<configuration>
<tasks>
<copy todir="war.cache/app/">
<fileset dir="src/main/webapp/app/" />
</copy>
<exec executable="git">
<arg value="add" />
<arg value="war.cache" />
</exec>
<exec executable="git">
<arg value="commit" />
<arg value="-a" />
<arg value="-m" />
<arg value="'commit war.cache'" />
</exec>
<echo message="Openshift Prepared!" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile that must be enabled when running integration tests (any test that extends GWTTestCase directly or indirectly) -->
<profile>
<id>integration-test</id>
<properties>
<profile.testOutputDirectory>${basedir}/target/test-classes</profile.testOutputDirectory>
</properties>
<dependencies>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-dev</artifactId>
<version>${gwt.version}</version>
</dependency>
</dependencies>
<build>
<testResources>
<testResource>
<directory>src/test/java</directory>
</testResource>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skipTests>false</skipTests>
<additionalClasspathElements>
<additionalClasspathElement>${profile.testOutputDirectory}/</additionalClasspathElement>
<additionalClasspathElement>${basedir}/src/test/java/</additionalClasspathElement>
<additionalClasspathElement>${basedir}/src/main/java/</additionalClasspathElement>
</additionalClasspathElements>
<useManifestOnlyJar>false</useManifestOnlyJar>
<forkMode>pertest</forkMode>
<!-- Note: to run the test in a real browser, set -DargLine='-Dgwt.args="-runStyle Manual:1"' -->
<argLine>-Xmx512m ${argLine}</argLine>
<systemProperties>
<!-- Must disable long polling for automated tests to succeed -->
<property>
<name>errai.hosted_mode_testing</name>
<value>true</value>
</property>
<property>
<name>gwt.args</name>
<value>-war src/main/webapp</value>
</property>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
<outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>${gwt.maven.version}</version>
<configuration>
<logLevel>INFO</logLevel>
<runTarget>App.html</runTarget>
<extraJvmArgs>-Xmx512m</extraJvmArgs>
<soyc>false</soyc>
<hostedWebapp>src/main/webapp/</hostedWebapp>
<treeLogger>true</treeLogger>
</configuration>
<executions>
<execution>
<goals>
<goal>resources</goal>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warName>${project.artifactId}</warName>
<outputFileNameMapping>@{artifactId}@-@{baseVersion}@@{dashClassifier?}@.@{extension}@</outputFileNameMapping>
<packagingExcludes>**/javax/**/*.*,**/client/local/**/*.class</packagingExcludes>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>src/${webDescriptor}</directory>
</resource>
</webResources>
</configuration>
</plugin>
<!-- Tests are skipped by default because they require additional GWT dependencies.
Run mvn with -Pintegration-test to enable testing. -->
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.jboss.errai</groupId>
<artifactId>jacoco-gwt-maven-plugin</artifactId>
<version>0.5.4.201202141554</version>
<configuration>
<append>false</append>
</configuration>
<executions>
<execution>
<id>jacoco-gwt-prepare-agent</id>
<phase>initialize</phase>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>jacoco-gwt-report</id>
<phase>site</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<filesets>
<fileset>
<directory>${basedir}</directory>
<includes>
<include>www-test/**</include>
<include>.gwt/**</include>
<include>.errai/**</include>
<include>src/main/webapp/WEB-INF/deploy/**</include>
<include>src/main/webapp/WEB-INF/lib/**</include>
<include>src/main/webapp/App/**</include>
<include>**/gwt-unitCache/**</include>
<include>**/*.JUnit/**</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<versionRange>[2.3.0,)</versionRange>
<goals>
<goal>resources</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.jboss.errai</groupId>
<artifactId>jacoco-gwt-maven-plugin</artifactId>
<versionRange>[0.5.0,)</versionRange>
<goals>
<goal>prepare-agent</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore/>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<reporting>
<excludeDefaults>true</excludeDefaults>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>${gwt.maven.version}</version>
<reportSets>
<reportSet>
<reports>
<report>soyc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<!-- Repositories -->
<repositories>
<repository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Maven Repository Group</name>
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
<layout>default</layout>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Maven Repository Group</name>
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
<layout>default</layout>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<updatePolicy>never</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
<!-- DistributionManagement -->
<distributionManagement>
<repository>
<id>jboss-releases-repository</id>
<name>JBoss Releases Repository</name>
<url>https://repository.jboss.org/nexus/service/local/staging/deploy/maven2/</url>
</repository>
<snapshotRepository>
<id>jboss-snapshots-repository</id>
<name>JBoss Snapshots Repository</name>
<url>https://repository.jboss.org/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
</project>
==================================
Many thanks,
MarkB
-
3. Re: Errai Navigation dependencies
jfuerth Jun 11, 2013 9:55 AM (in response to yagerhard)Hi Mark,
Thanks for the information. It looks like you will need to add the following dependency to your build:
<dependency> <groupId>org.jboss.errai</groupId> <artifactId>errai-cdi-client</artifactId> <version>${errai.version}</version> </dependency>
This is a bug in the errai-navigation pom. You should get errai-cdi-client as a transitive dependency of errai-navigation. I'll fix this in the 3.0 branch right away.
-Jonathan
-
4. Re: Errai Navigation dependencies
jfuerth Jun 11, 2013 10:27 AM (in response to jfuerth)Jonathan Fuerth wrote:
This is a bug in the errai-navigation pom. You should get errai-cdi-client as a transitive dependency of errai-navigation. I'll fix this in the 3.0 branch right away.
Actually, I'm going to have to eat those words..
You don't want to deploy errai-cdi-client to the webserver. It's a compile-time-only dependency. If I change its scope to compile in the errai-navigation pom, you would then have to adjust it back to provided in your pom. I will update the docs instead.
Note that we're working on a much better (we hope!) system for importing Errai dependencies rather than depending on them. This will be ready for Errai 3.0. Soon, this whole dependency scope mess should be over.
-Jonathan