Feedback on enterprise application development is needed!

Hi All,

We really need your feedback on all aspects of enterprise application
development in IDEA. This includes (but not limits to) development with
J2EE platform, various J2EE-related frameworks (Strungs, Hibernate,
Spring, etc.), web services and so on.

We would like to here every idea/problem/annoyance you can think of. You
can even just post links to JIRA issues, if there any, which are most
relevant for you. If you can say just "I wish you had..." it's also ok
for us.

In order to make all you wishes/discussions more categorized I'm posting
additional sub-topics for this message with narrower scope. Please post
all your ideas into them. (The discussion of this post should be
obviously done right beneath of it).

While we can't promise to implement every feature/idea you'll mention,
we will read and analyze every post. Let's shape the future IDEA version
together!

167 comments
Comment actions Permalink

Working with Hibernate in IDEA is quite OK. The DTD-aware editor helps a lot.
You could improve it by making IDEA aware of the semantics of Hibernate mapping files. When I create a mapping file for a class, IDEA could help with autocompletion for the definition of the properties. IDEA could also intelligently rename the properties in the mapping files, when I change the attributes and accesor methods of the class.

But on the other hand: Who knows if anyone will be using this old style mapping in a year when Hibernate 3.1 turns stable and EJB3 style mapping is available.

0
Comment actions Permalink

Let's be a bit provocative.
To be honest Struts is a pain. OK, it was one of the first Java frameworks to bring order into web programming with Java, but it has many failings. On of it being the huge amounts of teared apart actions that don't have a bigger domain oriented context.
People still cling to it, because it was there when they needed something and because they now know how to workaround some nasty spots.
In the meanwhile other frameworks and even standards were developped. I think JSF is very promising and surmise that more and more new projects will go for it instead of Struts.
So I think it would be better to invest into support for JSF instead of more support for Struts.

0
Comment actions Permalink

This is in IDEA 5 (fully working in 5.0.2 :)

Robert F. Beeger wrote:

I think it would be great if IDEA had some support for Spring.
When I specify a bean for example and then specify a property for that bean, IDEA could look up what setters are available and propose them to me when I CTRL-Space inside the name attribute - along with the quick doc of the setter. When I now try to specify a value for that property, IDEA could also help with autocompletion and error markers in places wherer beans are used that don't implement the interface needed for the property. That would be a huge help. I personally don't need fancy graphs of my beans. I need an editor that is aware of the semantics of my Spring configurations.



--
Best regards,
Maxim Mossienko
IntelliJ Labs / JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"

0
Comment actions Permalink

http://www.jetbrains.net/jira/browse/IDEADEV-2638

Looking for you tring it out in 5.0.3 EAP.

Robert F. Beeger wrote:

You could improve it by making IDEA aware of the semantics of Hibernate mapping files. When I create a mapping file for a class, IDEA could help with autocompletion for the definition of the properties. IDEA could also intelligently rename the properties in the mapping files, when I change the attributes and accesor methods of the class.


--
Best regards,
Maxim Mossienko
IntelliJ Labs / JetBrains Inc.
http://www.intellij.com
"Develop with pleasure!"

0
Comment actions Permalink

See here for some cool Spring integration:
http://www.exadel.com/exadelstudio/help/springEditor.html


"Grant Gochnauer" <grant@gochnauer.org> wrote in message
news:di61p6$sr2$1@is.intellij.net...
>I would love an awesome interface in IntelliJ for working with Spring
>projects.
>

so +5 for that

>
>
>

"Robert Sfeir" <nomail@jetbrains.com> wrote in message
news:7c2dbfd120d518c7994124d4c260@news.jetbrains.com...

>> Well you asked so I'll put it in here and see what happens.
>>
>> One of the main issues I find difficult to work with with Spring is the
>> sheer number of xml information you have to put in. Often it's really
>> hard to see which bean is used by which other bean, or which controller
>> has a parent of controller x. It's hard to navigate these XML files and
>> see what's happening.
>>
>> Further sometimes when you refactor, you forget that a bean is no longer
>> in use, so when you remove it, you also have to remember that it exists
>> in the spring descriptors and you end up having to chase down startup
>> errors etc... It would make my work easier if in general when I do
>> refactoring, if you understood spring well enough that you also
>> recommended that I also remove that bean, and that particular bean also
>> has other elements relating to it, and pin point the location
>> graphically, not just highlight the XML.
>>
>> I use Spring's AOP a little, still learning its value. It would be great
>> if IDEA somehow helped me along with shortcuts for pointcuts etc...
>>
>> Thanks
>> R
>>
>>
>



0
Comment actions Permalink

What build are you referring to? This is certainly not working in 3511...

This is in IDEA 5 (fully working in 5.0.2 :)

