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


+
- 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.+

"Continuous testing". Controversial, but probably very valuable. There's already a semi-experimental Eclipse plugin that does this.

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

Ctrl-Shift-F10 does this. I can't imagine coding without it. Also, it's worth mapping Ctrl-Shift-F11 to "Debug selected test".

--Dave Griffith

0
Comment actions Permalink

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.


Totally agree. Given the choice between implementing support for a large number of technologies and supporting a few technologies really well I'd go for the latter. Quality trumps quantity in my book. 5.0 is showing signs of growing quantity but declining quality.

Give the community the right tools and support for working with individual technologies and hopefully it will all just work out.

0
Comment actions Permalink

+1

and finally filter out the sun.*-garbage in editor

http://www.jetbrains.net/jira/browse/IDEA-1524

0
Comment actions Permalink

Totally agree. Given the choice between implementing
support for a large number of technologies and
supporting a few technologies really well I'd go for
the latter. Quality trumps quantity in my book. 5.0
is showing signs of growing quantity but declining
quality.

Give the community the right tools and support for
working with individual technologies and hopefully it
will all just work out.


I'm afraid jetbrains will have to provide both quality and quantity if they want IDEA to survive. The awful state of a lot of idea plugins is the best indicator of the fact that they can't only rely on plugin writers (and it seems obvious, to me: I'm not inclined to write a plugin for a software that I must pay for, and which asks me upgrade fees at every new release).

0
Comment actions Permalink

This is something I definately want. I don't use any JSP, EJB, Struts or Hibernate, but this is useful for everybody.

Bas

0
Comment actions Permalink

The feature was there already (not working by mistake).

Robert F. Beeger wrote:

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.



--
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.


Cool, really cool -- but how was that done? Is that specifically wired to Hibernate DTD? Is there some sort of wild guess, like "if a XML element includes a class name, children of that element may be properties of that class"? Or, better yet, is there a pluggable API so we can implement something like this for tons of other frameworks?

0
Comment actions Permalink

Via references, via references, dear Marcus.
Hibernate DTD reference
("http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd") is used
as identifier for Hibernate file.

Marcus Brito wrote:
>>http://www.jetbrains.net/jira/browse/IDEADEV-2638
>>Looking for you tring it out in 5.0.3 EAP.


Cool, really cool -- but how was that done? Is that specifically wired to Hibernate DTD? Is there some sort of wild guess, like "if a XML element includes a class name, children of that element may be properties of that class"? Or, better yet, is there a pluggable API so we can implement something like this for tons of other frameworks?



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

0
Comment actions Permalink

Via references, via references, dear Marcus.
Hibernate DTD reference
("http://hibernate.sourceforge.net/hibernate-mapping-3
0.dtd") is used
as identifier for Hibernate file.


My question exactly Maxim :) So this is something specific for Hibernate, not some sort of generic class/property wild guess. I wonder if there's a new OpenAPI for this.

0
Comment actions Permalink

That's somewhat sad, I have to say. A generic property-to-tag mapping solution would have neatly covered Spring as well, and probably a bunch of lesser configure-Java-in-XML products.

--Dave Griffith

0
Comment actions Permalink

Hello Maxim,

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

Not to take this off topic, but where??? Example please?

MM>
MM> Robert F. Beeger wrote:
MM>
>> 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

5.0.2 is not released yet :). Try next EAP

Robert Sfeir wrote:

Hello Maxim,

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

Not to take this off topic, but where??? Example please?

MM> MM> Robert F. Beeger wrote:
MM>

>>> 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

I do not share your concerns.

Hibernate field reference evaluates class reference in its own way. The
same is for Spring, the base reference class MethodPropertyReference is
common (the one is used in property of jsp:getProperty | jsp:setProperty).


Dave Griffith wrote:

That's somewhat sad, I have to say. A generic property-to-tag mapping solution would have neatly covered Spring as well, and probably a bunch of lesser configure-Java-in-XML products.

--Dave Griffith



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

0
Comment actions Permalink

> +

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

Ctrl-Shift-F10 does this. I can't imagine coding
without it. Also, it's worth mapping Ctrl-Shift-F11
to "Debug selected test".


Yeah, I use that key combo all the time. I also spend quite a bit of time pair programming with people who are new to IDEA, and it takes them quite a while to figure out all the key combos. I know that you can right-click or choose it from the Run menu, but those are a bit cumbersome too.

0
Comment actions Permalink

God, it works. I'm so happy I could cry. ;)

0
Comment actions Permalink

Method refs from Spring should work only.
Hibernate will be in 5.0.3 EAP.

