tag:blogger.com,1999:blog-74751474579916073472024-03-07T19:53:45.880-08:00Azzyzt JEE ToolsAzzyzt JEE Tools is a collection of open source software tools helping software developers to create database-backed services using Java Enterprise Edition 6. It is designed to be integrated with popular Java IDEs.Andreashttp://www.blogger.com/profile/15992874945092411553noreply@blogger.comBlogger13125tag:blogger.com,1999:blog-7475147457991607347.post-40498221788379138022012-05-16T04:50:00.001-07:002012-05-16T04:50:09.894-07:00Azzyzt JEE Tools 1.3.2 are available<span style="background-color: white; text-align: left;">Fixed a bug where under certain conditions string IDs would break storeMulti(). The cause was, that the check for the possibility of proxy ID translation of an ID field was done on the field’s owning entity instead of the field’s target entity. It broke as soon as an entity with numeric ID had an association to an entity with a string ID. String IDs inside of embedded IDs (like VisitId) were no problem, because embedded IDs are special-cased anyway. This closes issue #29.</span>Andreashttp://www.blogger.com/profile/15992874945092411553noreply@blogger.com4tag:blogger.com,1999:blog-7475147457991607347.post-31327328306021404242012-03-02T09:44:00.000-08:002012-03-02T09:45:47.717-08:00Azzyzt JEE Tools 1.3.1 are availableThis is a release with neither functional changes nor bug fixes. I just wanted to bring Azzyzt JEE Tools to the current versions of GlassFish and Eclipse.<br />
<br />
<span style="background-color: white; text-align: left;">Built and tested with Eclipse Indigo SR2, GlassFish 3.1.2 and Java 1.6.0_31</span><br />Andreashttp://www.blogger.com/profile/15992874945092411553noreply@blogger.com10tag:blogger.com,1999:blog-7475147457991607347.post-23430180693199255932012-01-10T07:25:00.000-08:002012-01-10T07:25:33.903-08:00Azzyzt JEE Tools 1.3.0 are availableAfter quite a long time I have a new version 1.3.0 available on <a href="https://github.com/amanessinger/azzyzt_jee_tools" target="_blank">GitHub</a>. Install it from the <a href="http://azzyzt.manessinger.com/azzyzt_generic/" target="_blank">update site</a> as usual. The changes are<br />
<br />
<ul class="Itemize" style="background-color: white; text-align: left;">
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">New URLs for SOAP and REST. The new URL schema bundles full services and restricted services. Thus it is possible to allow/disallow one of those categories based on the URL prefix. This breaks current applications and therefore we have bumped the minor version.</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">The default HTTP header expected to contain a pre-authenticated username is now “<code>x-authenticate-userid</code>”.</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">The default HTTP header expected to contain a user’s credentials is now “<code>x-authorize-roles</code>”. See the <a href="http://azzyzt.manessinger.com/doc/using_azzyzt.html" target="_blank">tutorial</a> for details on credentials.</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">These two HTTP header names and the default anonymous user name can still be changed via JNDI custom string resources, but this is more elaborate now. The old JNDI resource for the username HTTP header was “<code>custom/stringvalues/http/header/username</code>”, but as this is global and would define the header name for all applications, we have recognized that a per-app definition may be useful. From 1.3.0 on the first resource checked is “<code>custom/stringvalues/app_<APPNAME>/http/header/username</code>”, where “<code><APPNAME></code>” is the project base name, in the example application it’s “<code>cookbook</code>”. If this name is not defined, the global name “<code>custom/stringvalues/http/header/username</code>” is tried, and if that isn’t defined either, the default value is used.</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">Added lots of JavaDoc to runtime. Still not complete though.</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">Added an <code>AuthorizationInterface</code>. You can add a reference to an instance of a class implementing this interface to the <code>Azzyztant</code>. It’s completely analogous to the username converter and it can be used to check authorization per call, based on the taget class/method and credentials.</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">Eliminated the MAGWIEN feature. Through all the time it has been identical to the GENERIC feature anyway. So far we don’t need any special or secret code and the configuration options suffice.</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">Added a subset of <code>BETWEEN</code> to <code>QuerySpec</code>. You can specify <code>BETWEEN</code> clauses where the result is limited to be between two literals. This covers the most common uses. The general solution, where each limit can be either a literal or a field reference, would have needed a major refactoring or polluted the code to no end.</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">Tested with GlassFish 3.1.1</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">Tested with Indigo SR1</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">Added credential-based authorization</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">Added unit tests for credential-based authorization</li>
</ul>
<div style="text-align: left;">
Sorry for breaking the URL schema. It's much better now and from lack of feedback I doubt that too many external users (any?) will be affected at the moment.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
In any case: enough has changed to warrant going to the <a href="http://azzyzt.manessinger.com/doc/using_azzyzt.html" target="_blank">tutorial</a> again.</div>Andreashttp://www.blogger.com/profile/15992874945092411553noreply@blogger.com2tag:blogger.com,1999:blog-7475147457991607347.post-70765566981540044452011-07-07T04:40:00.000-07:002011-07-07T04:40:54.358-07:00Azzyzt JEE Tools 1.2.4 are available<span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">Some more customization: </span><br />
<br />
<ul><li><span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">Now you can not only cut back on features that would normally be generated, you can also <i>add features that would normally not be generated</i>. Currently the only option to add is an <i>Apache CXF REST client</i> project. Interfaces for the CXF proxy-based API are generated. The tutorial now contains an example for in-server unit tests implemented via CXF REST. </span></li>
<li><span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;">Customization of the REST error response via HTTP request headers.</span></li>
</ul><div><span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif;"><span class="Apple-style-span" style="font-size: 14px; line-height: 21px;">See section </span></span><a href="http://azzyzt.manessinger.com/doc/using_azzyzt.html#hd006" style="color: #0071f0;">6 Customization of the generated code</a> for all the details.</div>Andreashttp://www.blogger.com/profile/15992874945092411553noreply@blogger.com1tag:blogger.com,1999:blog-7475147457991607347.post-58845543183269853772011-06-26T08:00:00.000-07:002011-06-26T08:00:37.701-07:00Azzyzt JEE Tools 1.2.3 are availableEverybody makes an Indigo release these days, why shouldn't I :-?<br />
<br />
The only visible changes are in the vanity department: The installed feature is now displayed in the list of installed features (this was a harmless bug) and in Eclipse's "Help / About" dialog there's now an Azzyzt icon.<br />
<br />
Azzyzt JEE Tools are now built on Indigo and against a GlassFish 3.1 runtime. Up to now I have used Helios SR1 and GlassFish 3.01 for building.<br />
<br />
I have tested the cookbook tutorial in the following configurations:<br />
<ul class="Itemize"><li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">Glassfish Tools Bundle for Eclipse (Galileo SR1 + GlassFish 3.0)</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">Helios SR1 + GlassFish 3.01</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">Helios SR2 + GlassFish 3.1</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">Indigo + GlassFish 3.1</li>
</ul><div>I guess I should try to automate these tests :)</div>Andreashttp://www.blogger.com/profile/15992874945092411553noreply@blogger.com0tag:blogger.com,1999:blog-7475147457991607347.post-38837831280894490042011-06-20T01:07:00.000-07:002011-06-26T08:01:04.284-07:00Azzyzt JEE Tools 1.2.2 are availableWell, actually they've been available since Friday afternoon, but you just don't announce new software on Fridays. So, what's new?<br />
<br />
<ul class="Itemize"><li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">Support for JSON added. Query spec parameter for list operations is intentionally still XML though. The operations in the generated ModifyMulti bean could theoretically be accessed via JSON, but in practice this fails due to lacking deserialization support for polymorphic lists. In XML this is solved via <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">@XmlSeeAlso</span> annotations on parent classes, <a href="http://jackson.codehaus.org/">Jackson</a>, the JSON base technology in GlassFish, has evolved something analogous in 1.5 and as GlassFish 3.1 ships with 1.5.5, it would be possible to support it. The necessary annotations are in the package<span class="Apple-style-span" style="font-family: inherit;"> </span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">org.codehaus.jackson.annotate</span>, and I expect them to surface somewhere under <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">javax.ws.rs</span> in JEE 7. If you really need it now, you can always change the code or the generator :)</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">Two new cutbacks can be defined in Azzyztant: <code>NoRestServicesXml</code> and <code>NoRestServicesJson</code>. If both are used, no REST code is generated at all, not even the servlet.</li>
<li class="Itemize-1 Itemize dash" style="margin-right: 20px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;">A good one and a bad one: we now clean all <code>generated</code> folders before generating code. This has become a necessity with cutbacks. The drawback is, that we now have Apache Commons IO as an additional bundled library.</li>
</ul>Andreashttp://www.blogger.com/profile/15992874945092411553noreply@blogger.com0tag:blogger.com,1999:blog-7475147457991607347.post-9251448810242741862011-06-09T06:26:00.000-07:002011-06-09T06:26:19.969-07:00Documentation updatedOriginally I had got the semantics of the "<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Visit</span>" class in the tutorial stupidly wrong. The language used by the guide is no extra attribute, it clearly has to be a part of the embedded ID.<br />
<br />
How do I know? Well, in the original you couldn't insert two visits from the same ZIP area to the same city, but with different languages used by the guide. You always got an update of the same record, because the ID, combining only city and ZIP, was the same.<br />
<br />
Now we have an association between three entities, <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">City</span>, <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Zip</span> and <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Language</span>, all three contributing their respective IDs to the embedded ID, and the "<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">numberOfVisitors</span>" has become a "<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">totalNumberOfVisitors</span>". Whenever new data about a visit comes in, we look if an instance of Visit already exists. If so, we increment its total number of visitors, otherwise we create a new object. Maybe I should even call the class not <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Visit</span> but <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">VisitStats</span> or something like that.<br />
<br />
I have not made a new release, but I have already updated the documentation, the <a href="http://azzyzt.manessinger.com/doc/using_azzyzt.html">tutorial</a> as well as <a href="http://azzyzt.manessinger.com/doc.zip">doc.zip</a>, the archive that also contains sample sources. You would have got it with the next release, but I figure it is bad style keeping nonsense on the web as soon as you recognize it's nonsense :)Andreashttp://www.blogger.com/profile/15992874945092411553noreply@blogger.com1tag:blogger.com,1999:blog-7475147457991607347.post-59126865993066925712011-06-07T04:56:00.000-07:002011-06-07T04:56:35.938-07:00Azzyzt JEE Tools 1.2.1 are availableThis is really a bugfix release. Release 1.2.0 had a problem with azzyzted projects created by earlier versions. It tried to upgrade gracefully and failed miserably :)<br />
<br />
1.2.1 has been tested with the cookbook application as generated by 1.1.1 and 1.2.0. In both cases the upgrade works.<br />
<br />
Two user-visible changes are, that Azzyzt now generates a new project called "<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">azzyzt_tools</span>" and that there is a new file "<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">EarContent/META-INF/azzyzt.xml</span>" in the EAR project. You can ignore them by now, later on they may become useful. "<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">azzyzt_tools</span>" is not packaged into the EAR artifact, it is only used by the Azzyzt JEE Tools plugins during code generation.Andreashttp://www.blogger.com/profile/15992874945092411553noreply@blogger.com0tag:blogger.com,1999:blog-7475147457991607347.post-53160987023404756982011-06-01T00:22:00.000-07:002011-06-07T04:58:21.678-07:00Upgrading to 1.2.0Upgrading Azzyzt JEE Tools themselves is just a matter of upgrading an Eclipse feature from the update site, but if you already have created an azzyzted project with an earlier version, you will encounter a problem after the upgrade.<br />
<div><br />
</div><div>Azzyzt installs two runtime components into the <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">lib</span> directory of the EAR project, but it runs the code generator from the plugin itself. Unfortunately the code generated by the plugin depends on a particular version of the runtime components, and after the upgrade, code generator and runtime don't match.</div><div><br />
</div><div>If you generate code with 1.2.0 from an azzyzted project created with an earlier version, you will get "Azzyztant" created in the wrong package, and the code will not compile because of two missing interfaces.</div><div><br />
</div><div>This will be fixed in release 1.2.1 due in a few days, but until then, here are two possible temporary solutions:</div><div><br />
</div><div><ol><li>If the only code supplied by you are the entities and your <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">persistence.xml</span>, you can just save them, delete the four projects, create the azzyzted project anew, copy the saved entities and <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">persistence.xml</span> into the new projects, refresh the projects, clean all projects, and then you can safely generate code.</li>
<li>The other solution is to create a second azzyzted project (call it "dummy" or whatever you like), and then copy the contents of "<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">dummyEAR/lib</span>" over to the <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">lib</span> directory in your EAR project. Refresh your own EAR project, delete the dummy projects, create a sub-package "<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">meta</span>" parallel to "<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">entity</span>" in your EJB project's "<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">ejbModule</span>" source folder, and then you're done.</li>
</ol></div><div><br />
</div><div>Sorry for the inconvenience, next time there will be an automatic solution.</div>Andreashttp://www.blogger.com/profile/15992874945092411553noreply@blogger.com0tag:blogger.com,1999:blog-7475147457991607347.post-58007950977184775502011-05-31T14:27:00.000-07:002011-06-07T04:57:02.928-07:00Azzyzt JEE Tools 1.2.0 are availableWe are definitely making progress. <br />
<br />
Release 1.2.0 brings some basic validation of entity classes and embeddable classes. Embeddables are used as embedded IDs in those cases where we have to model a many-to-many association with extra attributes on the join table, and where the join table has no explicit ID from a sequence. In such cases we lump all foreign keys together into a class annotated with <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">@Embeddable</span>, and the entity class for the join table gets an instance of such an embeddable class as <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">@EmbeddedId</span>. See section "3.2.2.1 A complicated association" of the <a href="http://azzyzt.manessinger.com/doc/using_azzyzt.html" target="_blank">Azzyzt tutorial</a> for details.<br />
<br />
Embedded IDs are a special case of IDs, thus they have to be passed from client to service in cases like a lookup by ID. They get serialized by JAX-B like any other DTO, and today we had an interesting case:<br />
<br />
A developer had defined a mis-matching pair of getter/setter on a property of an embedded ID. The getter was <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">getidPerson()</span> and the setter was <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">setIdPerson()</span>. The problem is, that if we don't explicitly specify serialization rules with annotations, JAX-B just serializes all properties of an object, and it decides that something is a property, if there is a pair of matching getter/setter. Of course the difference between a lower case <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">i</span> and an upper case <span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">I</span> is not that big and is easy to miss. The effect was, that only one of the two foreign IDs comprising the embedded ID got serialized.<br />
<br />
Although I am quite confident by now, that the basic code in Azzyzt is working and stable, I am still in a phase where I tend to search for the error on my side. When I finally found the problem, I decided to solve it once and for all times. From now on all entity classes and all embeddables get verified. If any of the expected getters/setters for non-internal fields is missing, code generation fails with a precise log message telling you where the problem is.<br />
<br />
Other than that, Azzyzt 1.2.0 introduces some configurability. There is a new class Azzyztant. It gets generated into the user source folder of the EJB directory at project creation time, and if it does not exist at code generation time, it gets generated as well. You can modify this class in two ways:<br />
<br />
Set properties that get evaluated at runtime, or annotate the class to influence code generation. There is a new chapter "6 Customization of the generated code" in the <a href="http://azzyzt.manessinger.com/doc/using_azzyzt.html" target="_blank">Azzyzt tutorial</a> that explains the details.<br />
<br />
Currently Azzyzt offers one runtime hook (changing of portal-supplied user names) and two code generation options. They allow you to omit "<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">@Remote</span>" on service interfaces (thus I suppose we now support the JEE 6 web profile and therefore JBoss AS 6.0) and/or to omit "<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">@WebService</span>" on service beans. If you use both options, the application is exclusively available via REST.Andreashttp://www.blogger.com/profile/15992874945092411553noreply@blogger.com0tag:blogger.com,1999:blog-7475147457991607347.post-77522863734932748032011-05-24T12:03:00.000-07:002011-06-07T04:57:23.439-07:00Azzyzt JEE Tools 1.1.1 are availableThis is mostly a bug-fix release. Changes in 1.1.0 had broken support for entities with string IDs. Now everything works again.<br />
<br />
If you already have seen the tutorial, you might like to have another look at it. The cookbook application has got one more table, this time it's a simple key/value lookup table.<br />
<br />
Other than that, the name of the HTTP header used for determining the calling user (expected to be set by a portal in front of the application) is now configurable via JNDI lookup of a string resource in the server. Just define the resource and the generated application will use the header of your choice.Andreashttp://www.blogger.com/profile/15992874945092411553noreply@blogger.com0tag:blogger.com,1999:blog-7475147457991607347.post-78389393895796266452011-05-22T13:35:00.000-07:002011-06-07T04:57:49.572-07:00Azzyzt JEE Tools 1.1.0 are availableActually version 1.0.0 has been available since end of March, but I had not announced it. Thus 1.1.0 is the first version that's really open to the public.<br />
<br />
As I've already mentioned in the first post, Azzyzt JEE Tools is a collection of software tools helping software developers to create software using Java Enterprise Edition 6. It is designed to be integrated into popular Java IDEs, and at the moment this means it is an Eclipse plugin.<br />
<br />
<blockquote><i>Azzyzt JEE Tools is a set of Eclipse plugins for creating a so-called <b>azzyzted project</b>, and for <b>creating code</b> from a model. Azzyzt uses <b>Java JPA entities as a model</b>, and from that model it creates an enterprise application, ready to be deployed in a <b>Java EE 6</b> application server like GlassFish 3.1, ready to be accessed via <b>CORBA</b>, <b>SOAP</b> and <b>REST</b>. Thus the generated application is a set of web services, providing all that you need in a typical CRUD application. </i></blockquote><blockquote><i>Generated enterprise applications have separate source folders for generated and developer-supplied content. Add your own functionality to a well-engineered base project.</i></blockquote><blockquote><i>Azzyzt JEE Tools is not about user interfaces. It is expected that the generated application is accessed by a RIA frontend (Flex/Flash, Silverlight, Java FX, ...) or by a fat client. </i></blockquote><br />
If you just want to use Azzyzt JEE Tools (as opposed to modify and build them), the recommended way to install the software is via an Eclipse update site. As of release 1.1.0, there are two update site URLs, one for the edition used by the Municipiality of Vienna, Austria, the other a generic version. The URLs are<br />
<br />
<a href="http://azzyzt.manessinger.com/azzyzt_generic/" target="_blank">http://azzyzt.manessinger.com/azzyzt_generic/</a><br />
<br />
<a href="http://azzyzt.manessinger.com/azzyzt_magwien/" target="_blank">http://azzyzt.manessinger.com/azzyzt_magwien/</a><br />
<br />
If you want to look into the source code, modify Azzyzt JEE Tools for your own use or if you even want to contribute, then you can fork the project from GitHub under the URL<br />
<br />
<a href="https://github.com/amanessinger/azzyzt_jee_tools" target="_blank">https://github.com/amanessinger/azzyzt_jee_tools</a><br />
<br />
So far the project lacks reference documentation, though a tutorial under <br />
<br />
<a href="http://azzyzt.manessinger.com/doc/using_azzyzt.html" target="_blank">http://azzyzt.manessinger.com/doc/using_azzyzt.html</a><br />
<br />
should give you a fairly good impression of what Azzyzt JEE Tools are about, how to get started and how to go on. The process of building/modifying the tools and of how to contribute to the code base currently lacks documentation.<br />
<br />
All announcements of new versions will be published here on<br />
<br />
<a href="http://www.azzyzt.org/" target="_blank">http://www.azzyzt.org</a><br />
<br />
Discussion of the architecture, of interesting details of the implementation, and in general of things I've learned in the process, will happen on my programming blog<br />
<br />
<a href="http://programming.manessinger.com/" target="_blank">http://programming.manessinger.com/</a><br />
<br />
If you want to be kept up-to-date, I suggest that you subscribe to the feeds of both sites, <a href="http://www.azzyzt.org/feeds/posts/default" target="_blank">azzyzt.org</a> and <a href="http://feeds.feedburner.com/manessinger/dBES" target="_blank">programming.manessinger.com</a>, in the feed reader of your choice.<br />
<br />
Azzyzt JEE Tools are based on my <a href="http://programming.manessinger.com/tutorials/an-eclipse-glassfish-java-ee-6-tutorial/" target="_blank">Eclipse / GlassFish / Java EE 6 Tutorial</a> and on a subsequent internal class that I held in October/November 2010 and that was based on the tutorial as well. The code generated by Azzyzt JEE Tools is basically a refinement of the code presented in the tutorial, with some very interesting features added.<br />
<br />
Azzyzt JEE Tools are copyright (c) 2011, Municipiality of Vienna, Austria, licensed under the EUPL, version 1.1 or subsequent versions.Andreashttp://www.blogger.com/profile/15992874945092411553noreply@blogger.com1tag:blogger.com,1999:blog-7475147457991607347.post-67901927518189861982011-03-26T16:26:00.000-07:002011-03-26T16:26:56.588-07:00Welcome to the First PostThis blog is about Azzyzt JEE Tools. JEE means Java Enterprise Edition, and when I say JEE, I imply version 6 and above. If all that is gibberish to you, I suggest you leave for <a href="http://manessinger.com/" target="_blank">one of the other amazing sites out there</a>.<br />
<br />
Azzyzt JEE Tools is a set of software tools, designed to help you (actually me, but you as well) build JEE 6 applications. The focus is currently on web services, SOAP as well as REST. At the moment Azzyzt JEE Tools are implemented as an IDE-independent core and a set of Eclipse plugins. Support for other IDEs like NetBeans or IntelliJ IDEA would be possible.<br />
<br />
Azzyzt JEE Tools were designed and implemented <a href="http://programming.manessinger.com/" target="_blank">by me</a> and, more important, they were financed by my employer, the Municipiality of Vienna, Austria.<br />
<br />
As of March 27, 2011 the code is ready to be released, legal work is done, the only thing left is to actually publish it.<br />
<br />
I will use <a href="https://github.com/" target="_blank">GitHub</a> as hosting service for the source repository, and the code will be released under the <a href="http://www.osor.eu/eupl" target="_blank">European Union Public Licence</a> (the "EUPL"), a license that is compatible with several other popular open source licenses, among them the Eclipse Public License and the GPLv2.<br />
<br />
All further details will be announced on this blog soon. Until then, I suggest you have a look at my <a href="http://programming.manessinger.com/tutorials/an-eclipse-glassfish-java-ee-6-tutorial/" target="_blank">Java EE tutorial</a>. Code generated by Azzyzt JEE Tools largely follows those patterns.Andreashttp://www.blogger.com/profile/15992874945092411553noreply@blogger.com1