Robert F. Beeger wrote:

>> I think it would be great if IDEA had some support for Spring.
>>
>> When I specify a bean for example and then specify a property for
>> that bean, IDEA could look up what setters are available and propose
>> them to me when I CTRL-Space inside the name attribute - along with
>> the quick doc of the setter. When I now try to specify a value for
>> that property, IDEA could also help with autocompletion and error
>> markers in places wherer beans are used that don't implement the
>> interface needed for the property. That would be a huge help. I
>> personally don't need fancy graphs of my beans. I need an editor that
>> is aware of the semantics of my Spring configurations.
>>


0
Comment actions Permalink

Oh, and this one's gonna sound stupid, but it would actually help the HTML authoring process considerably: spellchecking. I'd love it in Java source, but it's far more important in HTML, which is usually public facing. Preventing spelling errors isn't very sexy, I know, but it would probably save more of a average developer's time than most of the other stuff mentioned here. Ideally make it work like an inspection, available both interactive and batch.

--Dave Griffith

0
Comment actions Permalink

Fully agree! On the extended JMX features:

  • Allow to define custom renderers. The renderers would be JComponents,

implementing a single boolean canRender(mbeanInfo) method and probably
some metadata properties. Please no fancy XML formats à la MC4J.

  • Allow to specify preferred renderers per class. Or allow to specify

order of preference.

  • Allow to add JMX properties to watches.

  • Provide hooks to add context menu actions for the JMX browser and to

change the browser tree. This will allow us to build the following
feature as a plugin.

0
Comment actions Permalink

URL Logic, any virtual url can be viewed as virtual file system. Hoople is very interesting. http://www.sundog.net/hoople/index.html

0
Comment actions Permalink

????[/url]
sql?????[/url]
????[/url]
sql?????[/url]
???????[/url]
??????[/url]
???[/url]
?????[/url]
????[/url]
sql server??[/url]
????[/url]
??????[/url]
?????[/url]
?????[/url]
??????[/url]
?????[/url]
???????[/url]
raid????[/url]
????[/url]
sql?????[/url]
????????[/url]
raid????[/url]
sql??[/url]
????[/url]
??????[/url]
???[/url]
??????[/url]
?????[/url]
sql server??[/url]

???????[/url]
????[/url]

0
Comment actions Permalink

????[/url]
sql?????[/url]
????[/url]
sql?????[/url]
???????[/url]
??????[/url]
???[/url]
?????[/url]
????[/url]
sql server??[/url]
????[/url]
??????[/url]
?????[/url]
?????[/url]
??????[/url]
?????[/url]
???????[/url]
raid????[/url]
????[/url]
sql?????[/url]
????????[/url]
raid????[/url]
sql??[/url]
????[/url]
??????[/url]
???[/url]
??????[/url]
?????[/url]
sql server??[/url]

???????[/url]
????[/url]

0
Comment actions Permalink

Next EAP

Taras Tielkes wrote:

What build are you referring to? This is certainly not working in 3511...

>> This is in IDEA 5 (fully working in 5.0.2 :)
>>
>> Robert F. Beeger wrote:
>>
>>> I think it would be great if IDEA had some support for Spring.
>>>
>>> When I specify a bean for example and then specify a property for
>>> that bean, IDEA could look up what setters are available and propose
>>> them to me when I CTRL-Space inside the name attribute - along with
>>> the quick doc of the setter. When I now try to specify a value for
>>> that property, IDEA could also help with autocompletion and error
>>> markers in places wherer beans are used that don't implement the
>>> interface needed for the property. That would be a huge help. I
>>> personally don't need fancy graphs of my beans. I need an editor that
>>> is aware of the semantics of my Spring configurations.
>>>




--
Maxim Mossienko
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"

0
Comment actions Permalink

I'd not worry about ejb3 support. I'm writing a ton of ejb3 beans right now and it works perfectly in IDEA, the model is simple enough that IDE support really is no big deal.

The only potentially useful plugin type thing that IDEA could provide (it's in fact possible right now to write such a plugin, just a matter of finding the time) would be lots of error detections on invalid annotations on tags, etc. (eg, you should get a little red mark for specify @OneToMany on a String field).

Finally, one big item on my wishlist is being able to validate, parse, and plugin logic when writing strings. For example:

Query q = entityManager.createNamedQuery(" should show me a list of the named queries in my project. Similarly: Query q = entityManager.createQuery("select d from Document d where d.]]> should list properties of Document.java.

0
Comment actions Permalink

Controvertially, I'm proposed that IDEA NOT add any hibernate specific features.

The reason is that the hibernate guys themselves will be strongly pushing ejb3. Using hibernate with the ejb3 annotations is so so much simpler that I suspect everyone will migrate to this platform.

