I couldn't make IDEA understand how to debug in this approach so I
updated the tomcat-archetype to work with tomcat 7 and added external/
trunk/tomcat-parent-7.0.0 generated with the archetype.
To reproduce this, update external/tomcat-archetype and build the
archetype using
svn up tomcat-archetype
cd tomcat-archetype
./build-archetype.sh
cp run.sh ..
cd ..
./run.sh
This will construct a tomcat-7 project from the archetype and latest
tomcat code, ready to commit. When I committed svn got confused
updating the local copy so you may need to
svn commit -m "new tomcat 7 snapshot based on tomcat rev xxxxxx"
tomcat-parent-7.0.0
rm -rf tomcat-parent-7.0.0
svn up tomcat-parent-7.0.0
Once you have run.sh in position, to generate a new snapshot just
run ./run.sh again. It will remove the old tomcat-parent-7.0.0
project and add the new one.
This only works on unix like systems but I'd imagine it would work
with cygwin.
Anyway this let me start tracking down the maven jspc plugin problem,
I've asked on the tomcat list for advice on how to proceed.
thanks
david jencks
On Dec 12, 2009, at 1:06 AM, Ivan wrote:
2009/12/12 David Jencks <[email protected]>
I don't think this is a satisfactory solution. One big reason I
need the repackaging is so I can debug tomcat and know what jar I'm
looking at. Since AFAICT this keeps all the source in the same file
structure as the original tomcat project I can't figure out what's
going on.
For debugging, currently, they are truely in one big project, but
why do you need to know which jar the target classes are in, could
you give any scenario ?
There's also a problem that it doesn't build for me, but that is
presumably easy to fix.
Could you please give any detailed info about the error ?
I didn't really understand why you didn't use the same solution we
used for tomcat 6.0.x. Are the unix scripts a problem? There's a
possibly not-yet-released antlib that is supposed to let you run svn
commands from ant, maybe we could use that.
The reason that I used this solution is that I found that Tomcat 7
is under heavy development, I always found many files are updated
when running svn up. It would be an extra stuff to keep the codes
consistently. Also, we do not keep any our own patch now.
However, I am opposed with the orginal way used in Tomcat 6.0.20,
just feel we might have another way to do it. :-)
thanks
david jencks
On Dec 8, 2009, at 1:35 AM, Ivan wrote:
OK, finally, I still used our way to divide the Tomcat codes, it
seems that Tomcat side did not define those artifacts correctly.
I checked the codes to my sandbox. The way I used now is to create
a "wrapper" project for Tomcat 7. In this way, we do not need to
merge codes regularly, it should be a better solution for temporary
use :-)
The steps are :
1. svn co
https://svn.apache.org/repos/asf/geronimo/sandbox/ivan/geronimo_tomcat_7.0.0
2. svn co https://svn.apache.org/repos/asf/tomcat/trunk
Your_local_folder
3. Edit the root pom file, make the property tomcat.local.directory
pointed to Your_local_folder
4. mvn clean install
I am trying to use maven-scm-plugin to make the build more
automatically, but failed ;-( So need to check out Tomcat codes
manually ....
Currently, there are some compilation errors due to some signature
conflicts with our own servlet api. Will check it later.
2009/12/7 Ivan <[email protected]>
I am trying another way to package and deploy Tomcat 7 artifacts,
since it is just a temporary solution, I think we just need to
create a "wrap" pom file, which means no source codes are copied.
In this way, we could just use scm plugin to update the source
codes, and no need to merge codes by ourselves.
e.g.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<includes>
<include name="org/apache/catalina/**" />
<include name="org/apache/naming/**" />
</includes>
<excludes>
<exclude name="org/apache/catalina/ant/**" />
<exclude name="org/apache/catalina/ha/**" />
<exclude name="org/apache/catalina/mbeans/
JmxRemote*" />
<exclude name="org/apache/catalina/tribes/
**" />
<exclude name="org/apache/catalina/launcher/
**" />
<exclude name="org/apache/catalina/
storeconfig/**" />
<exclude name="org/apache/naming/factory/
webservices/**" />
<exclude>org/apache/naming/factory/
webservices/**</exclude>
</excludes>
</configuration>
</plugin>
Another question is that I found that the way we divided the Tomcat
codes are not the same with its original way.
Tomcat has an artifact named coyote, while we didn't.
Is there any story about it ? If no special reason, I would like
keep the same with Tomcat's.
Thanks !
2009/12/3 Ivan <[email protected]>
OK, I will try to do it in the next week if no one beats to it !
2009/12/3 Kevan Miller <[email protected]>
On Dec 2, 2009, at 11:51 AM, David Jencks wrote:
>
> On Dec 2, 2009, at 1:57 AM, Ivan wrote:
>
>> I am thinking whether there is maven plugin would help us to
repackge the tomcat jar file to include our changes, so that we do
not need to maintain the whole Tomcat source codes, maybe just need
to keep a few files.
>
> AFAIK tomcat is not pushing trunk snapshots into any maven repo,
so I think we'd have to build tomcat ourselves anyway. Given that,
I think that the easiest way is to use the process for constructing
a mavenized build. I'm hoping we won't actually need to modify any
files, at least not for long :-). The first set of changes we
needed that led me to set up the mavenized build have been in
tomcat trunk for years.
Right. So, if the motivation for this process is to make Tomcat
SNAPSHOT's available in maven, I'm ok with this. I would not want
to see this as a way of fixing functional/integration problems with
Tomcat (at least not in the long-term).
--kevan
--
Ivan
--
Ivan
--
Ivan
--
Ivan