Davide Baroncelli wrote:

God, it works. I'm so happy I could cry. ;)


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

0
Comment actions Permalink

Actually I tried it on an applicationContext.xml. I noticed it correctly completes property names, but does not indicate wrong names in any way. Should we file feature requests? ;)

0
Comment actions Permalink

Yes, please

P.S. Marcus Brito will come to this thread and request to switch the
highlighting OFF :)))

Davide Baroncelli wrote:

Actually I tried it on an applicationContext.xml. I noticed it correctly completes property names, but does not indicate wrong names in any way. Should we file feature requests? ;)


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

0
Comment actions Permalink

I'll need to dig up my old 'tracker' request.

In short, I would like to have a pluggable interface for external processing together with a 'generated' category for source folders.

For wsdl 2 java tasks, I would like to have the wsdl file added to local revision control .

Files residing in 'generated' source directories would not normally be included in even local revision control. They could be moved to conventional source or test source directories - or Idea will offer to move a file/add it to revision control when the user attempts to edit it.

0
Comment actions Permalink

P.S. Marcus Brito will come to this thread and
request to switch the
highlighting OFF :)))


Aw, cute! Does that means I'm building a reputation as a grumpy, cold and gray developer?

My peeve with error highlighting is all about false positives. If IDEA can't be 100% positive that this something is a problem, then it shouldn't mark it as so. Currently, this is a particular problem with HTML/JSP -- the very nature of these pages is too dynamic for IDEA to be sure about what constitutes a problem.

As I understand, the current property completion support in XML files is just an educated guess. There's no guarantee that the attribute values HAVE TO reference a class property. If this is really the case, than I'll stand for my position and say that IDEA shouldn't highlight nonexisting properties.

Hopefully I'm mistaken about this, and IDEA is only offering property completion on places that only property names are really supposed to go; if this is the case, by all means, highlight the erroneous references.

Cheers,

-- Marcus the Gray

0
Comment actions Permalink

The question is do you want to provide your own support
for Stuts, or do you want IDEA users to have any support
for Struts. Do you want to charge more for IDEA? Or do you
want to sell extensions for additional price (this is the
model I suggested to you guys long ago, and still think it
is a valid model)?

Other vendors like Exadel or NitroX, provide sensible
standalone tools and plugins for JSF, Struts, etc. Maybe all
you need is to deliver clean documented plugin API, so they
could implement their tools for IDEA as well?

Anyway, Struts is an old framework. On one hand, it is not
favorable anymore. On the other, there are a lot of Struts
apps that need support and maybe refactoring. I am pretty
much sure that if you create Struts plugin, it won't be used
for new development. Do you need to create a tool merely for
refactoring?

I use Struts myself, but I do not need an IDE to support it.
Just regular JSP support and unit testing (StrutsTestCase
works for me). Well, support for Struts tags would be nice,
but with JSTL I don't think it makes sense now.

There are a lot of ways to work with Struts. What visual
tools usually do is show a flow control from action to JSP
page to another action. Boring.
Would you like to support an event-based programming model that I use for Struts? Here is the link to my Struts library: http://struts.sourceforge.net/strutsdialogs With this approach you would not need cumbersome net of control chain, but instead a table of web resources with input events and resolutions and corresponding pages. ]]>

I am not a big fan of JSF, but it will surely be the
dominant framework.

If you want to be different, I would love to see support
for Wicket. I am now trying Wicket, and it is one pretty
cool framework. And it is made in Europe ;)

Michael.


0
Comment actions Permalink

Wicket: http://wicket.sourceforge.net/

What they think a good thing about it is that page structure
should reflect component structure in Java file. But this
kills me. I am not great in Swing, and Wicket has similar
approach. If an IDE could somehow match structure of my
component tree to structure of my page file, it would be
great.


0
Comment actions Permalink

Aw, cute! Does that means I'm building a reputation as a grumpy, cold and gray developer?

No, just very dynamic html / jsp coder, resistant for errors :)))

As I understand, the current property completion support in XML files is just an educated guess. There's no guarantee that the attribute values HAVE TO

reference a class property. If this is really the case, than I'll stand
for my position and say that IDEA shouldn't highlight nonexisting
properties.

So far IDEA guesses in the same way as Spring IMO works: pick up the
class name from parent tag, and takes the properties from there.

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

0
Comment actions Permalink

No, just very dynamic html / jsp coder, resistant for
errors :)))


Very dynamic, I like it. Catchy, would sound great as a tagline: Marcus, the very dynamic guy for all your java needs! :) :) :)