Neither of hibernate or struts are de-facto standards, so wasting effort on specific implementations is a waste of time (as has been proven in fact in the past with every product specific integration IDEA adds, someone ALWAYS ends up wanting to use the same api provided by said product, but suing a competing implementation)

Specs are great!

0
Comment actions Permalink

Given how common expression languages are, a very easy win would be being able to plug in my own classes to handle navigation, or have a ton of helpers that make this trivial.

For example, in a jsp page:

${mybean.} (JSP EL) ]]>

Similarly for OGNL (used by ww2 and tapestry) and other weird things that anyone might care to choose (commons beanutils, etc). There should also be magic to be able to do this for any string in any source file.

I strongly dissaprove of the dozens of posts here for people asking for specific implementations, it's a much wiser investment of JetBrains' time to focus on what people want to do, then provide a generic way for said things to be done via plugins. I'm sure it's not hard to find people willing to do the work to write a plugin for their favourite API's.

0
Comment actions Permalink

I find that the most bothering aspect with respect to compilation is the time the "post-compilation" part takes: I mean, the compilation in itself is pretty fast, in my view, but the copying of resources (and especially the check to see if there are unsynced resources) takes much too long. I don't know if there's space for optimization, here, but I'm already running with "in-place" war (i.e.: no exploded dir different than my dev dir), but it seems that the size of my app (and the fact it has a dependency on another module) makes the "make" process this long.

0
Comment actions Permalink

Controvertially, I'm proposed that IDEA NOT add any
hibernate specific features.

The reason is that the hibernate guys themselves will
be strongly pushing ejb3. Using hibernate with the
ejb3 annotations is so so much simpler that I suspect
everyone will migrate to this platform.

Neither of hibernate or struts are de-facto
standards, so wasting effort on specific
implementations is a waste of time (as has been
proven in fact in the past with every product
specific integration IDEA adds, someone ALWAYS ends
up wanting to use the same api provided by said
product, but suing a competing implementation)

Specs are great!


Ehm, Hani's opinion makes sense, but I'd like to speak for all those who have a big app built on "legacy" Struts + Spring + Hibernate (2) architectures. In my company we have a STRONG investment in those technologies, and are not migrating soon to newer stuff such as ejb3. I agree that standards are good, and the direction the JCP is taking with JEE 5 is nice but... we have been needing hibernate support for years, and are working today with half-baked stuff (middlegen, xdoclet, and so on). I don't want complex graphical stuff, but autocompletion support for hibernate mappings, some sort of refactoring feature and so on is something that should not be too difficult to implement, given the current level of idea features in this field, and which would provide a lot of benefit to the companies using those technologies. We do, and we upgraded to IDEA 5 even if we were not entirely sure about its feature set: a 5.5 version with the features we're talking about here is definitely something that would make us happy. ;)

0
Comment actions Permalink

WebSphere support, for god's sake. Don't just ignore the poor folks who just refuse to work with the WSAD/RAD bloat-monsters and want to keep their sanity working with something that doesn't take 800 megs of memory for a normal run and that doesn't often freeze for minutes doing arcane things. I'm sure that a lot of people would be happy not having to spend 5000$ per license, if IDEA provided a decent alternative in this field. Consider also that while WSAD 5 had a number of "integrated" screens for configuring the app server in test mode, RAD 6 now delegates to the "normal" app server web console even for configuration of the test mode, so a competitive integration in this field now actually requires only start/stop/debug/deploy features, and websphere 6 already simplifies working without an IDE.

0
Comment actions Permalink

+1
Ok, +(all my remaining votes), indeed.

0
Comment actions Permalink

I don't think the graphical stuff is really needed, in IDEA. I find that a consistent set of navigation features on par with the ones for java editing would greatly benefit Spring development, and would probably be all that's needed.

0
Comment actions Permalink

Oh god, I'm not sure I can stand the surprise shock.

0
Comment actions Permalink

I agree on that as well, it should be too graphical... a proper outline
structure and more powerful navigation would really help.

O

On 2005-10-09 15:10:51 +0200, Davide Baroncelli <baroncelli@yahoo.com> said:

I don't think the graphical stuff is really needed, in IDEA. I find
that a consistent set of navigation features on par with the ones for
java editing would greatly benefit Spring development, and would
probably be all that's needed.



0
Comment actions Permalink

What about the packaging-enhancements I discussed with Serge Branov via
e-mail and posted here with topic "IDEA Roadmap (esp. Java EE 5)?"?
What's the state of them... sorry to bother again, but these should
already be supported for J2EE 1.4 development.

regards,

Messi

Mike Aizatsky (JetBrains) wrote:

Hi All,

