Skip to content
This repository has been archived by the owner on Oct 26, 2022. It is now read-only.

GWT SuperDev issues #37

Closed
hrstoyanovsh opened this issue May 20, 2014 · 3 comments
Closed

GWT SuperDev issues #37

hrstoyanovsh opened this issue May 20, 2014 · 3 comments
Milestone

Comments

@hrstoyanovsh
Copy link

Steffen,
I posted an issue with using the SuperDev mode from you plug-in to the Errai forum, but it feels like the issue is with the this Gwt plug-in - missing something on the classpath when ruuning superDev task (not seeing an HTML template in the source tree?), I suspect:

https://community.jboss.org/message/874528#874528

Here is my build file:

//This Errai Gradle build file uses the following excellent Gradle plug-ins:
// 1. CARGO:
// https://github.com/bmuschko/gradle-cargo-plugin
//
// 2. GWT:
// https://github.com/steffenschaefer/gwt-gradle-plugin

project.description = 's4g web app'

project.ext {
erraiVersion = '3.0.0.CR1'
cargoVersion='1.5'
gwtVersion= '2.6.1'
}

apply plugin: 'war'
apply plugin: 'gwt'
apply plugin: 'cargo'

buildscript {

repositories {
    jcenter()
    maven {
        url 'https://github.com/steffenschaefer/gwt-gradle-plugin/raw/maven-repo/'
    }

    mavenCentral()
}

dependencies {
    classpath "org.gradle.api.plugins:gradle-cargo-plugin:1.5"
    classpath 'de.richsource.gradle.plugins:gwt-gradle-plugin:0.4'
}

}

gwt {
gwtVersion=project.gwtVersion
modules 'com.peruncs.s4g.web.gwt.S4GWebApp'
devModules 'com.peruncs.s4g.web.gwt.S4GWebAppDev'
minHeapSize = "512M";
maxHeapSize = "1024M";

compiler {
    strict = true;
    enableClosureCompiler = true;

    //Does not work fro Errai: https://community.jboss.org/thread/241064
    //disableClassMetadata = true;

    disableCastChecking = true;
    ea = true;
    localWorkers = 2;
}

gwtDev {
    jvmArgs '-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'
    noserver = true;
    port = 8080;
    startupUrl = "s4g-web-1.0/index.jsp";
    codeServerPort = 9997;
}

// dev {
// noserver = true;
// port = 8080;
// startupUrl = "s4g-web-1.0/index.jsp";
// codeServerPort = 9997;
//
// //OLD SETTINGS
//// jvmarg(value: "-DDEBUG") //Jetty debugging
//// jvmarg(value: "-Djava.util.logging.config.file=${project.webInfDir}/logging.properties") //RestEasy logging
//// jvmarg(value: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005")
//// arg(value: "com.peruncs.s4g.web.gwt.S4GWebApp")
//// arg(line: "-startupUrl index.jsp")
//// arg(line: "-war "+project.warDir)
//// arg(line: "-noserver")
//// arg(line: "-port 8080")
//// arg(line: "-codeServerPort 9997")
//// arg(line: "-extra "+ project.gwtExtraDir)
//
//
// }
}

cargo {
containerId = 'wildfly8x'
remote {
hostname = 'localhost'
username = 'admin'
password = 'admin'
}
local {
jvmArgs = '-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n'
homeDir = file("${wildfly_root}")
}
deployable {
file = tasks.draftWar.archivePath
context = 'draft'
}
}

