>From what I can tell - the Aerogear scaffold is not being picked up as a ScaffoldProvider, which is odd...

Ryan, have you actually tried running your scaffold provider in a real forge runtime? Does it get picked up when you run scaffold setup --scaffoldType xxxxx ?

~Lincoln

On Tue, Feb 28, 2012 at 4:23 PM, Richard Kennard <richard@kennardconsulting.com> wrote:
Pete: could you try running with VERBOSE set to true?

Lincoln: could you take a look at this? I actually can't get plugins working on my Windows machine (see earlier post), so I've just been building via unit tests this whole time (see https://github.com/forge/scaffold-aerogear/blob/master/src/test/java/org/jboss/forge/scaffold/aerogear/scenario/employeedatabase/AeroGearScaffoldEmployeeDatabaseTest.java).

On 29/02/2012 1:19 AM, Pete Muir wrote:
Getting there, now get an error running scaffold:

***SUCCESS*** Installed from [git://github.com/forge/scaffold-aerogear.git] successfully.
Wrote /Users/pmuir/.forge/plugins/org/jboss
Wrote /Users/pmuir/.forge/plugins/org/jboss/forge
Wrote /Users/pmuir/.forge/plugins/org/jboss/forge/plugins
Wrote /Users/pmuir/.forge/plugins/org/jboss/forge/plugins/aerogear
Wrote /Users/pmuir/.forge/plugins/org/jboss/forge/plugins/aerogear/plugin-scaffold-aerogear
Wrote /Users/pmuir/.forge/plugins/org/jboss/forge/plugins/aerogear/plugin-scaffold-aerogear/1.0.0-SNAPSHOT-979983d6-c420-45db-960a-6a0b37ea8ed1
Wrote /Users/pmuir/.forge/plugins/org/jboss/forge/plugins/aerogear/plugin-scaffold-aerogear/1.0.0-SNAPSHOT-979983d6-c420-45db-960a-6a0b37ea8ed1/plugin-scaffold-aerogear.jar
Wrote /Users/pmuir/.forge/plugins/org/jboss/forge/plugins/aerogear/plugin-scaffold-aerogear/1.0.0-SNAPSHOT-979983d6-c420-45db-960a-6a0b37ea8ed1/module.xml
Wrote /Users/pmuir/.forge/plugins/org/jboss/forge/plugins/aerogear/plugin-scaffold-aerogear/dependencies
Wrote /Users/pmuir/.forge/plugins/org/jboss/forge/plugins/aerogear/plugin-scaffold-aerogear/dependencies/1.0.0-SNAPSHOT-979983d6-c420-45db-960a-6a0b37ea8ed1
Wrote /Users/pmuir/.forge/plugins/org/jboss/forge/plugins/aerogear/plugin-scaffold-aerogear/dependencies/1.0.0-SNAPSHOT-979983d6-c420-45db-960a-6a0b37ea8ed1/metawidget-all-2.1-SNAPSHOT.jar
Wrote /Users/pmuir/.forge/plugins/org/jboss/forge/plugins/aerogear/plugin-scaffold-aerogear/dependencies/1.0.0-SNAPSHOT-979983d6-c420-45db-960a-6a0b37ea8ed1/module.xml
[no project] workspace $ new-project --named test --topLevelPackage com.test --type war
 ? Use [/Users/pmuir/workspace/test] as project directory? [Y/n]
***SUCCESS*** Created project [test] in new working directory [/Users/pmuir/workspace/test]
Wrote /Users/pmuir/workspace/test
Wrote /Users/pmuir/workspace/test/pom.xml
Wrote /Users/pmuir/workspace/test/src/main/java
Wrote /Users/pmuir/workspace/test/src/test/java
Wrote /Users/pmuir/workspace/test/src/main/webapp
Wrote /Users/pmuir/workspace/test/src/main/resources
Wrote /Users/pmuir/workspace/test/src/test/resources
Wrote /Users/pmuir/workspace/test/src/main/resources/META-INF/forge.xml
[test] test $ persistence setup
 ? [provider=ARG (of type org.jboss.forge.spec.javaee.jpa.api.JPAProvider)]:
 ? [provider=ARG (of type org.jboss.forge.spec.javaee.jpa.api.JPAProvider)]: HIBERNATE
 ? [container=ARG (of type org.jboss.forge.spec.javaee.jpa.api.JPAContainer)]: JBOSS_AS
JBOSS_AS6    JBOSS_AS7
 ? [container=ARG (of type org.jboss.forge.spec.javaee.jpa.api.JPAContainer)]: JBOSS_AS7
Warning:  The encoding 'UTF-8' is not supported by the Java runtime.
***SUCCESS*** Installed [forge.spec.jpa] successfully.
***INFO*** Setting transaction-type="JTA"
***INFO*** Using example data source [java:jboss/datasources/ExampleDS]
Warning:  The encoding 'UTF-8' is not supported by the Java runtime.
 ? The JPA provider [HIBERNATE], also supplies extended APIs. Install these as well? [y/N]
***SUCCESS*** Persistence (JPA) is installed.
Wrote /Users/pmuir/workspace/test/src/main/resources/META-INF/persistence.xml
Wrote /Users/pmuir/workspace/test/pom.xml
[test] test $ scaffold setup --scaffoldType aerogear
***ERROR*** [scaffold setup] null
[test] test $ scaffold setup --scaffoldType aerogear
***ERROR*** [scaffold setup] null
[test] test $


On 28 Feb 2012, at 00:21, Richard Kennard wrote:

Apologies. I forgot to update the Metawidget 2.1-SNAPSHOT in the JBoss repo. Please try again now? Or, at a pinch, the blog entry contains a link to the generated project.

Regards,

Richard.

On 28/02/2012 12:01 AM, Pete Muir wrote:
I get an error when trying to install the plugin:

[no project] development $ forge git-plugin git://github.com/forge/scaffold-aerogear.git
***INFO*** Checking out plugin source files to [/var/folders/ph/8l1qbzzj23x7r628rqg5fqq00000gn/T/forgetemp2637555117540383425/repo] via 'git'
***WARNING*** Could not find a Ref matching the current Forge version [1.0.0.CR2], building Plugin from HEAD.
***INFO*** Invoking build with underlying build system.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building plugin-scaffold-aerogear 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ plugin-scaffold-aerogear ---
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ plugin-scaffold-aerogear ---
[debug] execute contextualize
[WARNING] Using platform encoding (MacRoman actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 21 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ plugin-scaffold-aerogear ---
[WARNING] File encoding has not been set, using platform encoding MacRoman, i.e. build is platform dependent!
[INFO] Compiling 12 source files to /private/var/folders/ph/8l1qbzzj23x7r628rqg5fqq00000gn/T/forgetemp2637555117540383425/repo/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /private/var/folders/ph/8l1qbzzj23x7r628rqg5fqq00000gn/T/forgetemp2637555117540383425/repo/src/main/java/org/jboss/forge/scaffold/aerogear/metawidget/layout/HtmlDivLayout.java:[48,18] cannot find symbol
symbol  : method getWidgetId(org.metawidget.statically.StaticXmlWidget)
location: class org.jboss.forge.scaffold.aerogear.metawidget.layout.HtmlDivLayout
[ERROR] /private/var/folders/ph/8l1qbzzj23x7r628rqg5fqq00000gn/T/forgetemp2637555117540383425/repo/src/main/java/org/jboss/forge/scaffold/aerogear/metawidget/layout/HtmlDivLayout.java:[44,3] method does not override or implement a method from a supertype
[INFO] 2 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.255s
[INFO] Finished at: Mon Feb 27 12:59:37 GMT 2012
[INFO] Final Memory: 14M/125M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project plugin-scaffold-aerogear: Compilation failure: Compilation failure:
[ERROR] /private/var/folders/ph/8l1qbzzj23x7r628rqg5fqq00000gn/T/forgetemp2637555117540383425/repo/src/main/java/org/jboss/forge/scaffold/aerogear/metawidget/layout/HtmlDivLayout.java:[48,18] cannot find symbol
[ERROR] symbol  : method getWidgetId(org.metawidget.statically.StaticXmlWidget)
[ERROR] location: class org.jboss.forge.scaffold.aerogear.metawidget.layout.HtmlDivLayout
[ERROR] /private/var/folders/ph/8l1qbzzj23x7r628rqg5fqq00000gn/T/forgetemp2637555117540383425/repo/src/main/java/org/jboss/forge/scaffold/aerogear/metawidget/layout/HtmlDivLayout.java:[44,3] method does not override or implement a method from a supertype
[ERROR] ->   [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
***ERROR*** [forge git-plugin] Build failed.
[no project] development $ version
JBoss Forge, version [ 1.0.0.CR2 ] - JBoss, by Red Hat, Inc. [ http://jboss.org/forge ]
[no project] development $

On 24 Feb 2012, at 20:44, Richard Kennard wrote:

Pete, Jay, Rodney,

The work I have checked in to GitHub...

   https://github.com/forge/scaffold-aerogear

...and the blog entry I have documented...

   https://community.jboss.org/thread/195877

...brings me to 240 hours (well, a little over, but I won't complicate things :). So I guess that concludes the contract we first discussed last October, the deliverables being 'A statically generated, extend-able [JSF] UI scaffold framework for Forge' and 'Investigation of use of Metawidget in Mobile'.

Thank you for giving me this opportunity. I have enjoyed the work immensely, have learnt a lot, and everybody has been very helpful and supportive. I hope what I've produced has met your expectations.

I look forward to hearing from Jay regarding the AeroGear proof of concept, and to our contract meeting on 1st March.

Thanks again,

Richard.

On 17/02/2012 10:57 PM, Jay Balunas wrote:
On Feb 17, 2012, at 1:52 AM, Richard Kennard<richard@kennardconsulting.com>    wrote:

Jay,

look forward to seeing what you are planning, and working on.
Yes, sorry to be leaving you in the dark. Progress was slow at the start (I've never used JQuery or JSON or HTML 5), but is now coming together nicely. I'm 32 hours in with 31 hours left in the contact. I should be able to do another 15 hours or so before March 1st, by which time I should have something to show you.
Excellent!

Regards,

Richard.

On 16/02/2012 1:00 PM, Jay Balunas wrote:
On Feb 15, 2012, at 8:58 PM, Richard Kennard wrote:

Jay,

Okay great. There is a meeting on 1st March with Pete, Rodney and myself to discuss The Future. You may want to attend, or talk to them before that?
Absolutely!  I'll touch base with them about that, and look forward to seeing what you are planning, and working on.

Regards,

Richard.

On 16/02/2012 12:12 PM, Jay Balunas wrote:
On Feb 15, 2012, at 6:49 PM, Richard Kennard<richard@kennardconsulting.com>      wrote:

Jay,

By runtime generation, you mean JavaScript generating HTML widgets dynamically in response to inspecting/reflecting incoming metadata?
+1

The current POC is focussed on *static* generation of HTML widgets (at 'Forge time'). So you are talking about the work beyond that?
Understood, and yes this would be something additional.

For an example, please see the 'GWT Client Side' demo in the Metawidget examples distribution. This is written using GWT compiled to JavaScript. Are you are asking for something similar, but a POH5 version?
The GWT solution could be very interesting, both the approach and the possible implication with poh5 (not mutually exclusive)

Regards,

Richard.

On 16/02/2012 2:22 AM, Jay Balunas wrote:
Hi Richard,

I wanted to follow up on this, I know you only work Fridays on the JBoss stuff, so I wanted to catch you before that.

There may also be pressure to get some of the POH5 runtime generation in place for JBoss World, so I wanted to discuss you expected availability between now and then.

I'd like to see your contract extended, but wanted to check with you first.

Thoughts?

-Jay

On Feb 10, 2012, at 7:50 AM, Marius Bogoevici wrote:

The convention is to use different URLs for Create/Update, e.g.

POST /members ->       create

PUT /members/1 (or POST /members/1 take that, oppressive RESTful conventional wisdom  ;) ) UPDATE

To me, it's not inconceivable that clients of such a service will perform ad-hoc updates (i.e. not part of a GET data/UPDATE data cycle), so assuming that there's a conversation going on won't help too much.

I believe that such a service (especially if scaffolded with Forge) should use JSON throughout (rather than form data), and I *believe* this is what the Forge JAX-RS plugin does too, but I would have to check on that. In a more elaborate context like Forge, we could pair that with Backbone.js (or something else that Jay&co love, but I think Bb.js was the belle of the ball) and use fetch()/save()/destroy() capabilities to streamline CRUD. IMO.


On 12-02-10 5:43 AM, Pete Muir wrote:
Adding Marius.

BTW Richard, I'm sure you know this but Lincoln added JAX-RS scaffold to Forge. Whatever we do here should be well integrated with that...

On 10 Feb 2012, at 04:40, Richard Kennard wrote:

Jay,

(please advise if there is an aerogear group I should be posting this to).

As a first step towards a Forge/Metawidget/AeroGear/POH5 scaffolding, I am working on a POH5 CRUD app. The 'jboss-html5-mobile-archetype' has given me a great head start, but there is some way to go.

The first significant roadblock I have hit is *updating* existing entities. The archetype doesn't really cover this, but it sets a direction when it does...

  @POST
  @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
  @Produces(MediaType.APPLICATION_JSON)
  public Response createMember(@FormParam("name") String name ...

A simple approach would be to simply add...

  @POST
  @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
  @Produces(MediaType.APPLICATION_JSON)
  public Response createMember(@FormParam("id") String id, @FormParam("name") String name ...

However this would make the cardinal mistake of 'trusting the client' (to send back the original id). Instead, I think we need to keep a copy of any hidden data on the server, in a ConversationScope, just as we do with JSF.

Unfortunately RESTEasy doesn't seem to play well with ConversationScope? The documentation for resteasy-cdi is unclear, but Jason Porter has investigated and concluded conversations are not supported (as REST does not convey any kind of session, let alone a conversation). So where to from here?

1. Ignore this security problem and continue passing hidden data to/from the client
2. Look at encrypting the data passed between client/server (rather like an encrypted view state)
3. Work with Pete/Jozef to get ConversationScopes working between jQuery/RESTEasy/CDI
4. Something else?

Regards,

Richard.







--
Lincoln Baxter, III
http://ocpsoft.com
http://scrumshark.com
"Keep it Simple"