AppFuse 2.0 Status

3 messages Options
Embed this post
Permalink
Matt Raible-3

AppFuse 2.0 Status

Reply Threaded More More options
Print post
Permalink
Hello everyone - hopefully you're having a great holiday break if
you're celebrating.  My vacation begins in a few hours and I hope to
get a lot of (downhill) skiing in over the next several days[1].

I just wanted to send you a quick note to let you know we're all still
hard at work on AppFuse 2.0.  We're actually pretty close to finishing
up our goals for M2[2], but we haven't written as much documentation
as we'd like, hence the lack of an M1 release.

I was hoping to get 2.0-M1 out by the end of the year, but it doesn't
look like it'll happen.  We only have around 20 issues[3] to finish
for the release, but most developers are on vacation for the next week
or more. With any luck, we'll have a release out in the first half of
January. The main thing that's going to take a while is me writing
documentation. If you're interested in using 2.0 now, you can
certainly ask questions (please search first!) on the dev mailing
list[4], or view the QuickStart Guide at
http://dev.appfuse.org/display/APF/QuickStart+Guide.

In order to show you what we have in mind with AppFuse 2.0, I created
a "Hello World" video.  You can view it at:

http://static.appfuse.org/movies/2.0/helloworld.mov (20.5 MB)

I created a similar one showing how to do CRUD a few weeks ago.
Please keep in mind we've changed some things since I made this - but
it should give you a good idea how we've simplified the backend with
Generic Managers and DAOs.

http://static.appfuse.org/movies/2.0/struts2-crud.mov (17.3 MB)

If you'd rather download these movies than view them online, you can
do that as well:

http://static.appfuse.org/movies/2.0/2.0-videos.zip (36.1 MB)

Thanks for using AppFuse!

Matt

[1] http://raibledesigns.com/page/rd?entry=heading_to_steamboat
[2] http://raibledesigns.com/wiki/AppFuseRoadmap.html
[3] http://tinyurl.com/y6npzr
[4] http://www.nabble.com/AppFuse---Dev-f2371.html

--
http://raibledesigns.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

thomas_ramapuram

Re: AppFuse 2.0 Status

Reply Threaded More More options
Print post
Permalink
Hi Matt,
     I was looking at your video in appfuse 2.0 and I noticed that you
had autocomplete for some portions of your pom and action in IDEA.  
Which is the tool/plugin that you use for this?
Thanks,
Thomas.
Matt Raible wrote:

> Hello everyone - hopefully you're having a great holiday break if
> you're celebrating.  My vacation begins in a few hours and I hope to
> get a lot of (downhill) skiing in over the next several days[1].
>
> I just wanted to send you a quick note to let you know we're all still
> hard at work on AppFuse 2.0.  We're actually pretty close to finishing
> up our goals for M2[2], but we haven't written as much documentation
> as we'd like, hence the lack of an M1 release.
>
> I was hoping to get 2.0-M1 out by the end of the year, but it doesn't
> look like it'll happen.  We only have around 20 issues[3] to finish
> for the release, but most developers are on vacation for the next week
> or more. With any luck, we'll have a release out in the first half of
> January. The main thing that's going to take a while is me writing
> documentation. If you're interested in using 2.0 now, you can
> certainly ask questions (please search first!) on the dev mailing
> list[4], or view the QuickStart Guide at
> http://dev.appfuse.org/display/APF/QuickStart+Guide.
>
> In order to show you what we have in mind with AppFuse 2.0, I created
> a "Hello World" video.  You can view it at:
>
> http://static.appfuse.org/movies/2.0/helloworld.mov (20.5 MB)
>
> I created a similar one showing how to do CRUD a few weeks ago.
> Please keep in mind we've changed some things since I made this - but
> it should give you a good idea how we've simplified the backend with
> Generic Managers and DAOs.
>
> http://static.appfuse.org/movies/2.0/struts2-crud.mov (17.3 MB)
>
> If you'd rather download these movies than view them online, you can
> do that as well:
>
> http://static.appfuse.org/movies/2.0/2.0-videos.zip (36.1 MB)
>
> Thanks for using AppFuse!
>
> Matt
>
> [1] http://raibledesigns.com/page/rd?entry=heading_to_steamboat
> [2] http://raibledesigns.com/wiki/AppFuseRoadmap.html
> [3] http://tinyurl.com/y6npzr
> [4] http://www.nabble.com/AppFuse---Dev-f2371.html
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Matt Raible-3

Re: AppFuse 2.0 Status

Reply Threaded More More options
Print post
Permalink
These are IDEA's "Live Templates" feature.

http://blogs.opensymphony.com/plightbo/2006/02/idea_live_templates_more_power.html
http://www.jetbrains.com/idea/docs/help/editing/livetemplates/predeftemplates.html

It doesn't make sense to make them publicly available unless I added variables where appropriate.  I've attached the file in case anyone wants to make these changes. ;-)

Matt

On 12/26/06, Thomas Ramapuram <[hidden email]> wrote:
Hi Matt,
     I was looking at your video in appfuse 2.0 and I noticed that you