dependencies {

//We exclude some modules, which should have never been referrenced in Errai to begin with!
//Also see http://stackoverflow.com/questions/23508612/gradle-multiple-compile-dependencies-syntax
def compileExcludes = {
    exclude group: 'com.google.gwt' 
    exclude group: 'com.google.guava'
    exclude group: 'javax.enterprise'
    exclude group: 'javax.annotation'
}

//Cargo dependencies. You should only need the uberjar module, but see this discussion:
//https://github.com/bmuschko/gradle-cargo-plugin/issues/78
cargo  'org.codehaus.cargo:cargo-core-uberjar:1.4.8',
       'org.codehaus.cargo:cargo-ant:1.4.8',
       'org.wildfly:wildfly-controller-client:8.1.0.CR1'

compile project(":stocks4grab:s4g-common")

//Java EE
providedCompile "javax:javaee-api:7.0"

//Other compile dependencies
compile 'com.google.guava:guava:17.0'
gwt 'com.google.guava:guava-gwt:17.0'

compile 'commons-lang:commons-lang:2.6'

//Errai dependencies
compile "org.jboss.errai:errai-bus:"+project.erraiVersion, compileExcludes
compile "org.jboss.errai:errai-ioc:"+project.erraiVersion, compileExcludes
compile "org.jboss.errai:errai-cdi-client:"+project.erraiVersion, compileExcludes
compile "org.jboss.errai:errai-weld-integration:"+project.erraiVersion, compileExcludes
compile "org.jboss.errai:errai-data-binding:"+project.erraiVersion, compileExcludes
compile "org.jboss.errai:errai-jpa-client:"+project.erraiVersion, compileExcludes
compile "org.jboss.errai:errai-jpa-datasync:"+project.erraiVersion, compileExcludes

//Cordova is only used for GWT compilation
gwt "org.jboss.errai:errai-cordova:"+project.erraiVersion, compileExcludes
//compile "org.jboss.errai:errai-cordova:"+project.erraiVersion, compileExcludes

compile "org.jboss.errai:errai-jaxrs-client:"+project.erraiVersion, compileExcludes
compile "org.jboss.errai:errai-jaxrs-provider:"+project.erraiVersion, compileExcludes

//Uncomment if you will use Errai 3 Security
//compile "org.jboss.errai:errai-security-server:"+project.erraiVersion, compileExcludes
//compile "org.jboss.errai:errai-security-client:"+project.erraiVersion, compileExcludes

// These are documented in Errai 3 as needed only for gwt compile, which is not true - they are needed at runtime as well.
//gwt "org.jboss.errai:errai-ui:"+project.erraiVersion, compileExcludes
//gwt "org.jboss.errai:errai-navigation:"+project.erraiVersion, compileExcludes


compile "org.jboss.errai:errai-ui:"+project.erraiVersion, compileExcludes
compile "org.jboss.errai:errai-navigation:"+project.erraiVersion, compileExcludes

compile "org.jboss.errai:errai-jboss-as-support:"+project.erraiVersion, compileExcludes

//This seems to be a Errai 3 mistake, which includes dependence on com.google.gwt.junit.server.JUnitHostImpl
//Remove when the Errai team fixes the issue, also remove the JUnit servlet in web.xml
runtime  "com.google.gwt:gwt-user:"+project.gwtVersion

}

@hrstoyanovsh
Copy link
Author

Steffen,
Seems like you provided a workaround here, which seem to work fro me:

#34

Can you please put this in the SuperDev docs?

@steffenschaefer
Copy link
Owner

I'll try to make this configurable by a flag or something similar for the next release (I wasn't aware of this bug in GWT). If I find a viable solution I'll add an example for this to the documentation. The current "solution" is more like a hack for me.

As I would like to get rid of the whole "afterEvaluate" stuff, I think it wouldn't be very clever to add something to the documentation that probably won't work with the next version.

steffenschaefer added a commit that referenced this issue Aug 15, 2014
if src is added to classpath or -src arguments
* default value for this flag is true to work around an issue in GWT
2.5/2.6
* the workaround for #34 and #37 isn't needed anymore with this change
@steffenschaefer
Copy link
Owner

Src is now added to classpath by default as this workaround seems to be needed by almost anyone who uses SDM.

To get the old behavior back, use:

gwt {
    superDev {
        useClasspathForSrc = false
    }
}

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants