You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by Chad McHenry <mc...@gmail.com> on 2009/06/22 05:20:48 UTC

Ibator plugin use and future plans

I was having trouble using my ibator plugin from eclipse, getting the error
"Cannot instantiate object of type
com.example.ibatis.ibator.plugins.ClassAnnotator" and found an old thread
[1] which references the same error. It appears it is still relevant (I
could only run my plugin via eclipse by putting my plugin classes into
$eclipse/plugins/org.apache.ibatis.ibator.core_1.2.1/ibator.jar).

For using plugins, is the ant-task still the preferred way to use Ibator? I
use maven, and can use maven-antrun-plugin, but is it still true that any
changes made to generated files will be lost when using the ant version
since it does not merge java files?

Are there plans, or a roadmap for Ibator? I'm spending a lot of time getting
this plugin working (and actually believe it will be worth it over the
course of multiple projects). I'm wondering if I can contribute back to the
ibator-core, but would hesitate if there is going to be a drastic redesign
for ibatis-3.0.

...Chad

[1] http://www.nabble.com/Re:-ibator-question-about--element-p19222727.html

Re: unsubscribe

Posted by Larry Meadors <la...@gmail.com>.
http://ibatis.apache.org/mailinglists.html

unsubscribe

Posted by "Rao, Mallesh (Penske)" <ma...@penske.com>.
 

Re: Ibator plugin use and future plans

Posted by Jeff Butler <je...@gmail.com>.
One more thing - adding your plugin classes to the distributed Ibator JAR is
a serious kludge and I do not recommend it for any reason.  There is no
reason to ever do this.
Jeff Butler

On Sun, Jun 21, 2009 at 10:20 PM, Chad McHenry <mc...@gmail.com> wrote:

> I was having trouble using my ibator plugin from eclipse, getting the error
> "Cannot instantiate object of type
> com.example.ibatis.ibator.plugins.ClassAnnotator" and found an old thread
> [1] which references the same error. It appears it is still relevant (I
> could only run my plugin via eclipse by putting my plugin classes into
> $eclipse/plugins/org.apache.ibatis.ibator.core_1.2.1/ibator.jar).
>
> For using plugins, is the ant-task still the preferred way to use Ibator? I
> use maven, and can use maven-antrun-plugin, but is it still true that any
> changes made to generated files will be lost when using the ant version
> since it does not merge java files?
>
> Are there plans, or a roadmap for Ibator? I'm spending a lot of time
> getting this plugin working (and actually believe it will be worth it over
> the course of multiple projects). I'm wondering if I can contribute back to
> the ibator-core, but would hesitate if there is going to be a drastic
> redesign for ibatis-3.0.
>
> ...Chad
>
> [1]
> http://www.nabble.com/Re:-ibator-question-about--element-p19222727.html
>
>

Re: Ibator plugin use and future plans

Posted by Larry Meadors <la...@gmail.com>.
On Tue, Jun 23, 2009 at 8:54 AM, Jeff Butler<je...@gmail.com> wrote:
> Warning - heavy Eclipse acronyms follow!

Why does the theme song to the Mickey Mouse show keep running through
my head after reading this? ;-)

Larry

Re: Ibator plugin use and future plans

Posted by Jeff Butler <je...@gmail.com>.
Warning - heavy Eclipse acronyms follow!

The Java AST is a part of JDT (not EMF).  So there needs to be a standalone
version of JDT.  I haven't looked into that for a couple of years, but it
seems that there is some separate JDT SDK available for download now at the
Eclipse site - so maybe it's possible now.  I'll look into it.
Jeff Butler

On Tue, Jun 23, 2009 at 4:53 AM, Chad McHenry <mc...@gmail.com> wrote:

> On Mon, Jun 22, 2009 at 10:45 AM, Jeff Butler <je...@gmail.com>wrote:
>
>> Several topics:
>> 1. Java file merging
>>
>> The code for merging Java files is only in the Eclipse plugin.  It uses
>> the Eclipse AST parser and AST rewriter and cannot run outside of Eclipse.
>>  If you want to merge Java code, you must run in Eclipse.
>>
>> In the far future, I hope to enable Java merging outside of Eclipse.  The
>> problem is that it's just so easy in Eclipse, and so difficult elsewhere!  I
>> think the long term solution is to write a specialized Java parser for
>> Ibator using ANTLR or the like.  Parsing Java source code is a non-trivial
>> task and I have no interest in reinventing the wheel - so probably something
>> like ANTLR is the right answer ultimately.  If anyone is interested in
>> making an important contribution to Ibator this would be a good area to look
>> into :)
>>
>
> It may be possible to use AST standalone (much better than reinventing!)
> after navigating the licencing issues. AST is built on EMF which apparently
> can be used in a standalone app [1]. It would be worth it to build a sample
> app, to see just how tied to eclipse AST and EMF are.
>
> [1]
> http://wiki.eclipse.org/EMF/FAQ#How_do_I_use_EMF_in_standalone_applications_.28such_as_an_ordinary_main.29.3F
>
>
>

Re: Ibator plugin use and future plans

Posted by Chad McHenry <mc...@gmail.com>.
On Mon, Jun 22, 2009 at 10:45 AM, Jeff Butler <je...@gmail.com> wrote:

> Several topics:
> 1. Java file merging
>
> The code for merging Java files is only in the Eclipse plugin.  It uses the
> Eclipse AST parser and AST rewriter and cannot run outside of Eclipse.  If
> you want to merge Java code, you must run in Eclipse.
>
> In the far future, I hope to enable Java merging outside of Eclipse.  The
> problem is that it's just so easy in Eclipse, and so difficult elsewhere!  I
> think the long term solution is to write a specialized Java parser for
> Ibator using ANTLR or the like.  Parsing Java source code is a non-trivial
> task and I have no interest in reinventing the wheel - so probably something
> like ANTLR is the right answer ultimately.  If anyone is interested in
> making an important contribution to Ibator this would be a good area to look
> into :)
>

It may be possible to use AST standalone (much better than reinventing!)
after navigating the licencing issues. AST is built on EMF which apparently
can be used in a standalone app [1]. It would be worth it to build a sample
app, to see just how tied to eclipse AST and EMF are.

[1]
http://wiki.eclipse.org/EMF/FAQ#How_do_I_use_EMF_in_standalone_applications_.28such_as_an_ordinary_main.29.3F

Re: Ibator plugin use and future plans

Posted by Kenny Liu <ma...@gmail.com>.
Hi, Jeff!

Java parser is a new project based on javacc. And the design of Java parser
is similar to Eclipse,  it also supports Annotation, that's why I choose it
as java code parser.  I also do some testing according to different case
before really determine to use it. I satisfy with it because there is no bug
found in the result of testing. And then I rebuilded it with adding some
functions and AST nodes.

I can't assure the stability of Java paser, you can refer to implemetation
of it, I suggest doing completed testing before you determine to use it. By
the way I will send source code to you by mail if you wold like see my
rebuilded version of Java parser.


2009/6/23 Jeff Butler <je...@gmail.com>

> I took a quick look and see that you are using this Java parser:
> http://code.google.com/p/javaparser/
>
> This project seems fairly new.  I wonder how stable the project is?
>
> <http://code.google.com/p/javaparser/>Jeff Butler
>
> 2009/6/23 Jeff Butler <je...@gmail.com>
>
> This looks very cool!
>> Are you saying that WebExplore does support Java merging?  If so then I'd
>> be interested in seeing the code.
>>
>> Also, I would like to know about any bugs you've fixed in Ibator so we can
>> include them in the base distribution.  And if there's anything else you
>> would like to see changed in Ibator to make tools like yours easier to
>> write.
>>
>> Jeff Butler
>>
>>
>> On Mon, Jun 22, 2009 at 10:33 PM, 刘孝林 <ma...@gmail.com> wrote:
>>
>>> Hi, jeff, I would like contribute some code to Ibator project. I
>>> developed a tool which provide friendly GUI to make a configuration for
>>> Ibator conveniently. It is named with "WebExplore" and exists as a plugin of
>>> CoolSQL(http://coolsql.sourceforge.net/). As you said in mail, "java
>>> file merging" is not supported outside of Eclipse, but supported by
>>> WebExplore. In addition, Ibator is rebuilded with some bug fix and extended
>>> functions including merging java file, plugin classloading, exporting Ibator
>>> configuration to XML file with escaping XML keyword. The detailed
>>> information about WebExplore:
>>> http://coolsql.sourceforge.net/webexplore.html.
>>>
>>>
>>>
>>> 2009/6/22 Jeff Butler <je...@gmail.com>
>>>
>>> Several topics:
>>>> 1. Java file merging
>>>>
>>>> The code for merging Java files is only in the Eclipse plugin.  It uses
>>>> the Eclipse AST parser and AST rewriter and cannot run outside of Eclipse.
>>>>  If you want to merge Java code, you must run in Eclipse.
>>>>
>>>> In the far future, I hope to enable Java merging outside of Eclipse.
>>>>  The problem is that it's just so easy in Eclipse, and so difficult
>>>> elsewhere!  I think the long term solution is to write a specialized Java
>>>> parser for Ibator using ANTLR or the like.  Parsing Java source code is a
>>>> non-trivial task and I have no interest in reinventing the wheel - so
>>>> probably something like ANTLR is the right answer ultimately.  If anyone is
>>>> interested in making an important contribution to Ibator this would be a
>>>> good area to look into :)
>>>>
>>>> 2. Plugin Classloading
>>>>
>>>> You must add your plugin classes to Ibator's runtime classpath.  This
>>>> cannot be done with <classPathEntry> elements in the configuration.  Outside
>>>> eclipse, you can do this by using the -cp argument, or by adding to the Ant
>>>> classpath in the normal ways.  Inside Eclipse, you must use the eclipse
>>>> integrated Ant task and add to the classpath with the Eclipse launch
>>>> configuration.  The Ibator menu option in Eclipse does not allow
>>>> modifications to the runtime classpath.
>>>>
>>>> From these two answers, you should deduce that the only way to use a
>>>> plugin AND use Java merging is to use the Eclipse plugin provided Ant task
>>>> (NOT the Ant task in the base Ibator distribution).  If you want to automate
>>>> this, you will have to run Ant inside Eclipse with headless Eclipse.
>>>>
>>>> 3. Maven
>>>>
>>>> I'm looking at maven for the Ibator build.  If it works out, then I'll
>>>> also provide a maven plugin to run Ibator.  But, this plugin will not merge
>>>> Java files (see #1 above).
>>>>
>>>> 4. The future
>>>>
>>>> My current focus is updates to Ibator for iBATIS3.  I have some code
>>>> *sort of* working now, but iBATIS3 is in Alpha stage only - so Clinton and I
>>>> are working through some bugs in iBATIS3.  I have done some refactoring of
>>>> the Ibator code base to allow for iBATIS3 - but this is mostly internal and
>>>> should not affect anyone (hopefully).  Feel free to checkout the latest
>>>> Ibator code from SVN and try it out.  I don't think you'll see much
>>>> difference.  Note that the iBATIS3 support for Ibator is not in SVN yet -
>>>> just the base Ibator refactorings.
>>>>
>>>> Hope that helps!
>>>> Jeff Butler
>>>>
>>>>
>>>>
>>>> On Sun, Jun 21, 2009 at 10:20 PM, Chad McHenry <mc...@gmail.com>wrote:
>>>>
>>>>> I was having trouble using my ibator plugin from eclipse, getting the
>>>>> error "Cannot instantiate object of type
>>>>> com.example.ibatis.ibator.plugins.ClassAnnotator" and found an old thread
>>>>> [1] which references the same error. It appears it is still relevant (I
>>>>> could only run my plugin via eclipse by putting my plugin classes into
>>>>> $eclipse/plugins/org.apache.ibatis.ibator.core_1.2.1/ibator.jar).
>>>>>
>>>>> For using plugins, is the ant-task still the preferred way to use
>>>>> Ibator? I use maven, and can use maven-antrun-plugin, but is it still true
>>>>> that any changes made to generated files will be lost when using the ant
>>>>> version since it does not merge java files?
>>>>>
>>>>> Are there plans, or a roadmap for Ibator? I'm spending a lot of time
>>>>> getting this plugin working (and actually believe it will be worth it over
>>>>> the course of multiple projects). I'm wondering if I can contribute back to
>>>>> the ibator-core, but would hesitate if there is going to be a drastic
>>>>> redesign for ibatis-3.0.
>>>>>
>>>>> ...Chad
>>>>>
>>>>> [1]
>>>>> http://www.nabble.com/Re:-ibator-question-about--element-p19222727.html
>>>>>
>>>>>
>>>>
>>>
>>
>

Re: Ibator plugin use and future plans

Posted by Jeff Butler <je...@gmail.com>.
I took a quick look and see that you are using this Java parser:
http://code.google.com/p/javaparser/

This project seems fairly new.  I wonder how stable the project is?

<http://code.google.com/p/javaparser/>Jeff Butler

2009/6/23 Jeff Butler <je...@gmail.com>

> This looks very cool!
> Are you saying that WebExplore does support Java merging?  If so then I'd
> be interested in seeing the code.
>
> Also, I would like to know about any bugs you've fixed in Ibator so we can
> include them in the base distribution.  And if there's anything else you
> would like to see changed in Ibator to make tools like yours easier to
> write.
>
> Jeff Butler
>
>
> On Mon, Jun 22, 2009 at 10:33 PM, 刘孝林 <ma...@gmail.com> wrote:
>
>> Hi, jeff, I would like contribute some code to Ibator project. I developed
>> a tool which provide friendly GUI to make a configuration for Ibator
>> conveniently. It is named with "WebExplore" and exists as a plugin of
>> CoolSQL(http://coolsql.sourceforge.net/). As you said in mail, "java file
>> merging" is not supported outside of Eclipse, but supported by WebExplore.
>> In addition, Ibator is rebuilded with some bug fix and extended functions
>> including merging java file, plugin classloading, exporting Ibator
>> configuration to XML file with escaping XML keyword. The detailed
>> information about WebExplore:
>> http://coolsql.sourceforge.net/webexplore.html.
>>
>>
>>
>> 2009/6/22 Jeff Butler <je...@gmail.com>
>>
>> Several topics:
>>> 1. Java file merging
>>>
>>> The code for merging Java files is only in the Eclipse plugin.  It uses
>>> the Eclipse AST parser and AST rewriter and cannot run outside of Eclipse.
>>>  If you want to merge Java code, you must run in Eclipse.
>>>
>>> In the far future, I hope to enable Java merging outside of Eclipse.  The
>>> problem is that it's just so easy in Eclipse, and so difficult elsewhere!  I
>>> think the long term solution is to write a specialized Java parser for
>>> Ibator using ANTLR or the like.  Parsing Java source code is a non-trivial
>>> task and I have no interest in reinventing the wheel - so probably something
>>> like ANTLR is the right answer ultimately.  If anyone is interested in
>>> making an important contribution to Ibator this would be a good area to look
>>> into :)
>>>
>>> 2. Plugin Classloading
>>>
>>> You must add your plugin classes to Ibator's runtime classpath.  This
>>> cannot be done with <classPathEntry> elements in the configuration.  Outside
>>> eclipse, you can do this by using the -cp argument, or by adding to the Ant
>>> classpath in the normal ways.  Inside Eclipse, you must use the eclipse
>>> integrated Ant task and add to the classpath with the Eclipse launch
>>> configuration.  The Ibator menu option in Eclipse does not allow
>>> modifications to the runtime classpath.
>>>
>>> From these two answers, you should deduce that the only way to use a
>>> plugin AND use Java merging is to use the Eclipse plugin provided Ant task
>>> (NOT the Ant task in the base Ibator distribution).  If you want to automate
>>> this, you will have to run Ant inside Eclipse with headless Eclipse.
>>>
>>> 3. Maven
>>>
>>> I'm looking at maven for the Ibator build.  If it works out, then I'll
>>> also provide a maven plugin to run Ibator.  But, this plugin will not merge
>>> Java files (see #1 above).
>>>
>>> 4. The future
>>>
>>> My current focus is updates to Ibator for iBATIS3.  I have some code
>>> *sort of* working now, but iBATIS3 is in Alpha stage only - so Clinton and I
>>> are working through some bugs in iBATIS3.  I have done some refactoring of
>>> the Ibator code base to allow for iBATIS3 - but this is mostly internal and
>>> should not affect anyone (hopefully).  Feel free to checkout the latest
>>> Ibator code from SVN and try it out.  I don't think you'll see much
>>> difference.  Note that the iBATIS3 support for Ibator is not in SVN yet -
>>> just the base Ibator refactorings.
>>>
>>> Hope that helps!
>>> Jeff Butler
>>>
>>>
>>>
>>> On Sun, Jun 21, 2009 at 10:20 PM, Chad McHenry <mc...@gmail.com>wrote:
>>>
>>>> I was having trouble using my ibator plugin from eclipse, getting the
>>>> error "Cannot instantiate object of type
>>>> com.example.ibatis.ibator.plugins.ClassAnnotator" and found an old thread
>>>> [1] which references the same error. It appears it is still relevant (I
>>>> could only run my plugin via eclipse by putting my plugin classes into
>>>> $eclipse/plugins/org.apache.ibatis.ibator.core_1.2.1/ibator.jar).
>>>>
>>>> For using plugins, is the ant-task still the preferred way to use
>>>> Ibator? I use maven, and can use maven-antrun-plugin, but is it still true
>>>> that any changes made to generated files will be lost when using the ant
>>>> version since it does not merge java files?
>>>>
>>>> Are there plans, or a roadmap for Ibator? I'm spending a lot of time
>>>> getting this plugin working (and actually believe it will be worth it over
>>>> the course of multiple projects). I'm wondering if I can contribute back to
>>>> the ibator-core, but would hesitate if there is going to be a drastic
>>>> redesign for ibatis-3.0.
>>>>
>>>> ...Chad
>>>>
>>>> [1]
>>>> http://www.nabble.com/Re:-ibator-question-about--element-p19222727.html
>>>>
>>>>
>>>
>>
>

Re: Ibator plugin use and future plans

Posted by Jeff Butler <je...@gmail.com>.
This looks very cool!
Are you saying that WebExplore does support Java merging?  If so then I'd be
interested in seeing the code.

Also, I would like to know about any bugs you've fixed in Ibator so we can
include them in the base distribution.  And if there's anything else you
would like to see changed in Ibator to make tools like yours easier to
write.

Jeff Butler

On Mon, Jun 22, 2009 at 10:33 PM, 刘孝林 <ma...@gmail.com> wrote:

> Hi, jeff, I would like contribute some code to Ibator project. I developed
> a tool which provide friendly GUI to make a configuration for Ibator
> conveniently. It is named with "WebExplore" and exists as a plugin of
> CoolSQL(http://coolsql.sourceforge.net/). As you said in mail, "java file
> merging" is not supported outside of Eclipse, but supported by WebExplore.
> In addition, Ibator is rebuilded with some bug fix and extended functions
> including merging java file, plugin classloading, exporting Ibator
> configuration to XML file with escaping XML keyword. The detailed
> information about WebExplore:
> http://coolsql.sourceforge.net/webexplore.html.
>
>
>
> 2009/6/22 Jeff Butler <je...@gmail.com>
>
> Several topics:
>> 1. Java file merging
>>
>> The code for merging Java files is only in the Eclipse plugin.  It uses
>> the Eclipse AST parser and AST rewriter and cannot run outside of Eclipse.
>>  If you want to merge Java code, you must run in Eclipse.
>>
>> In the far future, I hope to enable Java merging outside of Eclipse.  The
>> problem is that it's just so easy in Eclipse, and so difficult elsewhere!  I
>> think the long term solution is to write a specialized Java parser for
>> Ibator using ANTLR or the like.  Parsing Java source code is a non-trivial
>> task and I have no interest in reinventing the wheel - so probably something
>> like ANTLR is the right answer ultimately.  If anyone is interested in
>> making an important contribution to Ibator this would be a good area to look
>> into :)
>>
>> 2. Plugin Classloading
>>
>> You must add your plugin classes to Ibator's runtime classpath.  This
>> cannot be done with <classPathEntry> elements in the configuration.  Outside
>> eclipse, you can do this by using the -cp argument, or by adding to the Ant
>> classpath in the normal ways.  Inside Eclipse, you must use the eclipse
>> integrated Ant task and add to the classpath with the Eclipse launch
>> configuration.  The Ibator menu option in Eclipse does not allow
>> modifications to the runtime classpath.
>>
>> From these two answers, you should deduce that the only way to use a
>> plugin AND use Java merging is to use the Eclipse plugin provided Ant task
>> (NOT the Ant task in the base Ibator distribution).  If you want to automate
>> this, you will have to run Ant inside Eclipse with headless Eclipse.
>>
>> 3. Maven
>>
>> I'm looking at maven for the Ibator build.  If it works out, then I'll
>> also provide a maven plugin to run Ibator.  But, this plugin will not merge
>> Java files (see #1 above).
>>
>> 4. The future
>>
>> My current focus is updates to Ibator for iBATIS3.  I have some code *sort
>> of* working now, but iBATIS3 is in Alpha stage only - so Clinton and I are
>> working through some bugs in iBATIS3.  I have done some refactoring of the
>> Ibator code base to allow for iBATIS3 - but this is mostly internal and
>> should not affect anyone (hopefully).  Feel free to checkout the latest
>> Ibator code from SVN and try it out.  I don't think you'll see much
>> difference.  Note that the iBATIS3 support for Ibator is not in SVN yet -
>> just the base Ibator refactorings.
>>
>> Hope that helps!
>> Jeff Butler
>>
>>
>>
>> On Sun, Jun 21, 2009 at 10:20 PM, Chad McHenry <mc...@gmail.com>wrote:
>>
>>> I was having trouble using my ibator plugin from eclipse, getting the
>>> error "Cannot instantiate object of type
>>> com.example.ibatis.ibator.plugins.ClassAnnotator" and found an old thread
>>> [1] which references the same error. It appears it is still relevant (I
>>> could only run my plugin via eclipse by putting my plugin classes into
>>> $eclipse/plugins/org.apache.ibatis.ibator.core_1.2.1/ibator.jar).
>>>
>>> For using plugins, is the ant-task still the preferred way to use Ibator?
>>> I use maven, and can use maven-antrun-plugin, but is it still true that any
>>> changes made to generated files will be lost when using the ant version
>>> since it does not merge java files?
>>>
>>> Are there plans, or a roadmap for Ibator? I'm spending a lot of time
>>> getting this plugin working (and actually believe it will be worth it over
>>> the course of multiple projects). I'm wondering if I can contribute back to
>>> the ibator-core, but would hesitate if there is going to be a drastic
>>> redesign for ibatis-3.0.
>>>
>>> ...Chad
>>>
>>> [1]
>>> http://www.nabble.com/Re:-ibator-question-about--element-p19222727.html
>>>
>>>
>>
>

Re: Ibator plugin use and future plans

Posted by 刘孝林 <ma...@gmail.com>.
Hi, jeff, I would like contribute some code to Ibator project. I developed a
tool which provide friendly GUI to make a configuration for Ibator
conveniently. It is named with "WebExplore" and exists as a plugin of
CoolSQL(http://coolsql.sourceforge.net/). As you said in mail, "java file
merging" is not supported outside of Eclipse, but supported by WebExplore.
In addition, Ibator is rebuilded with some bug fix and extended functions
including merging java file, plugin classloading, exporting Ibator
configuration to XML file with escaping XML keyword. The detailed
information about WebExplore: http://coolsql.sourceforge.net/webexplore.html
.



2009/6/22 Jeff Butler <je...@gmail.com>

> Several topics:
> 1. Java file merging
>
> The code for merging Java files is only in the Eclipse plugin.  It uses the
> Eclipse AST parser and AST rewriter and cannot run outside of Eclipse.  If
> you want to merge Java code, you must run in Eclipse.
>
> In the far future, I hope to enable Java merging outside of Eclipse.  The
> problem is that it's just so easy in Eclipse, and so difficult elsewhere!  I
> think the long term solution is to write a specialized Java parser for
> Ibator using ANTLR or the like.  Parsing Java source code is a non-trivial
> task and I have no interest in reinventing the wheel - so probably something
> like ANTLR is the right answer ultimately.  If anyone is interested in
> making an important contribution to Ibator this would be a good area to look
> into :)
>
> 2. Plugin Classloading
>
> You must add your plugin classes to Ibator's runtime classpath.  This
> cannot be done with <classPathEntry> elements in the configuration.  Outside
> eclipse, you can do this by using the -cp argument, or by adding to the Ant
> classpath in the normal ways.  Inside Eclipse, you must use the eclipse
> integrated Ant task and add to the classpath with the Eclipse launch
> configuration.  The Ibator menu option in Eclipse does not allow
> modifications to the runtime classpath.
>
> From these two answers, you should deduce that the only way to use a plugin
> AND use Java merging is to use the Eclipse plugin provided Ant task (NOT the
> Ant task in the base Ibator distribution).  If you want to automate this,
> you will have to run Ant inside Eclipse with headless Eclipse.
>
> 3. Maven
>
> I'm looking at maven for the Ibator build.  If it works out, then I'll also
> provide a maven plugin to run Ibator.  But, this plugin will not merge Java
> files (see #1 above).
>
> 4. The future
>
> My current focus is updates to Ibator for iBATIS3.  I have some code *sort
> of* working now, but iBATIS3 is in Alpha stage only - so Clinton and I are
> working through some bugs in iBATIS3.  I have done some refactoring of the
> Ibator code base to allow for iBATIS3 - but this is mostly internal and
> should not affect anyone (hopefully).  Feel free to checkout the latest
> Ibator code from SVN and try it out.  I don't think you'll see much
> difference.  Note that the iBATIS3 support for Ibator is not in SVN yet -
> just the base Ibator refactorings.
>
> Hope that helps!
> Jeff Butler
>
>
>
> On Sun, Jun 21, 2009 at 10:20 PM, Chad McHenry <mc...@gmail.com> wrote:
>
>> I was having trouble using my ibator plugin from eclipse, getting the
>> error "Cannot instantiate object of type
>> com.example.ibatis.ibator.plugins.ClassAnnotator" and found an old thread
>> [1] which references the same error. It appears it is still relevant (I
>> could only run my plugin via eclipse by putting my plugin classes into
>> $eclipse/plugins/org.apache.ibatis.ibator.core_1.2.1/ibator.jar).
>>
>> For using plugins, is the ant-task still the preferred way to use Ibator?
>> I use maven, and can use maven-antrun-plugin, but is it still true that any
>> changes made to generated files will be lost when using the ant version
>> since it does not merge java files?
>>
>> Are there plans, or a roadmap for Ibator? I'm spending a lot of time
>> getting this plugin working (and actually believe it will be worth it over
>> the course of multiple projects). I'm wondering if I can contribute back to
>> the ibator-core, but would hesitate if there is going to be a drastic
>> redesign for ibatis-3.0.
>>
>> ...Chad
>>
>> [1]
>> http://www.nabble.com/Re:-ibator-question-about--element-p19222727.html
>>
>>
>

Re: Ibator plugin use and future plans

Posted by Jeff Butler <je...@gmail.com>.
Several topics:
1. Java file merging

The code for merging Java files is only in the Eclipse plugin.  It uses the
Eclipse AST parser and AST rewriter and cannot run outside of Eclipse.  If
you want to merge Java code, you must run in Eclipse.

In the far future, I hope to enable Java merging outside of Eclipse.  The
problem is that it's just so easy in Eclipse, and so difficult elsewhere!  I
think the long term solution is to write a specialized Java parser for
Ibator using ANTLR or the like.  Parsing Java source code is a non-trivial
task and I have no interest in reinventing the wheel - so probably something
like ANTLR is the right answer ultimately.  If anyone is interested in
making an important contribution to Ibator this would be a good area to look
into :)

2. Plugin Classloading

You must add your plugin classes to Ibator's runtime classpath.  This cannot
be done with <classPathEntry> elements in the configuration.  Outside
eclipse, you can do this by using the -cp argument, or by adding to the Ant
classpath in the normal ways.  Inside Eclipse, you must use the eclipse
integrated Ant task and add to the classpath with the Eclipse launch
configuration.  The Ibator menu option in Eclipse does not allow
modifications to the runtime classpath.

>From these two answers, you should deduce that the only way to use a plugin
AND use Java merging is to use the Eclipse plugin provided Ant task (NOT the
Ant task in the base Ibator distribution).  If you want to automate this,
you will have to run Ant inside Eclipse with headless Eclipse.

3. Maven

I'm looking at maven for the Ibator build.  If it works out, then I'll also
provide a maven plugin to run Ibator.  But, this plugin will not merge Java
files (see #1 above).

4. The future

My current focus is updates to Ibator for iBATIS3.  I have some code *sort
of* working now, but iBATIS3 is in Alpha stage only - so Clinton and I are
working through some bugs in iBATIS3.  I have done some refactoring of the
Ibator code base to allow for iBATIS3 - but this is mostly internal and
should not affect anyone (hopefully).  Feel free to checkout the latest
Ibator code from SVN and try it out.  I don't think you'll see much
difference.  Note that the iBATIS3 support for Ibator is not in SVN yet -
just the base Ibator refactorings.

Hope that helps!
Jeff Butler



On Sun, Jun 21, 2009 at 10:20 PM, Chad McHenry <mc...@gmail.com> wrote:

> I was having trouble using my ibator plugin from eclipse, getting the error
> "Cannot instantiate object of type
> com.example.ibatis.ibator.plugins.ClassAnnotator" and found an old thread
> [1] which references the same error. It appears it is still relevant (I
> could only run my plugin via eclipse by putting my plugin classes into
> $eclipse/plugins/org.apache.ibatis.ibator.core_1.2.1/ibator.jar).
>
> For using plugins, is the ant-task still the preferred way to use Ibator? I
> use maven, and can use maven-antrun-plugin, but is it still true that any
> changes made to generated files will be lost when using the ant version
> since it does not merge java files?
>
> Are there plans, or a roadmap for Ibator? I'm spending a lot of time
> getting this plugin working (and actually believe it will be worth it over
> the course of multiple projects). I'm wondering if I can contribute back to
> the ibator-core, but would hesitate if there is going to be a drastic
> redesign for ibatis-3.0.
>
> ...Chad
>
> [1]
> http://www.nabble.com/Re:-ibator-question-about--element-p19222727.html
>
>