<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-548890756397371608</id><updated>2011-12-19T17:07:38.309-08:00</updated><category term='google app engine'/><category term='datanucleus'/><category term='hibernate'/><category term='puremvc'/><category term='java'/><category term='swc'/><category term='REST'/><category term='spring 3.0'/><category term='flex 3'/><category term='as3'/><category term='sqlite'/><category term='spring mvc'/><category term='gwt'/><category term='maven'/><category term='google webtoolkit'/><category term='blazeds'/><category term='flex'/><category term='gae/j'/><category term='grails'/><category term='flex-mojos'/><category term='spring'/><category term='google sidewiki'/><category term='JDO'/><category term='groovy on grails'/><category term='json'/><category term='google'/><title type='text'>Big Oh No</title><subtitle type='html'>Big Oh Notation or more like OH NO..Any code of your own that you haven't looked at for six or more months might as well have been written by someone else. [Eagleson's law].</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bigohno.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bigohno.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>cheolho</name><uri>http://www.blogger.com/profile/17679423917393754186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-548890756397371608.post-3691820381130540722</id><published>2010-01-04T02:31:00.001-08:00</published><updated>2010-01-05T11:17:06.460-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sqlite'/><category scheme='http://www.blogger.com/atom/ns#' term='grails'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy on grails'/><title type='text'>Groovy on Grails &amp; Sqlite</title><content type='html'>By default grails uses HSQLDB for development.  I switched it to use file based, and it was alright for the most part, but I would find inconsistencies where I would delete a record, and the app would query db fine, but querying with HSQL manager would not return the correct results.  Just getting the manager up was a pain &lt;a href="http://maxkorytko.wordpress.com/2009/11/11/hsql-in-file-db/"&gt;HSQL file with manager&lt;/a&gt; (I used this guide).&lt;br /&gt;Using sqlite with rails development, I've always liked it better and thought the gui tools were better.  Following are the steps to get it working for those interested.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Go to the link &lt;a href="http://code.google.com/p/hibernate-sqlite/"&gt;hibernate-sqlite&lt;/a&gt; for the project and &lt;a href="http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC"&gt;sqlite driver&lt;/a&gt;.  These two places is where you will find documentation, and pretty much all the info you'll need.&lt;/li&gt;&lt;li&gt;In order to add the jars to your grails project you have to first install the ivy plugin using the command -&lt;br /&gt;&lt;pre class="prettyprint"&gt;&lt;code&gt;&lt;span class="pln"&gt;grails install&lt;/span&gt;&lt;span class="pun"&gt;-&lt;/span&gt;&lt;span class="pln"&gt;plugin ivy&lt;span style="font-family:Georgia,serif;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="pln"&gt;&lt;span style="font-family:Georgia,serif;"&gt;add this dependency - dependency org="org.xerial" name="sqlite-jdbc" rev="3.6.16"&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="pln"&gt;&lt;span style="font-family:Georgia,serif;"&gt;now run &lt;/span&gt;&lt;/span&gt;&lt;code&gt;grails get-dependencies&lt;/code&gt;&lt;/li&gt;&lt;li&gt;4 jars will be added in your lib folder you will need to delete the jdbc-api-1.4 jar. ( I haven't really looked into more details and hopefully someone working with grails longer can help but leaving it there causes a compilation exception)&lt;/li&gt;&lt;li&gt;Now from the &lt;a href="http://code.google.com/p/hibernate-sqlite/"&gt;hibernate-sqlite&lt;/a&gt; page  download the Local project either &lt;a href="http://hibernate-sqlite.googlecode.com/files/HibernateSQLite.rar"&gt;build yourself&lt;/a&gt; or &lt;a href="http://hibernate-sqlite.googlecode.com/files/HibernateSQLite_with_jar.rar"&gt;with jars&lt;/a&gt;. Move the file from src/java/dialect/SQLiteDialect.java to your src/java/dialect/ folder&lt;/li&gt;&lt;li&gt;Create a sqlite file somewhere in your path ( I put it in the project) and use the command from terminal  --  sqlite3 dev.sqlite3   --  and just make sure the file gets created, you can run the command --  .databases -- .&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the DataSource.groovy file just configure your datasource now .. example.             dbCreate="create"&lt;br /&gt;       url="jdbc:sqlite:/(path to file)/dev.sqlite3"&lt;br /&gt;       logSql="true"&lt;br /&gt;       dialect="dialect.SQLiteDialect"&lt;br /&gt;       driverClassName="org.sqlite.JDBC"&lt;/li&gt;&lt;li&gt;For good measure I just commented out the global hsqldb stuff at the top of the file.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;That should be it to get your grails project working with sqlite.  For a gui to the database, I like to use SQLite Manager a firefox plugin.  If I left anything out let me know.  Note:  I haven't tested it out extensively but the crud tests I did run ran fine.&lt;br /&gt;One thing to note is dbCreate option 'update' didn't work.  I first had to use create, and then comment it out after initial db creation.  Minor annoyance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/548890756397371608-3691820381130540722?l=bigohno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bigohno.blogspot.com/feeds/3691820381130540722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bigohno.blogspot.com/2010/01/groovy-on-grails-sqlite.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/3691820381130540722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/3691820381130540722'/><link rel='alternate' type='text/html' href='http://bigohno.blogspot.com/2010/01/groovy-on-grails-sqlite.html' title='Groovy on Grails &amp; Sqlite'/><author><name>cheolho</name><uri>http://www.blogger.com/profile/17679423917393754186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-548890756397371608.post-6667685413605790613</id><published>2009-09-24T12:38:00.000-07:00</published><updated>2009-09-24T12:55:11.659-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google sidewiki'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Review of Google Sidewiki</title><content type='html'>If you haven't given &lt;a href=" http://www.google.com/sidewiki/intl/en/index.html"&gt;Google Sidewiki&lt;/a&gt; a try yet, I highly recommend it.  &lt;br /&gt;&lt;br /&gt;Quickly what it is... For quite some time people have been coming up with ways to annotate the web, sidewiki opens up a sidebar, and allows you to leave comments, and read comments left by other people.  Really I have seen this type of implementation but their are a few differentiators that make it much better.  &lt;br /&gt;&lt;br /&gt;The Good &lt;br /&gt;1.  Google's ranking algorithm to put the best comments to the top. &lt;br /&gt;- what makes a good comment or not ? The use of language, reputation and longevity of your profile. There are also voting options, a simple yes and no option, and somehow adds to the secret sauce&lt;br /&gt;2.  Its easy to use and unobtrusive.  You just hide the sidebar, and when the color changes you know that there's comments on this page.  &lt;br /&gt;You're able to highlight text, and create a bookmark on the page, and comment on areas of text.  When you click on the image next to your comment, it automatically jumps to that area of the page and highlights the text.  &lt;br /&gt;3.  Blog integration.  If there are no comments, it will suggest other articles sometimes, and it allows you to post your comments to your blog.  &lt;br /&gt;4.  Allows owners of site to own the first comment.  &lt;br /&gt;&lt;br /&gt;The Bad&lt;br /&gt;1.  Forces you to install google toolbar.  More of an annoyance.  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So go and try it out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/548890756397371608-6667685413605790613?l=bigohno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bigohno.blogspot.com/feeds/6667685413605790613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bigohno.blogspot.com/2009/09/review-of-google-sidewiki.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/6667685413605790613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/6667685413605790613'/><link rel='alternate' type='text/html' href='http://bigohno.blogspot.com/2009/09/review-of-google-sidewiki.html' title='Review of Google Sidewiki'/><author><name>cheolho</name><uri>http://www.blogger.com/profile/17679423917393754186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-548890756397371608.post-5444146444682818653</id><published>2009-05-08T02:37:00.000-07:00</published><updated>2009-05-08T02:54:45.562-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JDO'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='google app engine'/><category scheme='http://www.blogger.com/atom/ns#' term='gae/j'/><title type='text'>GenericDao w/ Spring, JDO, and GAE/J</title><content type='html'>In case anyone is interested.  The only gotcha I've encountered so far, is that using the JdoCallback is preferred by GAE vs using some of the Spring defined implementations.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;package jdo;&lt;br /&gt;&lt;br /&gt;import java.io.Serializable;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.Collection;&lt;br /&gt;import java.util.LinkedHashSet;&lt;br /&gt;import java.util.List;&lt;br /&gt;import org.slf4j.Logger;&lt;br /&gt;import org.slf4j.LoggerFactory;&lt;br /&gt;import org.springframework.orm.ObjectRetrievalFailureException;&lt;br /&gt;import org.springframework.orm.jdo.support.JdoDaoSupport;&lt;br /&gt;&lt;br /&gt;import GenericDao;&lt;br /&gt;import com.google.appengine.api.datastore.Key;&lt;br /&gt;&lt;br /&gt;public class GenericDaoJdo &amp;lt;T, PK extends Serializable&amp;gt;  extends JdoDaoSupport implements GenericDao&amp;lt;T, PK&amp;gt; {&lt;br /&gt;    /**&lt;br /&gt;     * Log variable for all child classes. Uses LogFactory.getLog(getClass()) from Commons Logging&lt;br /&gt;     */&lt;br /&gt;    protected final Logger log = LoggerFactory.getLogger(getClass());&lt;br /&gt;    private Class&amp;lt;T&amp;gt; persistentClass;&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * Constructor that takes in a class for easy creation of DAO&lt;br /&gt;     */&lt;br /&gt;    public GenericDaoJdo(Class&amp;lt;T&amp;gt; persistentClass) {&lt;br /&gt;  this.persistentClass = persistentClass;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public boolean exists(PK id) {&lt;br /&gt;        T entity = (T) getJdoTemplate().getObjectById(this.persistentClass, id);&lt;br /&gt;        return entity != null;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public T get(PK id) {&lt;br /&gt;        T entity = (T) getJdoTemplate().getObjectById(this.persistentClass, id);&lt;br /&gt;&lt;br /&gt;        if (entity == null) {&lt;br /&gt;            log.warn("Uh oh, '" + this.persistentClass + "' object with id '" + id + "' not found...");&lt;br /&gt;            throw new ObjectRetrievalFailureException(this.persistentClass, id);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        return entity;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public T getByKey(Key id) {&lt;br /&gt;        T entity = (T) getJdoTemplate().getObjectById(this.persistentClass, id);&lt;br /&gt;&lt;br /&gt;        if (entity == null) {&lt;br /&gt;            log.warn("Uh oh, '" + this.persistentClass + "' object with id '" + id + "' not found...");&lt;br /&gt;            throw new ObjectRetrievalFailureException(this.persistentClass, id);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        return entity;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public List&amp;lt;T&amp;gt; getAll() {&lt;br /&gt;  return new ArrayList&amp;lt;T&amp;gt;(getJdoTemplate().find(persistentClass));&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public List&amp;lt;T&amp;gt; getAllDistinct() {&lt;br /&gt;        Collection result = new LinkedHashSet(getAll());&lt;br /&gt;        return new ArrayList(result);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public void remove(PK id) {&lt;br /&gt;  getJdoTemplate().deletePersistent(this.get(id)); &lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; public T save(T object) {&lt;br /&gt;  return (T) getJdoTemplate().makePersistent(object);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/548890756397371608-5444146444682818653?l=bigohno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bigohno.blogspot.com/feeds/5444146444682818653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bigohno.blogspot.com/2009/05/genericdao-w-spring-jdo-and-gaej.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/5444146444682818653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/5444146444682818653'/><link rel='alternate' type='text/html' href='http://bigohno.blogspot.com/2009/05/genericdao-w-spring-jdo-and-gaej.html' title='GenericDao w/ Spring, JDO, and GAE/J'/><author><name>cheolho</name><uri>http://www.blogger.com/profile/17679423917393754186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-548890756397371608.post-4945969146079361241</id><published>2009-04-29T01:13:00.000-07:00</published><updated>2009-04-29T01:31:59.524-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='datanucleus'/><category scheme='http://www.blogger.com/atom/ns#' term='spring 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><category scheme='http://www.blogger.com/atom/ns#' term='google app engine'/><category scheme='http://www.blogger.com/atom/ns#' term='gae/j'/><title type='text'>Managing dependencies with Spring 3.0 M2 and DataNucleus</title><content type='html'>ASM this library is major p.i.t.a cause releases aren't backwards compatible, and is done for the performance improvements.  Spring doesn't plan to upgrade as from this &lt;a href="http://blog.springsource.com/2007/06/11/asm-version-incompatibilities-using-spring-autowired-with-hibernate/"&gt;post&lt;/a&gt; and this &lt;a href="http://forum.springsource.org/showthread.php?p=226647"&gt;post&lt;/a&gt; but instead will reference a packaged version of asm, due to release with Spring 3.0 M3 . This is all part of the cost of working with milestones.  &lt;br /&gt;&lt;br /&gt;Google app engine / java uses Data Nucleus to enhance class files for persistence and relies on asm 3.1.  Currently I am using the maven-datanucleus-plugin to enhance my class files. With maven I couldn't figure out how to include both libraries.  The solution was to define the asm 2.3.2 libraries with scope runtime, and change ant-macros.xml file to not failonerror to false. I haven't tested on gae/j itself and just hosted mode, and this seemed to work.  Also I had to define the datanucleus-core dependency as runtime scope as well, because the plugin requires 1.1.2, and gae only works with 1.1.1 now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/548890756397371608-4945969146079361241?l=bigohno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bigohno.blogspot.com/feeds/4945969146079361241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bigohno.blogspot.com/2009/04/managing-dependencies-with-spring-30-m2.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/4945969146079361241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/4945969146079361241'/><link rel='alternate' type='text/html' href='http://bigohno.blogspot.com/2009/04/managing-dependencies-with-spring-30-m2.html' title='Managing dependencies with Spring 3.0 M2 and DataNucleus'/><author><name>cheolho</name><uri>http://www.blogger.com/profile/17679423917393754186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-548890756397371608.post-6428731724858888403</id><published>2009-04-28T15:40:00.001-07:00</published><updated>2009-04-29T01:11:40.148-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google webtoolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='spring mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='spring 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='json'/><category scheme='http://www.blogger.com/atom/ns#' term='google app engine'/><category scheme='http://www.blogger.com/atom/ns#' term='gae/j'/><title type='text'>GWT, Spring 3.0 MVC, and REST on Google App Engine / Java - Part 2</title><content type='html'>From Part 1 of &lt;a href="http://bigohno.blogspot.com/2009/04/gwt-spring-mvc-and-rest-on-google-app.html"&gt;GWT, Spring 3.0 MVC and REST on Gae/J&lt;/a&gt; posting, you should now have a spring application with REST up and running and should be deployable on google app engine. &lt;br /&gt;&lt;br /&gt;Integrating GWT with your backend now is pretty straight forward for the most part.  Restlet is a REST framework, they released a module called Restlet-GWT module.  For more understanding about it and why use rest with GWT, here is a link to blog posting on release &lt;a href="http://blog.noelios.com/2008/07/25/restlet-ported-to-gwt/"&gt;Restlet ported to GWT&lt;/a&gt;.  I'll be referring to the Greeting demo when you create a new application with the Google eclipse plugin.  In what ever you named your Entry point class, look for the function &lt;br /&gt;&lt;br /&gt;private void sendNameToServer()&lt;br /&gt;&lt;br /&gt;your going to replace everything from greetService.greetServer(textToServer, with this..&lt;br /&gt;&lt;br /&gt;                final Client client = new Client(Protocol.HTTP);&lt;br /&gt;                client.get("http://localhost:&lt;port&gt;/greet.json", new Callback() {&lt;br /&gt;                    public void onEvent(Request request, Response response) {&lt;br /&gt;      dialogBox.setText("Remote Procedure Call");&lt;br /&gt;      serverResponseLabel.removeStyleName("serverResponseLabelError");&lt;br /&gt;      JSONValue json;&lt;br /&gt;&lt;br /&gt;              json = JSONParser.parse(response.getEntity().getText());&lt;br /&gt;              JSONValue value = json.isObject().get("hello");&lt;br /&gt;        &lt;br /&gt;      serverResponseLabel.setHTML(value.toString());&lt;br /&gt;      dialogBox.center();&lt;br /&gt;      closeButton.setFocus(true);&lt;br /&gt;                    }&lt;br /&gt;                });&lt;br /&gt;&lt;br /&gt;Sorry for formatting, but you can see &lt;br /&gt;client.get("http://localhost:&lt;port&gt;/greet.json", new Callback() {&lt;br /&gt;&lt;br /&gt;here is where I'm calling the rest url to retrieve the json string returned from the backend and GWT already provides functionality to parse JSON.  For more information on &lt;a href="http://wiki.restlet.org/docs_1.1/13-restlet/144-restlet.html"&gt;Restlet-GWT&lt;/a&gt;.  &lt;a href="http://www.restlet.org/downloads/maven"&gt;Restlet Maven Repository&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I found an issue with running Spring MVC 3.0 on google app engine ( could be only hosted mode).  GWT compiles and generates a bunch of css, and javascript files.  To get the nice REST style url's all requests need to be mapped to context&lt;br /&gt;( / ) &lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;  &amp;lt;servlet-name&amp;gt;default&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;  &amp;lt;url-pattern&amp;gt;/static/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt; &amp;lt;/servlet-mapping&amp;gt;&lt;br /&gt; &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;  &amp;lt;servlet-name&amp;gt;app&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;  &amp;lt;url-pattern&amp;gt;/&amp;lt;/url-pattern&amp;gt;&lt;br /&gt; &amp;lt;/servlet-mapping&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The servlet mapping will match the longest matching map first.  So when something like &lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    &amp;lt;script type="text/javascript" language="javascript" src="/static/app/app.nocache.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;is given .. this should go directly to the mapping default servlet (above example), and not the main spring dispatcher.  The issue is with jetty vs tomcat and how they handle paths. From the posting I found on stackoverflow (&lt;a href="http://stackoverflow.com/questions/132052/servlet-for-serving-static-content"&gt;servlet for serving static content&lt;/a&gt;) "The problem is that Tomcat's default servlet does not take the ServletPath into account (so it looks for the static files in the main folder), while Jetty does (so it looks in the static folder)."  Luckily the user provides the file of a servlet.  In the servlet I made one change in the servlet class provided.  &lt;br /&gt;In the function &lt;span style="font-weight:bold;"&gt;protected String getPath(HttpServletRequest req)&lt;/span&gt;.. I changed it to &lt;span style="font-weight:bold;"&gt;return pathInfo;&lt;/span&gt; and not &lt;span style="font-weight:bold;"&gt;return servletPath + pathInfo;&lt;/span&gt; .  This changes makes the behavior like Tomcat, and so you won't have to move all your files inside of a folder called static.  This basically ignores the /static/ and looks for path after that.  Now in your web.xml just define new servlet, and define for static mapping.  &lt;br /&gt;&lt;br /&gt;Thats it.. You should now have your GWT front end talking to your Spring 3.0 MVC application running in hosted mode, and GAE/J.  The cool thing is now you can switch between regular spring mvc application functionality (exmaple: submitting forms) using html, css and GWT.  Coming up - Nightmare dependencies with Spring 3.0 M2 and Data nucleus GAE/J, GenericDao with Spring and JDO, and Spring Security.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/548890756397371608-6428731724858888403?l=bigohno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bigohno.blogspot.com/feeds/6428731724858888403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bigohno.blogspot.com/2009/04/gwt-spring-30-mvc-and-rest-on-google.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/6428731724858888403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/6428731724858888403'/><link rel='alternate' type='text/html' href='http://bigohno.blogspot.com/2009/04/gwt-spring-30-mvc-and-rest-on-google.html' title='GWT, Spring 3.0 MVC, and REST on Google App Engine / Java - Part 2'/><author><name>cheolho</name><uri>http://www.blogger.com/profile/17679423917393754186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-548890756397371608.post-7937997237261027473</id><published>2009-04-21T17:06:00.000-07:00</published><updated>2009-04-29T01:08:28.908-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spring mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='spring 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><category scheme='http://www.blogger.com/atom/ns#' term='google app engine'/><category scheme='http://www.blogger.com/atom/ns#' term='gae/j'/><title type='text'>GWT, Spring 3.0 MVC, and REST on Google App Engine / Java - Part 1</title><content type='html'>When googleing how to integrate GWT and Spring/Spring mvc, the most popular answer is to use the &lt;a href="http://gwt-widget.sourceforge.net/"&gt;GWT- Widget/Server Library&lt;/a&gt;.  The solutions are wrapping pojos as an RPC service or for better performance taking a spring controller and adding RPC functionality by extension. &lt;br /&gt;&lt;br /&gt;With the intoduction of REST features in &lt;a href="http://blog.springsource.com/2009/03/08/rest-in-spring-3-mvc/"&gt;Spring MVC 3.0&lt;/a&gt;, this should make integration between GWT and Spring more natural. This is how to get it all working together on Google App Engine / Java. &lt;br /&gt;&lt;br /&gt;First use Spring 3.0 M2. To include this in maven&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;dependency&amp;gt;&lt;br /&gt;&amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;&lt;br /&gt;&amp;lt;artifactId&amp;gt;org.springframework.spring-library&amp;lt;/artifactId&amp;gt;&lt;br /&gt;&amp;lt;type&amp;gt;libd&amp;lt;/type&amp;gt;&lt;br /&gt;&amp;lt;version&amp;gt;3.0.0.M2&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;lt;/dependency&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Add the milestone repository&lt;br /&gt;SpringSource Enterprise Bundle Repository - External Bundle Milestones&lt;br /&gt;http://repository.springsource.com/maven/bundles/milestone&lt;br /&gt;Note: ensure your using asm 2.2.3&lt;br /&gt;&lt;br /&gt;Now in the web application you need to create the REST support with MVC.  The most important feature added is the ContentNegotiatingViewResolver, this will determine which view to present from Accept header or extension, and from media type can resolve appropriate view.  Probably the more important type will be for JSON support.  In the blog post from Spring about &lt;a href="http://blog.springsource.com/2009/03/08/rest-in-spring-3-mvc/"&gt;REST in Spring 3&lt;/a&gt;  they hint at the JacksonJsonView and its inclusion in WebFlow or Spring Js, and at the time of this posting, unavailable.  Anyways.. I really don't care to add web flow, or spring js to my project when using GWT. The project &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=171425"&gt;json-lib-ext-spring&lt;/a&gt; : &lt;a href="http://blog.benshort.co.uk/2009/01/spring-and-json-lib-ext-spring.html"&gt;details&lt;/a&gt; provides a json view that works seamlessly. Ensure that you exclude all spring libraries in your maven dependency. &lt;br /&gt;&lt;br /&gt;In you spring configuration , it will look like this now.. &lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; &amp;lt;bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"&amp;gt;&lt;br /&gt;  &amp;lt;property name="mediaTypes"&amp;gt;&lt;br /&gt;   &amp;lt;map&amp;gt;&lt;br /&gt;    &amp;lt;entry key="html" value="text/html"/&amp;gt;&lt;br /&gt;    &amp;lt;entry key="json" value="application/json"/&amp;gt;&lt;br /&gt;   &amp;lt;/map&amp;gt;&lt;br /&gt;  &amp;lt;/property&amp;gt;&lt;br /&gt;  &amp;lt;property name="viewResolvers"&amp;gt;&lt;br /&gt;   &amp;lt;list&amp;gt;&lt;br /&gt;    &amp;lt;bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/&amp;gt;&lt;br /&gt;    &amp;lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&amp;gt;&lt;br /&gt;     &amp;lt;property name="prefix" value="/WEB-INF/jsp/"/&amp;gt;&lt;br /&gt;     &amp;lt;property name="suffix" value=".jsp"/&amp;gt;&lt;br /&gt;    &amp;lt;/bean&amp;gt;&lt;br /&gt;   &amp;lt;/list&amp;gt;&lt;br /&gt;  &amp;lt;/property&amp;gt;&lt;br /&gt; &amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; &amp;lt;bean id="greet" class="path.to.GreetJsonView"/&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;In the GreetJsonView just :&lt;br /&gt;&lt;br /&gt;import net.sf.json.spring.web.servlet.view.JsonView;&lt;br /&gt;public class GreetJsonView extends JsonView {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;In the future it should be as easy and changing the class that you extend when spring releases a proper JSON view. &lt;br /&gt;&lt;br /&gt;@Controller&lt;br /&gt;@RequestMapping("/greet")&lt;br /&gt;public class GreetController {&lt;br /&gt; &lt;br /&gt; @RequestMapping(value = "greet", method = RequestMethod.GET)&lt;br /&gt; public String list(ModelMap modelMap) {&lt;br /&gt;  modelMap.put("hello","REST rocks");&lt;br /&gt;  &lt;br /&gt;  return "greet";&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Now when you go to /path/greet it will display the jsp or if you go to /path/greet.json it will return the json string.  &lt;br /&gt;&lt;br /&gt;For additional details on how to get Spring MVC started and configured - &lt;br /&gt;The most helpful is the pet clinic demo for Spring 3 M2 found in the subversion repository. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.springsource.com/2009/03/16/adding-an-atom-view-to-an-application-using-springs-rest-support/"&gt;AtomView and REST Support&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Example program called &lt;a href="http://stsmedia.net/spring-finance-part-2-spring-mvc-spring-30-rest-integration/"&gt;Spring Finance&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thats it for part 1, in my next post, I will show how to get GWT working with your spring mvc back end through REST calls, and putting it all together to get it working nicely on GAE/J&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/548890756397371608-7937997237261027473?l=bigohno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bigohno.blogspot.com/feeds/7937997237261027473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bigohno.blogspot.com/2009/04/gwt-spring-mvc-and-rest-on-google-app.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/7937997237261027473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/7937997237261027473'/><link rel='alternate' type='text/html' href='http://bigohno.blogspot.com/2009/04/gwt-spring-mvc-and-rest-on-google-app.html' title='GWT, Spring 3.0 MVC, and REST on Google App Engine / Java - Part 1'/><author><name>cheolho</name><uri>http://www.blogger.com/profile/17679423917393754186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-548890756397371608.post-6275890149399745385</id><published>2009-04-13T00:12:00.001-07:00</published><updated>2009-04-13T01:41:44.431-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='google webtoolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><category scheme='http://www.blogger.com/atom/ns#' term='google app engine'/><category scheme='http://www.blogger.com/atom/ns#' term='gae/j'/><title type='text'>Google App Engine / Java and Maven</title><content type='html'>When first creating a project with the elipse google plugin, your presented with a project with gwt and gae/j ( google app engine / java) support.  The first question I asked is how to get this all working with maven.  The best archetype I have found is here &lt;a href="http://code.google.com/p/gae-mvn-archetype/"&gt;gae-mvn-archetype&lt;/a&gt;. Instructions as followed:&lt;br /&gt;&lt;br /&gt;1 create GAE/J project from maven archetype, artifactId is the app id.&lt;br /&gt; &gt; mvn archetype:generate -DarchetypeCatalog=http://www.mvnsearch.org/maven2&lt;br /&gt;maven2&lt;br /&gt;2 Build project&lt;br /&gt; &gt; mvn package&lt;br /&gt;3 Test&lt;br /&gt; &gt; dev_appserver target\app-name&lt;br /&gt;4 Deploy&lt;br /&gt; &gt; appcfg update target\app-name&lt;br /&gt;&lt;br /&gt;But better to go here for specific details &lt;a href="http://gae-j-maven.appspot.com/"&gt;Maven for Google Appengine&lt;/a&gt;&lt;br /&gt;Two things I've found from first use.  First I was receiving ResourceDoesNotExistException: Unable to locate resource in repository.  To get around this, in your settings.xml, usually found in /Users/.m2 .. there's a node called interactiveMode.  Just comment this line out.  As to the exact details I haven't looked into it yet.  Second the META-INF directory is created in the resources directory.  I would move this to the webapps, directory so the files jdoconfig.xml and persistence.xml are included in final build.  Now in the google groups in the posting found here &lt;a href="http://groups.google.com/group/google-appengine-java/browse_thread/thread/2996d6748f1a6c01/53d43e9da466ca78?hl=en&amp;amp;lnk=gst&amp;amp;q=maven#53d43e9da466ca78"&gt;GAE/J Maven Support &lt;/a&gt; there's an alternative that doesn't rely on ant or google app engine SDK.  I've tried this one out as well but found it to be not as easy to follow or use.  I guess its a matter of what happens in the future on support and features, as to which one will be the better choice. &lt;br /&gt;&lt;br /&gt;GWT support:&lt;br /&gt;There were two maven plugins I found for this found here : &lt;a href="http://code.google.com/p/gwt-maven/"&gt;gwt-maven google code&lt;/a&gt; and here  : &lt;a href="http://mojo.codehaus.org/gwt-maven-plugin/index.html"&gt;Google Web toolkit plugin&lt;/a&gt;.  Long story short, the contributors from the google code hosted project will now be contributing to the Gwt plugin found on codehaus.org.  So using this plugin &lt;a href="http://mojo.codehaus.org/gwt-maven-plugin/index.html"&gt;Google Web toolkit plugin&lt;/a&gt;, should be good.  The issues I've found is most of the documentation found on the site, refer to version 1.1.  Using their plugin repository there was no 1.1 at the time of this post only 1.0 is found on there&lt;span style="text-decoration: underline;"&gt; &lt;/span&gt;&lt;a href="http://repository.codehaus.org/org/codehaus/mojo/gwt-maven-plugin/"&gt;plugin repository&lt;/a&gt;  So the solution is to use there sandbox repository found here &lt;a href="http://mojo.codehaus.org/using-sandbox-plugins.html"&gt;Sandbox repository&lt;/a&gt;.  Here you will be able to find the 1.1 release of GWT maven plugin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/548890756397371608-6275890149399745385?l=bigohno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bigohno.blogspot.com/feeds/6275890149399745385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bigohno.blogspot.com/2009/04/google-app-engine-java-and-maven.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/6275890149399745385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/6275890149399745385'/><link rel='alternate' type='text/html' href='http://bigohno.blogspot.com/2009/04/google-app-engine-java-and-maven.html' title='Google App Engine / Java and Maven'/><author><name>cheolho</name><uri>http://www.blogger.com/profile/17679423917393754186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-548890756397371608.post-8188326417306494183</id><published>2009-01-28T11:56:00.001-08:00</published><updated>2009-01-28T12:01:21.680-08:00</updated><title type='text'>Flex Spring and Blazeds integration</title><content type='html'>Previously looking for spring flex integration on the net pretty much brought standard implementations of using a SpringFactory, or Flexlib or something along these line.  Spring recently released Spring BlazeDS Integration 1.0.0.M1.  Read this post for details &lt;a href="http://blog.springsource.com/2008/12/17/using-spring-blazeds-integration-m1/"&gt;Spring Blazeds integration&lt;/a&gt; .  I followed it for the most part, but couldn't figure out why the default channel configured in the remoting config.xml was not being found.  Well the answer is in dynamic destinations in blazeds.  By default a default channel doesn't need to be defined in services-config.xml.  &lt;a href="http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=runtimeconfig_5.html#194376"&gt;Accessing dynamic components with a Flex client application&lt;/a&gt;.  The solution was not so obvious and hopefully documentation will get better with more mature releases.  Next release is supposed to have better integration with spring-security.  I will write about my current implementation soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/548890756397371608-8188326417306494183?l=bigohno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bigohno.blogspot.com/feeds/8188326417306494183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bigohno.blogspot.com/2009/01/flex-spring-and-blazeds-integration.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/8188326417306494183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/8188326417306494183'/><link rel='alternate' type='text/html' href='http://bigohno.blogspot.com/2009/01/flex-spring-and-blazeds-integration.html' title='Flex Spring and Blazeds integration'/><author><name>cheolho</name><uri>http://www.blogger.com/profile/17679423917393754186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-548890756397371608.post-2662766354671015557</id><published>2008-11-20T03:21:00.000-08:00</published><updated>2008-12-04T11:38:00.947-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='as3'/><category scheme='http://www.blogger.com/atom/ns#' term='puremvc'/><category scheme='http://www.blogger.com/atom/ns#' term='flex 3'/><title type='text'>creation complete and puremvc</title><content type='html'>&lt;div&gt;Seems when working with puremvc and flex events there are some hangups, in that not all events are useable.  The one I found was that creationComplete event triggered by modules.  What I wanted was to be able to populate certain dropdowns from database dynmically.   The onload event triggered prior to onregister function in the mediator.  Documented is the lifecycle. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="border-collapse: collapse;   line-height: 16px; font-family:verdana;font-size:13px;"&gt;* Mxml creation&lt;br /&gt;  * View components&lt;br /&gt;  * Facade&lt;br /&gt;* PureMVC startup  &lt;br /&gt;  * Register proxies&lt;br /&gt;  * Register mediators&lt;br /&gt;* Request data&lt;br /&gt;  * Proxy method (such as 'load') invoked by mediator or command&lt;br /&gt;  * Proxy calls service directly or uses a delegate to do so. &lt;br /&gt;* Receive data&lt;br /&gt;  * Proxy recieves result/fault return&lt;br /&gt;  * if result then Proxy stores data internally, parsing if need be, possibly using a helper.&lt;br /&gt;  * Proxy sends result or fault notification.&lt;br /&gt;  * Interested mediators respond by setting data on view component.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To get around this I used a puremvc plugin called startup manager. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://blog.log2e.com/2008/05/19/getting-started-with-the-puremvc-startup-manager-introduction/"&gt;introduction to startup manager&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Creation complete&lt;br /&gt;--post defined by cliff creator of puremvc&lt;br /&gt;&lt;a href="http://forums.puremvc.org/index.php?topic=842.0"&gt;Link to puremvc forums about topic&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/548890756397371608-2662766354671015557?l=bigohno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bigohno.blogspot.com/feeds/2662766354671015557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bigohno.blogspot.com/2008/11/creation-complete-and-puremvc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/2662766354671015557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/2662766354671015557'/><link rel='alternate' type='text/html' href='http://bigohno.blogspot.com/2008/11/creation-complete-and-puremvc.html' title='creation complete and puremvc'/><author><name>cheolho</name><uri>http://www.blogger.com/profile/17679423917393754186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-548890756397371608.post-3673757528114043891</id><published>2008-10-11T10:59:00.000-07:00</published><updated>2008-10-29T02:21:27.087-07:00</updated><title type='text'>Flex-Mojos and working with modules</title><content type='html'>overview : I have several maven modules, maven java module - consists of java domain, and persistance,  maven flex module - consists of actionscript files, and mxml, and any other supporting flex artifacts, maven web module- any related java, jsp, js, html, and anything responsible for packaging.  I have one main application consisting of the shell, and several modules built in the same flex project.  I assume , this is pretty standard setup, or something similar.  So when packaging war. Using maven copy-dependencies plugin, we are able to copy the swf file as a dependency into the war.&lt;br /&gt;- When maven compiles the flex package, it creates the main swf .. ex. flexapp.swf, and additional modules  ex. flexmod1.swf .  This gets created and installed in  maven under the same group and artifact and id. &lt;br /&gt;Took some time to figure out when packaging the war how to include all swf files in the war. &lt;br /&gt;&lt;br /&gt;-  this includes the main compiled swf&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        &amp;lt;dependency&amp;gt;&lt;br /&gt;            &amp;lt;groupId&amp;gt;${project.groupId}&amp;lt;/groupId&amp;gt;&lt;br /&gt;            &amp;lt;artifactId&amp;gt;mainproj&amp;lt;/artifactId&amp;gt;&lt;br /&gt;            &amp;lt;version&amp;gt;${project.version}&amp;lt;/version&amp;gt;&lt;br /&gt;            &amp;lt;type&amp;gt;swf&amp;lt;/type&amp;gt;&lt;br /&gt;        &amp;lt;/dependency&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;- to include the compiled modules&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        &amp;lt;dependency&amp;gt;&lt;br /&gt;            &amp;lt;groupId&amp;gt;${project.groupId}&amp;lt;/groupId&amp;gt;&lt;br /&gt;            &amp;lt;artifactId&amp;gt;mainproj&amp;lt;/artifactId&amp;gt;&lt;br /&gt;            &amp;lt;version&amp;gt;${project.version}&amp;lt;/version&amp;gt;&lt;br /&gt;            &amp;lt;type&amp;gt;swf&amp;lt;/type&amp;gt;&lt;br /&gt;            &amp;lt;classifier&amp;gt;nameofmodule&amp;lt;/classifier&amp;gt;&lt;br /&gt;        &amp;lt;/dependency&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;use the classifier to specify the name of the compiled module.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/548890756397371608-3673757528114043891?l=bigohno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bigohno.blogspot.com/feeds/3673757528114043891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bigohno.blogspot.com/2008/10/flex-mojos-and-working-with-modules.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/3673757528114043891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/3673757528114043891'/><link rel='alternate' type='text/html' href='http://bigohno.blogspot.com/2008/10/flex-mojos-and-working-with-modules.html' title='Flex-Mojos and working with modules'/><author><name>cheolho</name><uri>http://www.blogger.com/profile/17679423917393754186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-548890756397371608.post-3357229564744970695</id><published>2008-09-04T01:30:00.000-07:00</published><updated>2008-09-04T01:42:04.953-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='swc'/><category scheme='http://www.blogger.com/atom/ns#' term='flex-mojos'/><category scheme='http://www.blogger.com/atom/ns#' term='flex 3'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>Flex Libraries - SWC and Maven</title><content type='html'>Handling these dependencies in maven, is just like any other library or jar.  For example I'm using mate in my project ,&lt;br /&gt;&lt;br /&gt;mvn install:install-file -DgroupId=com.asfusion.mate -DartifactId=mate -Dversion=0.7.8 -Dpackaging=swc -Dfile=&amp;lt;file path&amp;gt;Mate_07_8.swc&lt;br /&gt;&lt;br /&gt;and now just add the dependency in your pom file ,&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;     &amp;lt;dependency&amp;gt;&lt;br /&gt;         &amp;lt;groupId&amp;gt;com.asfusion.mate&amp;lt;/groupId&amp;gt;&lt;br /&gt;         &amp;lt;artifactId&amp;gt;mate&amp;lt;/artifactId&amp;gt;&lt;br /&gt;         &amp;lt;version&amp;gt;0.7.8&amp;lt;/version&amp;gt;&lt;br /&gt;         &amp;lt;type&amp;gt;swc&amp;lt;/type&amp;gt;&lt;br /&gt;     &amp;lt;/dependency&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;for more information refer to this post &lt;a href="http://blog.flex-mojos.info/2008/06/27/adding-libraries-to-compilation/"&gt;Adding Libraries to Compilation&lt;/a&gt; by velos from the flex-mojos blog&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/548890756397371608-3357229564744970695?l=bigohno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bigohno.blogspot.com/feeds/3357229564744970695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bigohno.blogspot.com/2008/09/flex-libraries-swc-and-maven.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/3357229564744970695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/3357229564744970695'/><link rel='alternate' type='text/html' href='http://bigohno.blogspot.com/2008/09/flex-libraries-swc-and-maven.html' title='Flex Libraries - SWC and Maven'/><author><name>cheolho</name><uri>http://www.blogger.com/profile/17679423917393754186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-548890756397371608.post-2089115251728752671</id><published>2008-09-01T01:06:00.000-07:00</published><updated>2008-09-04T01:30:13.917-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='flex-mojos'/><category scheme='http://www.blogger.com/atom/ns#' term='flex 3'/><title type='text'>flex-mojos - getting started</title><content type='html'>&lt;h3&gt;&lt;span style="font-size:100%;"&gt;What is flex-mojos?&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;A collection of maven plugins to allow maven to compile, optimize, test and ... Flex SWF, Flex SWC, Air SWF and Air SWC.The main goal is to provide a full support to all mxmlc/compc options. Also here is post from the author on why he wrote it.  &lt;a href="http://blog.flex-mojos.info/2008/03/22/why/"&gt;Flex Mojos Why&lt;/a&gt;&lt;br /&gt;&lt;p&gt;First we want to add the flex dependencies to maven to our local repository, or your remote repository.  Download the flex sdk from here - &lt;a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3"&gt;Flex 3 SDK&lt;/a&gt; .  Follow the instructions here &lt;a href="http://blog.flex-mojos.info/2008/08/21/install-mojo/"&gt;Install Adob SDK Mojo&lt;/a&gt; .&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In the root project add the flex mojos repository&lt;/p&gt;&lt;span style="font-family:monospace;"&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  &amp;lt;repositories&amp;gt;&lt;br /&gt;      &amp;lt;repository&amp;gt;&lt;br /&gt;          &amp;lt;id&amp;gt;flex-mojos-repository&amp;lt;/id&amp;gt;&lt;br /&gt;          &amp;lt;url&amp;gt;http://svn.sonatype.org/flexmojos/repository/&amp;lt;/url&amp;gt;&lt;br /&gt;          &amp;lt;releases&amp;gt;&lt;br /&gt;              &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;br /&gt;          &amp;lt;/releases&amp;gt;&lt;br /&gt;          &amp;lt;snapshots&amp;gt;&lt;br /&gt;              &amp;lt;enabled&amp;gt;false&amp;lt;/enabled&amp;gt;&lt;br /&gt;          &amp;lt;/snapshots&amp;gt;&lt;br /&gt;      &amp;lt;/repository&amp;gt;&lt;br /&gt;  &amp;lt;/repositories&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Now we want to add pluginRepository next which is identical to repository&lt;/p&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  &amp;lt;pluginRepositories&amp;gt;&lt;br /&gt;      &amp;lt;pluginRepository&amp;gt;&lt;br /&gt;          &amp;lt;id&amp;gt;flex-mojos-repository&amp;lt;/id&amp;gt;&lt;br /&gt;          &amp;lt;url&amp;gt;&lt;br /&gt;              http://svn.sonatype.org/flexmojos/repository/&lt;br /&gt;          &amp;lt;/url&amp;gt;&lt;br /&gt;          &amp;lt;releases&amp;gt;&lt;br /&gt;              &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;br /&gt;          &amp;lt;/releases&amp;gt;&lt;br /&gt;          &amp;lt;snapshots&amp;gt;&lt;br /&gt;              &amp;lt;enabled&amp;gt;false&amp;lt;/enabled&amp;gt;&lt;br /&gt;          &amp;lt;/snapshots&amp;gt;&lt;br /&gt;      &amp;lt;/pluginRepository&amp;gt;&lt;br /&gt;  &amp;lt;/pluginRepositories&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;under build we add plugins - plugin&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  &amp;lt;build&amp;gt;&lt;br /&gt;      &amp;lt;pluginManagement&amp;gt;&lt;br /&gt;          &amp;lt;plugins&amp;gt;&lt;br /&gt;              &amp;lt;plugin&amp;gt;&lt;br /&gt;                  &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;&lt;br /&gt;                  &amp;lt;artifactId&amp;gt;maven-dependency-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;                  &amp;lt;version&amp;gt;2.0&amp;lt;/version&amp;gt;&lt;br /&gt;              &amp;lt;/plugin&amp;gt;&lt;br /&gt;              &amp;lt;plugin&amp;gt;&lt;br /&gt;                  &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;&lt;br /&gt;                  &amp;lt;artifactId&amp;gt;maven-assembly-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;                  &amp;lt;version&amp;gt;2.2-beta-2&amp;lt;/version&amp;gt;&lt;br /&gt;              &amp;lt;/plugin&amp;gt;&lt;br /&gt;          &amp;lt;/plugins&amp;gt;&lt;br /&gt;      &amp;lt;/pluginManagement&amp;gt;&lt;br /&gt;  &amp;lt;/build&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Now in the flex module under dependency all that is needed to handle all flex dependencies is this : &lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;dependencies&amp;gt;&lt;br /&gt; &amp;lt;dependency&amp;gt;&lt;br /&gt;  &amp;lt;groupId&amp;gt;com.adobe.flex.framework&amp;lt;/groupId&amp;gt;&lt;br /&gt;  &amp;lt;artifactId&amp;gt;flex-framework&amp;lt;/artifactId&amp;gt;&lt;br /&gt;  &amp;lt;version&amp;gt;3.0.3.2490&amp;lt;/version&amp;gt;&lt;br /&gt;  &amp;lt;type&amp;gt;pom&amp;lt;/type&amp;gt;&lt;br /&gt; &amp;lt;/dependency&amp;gt;&lt;br /&gt;&amp;lt;/dependencie&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now under build of the pom ..&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;build&amp;gt;&lt;br /&gt; &amp;lt;sourceDirectory&amp;gt;src/main/flex/&amp;lt;/sourceDirectory&amp;gt;&lt;br /&gt; &amp;lt;defaultGoal&amp;gt;install&amp;lt;/defaultGoal&amp;gt;&lt;br /&gt; &amp;lt;plugins&amp;gt;&lt;br /&gt;  &amp;lt;plugin&amp;gt;&lt;br /&gt;   &amp;lt;groupId&amp;gt;info.flex-mojos&amp;lt;/groupId&amp;gt;&lt;br /&gt;   &amp;lt;artifactId&amp;gt;flex-compiler-mojo&amp;lt;/artifactId&amp;gt;&lt;br /&gt;   &amp;lt;version&amp;gt;2.0M5&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;extensions&amp;gt;true&amp;lt;/extensions&amp;gt;&lt;br /&gt;   &amp;lt;dependencies&amp;gt;&lt;br /&gt;    &amp;lt;dependency&amp;gt;&lt;br /&gt;     &amp;lt;groupId&amp;gt;com.adobe.flex&amp;lt;/groupId&amp;gt;&lt;br /&gt;     &amp;lt;artifactId&amp;gt;compiler&amp;lt;/artifactId&amp;gt;&lt;br /&gt;     &amp;lt;version&amp;gt;3.0.3.2490&amp;lt;/version&amp;gt;&lt;br /&gt;     &amp;lt;type&amp;gt;pom&amp;lt;/type&amp;gt;&lt;br /&gt;    &amp;lt;/dependency&amp;gt;&lt;br /&gt;   &amp;lt;/dependencies&amp;gt;&lt;br /&gt;   &amp;lt;configuration&amp;gt;&lt;br /&gt;    &amp;lt;locales&amp;gt;&lt;br /&gt;     &amp;lt;param&amp;gt;en_US&amp;lt;/param&amp;gt;&lt;br /&gt;    &amp;lt;/locales&amp;gt;&lt;br /&gt;   &amp;lt;/configuration&amp;gt;&lt;br /&gt;  &amp;lt;/plugin&amp;gt;&lt;br /&gt; &amp;lt;/plugins&amp;gt;&lt;br /&gt;&amp;lt;/build&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Thats it...&lt;/p&gt;&lt;p&gt;Anytime you want to upgrade to a newer version of the sdk , just install and change version numbers.  Super simple.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;run mvn install , and everything should be good.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/548890756397371608-2089115251728752671?l=bigohno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bigohno.blogspot.com/feeds/2089115251728752671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bigohno.blogspot.com/2008/09/flex-mojos-getting-started.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/2089115251728752671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/2089115251728752671'/><link rel='alternate' type='text/html' href='http://bigohno.blogspot.com/2008/09/flex-mojos-getting-started.html' title='flex-mojos - getting started'/><author><name>cheolho</name><uri>http://www.blogger.com/profile/17679423917393754186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-548890756397371608.post-6492623181386613597</id><published>2008-08-27T02:23:00.000-07:00</published><updated>2008-09-03T01:59:38.333-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='blazeds'/><category scheme='http://www.blogger.com/atom/ns#' term='flex-mojos'/><category scheme='http://www.blogger.com/atom/ns#' term='flex 3'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>Flex and Java and Me - Getting Started</title><content type='html'>The technology stack I'm going to use is flex, actionscript 3 .. using pure mvc, mate, or caingorm ( this requires another writeup) for the front end.  Back end will be using java - spring , hibernate.  So  now that the easy stuff is out of the way, I'm going to setup the frame for the project using maven to manage dependencies, and builds.  I went through this tutorial  &lt;a href="http://www.adobe.com/devnet/flex/articles/fullstack_pt1.html"&gt;Flex, Spring and BlazeDS full Stack&lt;/a&gt;, and it was very good to get a good start running on the build and management tools. I will build and expand on this tutorial, to organize and manage everything easier.&lt;br /&gt;&lt;br /&gt;Adobe released &lt;a href="http://labs.adobe.com/technologies/flex/flexbuilder_linux/"&gt;Flex Builder Linux&lt;/a&gt;.  Im using alpha 4 currently.  Start with getting eclise 3.3 as I issues with ganymede 3.4 and Flex Builder alpha 3, but may have been resolved with alpha 4.  Also I'm using &lt;a href="http://maven.apache.org/eclipse-plugin.html"&gt;Q for Eclipse plugin&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Refer back to the original tutorial I followed for most examples.&lt;br /&gt;So to start  first thing to do is create a root project.  This is where all modules will be placed under.  In eclipse or maven directly create a project archetype quick-start.&lt;br /&gt;1.  delete the "src" directory, its not necessary.&lt;br /&gt;2.  Edit pom.xml change packaging to "pom" instead of "jar"&lt;br /&gt;3.  create a maven module for your flex for example projname-ria.&lt;br /&gt;&lt;br /&gt;Creating a Flex Module&lt;br /&gt;Create a maven module under the root project.  The archetype is the maven-archetype-flex.&lt;br /&gt;To have maven handle the adobe flex dependencies and to compile, I am currently using the     &lt;a href="http://code.google.com/p/flex-mojos/"&gt;-  flex mojos&lt;/a&gt; - project.  Some really excellent work is being done on this project.  Refer to my writeup here - flex-mojo - getting started&lt;br /&gt;&lt;br /&gt;Creating - Java&lt;br /&gt;Next I wil create a core module -  maven-archetype-quickstart  and a web module - maven-archetype-webapp.  The only thing I would consider is creating a commons project.  If you intend on creating library reusable classes, then its probably good to create it as a separate project.  Refactor later. &lt;br /&gt;Now for dependencies, add Spring 2.5.5 , and hibernate 3.2.6.ga as these are pretty much the middle tier and persistence tier frameworks we will be working with.&lt;br /&gt;&lt;br /&gt;Now pretty much follow the tutorial for the configuration module, and the plugins to put everything together. The only other catch is in the mxml files refer to the full namespace&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;and in the article they just refer to /2006/mxml and you will get compile errors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/548890756397371608-6492623181386613597?l=bigohno.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bigohno.blogspot.com/feeds/6492623181386613597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bigohno.blogspot.com/2008/08/flex-and-java-and-me-getting-started.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/6492623181386613597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/548890756397371608/posts/default/6492623181386613597'/><link rel='alternate' type='text/html' href='http://bigohno.blogspot.com/2008/08/flex-and-java-and-me-getting-started.html' title='Flex and Java and Me - Getting Started'/><author><name>cheolho</name><uri>http://www.blogger.com/profile/17679423917393754186</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