had autocomplete for some portions of your pom and action in IDEA.
Which is the tool/plugin that you use for this?
Thanks,
Thomas.
Matt Raible wrote:

> Hello everyone - hopefully you're having a great holiday break if
> you're celebrating.  My vacation begins in a few hours and I hope to
> get a lot of (downhill) skiing in over the next several days[1].
>
> I just wanted to send you a quick note to let you know we're all still
> hard at work on AppFuse 2.0.  We're actually pretty close to finishing
> up our goals for M2[2], but we haven't written as much documentation
> as we'd like, hence the lack of an M1 release.
>
> I was hoping to get 2.0-M1 out by the end of the year, but it doesn't
> look like it'll happen.  We only have around 20 issues[3] to finish
> for the release, but most developers are on vacation for the next week
> or more. With any luck, we'll have a release out in the first half of
> January. The main thing that's going to take a while is me writing
> documentation. If you're interested in using 2.0 now, you can
> certainly ask questions (please search first!) on the dev mailing
> list[4], or view the QuickStart Guide at
> http://dev.appfuse.org/display/APF/QuickStart+Guide.
>
> In order to show you what we have in mind with AppFuse 2.0, I created
> a "Hello World" video.  You can view it at:
>
> http://static.appfuse.org/movies/2.0/helloworld.mov (20.5 MB)
>
> I created a similar one showing how to do CRUD a few weeks ago.
> Please keep in mind we've changed some things since I made this - but
> it should give you a good idea how we've simplified the backend with
> Generic Managers and DAOs.
>
> http://static.appfuse.org/movies/2.0/struts2-crud.mov (17.3 MB)
>
> If you'd rather download these movies than view them online, you can
> do that as well:
>
> http://static.appfuse.org/movies/2.0/2.0-videos.zip (36.1 MB)
>
> Thanks for using AppFuse!
>
> Matt
>
> [1] http://raibledesigns.com/page/rd?entry=heading_to_steamboat
> [2] http://raibledesigns.com/wiki/AppFuseRoadmap.html
> [3] http://tinyurl.com/y6npzr
> [4] http://www.nabble.com/AppFuse---Dev-f2371.html
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]




