WeTheInternet / collide

Fork of Collaborative Web IDE by Google
Apache License 2.0
142 stars 43 forks source link

gwt 2.8.0 not available on maven repository #3

Open JanNoszczyk opened 7 years ago

JanNoszczyk commented 7 years ago

Ive tried building it with ant, and just wouldnt work, the directories are all weird. With gradle it fails to find gwt 2.8.

> Could not find net.wetheinter:xapi-gwt:0.6-SNAPSHOT.
  Searched in the following locations:
      https://repo1.maven.org/maven2/net/wetheinter/xapi-gwt/0.6-SNAPSHOT/maven-metadata.xml
      https://repo1.maven.org/maven2/net/wetheinter/xapi-gwt/0.6-SNAPSHOT/xapi-gwt-0.6-SNAPSHOT.pom
      https://repo1.maven.org/maven2/net/wetheinter/xapi-gwt/0.6-SNAPSHOT/xapi-gwt-0.6-SNAPSHOT.jar
      file:/Users/jannoszczyk/.m2/repository/net/wetheinter/xapi-gwt/0.6-SNAPSHOT/maven-metadata.xml
      file:/Users/jannoszczyk/.m2/repository/net/wetheinter/xapi-gwt/0.6-SNAPSHOT/xapi-gwt-0.6-SNAPSHOT.pom
      file:/Users/jannoszczyk/.m2/repository/net/wetheinter/xapi-gwt/0.6-SNAPSHOT/xapi-gwt-0.6-SNAPSHOT.jar
  Required by:
      de.mocra.cy:api:0.6-SNAPSHOT
> Could not find net.wetheinter:gwt-user:2.8.0.
  Searched in the following locations:
      https://repo1.maven.org/maven2/net/wetheinter/gwt-user/2.8.0/gwt-user-2.8.0.pom
      https://repo1.maven.org/maven2/net/wetheinter/gwt-user/2.8.0/gwt-user-2.8.0.jar
      file:/Users/jannoszczyk/.m2/repository/net/wetheinter/gwt-user/2.8.0/gwt-user-2.8.0.pom
      file:/Users/jannoszczyk/.m2/repository/net/wetheinter/gwt-user/2.8.0/gwt-user-2.8.0.jar
  Required by:
      de.mocra.cy:api:0.6-SNAPSHOT
> Could not find net.wetheinter:gwt-elemental:2.8.0.
  Searched in the following locations:
      https://repo1.maven.org/maven2/net/wetheinter/gwt-elemental/2.8.0/gwt-elemental-2.8.0.pom
      https://repo1.maven.org/maven2/net/wetheinter/gwt-elemental/2.8.0/gwt-elemental-2.8.0.jar
      file:/Users/jannoszczyk/.m2/repository/net/wetheinter/gwt-elemental/2.8.0/gwt-elemental-2.8.0.pom
      file:/Users/jannoszczyk/.m2/repository/net/wetheinter/gwt-elemental/2.8.0/gwt-elemental-2.8.0.jar
  Required by:
      de.mocra.cy:api:0.6-SNAPSHOT
> Could not find net.wetheinter:gwt-dev:2.8.0.
  Searched in the following locations:
      https://repo1.maven.org/maven2/net/wetheinter/gwt-dev/2.8.0/gwt-dev-2.8.0.pom
      https://repo1.maven.org/maven2/net/wetheinter/gwt-dev/2.8.0/gwt-dev-2.8.0.jar
      file:/Users/jannoszczyk/.m2/repository/net/wetheinter/gwt-dev/2.8.0/gwt-dev-2.8.0.pom
      file:/Users/jannoszczyk/.m2/repository/net/wetheinter/gwt-dev/2.8.0/gwt-dev-2.8.0.jar
  Required by:
      de.mocra.cy:api:0.6-SNAPSHOT

Is there any way to go around it? I have gwt 2.7 installed. Ive tried to install xapi apis but they are not working either when i use mvn install Ive tried changing gwt version in gradle build files to 2.7 insted but didnt work either.

