Demarcate module boundaries in framework source tree
|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
Demarcate module boundaries in framework source treeI think the rife framework source tree shd be broken up into its
proper constituent modules to properly demarcate what the optional packages are and also to make dependencies more clearer. currently, the way i understand it, the source tree holds the core framework (engine, cmf, config, rep, resources, site, xml), authenticatation, tools (i'm not sure if this is part of the core framework), gui (optional), database (optional in a way?), mail (optional?), scheduler (not sure where this belongs yet), swing (part of gui?) I'm asking for this because I'm not sure exactly what to limit myself to (or what else gets broken) when I'm looking to make changes locally. Demacating the code into proper modules (not just packages) shd also it easier to track bugs/send patches up. Or is there a way to properly download these individually (together with dependencies) without corrupting the tree with extraneous source files? Thoughts? Thanks, eokyere |
|
|
Re: Demarcate module boundaries in framework source tree> I think the rife framework source tree shd be broken up into its
> proper constituent modules to properly demarcate what the optional > packages are and also to make dependencies more clearer. This is very complex since everything is very well integrated. We spent quite some time to create a build target for DB-specific features though. You will not gain much by leaving out the most of the non core parts. The RIFE is jar is only a mere 2.5M, everything included. > currently, the way i understand it, the source tree holds the core > framework (engine, cmf, config, rep, resources, site, xml), > authenticatation, tools (i'm not sure if this is part of the core > framework), gui (optional), database (optional in a way?), mail > (optional?), scheduler (not sure where this belongs yet), swing (part > of gui?) I don't feel much for having a collection of separated modules that people should carefully recompose. RIFE is a full stack framework and 2,5MB is a small size nowadays. Users can just use the full jar and pick the features they need. > I'm asking for this because I'm not sure exactly what to limit myself > to (or what else gets broken) when I'm looking to make changes > locally. Demacating the code into proper modules (not just packages) > shd also it easier to track bugs/send patches up. When you want to make changes, the best thing is to discuss what you're doing first to see if you can't break things. Gradually you'll get a better view of the system and know better how to develop on it. Note that the web engine itself, more particularly the data and logic flow handling, is extremely complex and I don't encourage you to delve into that. Don't forget that the fact that constraints, for example, are automatically handled by all the parts of the framework is what makes RIFE so easy to use. Apart from that, the tools and the IoC property handling not much bleeds over. The packages are fairly well separated. RIFE has an extremely comprehensive testsuite. This also gives you a lot of guidance when making changes. The modules are very close to the packages, just look at the issue tracker. > Or is there a way to properly download these individually (together > with dependencies) without corrupting the tree with extraneous source > files? What do you mean by this? -- Geert Bevin Uwyn bvba "Use what you need" Avenue de Scailmont 34 http://www.uwyn.com 7170 Manage, Belgium gbevin[remove] at uwyn dot com Tel +32 64 84 80 03 PGP Fingerprint : 4E21 6399 CD9E A384 6619 719A C8F4 D40D 309F D6A9 Public PGP key : available at servers pgp.mit.edu, wwwkeys.pgp.net |
|
|
Re: Demarcate module boundaries in framework source treeyou make is sound more complex that it really is. i am not advocating
multiple jar files (even though with better demarcation that comes as a side effect, if you want) or even suggesting the current jar footprint is too large... i'm simply concerned about the cross-package dependencies and how difficult it is to tell what exactly the core module/package shd consist of and what the supporting modules are. for instance, if i exclude the ~.swing package, that breaks the ~rep.participants package; i don't think this shd be the case... the same goes for authentication/engine... i think authentication shd be dependent on engine and not the other way around... i think ~.swing shd be dependent on ~.rep.participants, and not the other way around. In fact, the whole ~.rep.participants package looks very fishy... it looks like a bunch of concrete implimentations of BlockingParticipant buched together... don't they belong in their respective packages... i.e. ParticipantConfig in the ~.config package, ParticipantSite in the ~.site package and so on... or do some parts of the code look for them in that particular location... i remember seeing some code in the datasources package that makes explicit use of the package/class name when trying to locate drivers for the datasource name passed and of course nothing prevents you from using the same source tree, and using symlinks to point to the src, lib folder under differnt projects. -- eokyere On 12/16/05, Geert Bevin <gbevin@...> wrote: > > I think the rife framework source tree shd be broken up into its > > proper constituent modules to properly demarcate what the optional > > packages are and also to make dependencies more clearer. > > This is very complex since everything is very well integrated. We > spent quite some time to create a build target for DB-specific > features though. > > You will not gain much by leaving out the most of the non core parts. > The RIFE is jar is only a mere 2.5M, everything included. > > > currently, the way i understand it, the source tree holds the core > > framework (engine, cmf, config, rep, resources, site, xml), > > authenticatation, tools (i'm not sure if this is part of the core > > framework), gui (optional), database (optional in a way?), mail > > (optional?), scheduler (not sure where this belongs yet), swing (part > > of gui?) > > I don't feel much for having a collection of separated modules that > people should carefully recompose. RIFE is a full stack framework and > 2,5MB is a small size nowadays. Users can just use the full jar and > pick the features they need. > > > I'm asking for this because I'm not sure exactly what to limit myself > > to (or what else gets broken) when I'm looking to make changes > > locally. Demacating the code into proper modules (not just packages) > > shd also it easier to track bugs/send patches up. > > When you want to make changes, the best thing is to discuss what > you're doing first to see if you can't break things. Gradually you'll > get a better view of the system and know better how to develop on it. > Note that the web engine itself, more particularly the data and logic > flow handling, is extremely complex and I don't encourage you to > delve into that. Don't forget that the fact that constraints, for > example, are automatically handled by all the parts of the framework > is what makes RIFE so easy to use. Apart from that, the tools and the > IoC property handling not much bleeds over. The packages are fairly > well separated. > > RIFE has an extremely comprehensive testsuite. This also gives you a > lot of guidance when making changes. > > The modules are very close to the packages, just look at the issue > tracker. > > > Or is there a way to properly download these individually (together > > with dependencies) without corrupting the tree with extraneous source > > files? > > What do you mean by this? > -- > Geert Bevin Uwyn bvba > "Use what you need" Avenue de Scailmont 34 > http://www.uwyn.com 7170 Manage, Belgium > gbevin[remove] at uwyn dot com Tel +32 64 84 80 03 > > PGP Fingerprint : 4E21 6399 CD9E A384 6619 719A C8F4 D40D 309F D6A9 > Public PGP key : available at servers pgp.mit.edu, wwwkeys.pgp.net > > > _______________________________________________ > Rife-devel mailing list > Rife-devel@... > http://www.uwyn.com/mailman/listinfo/rife-devel > |
|
|
Re: Demarcate module boundaries in framework source tree> you make is sound more complex that it really is. i am not advocating
> multiple jar files (even though with better demarcation that comes as > a side effect, if you want) or even suggesting the current jar > footprint is too large... i'm simply concerned about the cross-package > dependencies and how difficult it is to tell what exactly the core > module/package shd consist of and what the supporting modules are. Why is that of such importance for you? RIFE is a full stack framework. Apart from the Swing package, which not many people even know that it's there, I consider all the rest part of the 'core' of the framework. Anything that I consider not part of it is already a sibling project (RIFE/Crud, RIFE/Search, RIFE/Dav, ...). Crud might be merged into the core though and even search too once the tests are written for it. > for instance, if i exclude the ~.swing package, that breaks the > ~rep.participants package; i don't think this shd be the case... the > same goes for authentication/engine... i think authentication shd be > dependent on engine and not the other way around... i think ~.swing > shd be dependent on ~.rep.participants, and not the other way around. There is a very simple reason for this, when looking up participants, RIFE looks in the com.uwyn.rife.rep.participants package for classes so that you can use short names and don't have to specify full package names in your particpants.xml. There's no real logic in there, it directly delegates to the swing package. > In fact, the whole ~.rep.participants package looks very fishy... it > looks like a bunch of concrete implimentations of BlockingParticipant > buched together... don't they belong in their respective packages... > i.e. ParticipantConfig in the ~.config package, ParticipantSite in the > ~.site package and so on... or do some parts of the code look for them > in that particular location... See above. > i remember seeing some code in the > datasources package that makes explicit use of the package/class name > when trying to locate drivers for the datasource name passed Yes, but that's something else, this is how RIFE maps the database abstraction to the DB driver or how the driver name of an existing javax.sql.DataSource is looked up. > and of course nothing prevents you from using the same source tree, > and using symlinks to point to the src, lib folder under differnt > projects. Symlinks don't version particularly well and are not supported on Windows. Initially (4 years ago) there were quite some of them in the source repository, but they have all been removed. -- Geert Bevin Uwyn bvba "Use what you need" Avenue de Scailmont 34 http://www.uwyn.com 7170 Manage gbevin[remove] at uwyn dot com Tel +32 64 84 80 03 PGP Fingerprint : 4E21 6399 CD9E A384 6619 719A C8F4 D40D 309F D6A9 Public PGP key : available at servers pgp.mit.edu, wwwkeys.pgp.net |
| Free embeddable forum powered by Nabble | Forum Help |