So far IDEA guesses in the same way as Spring IMO
works: pick up the class name from parent tag, and
takes the properties from there.


That would be great, and IDEA will really be able to mark incorrect references with 0% false positives.... except when BeanFactoryPostProcessors enter the game.

BeanFactoryPostProcessors can completly change the application context, at runtime. This way, seemly invalid references can become valid thanks to a post processor. My suggestions:

1) Take into account the most common post processors, placeholder configurers, and ignore (exclude from validation) property names containing placeholders ($).

2) Provide a way to completly disable reference checking, for the exotic case of a custom post processor that completly changes property declarations. Something like

<!-- noinspection PropertyNameReferenceChecking -->

at the beginning of the file or something like that would rock.

0
Comment actions Permalink

Marcus Brito wrote:
>>So far IDEA guesses in the same way as Spring IMO
>>works: pick up the class name from parent tag, and
>>takes the properties from there.


That would be great, and IDEA will really be able to mark incorrect references with 0% false positives.... except when BeanFactoryPostProcessors enter the game.

BeanFactoryPostProcessors can completly change the application context, at runtime. This way, seemly invalid references can become valid thanks to a post processor. My suggestions:

1) Take into account the most common post processors, placeholder configurers, and ignore (exclude from validation) property names containing placeholders ($).

2) Provide a way to completly disable reference checking, for the exotic case of a custom post processor that completly changes property declarations. Something like

<!-- noinspection PropertyNameReferenceChecking -->

at the beginning of the file or something like that would rock.


In Demetra we'll do this but for 5.0.2/5.0.3 NO validation :).

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

0
Comment actions Permalink

I'm afraid jetbrains will have to provide both
quality and quantity if they want IDEA to survive.
The awful state of a lot of idea plugins is the best
indicator of the fact that they can't only rely on
plugin writers (and it seems obvious, to me: I'm not
inclined to write a plugin for a software that I must
pay for, and which asks me upgrade fees at every new
release).


I just don't think it is possible. Java has so many technologies and what is fashionable today is tomorrows legacy.

Looking at the quality of 5.0 there is a definite drop from past releases. Lots of small stuff that's lacking polish and even after several post 5.0 releases I still get stack traces. This is understandable given the complexity of writing software the size of Idea and the pressure to get new features to market but I'd still rather have a tool that does fewer things better.

Back in the Idea 1.0 days there was tons of stuff that Idea didn't do that other IDE's did but the features that it did have were so well done and so well polished they instantly clicked with me. I was perfectly willing to live without those features at the time just so I could work with the cool features it did have.

0
Comment actions Permalink

Hello Glen,

GS> Looking at the quality of 5.0 there is a definite drop from past
GS> releases. Lots of small stuff that's lacking polish and even after
GS> several post 5.0 releases I still get stack traces. This is
GS> understandable given the complexity of writing software the size of
GS> Idea and the pressure to get new features to market but I'd still
GS> rather have a tool that does fewer things better.

One thing to note regarding stacktraces: in all previous versions of IDEA,
the stacktrace reporter was completely disabled in release versions. In 5.0,
it is not. If anything, this should be seen as an improvement of the quality:
we're now confident enough that we won't be overwhelmed by exception reports
so we decided to leave the reporter enabled.

Most of the stacktraces we're getting now come from a very limited number
of problems for which we have no reproducible test cases. We're doing our
best to investigate and fix those problems, but lack of reproduction means
that we cannot do this quickly and reliably.

Also, we're now spending more time than ever on post-release bugfixing and
polishing (5.0.2 / 5.1 releases).

Indeed, the size of the product grows faster than the size of the team working
on it, so it's hard to give every little feature the same amount of polish
as it would get if it were the only feature in the product. The only way
around that is to send us feedback on the features that you consider unpolished
and to tell us how you think they should be improved.

--
Dmitry Jemerov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com
"Develop with pleasure!"


0
Comment actions Permalink

that you consider unpolished
and to tell us how you think they should be improved.


Property editor is definitely unpolished: http://www.jetbrains.net/jira/browse/IDEA-4971

0
Comment actions Permalink

Erik Hanson wrote:

intertwingled


I like that. 8)

Ciao,
Gordon

--
Gordon Tyler (Software Developer)
Quest Software <http://www.quest.com/>
260 King Street East, Toronto, Ontario M5A 4L5, Canada
Voice: (416) 933-5046 | Fax: (416) 933-5001

0
Comment actions Permalink

This is very nice tool. IDEA has lot of these features except some ..
http://www.instantiations.com/codepro/pluspak/default.htm

Other topics discussion should be kept here.



0

Please sign in to leave a comment.