Using Oracle. Using Excel Files. Using Java Web Services. Using MySQL. Using PostgreSQL. Using SQL Server. Using Sqllite. Creating Django Sites. Using Requirements.
Seam in Action (Cover Seam 2) (Engels)
Using Code Engineering. Using Data Modeling. The most telling example is the developers that contributed the Excel module. The question is not what you gain or lose in comparison to running an app in JBoss, but rather what you gain or lose by not running the application in a Java EE container. In my opinion, servlet containers are a half-done job.
You know when you go into a new house and the kitchen looks great but there is a ladder to get to the upper floor or the basement is not finished? That is what a servlet container is like. You don't have any real management console and you have to take a weekend away from your wife to figure out how to get JTA working in Tomcat I am done with screwing around with JTA in Tomcat because frankly it is a waste of time. At this point, seam-gen only supports deployment to JBoss out of the box, so it happens to be easiest to deploy to JBoss. But I have provided instructions on how to modify a seam-gen application to deploy to GlassFish, and to control all aspects of GlassFish, including starting and stopping it.
In my opinion, it is easier to deploy to GlassFish now than it is to JBoss. The Seam project members must support JBoss first and foremost, but several project members, including myself, don't have any problem recommending another app server. And there is even extensive documentation for how to deploy Seam to just about every app server you know of OC4J , Weblogic , Websphere , and more , and even documentation on how to fix quirks in those other app servers something even the app server vendor refuses to document.
- Large-Scale Organizational Change. An Executives Guide.
- Oecd Economic Surveys: United Kingdom 2004-2005.
- 1.2. Your first Seam application: the registration example.
- CDI and Seam 3 are the Future of Both the Seam Community and Red Hat..
- GitHub - seam/migration: Migration of Seam 2 to Java EE 6 and Seam 3.
- Faux Surfaces in Polymer Clay: 30 Techniques & Projects That Imitate Precious Stones, Metals, Wood & More.
You have to type:. Things get worse with plugins. All plugin goals must be namespaced. That's because Maven 2 technically supports any command in the world, as long as there is a plugin to execute it. To run Jetty on a WAR project, for instance, you have to type:. Let's say that you also need to expand the WAR in-place and you want to run offline.
Then the command becomes:. I think you can see where this is going. When I first setup the booking examples for Seam 3, the record for the longest commandline in the readme went to this command, which undeploys, packages, and redeploys an EAR to JBoss AS:. That's why the aliases feature of the maven-cli-plugin is absolutely game-changing perhaps even life changing.
In fact, combined with the other two features I have covered, they make Maven 2 better and faster than Ant, hands down. I'll go so far as to say that there has never been a faster, more convenient way to execute builds. So what is an alias? Quite simply, a string of commands you would otherwise have to type in the console, aliased to a single word.
You define them in the plugin configuration. It's no longer even necessary to prefix commands with mvn or ant in the old days. Just one command. One word. The execute-phase console also supports direct execution of plugin goals. That means you can include them in the alias command. The only limitation is that when you include one in an alias, you have to specify the fully qualified name of the plugin groupId:artifactId before the goal rather than just it's prefix e.
This next alias invokes the harddeploy goal of the jboss-maven-plugin after packing the project. I find it nice to alias commonly used built-in Maven goals too, such as the one that lists the active profiles:. If this plugin isn't game changing, I don't know what is. All I can say as hell yeah! See the Seam 3 booking example to see this plugin in action and read additional commentary. Of course, the plugin supports this from the commandline too.
Update: I should also mention that this is a great way to debug Maven since you get an opportunity to attach a debugger before executing a command. What a year! There's no question that year 30 was the most eventful and life changing year of my life to this point. I truly feel like I have grabbed life by the horns and got it steered in the direction I really want it to head.
By far, the biggest accomplishment of the year was getting Seam in Action published. But writing my first book was the catalyst for many of the other events that took place. From start to finish of year 30, I presented for the first time at a software conference, which led to a half a dozen speaking engagements, more travel than I've ever done in one year, including my first ever trip to Europe, and the chance to meet a lot of prominent industry leaders.
Writing the book also helped me be more prolific. I passed my th blog entry and posted tweets on Twitter, which I began using just before JavaOne. What follows is an account of this passage into my 30 somethings, most of which can be found in my tweet archive. I didn't expect Ken Rimple for Chariot Solutions to be so quick in getting up part 2 of my Seam interview , which I introduced in a previous entry , so you get two posts in one day.
If you had iTunes or your RSS feed reader working, you'd already be in the know. I'll be speaking at two conferences back-to-back in March, which is about as much madness as I can handle.
Seam Framework - Ending a conversation using beforeRedirect and execution of Factory method
It's interesting to note that just over 6 months ago I was near Caesar's real palace, or what's left of it. Then I'll be coming back home and speaking at Emerging Technologies for the Enterprise in nearby Philadelphia the following Friday. In both cities, I'll be speaking about Seam Security. Always wanting to put on a good show I mean, it is Vegas after all I put together a fresh application that leverages Seam's new identity and permissions management API.
It's a design comp manager that allows a designer to share designs with clients. The application showcases how Seam Security blends ACLs and rules in a truly unique and revolutionary way to provide a powerful and expressive security model. While creating an application like that may sound difficult to achieve, my talk demonstrates that it's shockingly simple setup and start using.
Like poker, though, it does take time to perfect. Authoring complex rules are not always easy. I spent nearly two days getting a feel for the API. But then again, I've got a killer app to show for my labor. Posted at AM in Java , Seam del. Seam in Action Translations January 02, A long overdue post, I'm still excited to share that Seam in Action was translated in into Korean and Simplified Chinese--two languages I can't even pretend to understand.
Open letter to the JCP Executive Committee calling for JCP reform November 01, Seizing the opportunity of a new Executive Committee EC under a new regime , I'd like to issue a call for reform of the Java Community Process JCP to allow it to produce more iterative and timely technology and live up to it's name as a "community process", rather than acting as the "corporate process" many believe it is today . We believe that the EC still has an important role to play in the future of Java, and working within the EC is the best place to push for change and improvements.
Java is certainly more "open" now than it was a decade ago, but it's not as open as [ We would like to see that change. The call for reform I propose that the JCP redefine itself as: "An open, community-oriented standards organization that produces standard technical specifications for Java technology in order to keep it competitive and to bring value and choice to businesses worldwide. Summary I'm calling for reform of the JCP.
Curious how JSF loads without requiring a listener in web. But this time, I got an interesting error message along with it: java. The Java EE 5 tutorial explains the function of the listener element as follows: A tag library can specify some classes that are event listeners.
I guess I now have motivation to add it back in ; So now you know. I justify my thoroughness in my first response: I'm going to be a little long-winded [ I started banging out applications in no time and I was happy with how they looked. I squeeze in a short review of the Art of Community at the end of the first part because it really sums up my vision of this project: The Art of Community is a truly inspiring book and it reminded me why I love doing what I do We are not just writing software for the community and publishing it as Open Source.
It's the community's software, solutions to problems that come from the real world. We want to support and foster that engine and the Seam Community Liaison is the spark plug of the engine and ensures it's properly greased. I explain our standards strategy as a defender of choice: Red Hat is strong when the Java EE platform is strong.
Our strategy does not depend on the platform remaining weak to justify the existence of our projects. It's quite the opposite. If we make one of our own projects obsolete, or some part of it, that's progress. To quote Jay Balunas , it's cyclic: Find a void. Fill the void. Standardize the fill. I liken Seam modules to JSF UI component libraries and explain how we will ensure portability: Seam 3 is primarily built on the CDI portable extension SPI, insulated from handling low-level concerns that run a high risk of breaking portability.
One of the principal requirements of Seam 3 modules is portability. The Arquillian in-container test framework allows modules to be continuously tested against an array of application servers. Will you still need extensions? And CDI was designed specifically to be able to root and foster such an ecosystem. You can even write your own extensions, which really wasn't possible with Seam 2. Now we just need a plug-in site ; I'm very excited about all the innovation that is taking place in the JBoss Community right now and I encourage you to become a part of it.
A concise and eloquent look at Seam March 30, Despite all that I have written, explained and presented about Seam , I often find myself struggling to sum it up in a few short breaths.
But as Matt clarifies, There is a lot to Seam, but not becuase Seam itself is vastly huge and complex, but because Seam integrates so many things together. So take your time and explore it all. Use what parts you need and skip the parts you don't. In the future, rather than struggling to find the words to describe Seam on a trip in an elevator, I'm just going to hand the interested listener a card with the URL to these blogs on it ; It's important to zero in on what Seam 2 provides, especially as we look ahead to Java EE 6 and the development of the Seam 3 portable extension library.
Why you didn't know the Unified EL is being updated August 02, Information about the proposed Unified EL update slated for Java EE 6 is hard to come by, so I decided to put together a blog entry with some useful links. That's the point of this entry : Let's start by looking at the big picture. A game-changing Maven 2 plugin you absolutely must use May 04, Ever since I first started using Maven 2 , I envisioned having a console in which I could execute life-cycle goals without having to incur Maven's startup cost between every run. The maven-cli-plugin Today my vision has come true thanks to Mr.
A fork in the road I was thrilled when I first discovered the plugin, but after giving it a shot I was disappointed to discover that it wasn't honoring profiles, which are a critical piece of the build see issue 2. Now let's "git" on with the presentation. Getting started To get started, add a plugin repository where the maven-cli-plugin is hosted as a top level element in your pom.
- Seam in Action.
- Subscribe to RSS.
- Implementing Navigation and Pageflows with Seam;
Now it's time to extend the build with And now, for the grand finale! You have to type: mvn clean package Things get worse with plugins. To run Jetty on a WAR project, for instance, you have to type: mvn run:jetty If you want to run clean, package, and then start jetty, you have to type: mvn clean package run:jetty Let's say that you also need to expand the WAR in-place and you want to run offline.
Then the command becomes: mvn -o clean package war:inplace run:jetty I think you can see where this is going. Chariot Tech Cast: Seam Interview Part 2 March 17, I didn't expect Ken Rimple for Chariot Solutions to be so quick in getting up part 2 of my Seam interview , which I introduced in a previous entry , so you get two posts in one day.
I emphasize that it is well worth your while to read it and something I think every Java EE developer needs to be aware of at some point in the near future. Web Beans - The namesake of the reference implementation RI , which is being developed by Red Hat and its community as an open source project. Thanks again to Ken for the hard work that I know went into publishing this interview. Maturing Your Application's Security with Seam Security March 17, I'll be speaking at two conferences back-to-back in March, which is about as much madness as I can handle.
The full abstract of the talk is below. Security is the cornerstone of your application's integrity and, consequently, you need to weave it throughout each layer, often in diverse ways. Seam Security allows you to evolve the security model of your application over time, keeping pace with the development cycle.
- Black Women and International Law: Deliberate Interactions, Movements and Actions?
- Your Answer.
- Pains of Youth.
- Decision and Game Theory in Management With Intuitionistic Fuzzy Sets.
- Built with Seam.
You can start with a very simple configuration that applies an exclusive security blanket over the application to keep out guests and establish a basic identity for the user. You can then mature the security infrastructure gradually by adopting Seam's declarative approach to authentication or defining fine-grained authorization rules that enforce contextual restrictions at the level of database records, database fields, object fields and UI fragments. Seam's security module, a central aspect of the Seam framework, offers a significantly simpler alternative to JAAS - the monolithic and cumbersome security model in Java EE.
The talk begins with some definitions to sort out what we mean when we say "security". The talk then switches to a tutorial style, showing you first how to get your foot in the door by setting up a JSF form-based authentication routine in Seam using either a custom authentication method or a declarative approach where the authentication is handled by the framework.