Skip to Content »

online discount medstore
advair diskus for sale
buy advair diskus without prescription
allegra for sale
buy allegra without prescription
aristocort for sale
buy aristocort without prescription
astelin for sale
buy astelin without prescription
atarax for sale
buy atarax without prescription
benadryl for sale
buy benadryl without prescription
buy clarinex without prescription
clarinex for sale
buy claritin without prescription
claritin for sale
buy flonase without prescription
flonase for sale
buy ventolin without prescription
ventolin for sale
amoxil for sale
buy amoxil without prescription
augmentin for sale
buy augmentin without prescription
bactrim for sale
buy bactrim without prescription
biaxin for sale
buy biaxin without prescription
buy cipro without prescription
cipro for sale
buy cleocin without prescription
cleocin for sale
buy dexone without prescription
dexone for sale
buy flagyl without prescription
flagyl for sale
buy levaquin without prescription
levaquin for sale
buy omnicef without prescription
omnicef for sale
amaryl for sale
buy amaryl without prescription
buy cozaar without prescription
cozaar for sale
buy diabecon without prescription
diabecon for sale
buy glucophage without prescription
glucophage for sale
buy glucotrol without prescription
glucotrol for sale
buy glucovance without prescription
glucovance for sale
buy micronase without prescription
micronase for sale
buy prandin without prescription
prandin for sale
buy precose without prescription
precose for sale
buy cialis professional without prescription
cialis professional for sale
buy cialis soft without prescription
cialis soft for sale
buy cialis super active without prescription
cialis super active for sale
buy cialis without prescription
cialis for sale
buy levitra without prescription
levitra for sale
buy viagra professional without prescription
viagra professional for sale
buy viagra soft without prescription
viagra soft for sale
buy viagra super active without prescription
viagra super active for sale
buy viagra super force without prescription
viagra super force for sale
buy viagra without prescription
viagra for sale
buy celebrex without prescription
celebrex for sale
buy colcrys without prescription
colcrys for sale
buy feldene without prescription
feldene for sale
buy imitrex without prescription
imitrex for sale
buy inderal without prescription
inderal for sale
buy indocin without prescription
indocin for sale
buy naprosyn without prescription
naprosyn for sale
buy pletal without prescription
pletal for sale
buy robaxin without prescription
robaxin for sale
buy voltaren without prescription
voltaren for sale

GWT XDoclet

  • September 9th, 2006
  • 12:56 am

Having used Google Web Toolkit to build an application, I found out that I had to write a good portion of code, which might as well be generated automatically. I then decided to mess around with XDoclet a little to see if it was possible to make a new module. It was, and now you can use it too.

Download

xdoclet-gwt-module-0.5.jar
xdoclet-gwt-module-0.4.jar
xdoclet-gwt-module-0.3.jar
xdoclet-gwt-module-0.2.jar
xdoclet-gwt-module-0.1.jar

Changelog

0.5: Added support for @gwt.typeArgs in service methods.

0.4: Added support for setting ServiceFactory prefix (set prefix attribute in servicefactory tag in build.xml), @gwt.style and @gwt.script in EntryPoint classes. See this post for more information.

0.3: Added support for file upload, added @gwt.inherits tag instead of inherits parameter in @gwt.module. This means that it’s possible to inherit from multiple modules.

Documentation

Basically, it can generate service interfaces, async services interface, module definitions (.xml.gwt), and a basic web.xml file. Finally, it can create a service factory for creating new Async-objects.

Service interfaces
When creating a remote service, just annotate the class like this:
[code]
package dk.contix.gwt.service;

/**
* @gwt.interface service=”dk.contix.gwt.shared.RemoteService” path=”/remoteService”
*/
public class RemoteServiceImpl implements RemoteService {

/**
* @gwt.serviceMethod
*/
public String getStuff(String what) {
// code here
}
}
[/code]

This will create the interface dk.contix.gwt.shared.RemoteService containing all methods which are annotated with @gwt.serviceMethod. It will also generate the async interface in dk.contix.gwt.shared.RemoteServiceAsync

Modules
To generate module definitions (.gwt.xml files), annotate the EntryPoint classes, like this:
[code]
package dk.contix.gwt.client;

/**
* @gwt.module package=”dk.contix.gwt” include=”client,shared”
*/
public class Client implements EntryPint {
// code here
}
[/code]

This will generate a file in dk/contix/gwt calles Client.gwt.xml. The file will contain the entry-point declaration, all remote servlets, and additional source paths (those specified in the include parameter).

ServiceFactory
If a service factory is generated, a class with static methods for creating instances of the Async interfaces will be created. The factory class will automatically detect url prefixes (if the application is deployed in another context than ROOT).

