Any objection?
-Dan
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
No objection... encouragements to be true :-)
I think one main issue you will encounter is splitting the code into
modules, as:
* the build is monolithic, and
* the packages layout is not clean.
Anyway this is a work that would be extremely useful, so thanks a lot Dan!
Cheers
--
http://izpack.org/
http://jpz-log.info/
http://julien.ponge.info/
Cheers
I have not heard from him, how ever, base on his current work, and my
experience on the last few day, we are see the same issue you have
suggesting.
I am thinking of divide izpack into:
izpack-util
izpack-api
izpack-compiler
izpack-installer
izpack-uninstaller
izpack-event
izpack-panel
izpack-listener
izpack-native
izpack-dist
out side of those modules,
we can throw in izpack-site, and izpack-docs ( using standard docbook
or DITA :-) )
It just a thought at this moment.
-Dan
> I am thinking of divide izpack into:
>
> izpack-util
> izpack-api
> izpack-compiler
> izpack-installer
> izpack-uninstaller
> izpack-event
> izpack-panel
+ 1 submodule per panel?
> izpack-listener
+ (same idea)?
> izpack-native
> izpack-dist
*yes*, this sounds good :-)
Along the way you might need to do some refactorings, like renaming /
splitting packages, but it will do the code a lot of good!
As I said when Dennis launched the idea a few month back: green flag
to do any necessary change :-)
Cheers
---------------------------------------------------------------------
Also, please note that current user can the specify the panel and
listener using full package name, and therefor we may want to
deprecate individual jars.
This means they can just use the standalone compiler without the need
of full izpack installation. Your latest changes to standalone
packaging open make this
possible for Ant user as well.
-Dan
Or is there already a solution I haven't seen yet?
René
-Dan
We will have a separate project just to build the native code have its
own release cycle.
After a new night pulling my hair out, and attempt to split the
current IZPack Ant build
into multiple module with Maven as build infrastructure, I have
accepted the defeat due
to many cyclic dependencies among izpack java packages. Changing the
code, moving
class between packages is suicidal.
However, one good thing come out of this experiment is that all IZPack
java source can still build
with Maven nicely using single module. Integrating with Eclipse is a
breeze and pleasant to work with
Here a few recommendations:
- Move on with single maven build and create multiple jars out of
maven. However
I also strongly suggest that we should soon deprecate the
requirement to have multiple
panels and events jars to reduce the complexity and usage since
user can specify
the full package name to achieve the same result.
- Due to its Eclipse friendliness, we can begin slowly refactor IZPack
see this http://www.infoq.com/news/2009/11/legacy-code and add tests.
Thoughts?
-Dan
First of all, thanks for your efforts! I hope you found some time for
a little nap though :-)
> I also strongly suggest that we should soon deprecate the
> requirement to have multiple
> panels and events jars to reduce the complexity and usage since
> user can specify
> the full package name to achieve the same result.
Well a panel jar contains several classes (not just the one from the
panel class), so I am not sure how you would fix the problem. Also,
the thing which is important is not to include all panel classes in
every installer, but rather just the specified ones.
Could you please clarify this?
> - Due to its Eclipse friendliness, we can begin slowly refactor
> IZPack
> see this http://www.infoq.com/news/2009/11/legacy-code and add
> tests.
Nice. Refactoring "old" code is always an art :-)
That's a point I mentioned in my talk this week: code goes through
lots of hype waves over the years, and eventually looks bad... yet
works.
BTW did you have a look at IntelliJ IDEA? (now even opensource) The
refactorings it offers are superior to those of Eclipse.
For user with required small foot print, so only include necessary
panel jar file is a good thing to have.
For my case, the installer always big so adding an extra 700K of full
izpack jar is not that bad
So my take here, how often we see user with small footprint
requirement? and extra 500K is not acceptable?
Can we poll the user?
>
>> - Due to its Eclipse friendliness, we can begin slowly refactor IZPack
>> see this http://www.infoq.com/news/2009/11/legacy-code and add tests.
>
>
> Nice. Refactoring "old" code is always an art :-)
>
> That's a point I mentioned in my talk this week: code goes through lots of
> hype waves over the years, and eventually looks bad... yet works.
>
> BTW did you have a look at IntelliJ IDEA? (now even opensource) The
> refactorings it offers are superior to those of Eclipse.
>
IntelliJ IDEA is also a good one to use, there is maven plugin to
generate project file for you on the fly.
The key here, we dont have to bind IZPack build to any specific IDE
> Cheers
Dan
Yes, please send an email to the user list.
> The key here, we dont have to bind IZPack build to any specific IDE
Of course :-)
The other thing I like with the recent IntelliJ IDEA builds is that it
can directly load a POM as a project, which is a super-fast way to
work with Maven-enabled projects.
Thanks for the feedback.
-Dan
> I'm currently trying to separate IZpack in maven modules but package
> dependencies and singletons make the work really difficult. I'm gonna try a
> bit more but it is necessary to do a lot of heavy refactoring.
I fully agree.
> It would be nice to have dependency injection. Is a footprint of ~250K (pico
> container) too much for this feature?
I would not mind.
I would however be more annoyed to have all panel classes in every
installer though, as it increases the footprint by a lot more than
250k. Anyway on this particular point I think we need Dan to ask the
users and see wether they mind or not, as putting them all together is
simpler (no need for a lot of submodules).
Cheers
Glad to see someone on the same boat with me.
I think it is best to do straight port of the ant build using the
following module
izpack-core
izpack-compiler
izpack-installer,
....
izpack-standalone-compiler
izpack-dist
izpack-core has every thing, then extract subsets of izpack-core into
other modules according the ant build.
This structure paves the way for us to write unit tests, integration
tests, and start other refractorings
like adding dependency injection like you have suggested. The key
here is we need tests in order to
start refractoring.
I just checked in the initial izpack-core and izpack-compiler build at
izpack-maven/sandbox. Please take a look
-Dan
I'll carefuly follow the activity there as well :-)
Cheers
Le 22 nov. 09 à 05:44, Dan Tran a écrit :
-D
-Dan
By no mean, please proceed with your work.... let me know your progress.
Thanks
-Dan
On Tue, Nov 24, 2009 at 5:23 AM, Anthonin Bonnefoy
I can see bright future with IZPack, let's beat the heck out of
InstallAnywhere :-)
-Dan
As a GitHub user I have been following the work and it is looking very
promising,
In case of success (which I am pretty sure of) I propose that this
work becomes our trunk, and that we rebadge it as IzPack 5.
Thanks for your feedback and efforts!
> - creating a module for each panel/listener, which is horrible.
Is that really a big deal? (apart from the long initial work to split
into modules)
> - creating an assembly for each panel/listener, which is a bit better but I
> think it will be hard to maintain.
Exactly
> I thought of giving the possibilities to filter packages when merging a jar.
> We will have a jar with all panels in which we will pick packages
> corresponding to the desired panels. We won't need to care anymore about
> separating elements in different jars and it might be simpler to use.
> It's only a proposition and I am still unsure on how to do it. Nevertheless,
> there is a lot of refactoring to do before really worrying about this :-).
That could be a nice solution indeed.
-D
just got to add, that I'm watching your work, too.
I'm doing implementations in the current trunk and hoping for a more
sophisticated structure, although I'm a little bit afraid of re-merging
current changes at the end :-) Nevertheless, go go go, we need this!
René
On Thursday 11 February 2010 13:20:08 Anthonin Bonnefoy wrote:
> Hi IzPack team,
>
> Small update on the revamp status.
> First, still alive and still working on it.
>
> The module and package layout should now be stable. I stopped moving batch
> of classes from package to another and there are no more cyclic dependency.
>
> I am changing the way the installer is merged. You can now directly specify
> a package or a class inside the classPath to be merged in the installer.
> There is no need to create intermediate jar anymore thus all panels can be
> in a single module (like this
> http://github.com/bonnefoa/izpack-refactoring/tree/develop/izpack-panel/src
> /main/java/com/izforge/izpack/panels/ ).
>
> Lately, I have been working on integration testing which now automatically
> load a created installation jar and test it.
>
> I have broken some features which are on my todo list.
> - Console installation
> - Pack compression
> - Uninstaller
> - MultiPackager
>
> I am currently restoring the uninstaller feature. Once it is done, I will
> try to create an assembly before moving to another feature (Pack
> compression I think).
>
> Cheers,
> Anthonin
---------------------------------------------------------------------
--
---------------------------------------------------------------------
On Thursday 11 February 2010 16:52:36 Julien Ponge wrote:
> This makes me think that you may try to fork Anthonin's branch and
> develop your work there.
>
> On Thu, Feb 11, 2010 at 4:51 PM, René Krell <rkr...@gmx.net> wrote:
> > Hi Anthonin,
> >
> > just got to add, that I'm watching your work, too.
> > I'm doing implementations in the current trunk and hoping for a more
> > sophisticated structure, although I'm a little bit afraid of re-merging
> > current changes at the end :-) Nevertheless, go go go, we need this!
> >
> > René
> >
> > On Thursday 11 February 2010 13:20:08 Anthonin Bonnefoy wrote:
> >> Hi IzPack team,
> >>
> >> Small update on the revamp status.
> >> First, still alive and still working on it.
> >>
> >> The module and package layout should now be stable. I stopped moving
> >> batch of classes from package to another and there are no more cyclic
> >> dependency.
> >>
> >> I am changing the way the installer is merged. You can now directly
> >> specify a package or a class inside the classPath to be merged in the
> >> installer. There is no need to create intermediate jar anymore thus all
> >> panels can be in a single module (like this
> >> http://github.com/bonnefoa/izpack-refactoring/tree/develop/izpack-panel/
> >> src /main/java/com/izforge/izpack/panels/ ).
Hi IzPack team,
Small update on the revamp status.
First, still alive and still working on it.
The module and package layout should now be stable. I stopped moving batch of classes from package to another and there are no more cyclic dependency.
I am changing the way the installer is merged. You can now directly specify a package or a class inside the classPath to be merged in the installer.
There is no need to create intermediate jar anymore thus all panels can be in a single module (like this http://github.com/bonnefoa/izpack-refactoring/tree/develop/izpack-panel/src/main/java/com/izforge/izpack/panels/ ).
Lately, I have been working on integration testing which now automatically load a created installation jar and test it.
I have broken some features which are on my todo list.
 - Console installation
 - Pack compression
 - Uninstaller
 - MultiPackager
I am currently restoring the uninstaller feature. Once it is done, I will try to create an assembly before moving to another feature (Pack compression I think).
Cheers,
Anthonin
On Fri, Jan 8, 2010 at 9:46 AM, Julien Ponge <julien...@gmail.com > wrote:
- Hi Anthonin,
- Thanks for your feedback and efforts!
- > Â - creating a module for each panel/listener, which is horrible.
- Is that really a big deal? (apart from the long initial work to split
- into modules)
- > Â - creating an assembly for each panel/listener, which is a bit better but I
- > think it will be hard to maintain.
- Exactly
- > I thought of giving the possibilities to filter packages when merging a jar.
- > We will have a jar with all panels in which we will pick packages
- > corresponding to the desired panels. We won't need to care anymore about
- > separating elements in different jars and it might be simpler to use.
- > It's only a proposition and I am still unsure on how to do it. Nevertheless,
- > there is a lot of refactoring to do before really worrying about this :-).
- That could be a nice solution indeed.
- Cheers
- --
- http://izpack.org/
- http://jpz-log.info/
- http://julien.ponge.info/
- ---------------------------------------------------------------------
- To unsubscribe from this list, please visit:
No, user is not imposed to use maven since the installer distribution
and ant task are still available.
But it is much more friendlier for Maven user since all they need is
izpack-maven-plugin which is automatically pulling down by maven.
-D
http://xircles.codehaus.org/manage_email
You are the master of refactoring. :-)
He's actually proving that you *can* introduce tests and refactor an
already big project ;-)
I'm doing implementations in the current trunk and hoping for a more
sophisticated structure, although I'm a little bit afraid of re-merging
current changes at the end :-) Nevertheless, go go go, we need this!