[Help Requested] Documentation updates
by Lincoln Baxter, III
Hi everyone :)
We're coming up on the CR1 release of Forge, and we'd like to get some of
the documentation updated so that using Forge and writing Forge plugins is
easier than ever! This means that we need help creating some new pages in
the Forge Documentation <https://docs.jboss.org/author/display/FORGE>
If you could spend a little time:
- Identifying what information is missing
- Creating or editing pages to bring this information up to date
Just email the list with what you think needs to be included or updated,
and we'll figure out the best place for you to put it!
Thank you for your help!
--
Lincoln Baxter, III
http://ocpsoft.com
http://scrumshark.com
"Keep it Simple"
12 years, 9 months
Help with RichFaces testing (FORGE-460)
by Richard Kennard
Hi guys,
Can someone help with RichFaces testing? Currently in...
org.jboss.forge.scaffold.faces.FacesScaffoldTest.testGenerateFromEntityWithRichFaces()
...I have a commented out line...
Project project = setupScaffoldProject();
// getShell().execute("richfaces setup");
How can I make that line work? How can I get the plugin installed for my test?
Regards,
Richard.
12 years, 11 months
Packaging Forge for Linux
by Dan Allen
Creating and publishing Forge packages for Linux (Fedora, Debian & Ubuntu)
would really help boost adoption of Forge, IMO. Telling someone to download
an unzip seems simple enough, but there's just something even more elegant
about:
sudo apt-get install jboss-forge
or
sudo yum install jboss-forge
(no sudo if you're hip enough, one of those GUIs if your glitzy enough)
I just discovered today that Fedora is trying to make package development
easier than ever for Java developers. They've created a plugin for Eclipse
[1] that walks you through creating a package, starting from git clone all
the way to publish to Bodhi [2] (think of it like Nexus for Fedora, sort
of).
This may seem premature, but *trust me*, we want to think about this *well*
in advance so that we have some chance of getting into Fedora 17 or 18.
(The process for Debian / Ubuntu may go faster).
Btw, this will likely relate, tie into or help drive the JBoss AS7 on
Fedora initiative [3].
-Dan
[1] http://fedoraproject.org/wiki/Fedora_Packager_For_Eclipse_User_Guide
[2] http://fedoraproject.org/wiki/Bodhi
[3] http://fedoraproject.org/wiki/JBossAS7
--
Dan Allen
Principal Software Engineer, Red Hat | Author of Seam in Action
Registered Linux User #231597
http://google.com/profiles/dan.j.allen
http://mojavelinux.com
http://mojavelinux.com/seaminaction
12 years, 11 months
Data access logic used by scaffold code
by Dan Allen
Richard and Jason,
Both of you are working on (polished) code to provide CRUD functionality in
Java EE 6 / CDI, code that was laid down for Seam 2 applications by
seam-gen. Namely, you are replacing the Home and Query components, Richard
for the Forge scaffolding and Jason for migrating a seam-gen app to Java EE
6.
Ideally, you'll both reach the same endpoint. By that, I mean that the CRUD
architecture in a new Forge application should match the code that we
recommend for developers migrating from Seam 2 (specifically seam-gen
apps). Otherwise, developers are going to be stuck trying to decide which
direction to go...and that's no good obviously.
Richard, I noticed that you are taking the no framework route by using the
EntityManager directly and weaving both CRUD, conversation and pagination
in a single component. Are you fixed on doing it that way, or would you
consider using something like the CDI Query extension developed by Thomas
and Bartosz from CTP [1]?
I'm not trying to push you guys in either direction, other than I hope that
we can settle on a single approach to become the recommended way of doing
CRUD. The Seam community has been asking for a CRUD and Query module for a
looooooong time, and we are now at the point where we actually need it
ourselves.
I'm interested to hear your feedback, and anyone else that has opinions or
ideas for that matter.
-Dan
[1] http://ctpconsulting.github.com/query/1.0.0.Alpha2/index.html
--
Dan Allen
Principal Software Engineer, Red Hat | Author of Seam in Action
Registered Linux User #231597
http://google.com/profiles/dan.j.allen
http://mojavelinux.com
http://mojavelinux.com/seaminaction
12 years, 11 months
Re: [forge-dev] Weird error again....
by Lincoln Baxter
Hey Tom,
(cc'ing dev list)
I'm not exactly sure why this is happening. As long as the plugins are distributed as a single module, all resource-roots in that module should have classloader visibility between one another. They should also prefer their local classes over classes in other classloaders if there is duplication.
Where can I try this out?
~Lincoln
----- Original Message -----
From: "Tom Cunningham" <tcunning(a)redhat.com>
To: "Lincoln Baxter" <lbaxter(a)redhat.com>
Sent: Saturday, December 17, 2011 1:24:57 AM
Subject: Weird error again....
Lincoln,
I'm seeing a weird error on SNAPSHOT again that I think I've seen
before. We managed to remove the shading and got our plugins to
work with 1.0.0-Beta3, but when I go to SNAPSHOT I'm seeing the
exception at the bottom of this email when it tries to find
"org.switchyard.tools.forge.plugin.SwitchYardFacet". We've put a
number of different plugins inside a common module, and SwitchYardFacet
is in switchyard.forge-plugin-0.4.0-SNAPSHOT.jar. Can a facet in
one of the other plugin JARs refer to that one? Do I need to go back
to shading?
Example - this Facet is in switchyard-camel-plugin-0.4.0-SNAPSHOT.jar
but refers to SwitchYardFacet which is in another resource-root :
switchyard-forge-plugin-0.4.0-SNAPSHOT.jar.
import org.switchyard.tools.forge.plugin.SwitchYardFacet;
/**
* Forge facet for Camel bindings and services.
*/
@Alias("switchyard.camel")
@RequiresFacet({ DependencyFacet.class, PackagingFacet.class,
SwitchYardFacet.class })
@RequiresPackagingType(PackagingType.JAR)
public class CamelFacet extends AbstractFacet {
module.xml :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<module xmlns="urn:jboss:module:1.0"
name="org.switchyard.switchyard-forge-plugin" slot="0.4.0-SNAPSHOT">
<resources>
<!-- plugin dependencies that must be local to this module -->
<resource-root path="switchyard-forge-common-0.4.0-SNAPSHOT.jar"/>
<resource-root path="switchyard-component-common-rules-0.4.0-SNAPSHOT.jar"/>
<!-- core and component plugins -->
<resource-root path="switchyard-forge-plugin-0.4.0-SNAPSHOT.jar"/>
<resource-root path="switchyard-forge-bean-plugin-0.4.0-SNAPSHOT.jar"/>
<resource-root path="switchyard-forge-soap-plugin-0.4.0-SNAPSHOT.jar"/>
<resource-root path="switchyard-forge-rules-plugin-0.4.0-SNAPSHOT.jar"/>
<resource-root path="switchyard-forge-bpm-plugin-0.4.0-SNAPSHOT.jar"/>
<resource-root path="switchyard-forge-camel-plugin-0.4.0-SNAPSHOT.jar"/>
</resources>
Error - the missing Type seems to be SwitchYardFacet :
tcunning@localhost:tmp]$ forge
Listening for transport dt_socket at address: 8787
Plugin system disabled due to failure while loading one or more plugins;
try removing offending plugins with "forge remove-plugin <TAB>".
com.google.common.collect.ComputationException:
java.lang.ArrayStoreException:
sun.reflect.annotation.TypeNotPresentExceptionProxy
at
com.google.common.collect.ComputingConcurrentHashMap.compute(ComputingConcurrentHashMap.java:218)
at
com.google.common.collect.ComputingConcurrentHashMap.apply(ComputingConcurrentHashMap.java:100)
at
com.google.common.collect.MapMaker$ComputingMapAdapter.get(MapMaker.java:515)
at
org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:183)
at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:95)
at
org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:134)
at
org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:191)
at
org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:368)
at org.jboss.weld.environment.se.Weld.initialize(Weld.java:92)
at org.jboss.forge.shell.Bootstrap$1.run(Bootstrap.java:87)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ArrayStoreException:
sun.reflect.annotation.TypeNotPresentExceptionProxy
at
sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:653)
at
sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:460)
at
sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:286)
at
sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:222)
at
sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at
sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.Class.initAnnotationsIfNecessary(Class.java:3070)
at java.lang.Class.getAnnotations(Class.java:3050)
at
org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:98)
at
org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:54)
at
org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:42)
at
com.google.common.collect.ComputingConcurrentHashMap.compute(ComputingConcurrentHashMap.java:206)
... 10 more
_____
12 years, 11 months
[FacesScaffoldPetClinicTest] Contents of String metawidget = ...
by Lincoln Baxter, III
Ok, so I debuggged, but it looks like more than a spacing issue. In my
execution, the contents you are asserting against do not contain the
expected text. So I need you to look into it after all. I've @Ignored the
test for now, so you'll need to remove that annotation to get the test to
run again.
Looks like the 'int type' is not getting generated somehow? Possibly
because it is a primitive type? Same thing happened when I commented that
out - it then began failing on the boolean field.
It's possible that I caused this with some of the updates to the
JavaParser, but I'm not exactly sure where or why, so if you could give me
some insight that would be great, Thanks!
*Contents*
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
template="/resources/scaffold/page.xhtml">
<f:metadata>
<f:viewParam name="page" value="#{petBean.page}"/>
<f:event type="preRenderView" listener="#{petBean.paginate}"/>
</f:metadata>
<ui:param name="pageTitle" value="Search Pet entities"/>
<ui:define name="header">
Pet
</ui:define>
<ui:define name="subheader">
Search Pet entities
</ui:define>
<ui:define name="footer"/>
<ui:define name="main">
<h:form id="search">
<h:panelGroup styleClass="search">
<h:messages globalOnly="true"/>
<h:panelGrid columnClasses="label,component,required"
columns="3">
<h:outputLabel for="petBeanSearchName" value="Name:"/>
<h:panelGroup>
<h:inputText id="petBeanSearchName" value="#{
petBean.search.name}"/>
<h:message for="petBeanSearchName"
styleClass="error"/>
</h:panelGroup>
<h:outputText/>
<h:outputLabel for="petBeanSearchOwner" value="Owner:"/>
<h:panelGroup>
<h:selectOneMenu converter="#{ownerBean.converter}"
id="petBeanSearchOwner" value="#{petBean.search.owner}">
<f:selectItem/>
<f:selectItems value="#{ownerBean.all}"/>
</h:selectOneMenu>
<h:message for="petBeanSearchOwner"
styleClass="error"/>
</h:panelGroup>
<h:outputText/>
</h:panelGrid>
<h:panelGroup styleClass="buttons">
<h:commandLink value="Search"
action="#{petBean.search}"/>
<h:commandLink value="Create New"
action="#{petBean.create}"/>
</h:panelGroup>
</h:panelGroup>
<h:dataTable id="petBeanPageItems" styleClass="data-table"
value="#{petBean.pageItems}" var="_item">
<h:column>
<f:facet name="header">
<h:outputText value="Name"/>
</f:facet>
<h:link outcome="/scaffold/pet/view" value="#{_item.name
}">
<f:param name="id" value="#{_item.id}"/>
</h:link>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Type"/>
</f:facet>
<h:link outcome="/scaffold/pet/view"
value="#{_item.type}">
<f:param name="id" value="#{_item.id}"/>
</h:link>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Send Reminders"/>
</f:facet>
<h:link outcome="/scaffold/pet/view"
value="#{_item.sendReminders}">
<f:param name="id" value="#{_item.id}"/>
</h:link>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Owner"/>
</f:facet>
<h:link outcome="/scaffold/pet/view"
value="#{_item.owner}">
<f:param name="id" value="#{_item.id}"/>
</h:link>
</h:column>
</h:dataTable>
<ui:include src="/resources/scaffold/paginator.xhtml">
<ui:param name="paginatorBean" value="#{petBean}"/>
</ui:include>
</h:form>
</ui:define>
</ui:composition>
12 years, 11 months
Strange issue with Seam Mail plugin
by Jose Alvarez de Lara
Hi,
I would like to develop a seam-mail project like the one in Seam 2 and I am using Seam Forge to create the project.
But I think I need Seam Mail plugin and I try as follows,
$ forge git-plugin git://github.com/seam/mail.git
and it does not work.
Did anybody try this on Win XP?
Thanks,
Jose
PS: I could install persistence plugin
12 years, 11 months