Generating the files
Create a build.xml file for Ant, if you don’t already have one. Include the following target:

[code]












[/code]

Finally, place xdoclet-gwt-module-0.2.jar in lib/ so that it becomes a part of the classpath. xdoclet-*.jar and xjavadoc-*.jar is also required. They can be downloaded from xdoclet.sourceforge.net.

Bootstrapping
When a new remote service is created, there’s no interface to implement. I work around this simply by annotating the service implementation, generating the code, and then adding the implements declaration.

Inheritance
If a module inherits another, this can be specified too, like this:
[code]
/**
* @gwt.inherits name=”dk.contix.gwt.BaseModule”
* @gwt.inherits name=”com.google.gwt.user.User”
*/
public class Module implements EntryPoint {

}
[/code]

File Uploads
The XDoclet module supports code generation for file upload support. The generated code includes a factory class for FormPanels, GWT module xml configuration and web.xml configuration. To use, add one or more @gwt.upload annotations to client classes which need upload capabilities:

[code]
package dk.contix.gwt.client;

/**
* @gwt.upload path=”/upload” servlet=”dk.contix.gwt.service.FileUpload”
* @gwt.upload path=”/jpegUpload” servlet=”dk.contix.gwt.service.FileUpload”
*/
public class UploadPanel extends Composite {
public UploadPanel() {
VerticalPanel p = new VerticalPanel();
final FormPanel fp1 = UploadFactory.createUpload();
fp1.setWidget(p);
fp1.addFormHandler(…);

final FormPanel fp2 = UploadFactory.createJpegUpload();
fp2.setWidget(p);

}
}
[/code]

To generate the factory, a line needs to be added to the ant build target in the gwtdoclet tag:
[code]









[/code]

The upload servlet isn’t generated, so you need to implement it yourself. Search for implementations in the GWT group.

typeArgs
Add @gwt.typeArgs to service methods to tell the GWT compiler which types are contained in a collection:

[code]
/**
* @gwt.serviceMethod
* @gwt.typeArgs dk.contix.Test
*/
public List getObjects() {
return new ArrayList();
}
[/code]

Don’t include <> in the annotation as you would do when using GWT directly.

29,841 People had this to say...

Gravatar

what is hcl in chemistry nukusoki44-tumblr 6 gpd deficiency medications

Gravatar

natural remedies for heartburn sokukeru49-tumb what’s to low of a blood pressure

Gravatar

Thanks for making adorable human hair weave https://www.youtube.com/watch?v=koiFnDsfNPU for girls with feet my size! I love these lace frontal https://www.youtube.com/watch?v=ny8rUpI_98I!

Gravatar

sudafed keep you awake bukusa28-domperidone unable to produce enough breast milk

Gravatar

You can make the use of these tools to bring your required features in cameras.Finding An Excellent Web Hosting CompanyElmer Summers   Submitted 2014 09 16 16:44:26 A web hosting company is really a company that holds websites, and the information they contain, for an individual or perhaps a company. This website and blog provides information on upcoming cultural events and artists that are enlisted to showcase their pieces and work of Arts.The Los Angeles Angels “remain involved” on Tanaka, along with a number of other teams that have been prominently linked to the Japanese right hander. Every one’s path to success is different so pay attention to where you are now and work that path.

Gravatar

Sensors To begin you need to confirm the presence of receptors in cameras. His success and popularity can be credited to the sale of 1.usCategory: Computers and TechnologyKeywords: ring of fire xbox 360, 3 red rings of death xbox 360, how to fix xbox 360 red rings of deathFour Players Suspended For Brewers Pirates Brawl RealGM WiretapFour players have been suspended for their roles in Sunday afternoon’s brawl between the Milwaukee Brewers and Pittsburgh Pirates.Things Not to Do to Fix an E74 Error CodeOnce you are sure that you have the E74 error, the first thing you might think to do is to call Microsoft.Click For Delivery – Selling Furniture Through The InternetClick For Delivery – Selling Furniture Through The InternetMay 31, 2013 | Author: Adam Stossel | Posted in Internet Business OnlineRunning an online business and having a successful online business are two completely different things.

Gravatar

Every one’s path to success is different so pay attention to where you are now and work that path.The most recommended way to fix the Xbox 360 E74 is called the towel trick.Yedlin was behind Kyle Walker in the pecking order at Tottenham since his move from the Seattle Sounders in 2014. Be cautious, though, as you may not desire to fall prey to your frauds. Various claims can have distinct rules about home enterprises.

Want your say?

* Required fields. Your e-mail address will not be published on this site

You can use the following XHTML tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>