Java EE 6 Study Material - java-ee-6

I'm looking at doing one of the Java EE 6 certifications but I'm struggling to find out what study material is available to meet the exam objectives. Other certifications I've done I have just bought a book to prepare for the exam. The company I work for also has a certification program where they will pay for basic study material and the exam, but I think I can safely assume that one of Oracle's 5 day courses costing in the region of $3000 is out of the question.
I know it's very early in the game as most of the exams are still in beta testing but does any one know if there is any worthy study material to prepare for the exams or perhaps when some will be available. I'm leaning towards the JPA or JavaServer Pages and
Servlet Developer certifications.

I've never done such a certification, but wouldn't the official Java EE 6 tutorial from Oracle be a sound basis for preparation?

Related

how to evaluate if a project qualifies for or can be retrofitted with JBPM6

I had used JBPM 3.2 few years back as workflow engine. Now being part of a team were they had recently started a project, i need to evaluate if it can be improved/benefited by retrofitting JBPM 6 on it.
I am new to JBPM 6 so i read and researched to find road map for the list of changes,
http://www.jboss.org/jbpm/roadmap
whats new,
http://www.slideshare.net/krisverlaenen/2013-0611-whats-new-in-j-bpm6
did installation, demo and examples using,
http://docs.jboss.org/jbpm/v6.0/userguide/jBPMEclipseJBPM.html
however i am still coming up to speed in terms of what JBPM was and what it has become in these years and its capabilities. It would be helpful if someone can guide me in terms of what all things in a project scope make is qualify for JBPM 6.
thanks in advance,
There are a lot of reasons / advantages to using business processes (in general):
dynamic and flexible: extracting business logic in business process
allows you to evolve it or make it more flexible
higher-level: business analysts and end users could (possibly) understand and/or author business processes
monitoring and management: get an overview of all (current and historic) work
long-running and/or human tasks: some features are sometimes difficult to code but easier to express using specific business process constructs
performance: high throughput and scalability
tooling: a lot of out-of-the-box features and tools you can use
[note you definitely don't need to check all of these]
There's more, but you should make sure your benefits outweigh your initial learning curve / added complexity.

What is the best strategie to parallelize development with GWT? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I will need to build some complex GUI (approx a 100 of views). So we need to parallelize the development as much as possible (maybe on 10 devs). One option is to develop with html, css (compass) and JQuery+plugin in a classic way. We know exactly how to do and there is no question about that.
The other option is to use GWT, but we worried about how much development is parallelizable with GWT. We want to massively use Ajax and our 100 views will be hosted on 5 pages max.
Any experience return with such concern will be greatly appreciated.
JM.
GWT is great for parallel development but beware of the learning curve !
IMO GWT is more for OO developpers to write UI code than for Js developpers.
Java (like many other OO languages) allows you to split classes in many little files, allowing many people to work on the project simultaneously. Design patterns can help you factor complex programming patterns into reusable blocks. Most used patterns with GWT are MVP (an alternative version of MVC), Observer (with the eventBus), Command (with gwt-dispatch), ... Besides you can also use things like dependency injection with Gin so that modules can be composed easily, based on their interface (being implemented or not).
So GWT is great for Java developpers. They can use pattern they (should) master, and they (most of the time) don't have to worry about browser-specific details or Javascript.
A lot of developpers with a JavaScript background have a tendency, at least in the beginning, to code in Java as if it were JavaScript. The style is different and it takes a lot of time to be able to produce well-designed Java code, not too mention GWT where patterns and GWT-specific design are crucial and not always well documented. Anybody can write in Java, but the tens of books and billions of crappy lines of code around clearly indicate that it is not so easy to produce good OO code.
The same goes for Js. Put a Java developper on a Js project and watch the code being messed up within hours.
As Rod Johnson (father of Spring framework) says in his great book expert one on one j2ee design and development, when choosing a technology you should make a decision based on the skills you have !
So if I had a killer team with Javascript, HTML and CSS, who has limited knowledge about the above patterns or Java, I would tell them to learn about Ember (if they don't know it already) or any other Javascript MVC framework which also facilitates parallel development, buy books like "Maintainable JavaScript" or "Javascript patterns", and have everybody continue to do what they do best.
If the team is motivated by a new tech and wants to try GWT, I would put one or two of them on a proof-of-concept for at least a month. If they feel comfortable with GWT I would hire the best GWT consultant around, have him check once a week that we use the right tools and the right patterns in the right place, and have the team embrace GWT. I'd at least budgetize 3 to 6 months for everybody to get up to speed, depending on their knowledge of Java and the above patterns.
Here is my own experience.
We hired two medior consultants with no GWT background for a one-year project with 6 people who had a background in procedural programmation for half of them and in plain not-too-fancy Java for the other half.
The consultants behaved as if it was a payed self-training opportunity. Most design decision where taken by outsourced people and the team didn't have a chance to make his own mistakes and learn from them. At the moment (one year later) everybody improved but we are still struggling with the patterns, tools and design problems. It took me one month to read the GWT doc and two books about the subject but at least 4 months of hands-on dev to start figuring out I was wrong in many places. I learn new stuff about GWT every day and discover new bad design decisions we made every two other week.
With GWT, you can use the MVP design pattern, which separate your screen in small views and presenter. Instead the common socle and navigation is created, you can work each devs on a independant view.
The documentation of GWT :
http://www.gwtproject.org/doc/latest/DevGuideMvpActivitiesAndPlaces.html
I hope I answer your response.

Jbpm 5 and Seam 3 integration

Me and 14 collegues are taking the Engeneering Software Project course that takes 12 weeks from now.
The main propose in the project is to migrate the technologies between versions of an already made project.
The goal is to migrate from Seam 2.2 and Jbpm3 to Seam 3 and Jbpm5. Searching on the web we
found that there is no integration between them, so we don't really know how to continue. Also we have no experience developing with Java EE, Seam or Jbpm.
So the questions are,
Did you ever tried to integrate Seam3 and Jbpm5? Is there any information on the web about it that didn't find? Will it be possible to do in 12 weeks for 14 developers with no experience in the subject?
In case it will be impossible, is it possible to integrate Jbpm5 and an earlier version of Seam? Or Jbpm 4.3 with Seam3?
Are the Jbpm5 advantages so important that we may include it in the migration? Or Jbpm 4.3 is a good goal?
We would greatly appreciate if you send as some suggestions.
Thanks!
Q: Did you ever tried to integrate Seam3 and Jbpm5? Is there any information on the web about it that didn't find? Will it be possible to do in 12 weeks for 14 developers with no experience in the subject?
A: There have been no efforts yet to integrate Seam3 and jBPM 5. If I remember correctly, Seam2 pageflow is based on jpdl, which only jBPM 3 and 4 can read. jBPM 5 can not read jpdl. Whether or not it would be possible for 14 dev's to do it in 12 weeks depends on the level of the 14 developers. Given that none of the dev's have experience in Seam or jBPM, I don't think it will be possible.
Q: In case it will be impossible, is it possible to integrate Jbpm5 and an earlier version of Seam? Or Jbpm 4.3 with Seam3?
A: Integrating jBPM 4.3 with Seam 3 might be possible. But I'm not even sure the pageflow feature exists in Seam 3: there are some posts about it dating from 2010, but I'm not sure it was created in Seam 3.
Q: Are the Jbpm5 advantages so important that we may include it in the migration? Or Jbpm 4.3 is a good goal?
A: jBPM 5 has lots of advantages over jBPM 3, the most important ones being BPMN2 support and seamless integration with the rest of the Drools project. However, neither of those have to do with Seam integration.
In short, you're better off looking for another project for your class, IMHO.

UDK March 2012 vs CryEngine 3 (for a Job in the future?)

I'm getting into game development right now, and I want to do 3D games. I have been checking out UDK, Unity, and CryEngine 3 SDK. All of them, I can see, have their pros and cons. Unity, however, I am starting to rule out because I'm wanting to do Game Development as a job in the future. Since the Unreal Engine (which, as I understand, is 99% the same as UDK) and CryEngine 3 are the industry standards, apart from GameBryo etc.. (which I don't have money to buy as I'm 16 haha)
From what I understand the pros of UDK are:
Simpler (In terms of Scripting)
Runs on more computers than CE3
Industry standard, used in MANY top-notch games.
Kismet is really nice (for level-wide editing)
Development for iOS is possible, and free (minus the $99 fee to become an "Apple Developer"
Cross Platform (PC, Mac, iOS) for the UDK. UE3 (as I understand) is PC, Mac, iOS, PS3, Xbox360, and Android?
$99 to sell games, first $50,000 in sales is royalty-free
The cons are:
Must exit the editor to recompile the code every time you change the UnrealScript code.
Worse workflow than CryEngine 3
Soon to be replaced by Unreal Engine 4
Crashes often.
Not many tutorials.
The pros of CE3 is:
AMAZING Terrain Generator
True next-gen-top-notch graphics
Best water ever seen
Much better workflow than UE3
Rarely Crashes
The Cons are:
Must log in to use, if you lose Internet connection while editing, you won't even be able to save.
Expensive if you want to make commercial games.
Doesn't run on as many computers
Only on PC, PS3, and X360
More complicated scripting?
Is what I said the basis? Are there any pros or cons I have missed? Which do you recommend for a beginner (to game development, not programming in general. I am well versed in Python, know VB.NET, C#, HTML, and CSS) Is Unity a possibility for a game-development company to see potential in you?
EDIT: P.S. I thought I should mention this... I do not plan on making FPS as my main genre. I know it will be hard to do anything else with either UDK or CryEngine, but I don't mind. I need the learning experience. Mainly, can UDK AND CryEngine do this? I KNOW UDK can, but I'm only about 50% sure CryEngine can, I haven't seen many people ask this.
I'm learning UDK at the moment. Click on the welcome screen to access online video tutorials. This Buzz3D dude makes the best tutes ever. Although he uses an older version of UDK, I'm able to keep up and I've learned heaps. UDK is a very exciting editor. I plan on checking out CE3 at some stage. Dunno much about Unity. Might be good for developing to the upcoming ouya console (which is a bit of a dark horse for the industry).
I have played a little bit with UDK before and I think the pros and cons you mentioned are valid.
I don't know anything about the internal workings of game company recruitment, but I think for a beginner Unity3D is a choice worthy considering. Unity is not as powerful/productive/market-standard as UDK, but it does have some advantages:
C# scripting
Comprehensible documentation, tutorials and active community
Friendly and easy-to-use IDE, Script Editor and (most importantly) Debugging Tools.
Anyway, if you follow some tutorials it shouldn't take more than a few days to learn the basics of Unity and make some game prototypes. I would recommend it as a staring point even if you are going to migrate to another engine later.
Just on the pricing of each, Read the notea correction to UDK pricing.
Here is the cost of each currently
Crytek: For Indy Developers
-"Crytek require only 20% of the developer’s revenues from the commercial launch of their game." -I find this more appealing for sheer simplicity's sake
UDK:
-"US $99 up-front, and a 0% royalty on you or your company's first US$50,000 in UDK related revenue from all your UDK based games or commercial applications, and a 25% royalty on UDK related revenue from all your UDK based games or commercial applications above US$50,000*"
*Note there is this to,
-"If you are using UDK internally within your business and the application created using UDK is not distributed to a third party (i.e., someone who is not your employee or subcontractor), you are required to pay Epic an annual license fee of US$2,500 per installed UDK developer seat per year. This license fee only applies to UDK seats used for development; no license fee is required for hardware where only the resulting applications are installed."
Alright I am not the best but what this seems to be is if you are a small dev team you could get away with only one charge of 2,500 by listing every one under on "employer" but I am not even sure If it applies to indie devs.
LINKS:
Cryengine: http://mycryengine.com/index.php?conid=43
UDK: http://www.udk.com/licensing
Thanks for you post,
Robert
I don't see where you get the idea UDK crashes often and "doesn't have many tutorials"?
You can also get away with having to recompile each script change with a system called "archetypes", I won't explain in detail, but you get the gist.
if you try to get anything outside of CE3 other than an FPS, you're going to have to dig into their C++ code which I can tell you now is the least documented, least commented, code to date.

What is the learning curve for development on JD Edwards?

On an average, how much time does it take to become proficient in development using JD Edwards? Is it easy to learn? Are there any prerequisites?
I'm assuming you're interested on learning the development skills of JD Edwards, not the business processes that the system actually implements.
There are 2 versions of JDE. One runs over AS/400 plataforms, DB2 database and uses RPG (language) to implement reports and functionalities. I'm not acquainted with that version (did very few interface jobs and they were all complicated due to DB2's differences from my usual flavours of databases - Oracle or SQL Server).
The other version is EnterpriseOne (formerly OneWorld). I started developing for this version in 2000 and kept active until 2006. It's very easy to achieve the basic level of development and then you get to face the oddities and known issues from the system and how to dodge them and that's when you become experienced.
All development tools are internal to JDE. There's a table designer, a query designer (with a grid interface that resembles any visual query designer), an interactive programs designer (forms), a report designer and a business rules designer.
If you have experience with any RDA tool (like Visual Studio, for instance) and development for databases, you will be able to use this knowledge to ease the learning curve. In my case, I was a SQL programmer and I had a lot of experience with Visual Basic and Microsoft Access. I was able to use that experience by understanding the underlying concepts of the system and adapting for them. It took me about 25 hours of training with a more seasoned programmer to get me ready to at least do basic stuff on real customers. This amount of hours varies from person to person, obviously.
However, I can say that I only started to feel that I was understanding the tools and the process after 6 months of daily work on my first customer. After about 12-18 months, I was ashamed of the first applications that I wrote, so I actually went back and rewrote some on my own time... :-)
The thing about JDE is: there's very little coding/functionality on the database side (because it used to be flexible on databases choices). All the forms and reports are written inside the actual system by way of the designers.
All "coding" is done by way of a simple (and sometimes dumb) point-and-click interface. For instance: you don't write an assignment statement, like var = value. You select the Assignment button, then you select the variable in a list, then you select the value in a list (or enter the value, if it's fixed).
All the rules behind forms, reports and business rules are created that way. One exception: when you're writing a business rule, you can opt between using this approach (called Named Event Rule - NER) or using the C language (called Business Function).
If you choose NER, after you finish, the system actually converts that to C.
There are debug functionalities for forms, reports and business rules.
This is basic development. There are other tools and functionalities that are usually assigned to developers and so you will be able to do a lot more. I've worked a lot with interfaces, interoperability, workflow and more.
Also noteworthy is that JDE has an internal tool for managing objects, version control, checkins, checkouts and transfering objects from one environment to another to complete the development cicle.
As a developer, the more you learn about the business processes being implemented, the better. You get to learn the inside (code, specs) and outside (process) for the functionalities and this helps you as a developer and helps you in your career (and paygrade).
Now, my only caveat regarding my answer: as I've mentioned, it's been a while since I left JD Edwards development. As far as I know, things are pretty much the same, but I can't say for sure.
Best advice I can offer: go to www.jdelist.com for specific questions and help with issues. Be polite, try to ask questions about specific matters instead of general questions (I mean: if you ask those guys how long does it take to learn JDE, they will probably ignore you, but if you ask stuff like "in your opinion, what are the most complex tasks for a JDE developer to master?" you will probably get some pretty good answers).
Hope it helps and wish you good luck with JDE. After the initial bump, I enjoyed my ride on it quite a lot.
You can start with the JD Edwards EntepriseOne Developer guide to learn about object management work bench, design tools for table, form and reports and API for Business Functions.
https://docs.oracle.com/cd/E53430_01/nav/development.htm
As far as I can tell, it depends on the version of JDE. There are a lot of different components, and different versions (from what I can tell.) For example, a sister company of ours is running JDE over terminals to an AS/400. It's all "Green Screen" text-based screens, typing three letter commands at a command prompt, and using the cursor to move around the screen.
I haven't tried to learn it in depth yet, but trying to learn enough to do basic support has taken me several months at a few hours a week. Think of JDE as a baby version of SAP, that gives you an idea of the scope of your question.
I taught some classes about JDEdwards EnterpriseOne Development.
One of my students who never programmed before took about 320 hours of trainning to be able to do some developments on JDEdwards. Nowadays he's a coworker and a good programmer.
His 320 hours of trainning was:
During 5 months I taught on saturdays, 8 hours
Then he got another trainning which was 4 hours week and 8 hours on saturdays for 5 weeks
As I've said after all this, he has being able to perform all tasks of a JDEdwards Developer.
And my advice to who is going to study this is to have a good knowledge of SQL and have programmed before in any compiled language, it helps a lot.