--
http://raibledesigns.com
<?xml version="1.0" encoding="UTF-8"?>
<templateSet group="appfuse2">
  <template name="HelloAction.java" value="public class HelloAction extends ActionSupport {    String message;    public String getMessage() {        return message;    }    public String execute() {        message = "Howdy Pardner!";        return SUCCESS;    } }" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="true" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="false" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="Person" value="@Entity public class Person {    Long id;    String firstName;    String lastName;        @Id @GeneratedValue(strategy=GenerationType.AUTO)    public Long getId() {        return id;    }    public void setId(Long id) {        this.id = id;    }        public String getFirstName() {        return firstName;    }    public void setFirstName(String firstName) {        this.firstName = firstName;    }        public String getLastName() {        return lastName;    }    public void setLastName(String lastName) {        this.lastName = lastName;    } }" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="true" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="false" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="PersonAction" value="public class PersonAction extends BaseAction {    GenericManager<Person, Long> manager;    Person person;    Long id;    public void setId(Long id) {        this.id = id;    }    public void setPersonManager(GenericManager<Person, Long> genericManager) {        this.manager = genericManager;    }    public Person getPerson() {        return person;    }    public void setPerson(Person person) {        this.person = person;    }    public String execute() {        if (id != null) {            person = manager.get(id);        }        return "success";    }    public String save() {        manager.save(person);        super.saveMessage("Person updated successfully!");        return "form";    } }" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="true" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="false" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="delete" value="public String delete() {        manager.remove(person.getId());        saveMessage(MessageFormat.format("{0} removed successfully.",                person.getFirstName() + ' ' + person.getLastName()));        return "form";    }" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="true" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="false" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="deleteButton" value="<s:submit method="delete" value="Delete" cssClass="button"/>" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="false" />
      <option name="HTML" value="false" />
      <option name="JSP" value="true" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="focus" value="Form.focusFirstElement('person');" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="false" />
      <option name="HTML" value="false" />
      <option name="JSP" value="true" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="hbm2ddl" value="hibernate.hbm2ddl.auto=update" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="false" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="true" />
    </context>
  </template>
  <template name="hello.jsp" value="<%@ include file="/common/taglibs.jsp"%> <s:action name="howdy" id="action" namespace="default"/> <strong>Message from Struts:</strong> <span style="color: blue"><s:property value="#action.message"/></span>" description="" toReformat="false" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="false" />
      <option name="HTML" value="false" />
      <option name="JSP" value="true" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="hibernateExtension" value="<bean class="org.appfuse.dao.spring.HibernateExtensionPostProcessor">        <property name="annotatedClasses">            <list>                <value>org.appfuse.crud.model.Person</value>            </list>        </property>    </bean>" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="true" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="include" value="<%@ include file="/common/taglibs.jsp"%>" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="false" />
      <option name="HTML" value="false" />
      <option name="JSP" value="true" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="list" value="public String list() {        persons = manager.getAll();        return SUCCESS;    }" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="true" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="false" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="person" value="<action name="person" class="personAction">            <result>/WEB-INF/pages/person.jsp</result>            <result name="form" type="redirect">person.html</result>        </action>" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="true" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="person.jsp" value="<%@ include file="/common/taglibs.jsp" %> <title>Person Example</title> <p>Please use the form below to modify a person's information.</p> <s:form name="personForm" action="person" method="post" validate="true">    <s:hidden name="person.id" value="%{person.id}"/>    <s:textfield label="First Name" name="person.firstName"                 value="%{person.firstName}" required="true" cssClass="text medium"/>    <s:textfield label="Last Name" name="person.lastName"                 value="%{person.lastName}" required="true" cssClass="text medium"/>    <li class="buttonBar left">        <s:submit method="save" value="Save" cssClass="button"/>    </li> </s:form>" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="false" />
      <option name="HTML" value="false" />
      <option name="JSP" value="true" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="person.list" value="<div style="margin-top: 50px"> <s:action name="person!list" id="action" namespace="default"/> <strong>Current folks:</strong> <ul class="glassList">    <s:iterator value="#action.persons">        <li><s:a href="person.html?id=%{id}"><s:property value="firstName"/> <s:property value="lastName"/></s:a></li>    </s:iterator> </ul> </div>" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="false" />
      <option name="HTML" value="false" />
      <option name="JSP" value="true" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="personAction" value="<bean id="personAction" class="org.appfuse.crud.action.PersonAction" scope="prototype">        <property name="personManager" ref="personManager"/>    </bean>" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="true" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="personManager" value="<bean id="personManager" class="org.appfuse.service.impl.GenericManagerImpl">        <constructor-arg>            <bean class="org.appfuse.dao.hibernate.GenericDaoHibernate" autowire="byType">                <constructor-arg value="org.appfuse.crud.model.Person"/>            </bean>        </constructor-arg>    </bean>" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="true" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="pom.xml.dependencies" value="<dependencies>        <dependency>            <groupId>org.appfuse</groupId>            <artifactId>appfuse-struts</artifactId>            <version>2.0-SNAPSHOT</version>            <type>war</type>        </dependency>        <dependency>            <groupId>org.appfuse</groupId>            <artifactId>appfuse-struts</artifactId>            <version>2.0-SNAPSHOT</version>            <type>warpath</type>        </dependency>        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>3.8.1</version>            <scope>test</scope>        </dependency>    </dependencies>" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="true" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="pom.xml.java5" value="<plugin>                <artifactId>maven-compiler-plugin</artifactId>                <configuration>                    <source>1.5</source>                    <target>1.5</target>                </configuration>            </plugin>" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="true" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="pom.xml.jetty" value="<plugin>                <groupId>org.mortbay.jetty</groupId>                <artifactId>maven-jetty-plugin</artifactId>                <configuration>                    <scanIntervalSeconds>3</scanIntervalSeconds>                </configuration>            </plugin>" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="true" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="pom.xml.plugins" value="<build>        <defaultGoal>package</defaultGoal>        <plugins>            <plugin>                <artifactId>maven-compiler-plugin</artifactId>                <configuration>                    <source>1.5</source>                    <target>1.5</target>                </configuration>            </plugin>            <plugin>                <groupId>org.mortbay.jetty</groupId>                <artifactId>maven-jetty-plugin</artifactId>                <configuration>                    <contextPath>/</contextPath>                    <scanIntervalSeconds>3</scanIntervalSeconds>                </configuration>            </plugin>            <plugin>                <groupId>org.appfuse</groupId>                <artifactId>maven-warpath-plugin</artifactId>                <version>1.0-SNAPSHOT</version>                <extensions>true</extensions>                <executions>                    <execution>                        <goals>                            <goal>add-classes</goal>                        </goals>                    </execution>                </executions>            </plugin>        </plugins>    </build>" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="true" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="pom.xml.struts2" value="<dependency>            <groupId>org.appfuse</groupId>            <artifactId>appfuse-struts</artifactId>            <version>2.0-SNAPSHOT</version>            <type>war</type>        </dependency>        <dependency>            <groupId>org.appfuse</groupId>            <artifactId>appfuse-struts</artifactId>            <version>2.0-SNAPSHOT</version>            <type>warpath</type>        </dependency>" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="true" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="pom.xml.warpath" value="<plugin>                <groupId>org.appfuse</groupId>                <artifactId>maven-warpath-plugin</artifactId>                <version>1.0-SNAPSHOT</version>                <extensions>true</extensions>                <executions>                    <execution>                        <goals>                            <goal>add-classes</goal>                        </goals>                    </execution>                </executions>            </plugin>" description="" toReformat="true" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="true" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
  <template name="howdy" value="<action name="howdy" class="com.company.webapp.HelloAction"/>" description="" toReformat="false" toShortenFQNames="true">
    <context>
      <option name="JAVA_CODE" value="false" />
      <option name="JAVA_COMMENT" value="false" />
      <option name="JAVA_STRING" value="false" />
      <option name="XML" value="true" />
      <option name="HTML" value="false" />
      <option name="JSP" value="false" />
      <option name="COMPLETION" value="false" />
      <option name="OTHER" value="false" />
    </context>
  </template>
</templateSet>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]