We really need your feedback on all aspects of enterprise application
development in IDEA. This includes (but not limits to) development with
J2EE platform, various J2EE-related frameworks (Strungs, Hibernate,
Spring, etc.), web services and so on.

We would like to here every idea/problem/annoyance you can think of. You
can even just post links to JIRA issues, if there any, which are most
relevant for you. If you can say just "I wish you had..." it's also ok
for us.

In order to make all you wishes/discussions more categorized I'm posting
additional sub-topics for this message with narrower scope. Please post
all your ideas into them. (The discussion of this post should be
obviously done right beneath of it).

While we can't promise to implement every feature/idea you'll mention,
we will read and analyze every post. Let's shape the future IDEA version
together!

0
Comment actions Permalink

Cool. I definitely will try that out.

0
Comment actions Permalink

Cannot wait to see it in action.

BTW: It's a bit confusing when you refer to the next EAP as 5.0.2 or 5.0.3, which would normally be bugfix releases for 5.0 and not a new development with new features and an own EAP cycle.

0
Comment actions Permalink

Messsi,

Can you please repost your message in this under Compilation/deployment
thread?

0
Comment actions Permalink

I'd like some way of reorganization for Run/Debug window, so we can:

  • see more than one application's output at once (i.e. when we're

debugging both a client and a server)

  • compare the results from different searches.

  • compare the hierarchies of different classes.

  • in complex double-tabbed views (the debug view comes to mind), see

different tabs at the same time (watcheslocalslog)

A full fledged docking framework like JIDE can handle this, but I
actually like IDEA's simplicity (one tool-window on each side), so if we
can find a conceptually simple solution which will handle this scenrio
I'm all for it.

For me it would be enough if I can just detach each and every tab in its
own floating window. I recognize that this could easily lead to chaos,
but this is the price you pay for the flexibility.

Another idea is to have sticky floating windows - when 2 floating
windows get in proximity, they snap to each other. When we move the
topmost-left wondow in a group, we move the whole group (the idea is
borrowed from winamp2.)

A feature that comes to mind is a full docking framework with saveable
layouts, which can be associated with particular mode of operation(run,
debug, etc.) Seeing eclipse's perspectives and NetBeans' similar
features, I'd rather say it's not a good idea.

Another approach which seems reasonable is to allow detaching the each
first-level tab in a floating window (this covers the comparison
scenario). And allow alternative representation of the inner bars as
drawers (outlook-bar style.) Right-clicking an inner tab/drawer would
pop-up a context menu with options "View As Tabs", "View As Horiz.
Drawer", "View As Vertical Drawer". This would satisfy the last of the
requirements.

0
Comment actions Permalink

This should be doable as a plugin once we get the basic JMX integration.

  • Select a number of components in the JMX browser and choose 'New

Dashboard'. This would add a new node, which would contain aliases to
all selected mbeans. Any selected dashboards would be deep-copied into
as groups into the new dashboard. The default rendering would be a
vertical list of all components.

  • Allow to change the renderer-type per alias.

  • Allow multiple aliases for the same bean, so the user can use

different renderers.

  • Add more than one alias per mbean, so we can use multiple renderers

for the same bean.

  • The user should be able to move mbean aliases up and down the

dashboard sub-tree, reflecting the changes on the screen.

  • The user should be able to select a few adjacent renderers and choose

to wrap them in a horizontal or vertical box. This would allow for
arbitrary complex layouts. Consider the following scenario:
1. Add 4 renderers A, B, C and D
2. Wrap B and C in vertical box. This would pop a dialog asking for
the name of the group and optionally draw a named border around them.
3. Wrap A and the group in a horizontal box.

This would achieve the following layout:






== Drag & Drop features ==

- dragging a node should display an insert marker showing where you
would move the element if you release the button.

- Dragging an element over another element would draw a box around the
second element, so it hints that if we release the mouse button we would
create a group.


- Dragging an element over a group node would draw a box around the
group node, so it hints that if we release the mouse button we would add
the dragged element to the group.

- Dragging an element while holding Ctrl would trigger 'Clone' instead
of 'Move'operation.

0
Comment actions Permalink

Testing testing testing.

- This one might be crazy: whenever my code is in a compilable state, compile it and run my tests (or at least my unit tests). Or maybe when I'm editing a class that has a unit test, run the unit test any time the class' syntax is valid.

- Give me an editor that shows me my class and its unit test together. Maybe side-by-side, or maybe intertwingled (testFoo() is shown right after foo(), maybe with a different background color or something so you know it's not really in the same class).

- If a class has a unit test, let me know if the tests have recently passed. Hilight the methods whose unit tests are failing. In a test class, hilight the methods that have failed (with the reason in a yellow tool-tip box)

- Let me ctrl-click on a test method or test class to run it

0

Please sign in to leave a comment.