JanNoszczyk commented 7 years ago

Ive changed all 2.8s to 2.7s and 6-SNAPSHOTs to 5.0, downloaded the files (even though older versions) but now i run into problems with java, with openjdk 1.7 as my main java

openjdk version "1.7.0-internal"
OpenJDK Runtime Environment (build 1.7.0-internal-b00)
OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode)

i get

:api:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':api:compileJava'.
> java.lang.EnumConstantNotPresentException: javax.lang.model.SourceVersion.RELEASE_8

suggesting that it wants 1.8 back. going back to 1.8...


:shared:compileJava
warning: Supported source version 'RELEASE_7' from annotation processor 'xapi.dev.processor.InjectionAnnotationProcessor' less than -source '1.8'
/Users/jannoszczyk/Desktop/collide-superdev/shared/src/main/java/collide/shared/collect/ArrayOfStringIterable.java:25: error: cannot find symbol
        array = X_Reflect.fieldGet(JreArrayOfString.class, "array", strings);
                         ^
  symbol:   method fieldGet(Class<JreArrayOfString>,String,ArrayOfString)
  location: class X_Reflect
/Users/jannoszczyk/Desktop/collide-superdev/shared/src/main/java/collide/shared/collect/Collections.java:33: error: cannot find symbol
        return asList(X_Reflect.<ArrayOf<String>>fieldGet(JreArrayOfString.class, "array", array));
                               ^
  symbol:   method <ArrayOf<String>>fieldGet(Class<JreArrayOfString>,String,ArrayOfString)
  location: class X_Reflect
/Users/jannoszczyk/Desktop/collide-superdev/shared/src/main/java/collide/shared/collect/Collections.java:50: error: cannot find symbol
        ret.addAll(X_Reflect.<List<T>>fieldGet(JreArrayOf.class, "array", array));
                            ^
  symbol:   method <List<T>>fieldGet(Class<JreArrayOf>,String,ArrayOf<T>)
  location: class X_Reflect
  where T is a type-variable:
    T extends Object declared in method <T>asList(ArrayOf<T>)
/Users/jannoszczyk/Desktop/collide-superdev/shared/src/main/java/com/google/collide/shared/plugin/PublicServices.java:18: error: incompatible types: cannot infer type-variable(s) V
    services = X_Collect.newList(PublicService.class);
                                ^
    (argument mismatch; Class<PublicService> cannot be converted to Class<? extends PublicService<?>>)
  where V is a type-variable:
    V extends Object declared in method <V>newList(Class<? extends V>)
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
4 errors
1 warning
:shared:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':shared:compileJava'.
> Compilation failed; see the compiler error output for details.
JamesXNelson commented 7 years ago

Hi!

My apologies on uploading code that can't be built at the moment by the outside world.

I am running gwt 2.8 locally from https://github.com/WeTheInternet/gwt-sandbox The fork above contains various extras like reflection support and magic method injection, which I use in the xapi framework (that I built and maintain, and am using in Collide).

Since you have expressed interest in the project, I will make sure (1) to upload a version that you can build and run locally this weekend. Note that the usage of xapi is somewhat light at this point in time, but I am reviving collide specifically to create an IDE for the xapi user interface templating language.

(1) : My wife is ~nine months pregnant with our firstborn, so I may actually spend this weekend in the hospital welcoming my son to planet Earth instead.

This templating language looks like JSX from React js, except it is for java, and is run through a code generator that generates cross-platform user interfaces; it allows declarative html-like markup to be mixed with json, css and java. The first pass creates an abstract base class that can be used in gwt, javafx and others, then implementation-specific generators extend that class with platform-specific ui wiring. It's very much a work in progress, and I will not only be using collide for the editor, I will also be ripping out all the UI binder in the project, and replacing it with this templating language.

Example code:

@Ui(`
   // html
    <box 
        // css
         style=.className { color: blue; } 
         // json
         data = { text: "Hello" } 
         // java
         onClick = e -> this.setText(this.data.text + " World!")
 />`)
  public interface MyWidget {}
JamesXNelson commented 7 years ago

Once GWT themselves release 2.8 to the world, I will do another rebase, make sure all my tests pass, and then push jars to maven central. In the meanwhile, the aforelinked project has a ./run.sh script that should build and deploy jars locally. It assumes gwt-sandbox has a sibling directory, tools, which is a clone of the gwt tools repo: https://github.com/gwtproject/tools

PS: I've completely removed all ant and maven... It was a bit of a rat's nest with no need to be so complex. I will ping you directly when I have a version that should be stable enough to test.

JanNoszczyk commented 7 years ago

Thank you for such a quick and elaborate answer. I am currently working on an online programming tutorials project, and collide seemes like a great starting point. I will try again updating my gwt after the weeken, and try to run collide, ill keep you updated. I am also really looking forward to the new ide you mentioned. I wish you and your family all the best :)

JamesXNelson commented 7 years ago

Many thanks good sir. I may just upload jars that you could download to build locally without trying to get everything else to build as well. The existing project from google had all dependencies checked into git, so they are currently bloating git history with a ton of binary data; I intend to scrub all jars from the history so that you only need to download code, but until that time, a few more jars won't hurt (too much). :-)

SamuelMarks commented 7 years ago

Same issue a couple of months later:

:tasks FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':tasks'.
> Could not resolve all dependencies for configuration ':server:runtime'.
   > Could not find net.wetheinter:xapi-gwt:0.6-SNAPSHOT.
     Searched in the following locations:
         https://repo1.maven.org/maven2/net/wetheinter/xapi-gwt/0.6-SNAPSHOT/maven-metadata.xml
         https://repo1.maven.org/maven2/net/wetheinter/xapi-gwt/0.6-SNAPSHOT/xapi-gwt-0.6-SNAPSHOT.pom
         https://repo1.maven.org/maven2/net/wetheinter/xapi-gwt/0.6-SNAPSHOT/xapi-gwt-0.6-SNAPSHOT.jar
         file:/root/.m2/repository/net/wetheinter/xapi-gwt/0.6-SNAPSHOT/maven-metadata.xml
         file:/root/.m2/repository/net/wetheinter/xapi-gwt/0.6-SNAPSHOT/xapi-gwt-0.6-SNAPSHOT.pom
         file:/root/.m2/repository/net/wetheinter/xapi-gwt/0.6-SNAPSHOT/xapi-gwt-0.6-SNAPSHOT.jar
     Required by:
         project :server > project :client
         project :server > project :client > project :shared
         project :server > project :client > project :shared > project :api
   > Could not find net.wetheinter:xapi-dev:0.6-SNAPSHOT.
     Searched in the following locations:
         https://repo1.maven.org/maven2/net/wetheinter/xapi-dev/0.6-SNAPSHOT/maven-metadata.xml
         https://repo1.maven.org/maven2/net/wetheinter/xapi-dev/0.6-SNAPSHOT/xapi-dev-0.6-SNAPSHOT.pom
         https://repo1.maven.org/maven2/net/wetheinter/xapi-dev/0.6-SNAPSHOT/xapi-dev-0.6-SNAPSHOT.jar
         file:/root/.m2/repository/net/wetheinter/xapi-dev/0.6-SNAPSHOT/maven-metadata.xml
         file:/root/.m2/repository/net/wetheinter/xapi-dev/0.6-SNAPSHOT/xapi-dev-0.6-SNAPSHOT.pom
         file:/root/.m2/repository/net/wetheinter/xapi-dev/0.6-SNAPSHOT/xapi-dev-0.6-SNAPSHOT.jar
     Required by:
         project :server > project :client
         project :server > project :client > project :shared
   > Could not find net.wetheinter:gwt-user:2.8.0.
     Searched in the following locations:
         https://repo1.maven.org/maven2/net/wetheinter/gwt-user/2.8.0/gwt-user-2.8.0.pom
         https://repo1.maven.org/maven2/net/wetheinter/gwt-user/2.8.0/gwt-user-2.8.0.jar
         file:/root/.m2/repository/net/wetheinter/gwt-user/2.8.0/gwt-user-2.8.0.pom
         file:/root/.m2/repository/net/wetheinter/gwt-user/2.8.0/gwt-user-2.8.0.jar
     Required by:
         project :server > project :client
         project :server > project :client > project :shared
         project :server > project :client > project :shared > project :api
   > Could not find net.wetheinter:gwt-elemental:2.8.0.
     Searched in the following locations:
         https://repo1.maven.org/maven2/net/wetheinter/gwt-elemental/2.8.0/gwt-elemental-2.8.0.pom
         https://repo1.maven.org/maven2/net/wetheinter/gwt-elemental/2.8.0/gwt-elemental-2.8.0.jar
         file:/root/.m2/repository/net/wetheinter/gwt-elemental/2.8.0/gwt-elemental-2.8.0.pom
         file:/root/.m2/repository/net/wetheinter/gwt-elemental/2.8.0/gwt-elemental-2.8.0.jar
     Required by:
         project :server > project :client
         project :server > project :client > project :shared
         project :server > project :client > project :shared > project :api
   > Could not find net.wetheinter:gwt-codeserver:2.8.0.
     Searched in the following locations:
         https://repo1.maven.org/maven2/net/wetheinter/gwt-codeserver/2.8.0/gwt-codeserver-2.8.0.pom
         https://repo1.maven.org/maven2/net/wetheinter/gwt-codeserver/2.8.0/gwt-codeserver-2.8.0.jar
         file:/root/.m2/repository/net/wetheinter/gwt-codeserver/2.8.0/gwt-codeserver-2.8.0.pom
         file:/root/.m2/repository/net/wetheinter/gwt-codeserver/2.8.0/gwt-codeserver-2.8.0.jar
     Required by:
         project :server > project :client
   > Could not find net.wetheinter:gwt-dev:2.8.0.
     Searched in the following locations:
         https://repo1.maven.org/maven2/net/wetheinter/gwt-dev/2.8.0/gwt-dev-2.8.0.pom
         https://repo1.maven.org/maven2/net/wetheinter/gwt-dev/2.8.0/gwt-dev-2.8.0.jar
         file:/root/.m2/repository/net/wetheinter/gwt-dev/2.8.0/gwt-dev-2.8.0.pom
         file:/root/.m2/repository/net/wetheinter/gwt-dev/2.8.0/gwt-dev-2.8.0.jar
     Required by:
         project :server > project :client
         project :server > project :client > project :shared
         project :server > project :client > project :shared > project :api

Any chance of getting things to work in the real-world? :8ball:

JamesXNelson commented 7 years ago

Hi Samuel.

My sincere apologies, between my baby, my job, creating a ui templating language (to replace ui binder in collide with cross-platform components), and launching a project using all those tools, I clean forget to look at my github notifications for... a very long time.

I know you've probably long since moved on, but, if there are still signs of life, I am going to do a 2.8 release of my fork, along w/ a demo of said ui language + demo project, within the month.

A colleague and I are considering setting up a shop to maintain the 2.X line of GWT long enough to help port enough remains into the 3.X line, so the dependency will definitely be getting more regular updates... Collide will also be getting wired up as the editor for xapi templating language, then dogfooding the lang as replacement for UI binder. Sprinkle in apt/javac generators to replace various 2.X generators, add buttons to perform whatever build steps needed to generate uis or run gwtc, etc, then get clients who want to migrate from 2.X to 3.X to fund the effort fulltime.

By making it my source of income, I won't have to split time between day job and life's work, and will respond to pings in a timeframe far smaller than months. :-)