[HELP]: blocks and domainmodel
Hello together! I'm trying to find a 'best' way to integrate my domainmodel/businesslayer into cocoon 22 block-semantics. Imagine a rich domainmodel with several package-specific services presented to the client as facade (decoupling persistence and the like). Development of the domainmodel is kept outside for testing-purposes and so on. How should I integrate a 'finished' domainmodel into cocoon-22 blocks? Several blocks use different parts of the model, of course, and the usage is triggered through a main-controller-block. Following the discussions within this mailing-list so far, I am able to imagine, that I could spread my domainmodel to different blocks, but this is not what I want to achieve. Should there be a 'domain'-block, wich contains all domain-beans/objects and from wich other blocks can get access to the domain? Maybe my problem is, that there is no archetype for such an integrated dev-environment (or my thoughts about using the given ones is somewhat incomplete). I would like a structure like the following: myProject + domain + ... + dao + ... + web + cocoon-blocks Or is it the best way to build the domain totally seperate and add the domain.jar as dependency to my blocks? Any hints possible based on my short description? Best Greetings Patrick -- Psst! Geheimtipp: Online Games kostenlos spielen bei den GMX Free Games! http://games.entertainment.gmx.net/de/entertainment/games/free - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [HELP]: blocks and domainmodel
Patrick, some time ago I raised a similar question: http://www.mail-archive.com/users@cocoon.apache.org/msg40943.html The discussion there may be helpful to you as well. Andre. Patrick Heiden wrote: Hello together! I'm trying to find a 'best' way to integrate my domainmodel/businesslayer into cocoon 22 block-semantics. Imagine a rich domainmodel with several package-specific services presented to the client as facade (decoupling persistence and the like). Development of the domainmodel is kept outside for testing-purposes and so on. How should I integrate a 'finished' domainmodel into cocoon-22 blocks? Several blocks use different parts of the model, of course, and the usage is triggered through a main-controller-block. Following the discussions within this mailing-list so far, I am able to imagine, that I could spread my domainmodel to different blocks, but this is not what I want to achieve. Should there be a 'domain'-block, wich contains all domain-beans/objects and from wich other blocks can get access to the domain? Maybe my problem is, that there is no archetype for such an integrated dev-environment (or my thoughts about using the given ones is somewhat incomplete). I would like a structure like the following: myProject + domain + ... + dao + ... + web + cocoon-blocks Or is it the best way to build the domain totally seperate and add the domain.jar as dependency to my blocks? Any hints possible based on my short description? Best Greetings Patrick -- Andre H. Juffer | Phone: +358-8-553 1161 The Biocenter and| Fax: +358-8-553-1141 the Dep. of Biochemistry | Email: [EMAIL PROTECTED] University of Oulu, Finland | WWW: www.biochem.oulu.fi/Biocomputing/ NordProt | WWW: www.nordprot.org - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [HELP]: blocks and domainmodel
Hello Andre! It definitively is helpfull, thanks a lot!! Greetings, Patrick Original-Nachricht Datum: Thu, 20 Mar 2008 13:24:29 +0200 Von: Andre Juffer [EMAIL PROTECTED] An: users@cocoon.apache.org Betreff: Re: [HELP]: blocks and domainmodel Patrick, some time ago I raised a similar question: http://www.mail-archive.com/users@cocoon.apache.org/msg40943.html The discussion there may be helpful to you as well. Andre. Patrick Heiden wrote: Hello together! I'm trying to find a 'best' way to integrate my domainmodel/businesslayer into cocoon 22 block-semantics. Imagine a rich domainmodel with several package-specific services presented to the client as facade (decoupling persistence and the like). Development of the domainmodel is kept outside for testing-purposes and so on. How should I integrate a 'finished' domainmodel into cocoon-22 blocks? Several blocks use different parts of the model, of course, and the usage is triggered through a main-controller-block. Following the discussions within this mailing-list so far, I am able to imagine, that I could spread my domainmodel to different blocks, but this is not what I want to achieve. Should there be a 'domain'-block, wich contains all domain-beans/objects and from wich other blocks can get access to the domain? Maybe my problem is, that there is no archetype for such an integrated dev-environment (or my thoughts about using the given ones is somewhat incomplete). I would like a structure like the following: myProject + domain + ... + dao + ... + web + cocoon-blocks Or is it the best way to build the domain totally seperate and add the domain.jar as dependency to my blocks? Any hints possible based on my short description? Best Greetings Patrick -- Andre H. Juffer | Phone: +358-8-553 1161 The Biocenter and| Fax: +358-8-553-1141 the Dep. of Biochemistry | Email: [EMAIL PROTECTED] University of Oulu, Finland | WWW: www.biochem.oulu.fi/Biocomputing/ NordProt | WWW: www.nordprot.org - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen! Jetzt dabei sein: http://www.shortview.de/[EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [HELP]: blocks and domainmodel
Hello again! So following your advised discussion, I am able to create the whole domainmodel as standalone .jar and add this as dependency to webapp-block, right? Of course I also have to put the domain-appCtx.xml into the META-INF/cocoon/spring directory. If I would do so, are all other blocks automatically aware of my domain.jar, or do I have to put the dependency to every blocks pom.xml wich is going to use it (besides testing!)? Thank you, Patrick Original-Nachricht Datum: Thu, 20 Mar 2008 13:24:29 +0200 Von: Andre Juffer [EMAIL PROTECTED] An: users@cocoon.apache.org Betreff: Re: [HELP]: blocks and domainmodel Patrick, some time ago I raised a similar question: http://www.mail-archive.com/users@cocoon.apache.org/msg40943.html The discussion there may be helpful to you as well. Andre. Patrick Heiden wrote: Hello together! I'm trying to find a 'best' way to integrate my domainmodel/businesslayer into cocoon 22 block-semantics. Imagine a rich domainmodel with several package-specific services presented to the client as facade (decoupling persistence and the like). Development of the domainmodel is kept outside for testing-purposes and so on. How should I integrate a 'finished' domainmodel into cocoon-22 blocks? Several blocks use different parts of the model, of course, and the usage is triggered through a main-controller-block. Following the discussions within this mailing-list so far, I am able to imagine, that I could spread my domainmodel to different blocks, but this is not what I want to achieve. Should there be a 'domain'-block, wich contains all domain-beans/objects and from wich other blocks can get access to the domain? Maybe my problem is, that there is no archetype for such an integrated dev-environment (or my thoughts about using the given ones is somewhat incomplete). I would like a structure like the following: myProject + domain + ... + dao + ... + web + cocoon-blocks Or is it the best way to build the domain totally seperate and add the domain.jar as dependency to my blocks? Any hints possible based on my short description? Best Greetings Patrick -- Andre H. Juffer | Phone: +358-8-553 1161 The Biocenter and| Fax: +358-8-553-1141 the Dep. of Biochemistry | Email: [EMAIL PROTECTED] University of Oulu, Finland | WWW: www.biochem.oulu.fi/Biocomputing/ NordProt | WWW: www.nordprot.org - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Psst! Geheimtipp: Online Games kostenlos spielen bei den GMX Free Games! http://games.entertainment.gmx.net/de/entertainment/games/free - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [HELP]: blocks and domainmodel
Patrick Heiden pisze: Hello again! So following your advised discussion, I am able to create the whole domainmodel as standalone .jar and add this as dependency to webapp-block, right? Of course I also have to put the domain-appCtx.xml into the META-INF/cocoon/spring directory. If I would do so, are all other blocks automatically aware of my domain.jar, or do I have to put the dependency to every blocks pom.xml wich is going to use it (besides testing!)? Hello Patrick, As it has been said earlier it will be visible because there is only one Global context and now isolation. Anyway, it's just an _implementation detail_ and *not* a design goal. That means you should always reflect dependencies of your code, logic in POM files. Not doing so really breaks design and it's a great opportunity for serious problems to occur. The great example is current situation in SSF described by COCOON-2176[1] issue. While adding dependency on CocoonSourceResolver as a temporary solution we introduced dependency on cocoon-core but we forgot to state this fact in POM. Everything was working fine because we were testing SSF mostly in a Cocoon environment where cocoon-core dependency was present due to other artifacts. This lead to the situation that we eventually forgot about this obscure dependency on cocoon-core and rediscovered it just before final release of SSF. Not stating dependencies in POM files can lead to the hidden circular dependencies which are even more nastier. In short: always, always state all of your dependencies in all of your POMS, period. [1] https://issues.apache.org/jira/browse/COCOON-2176 -- Grzegorz Kossakowski - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [HELP]: blocks and domainmodel
Patrick Heiden wrote: Hello again! So following your advised discussion, I am able to create the whole domainmodel as standalone .jar and add this as dependency to webapp-block, right? Of course I also have to put the domain-appCtx.xml into the META-INF/cocoon/spring directory. If I would do so, are all other blocks automatically aware of my domain.jar, or do I have to put the dependency to every blocks pom.xml wich is going to use it (besides testing!)? It is actually possible to import beans etc from other files. See http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#beans-basics Section 3.2.2.1. Composing XML-based configuration metadata You would write something like: import resource=classpath://services.xml/ The service.xml would then sit in your standalone jar which can therefore also be tested outside of cocoon and can also be used in other environments than cocoon (as if there is anything else worth considering...). The services.xml would define beans, transactions, etc in the regular way. I have typically a few of includes. Other beans you have made yourself that are typical to cocoon would be defined in xml files placed in the designated subdirectories (META-INF/cocoon/spring.) You still need to include a dependency in the pom of each block that uses your domain jar, because you would need the jar for deployment. The issue that remains to be looked into is that a number of blocks may require the same setup for transactions. The definitions for this probably would need to be defined globally. Andre. Thank you, Patrick Original-Nachricht Datum: Thu, 20 Mar 2008 13:24:29 +0200 Von: Andre Juffer [EMAIL PROTECTED] An: users@cocoon.apache.org Betreff: Re: [HELP]: blocks and domainmodel Patrick, some time ago I raised a similar question: http://www.mail-archive.com/users@cocoon.apache.org/msg40943.html The discussion there may be helpful to you as well. Andre. Patrick Heiden wrote: Hello together! I'm trying to find a 'best' way to integrate my domainmodel/businesslayer into cocoon 22 block-semantics. Imagine a rich domainmodel with several package-specific services presented to the client as facade (decoupling persistence and the like). Development of the domainmodel is kept outside for testing-purposes and so on. How should I integrate a 'finished' domainmodel into cocoon-22 blocks? Several blocks use different parts of the model, of course, and the usage is triggered through a main-controller-block. Following the discussions within this mailing-list so far, I am able to imagine, that I could spread my domainmodel to different blocks, but this is not what I want to achieve. Should there be a 'domain'-block, wich contains all domain-beans/objects and from wich other blocks can get access to the domain? Maybe my problem is, that there is no archetype for such an integrated dev-environment (or my thoughts about using the given ones is somewhat incomplete). I would like a structure like the following: myProject + domain + ... + dao + ... + web + cocoon-blocks Or is it the best way to build the domain totally seperate and add the domain.jar as dependency to my blocks? Any hints possible based on my short description? Best Greetings Patrick -- Andre H. Juffer | Phone: +358-8-553 1161 The Biocenter and| Fax: +358-8-553-1141 the Dep. of Biochemistry | Email: [EMAIL PROTECTED] University of Oulu, Finland | WWW: www.biochem.oulu.fi/Biocomputing/ NordProt | WWW: www.nordprot.org - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Andre H. Juffer | Phone: +358-8-553 1161 The Biocenter and| Fax: +358-8-553-1141 the Dep. of Biochemistry | Email: [EMAIL PROTECTED] University of Oulu, Finland | WWW: www.biochem.oulu.fi/Biocomputing/ NordProt | WWW: www.nordprot.org - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [HELP]: blocks and domainmodel
Hi Grzegorz, I've just tested the approach of seperating domain/cocoon-blocks and it works fine. I will follow your suggestion and put a dependency in every block wich will use the domain-model (partly). Thank you for that! One other issue: I am wondering a little bit, why a call to webbAppCtx.containsBeanDefinition(def) returns null. I am able to use the bean through cocoon.getComponent(def). I guess this is one of the implementation-details again ;) Best Greetings, Patrick Original-Nachricht Datum: Thu, 20 Mar 2008 13:12:34 +0100 Von: Grzegorz Kossakowski [EMAIL PROTECTED] An: users@cocoon.apache.org Betreff: Re: [HELP]: blocks and domainmodel Patrick Heiden pisze: Hello again! So following your advised discussion, I am able to create the whole domainmodel as standalone .jar and add this as dependency to webapp-block, right? Of course I also have to put the domain-appCtx.xml into the META-INF/cocoon/spring directory. If I would do so, are all other blocks automatically aware of my domain.jar, or do I have to put the dependency to every blocks pom.xml wich is going to use it (besides testing!)? Hello Patrick, As it has been said earlier it will be visible because there is only one Global context and now isolation. Anyway, it's just an _implementation detail_ and *not* a design goal. That means you should always reflect dependencies of your code, logic in POM files. Not doing so really breaks design and it's a great opportunity for serious problems to occur. The great example is current situation in SSF described by COCOON-2176[1] issue. While adding dependency on CocoonSourceResolver as a temporary solution we introduced dependency on cocoon-core but we forgot to state this fact in POM. Everything was working fine because we were testing SSF mostly in a Cocoon environment where cocoon-core dependency was present due to other artifacts. This lead to the situation that we eventually forgot about this obscure dependency on cocoon-core and rediscovered it just before final release of SSF. Not stating dependencies in POM files can lead to the hidden circular dependencies which are even more nastier. In short: always, always state all of your dependencies in all of your POMS, period. [1] https://issues.apache.org/jira/browse/COCOON-2176 -- Grzegorz Kossakowski - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen! Jetzt dabei sein: http://www.shortview.de/[EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [HELP]: blocks and domainmodel
Hi Andre! snip/ It is actually possible to import beans etc from other files. See http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#beans-basics Section 3.2.2.1. Composing XML-based configuration metadata You would write something like: import resource=classpath://services.xml/ Do you mean that this should be put inside META-INF/cocoon/spring/someContext.xml? That is what would make sense to me. The service.xml would then sit in your standalone jar which can therefore also be tested outside of cocoon and can also be used in other environments than cocoon (as if there is anything else worth considering...). The services.xml would define beans, transactions, etc in the regular way. I have typically a few of includes. Other beans you have made yourself that are typical to cocoon would be defined in xml files placed in the designated subdirectories (META-INF/cocoon/spring.) You still need to include a dependency in the pom of each block that uses your domain jar, because you would need the jar for deployment. The issue that remains to be looked into is that a number of blocks may require the same setup for transactions. The definitions for this probably would need to be defined globally. This is a bit condusing to me, because I would define my transactions inside my domain-model-appCtx and let cocoon-controller (e.g. flowscript) transparently use them. So there already are 'global' defined transactions. Greetings, Patrick -- GMX startet ShortView.de. Hier findest Du Leute mit Deinen Interessen! Jetzt dabei sein: http://www.shortview.de/[EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [HELP]: blocks and domainmodel
Patrick Heiden wrote: Hi Andre! snip/ It is actually possible to import beans etc from other files. See http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#beans-basics Section 3.2.2.1. Composing XML-based configuration metadata You would write something like: import resource=classpath://services.xml/ Do you mean that this should be put inside META-INF/cocoon/spring/someContext.xml? That is what would make sense to me. Yes, exactly. The service.xml would then sit in your standalone jar which can therefore also be tested outside of cocoon and can also be used in other environments than cocoon (as if there is anything else worth considering...). The services.xml would define beans, transactions, etc in the regular way. I have typically a few of includes. Other beans you have made yourself that are typical to cocoon would be defined in xml files placed in the designated subdirectories (META-INF/cocoon/spring.) You still need to include a dependency in the pom of each block that uses your domain jar, because you would need the jar for deployment. The issue that remains to be looked into is that a number of blocks may require the same setup for transactions. The definitions for this probably would need to be defined globally. This is a bit condusing to me, because I would define my transactions inside my domain-model-appCtx and let cocoon-controller (e.g. flowscript) transparently use them. So there already are 'global' defined transactions. Sorry, I was apparently not clear. I use facades that sit on top of the domain layer. My flow scripts just deal with these facades. These facades are made transaction aware. You do exactly the same. Currently, I have just one spring conf file (in the jar) that defines the transaction management for the domain. I am just not entirely clear whether the transactions are truly global or just local within a block. If they are local than I would need to include the same transaction definitions in a number of blocks. If they are truly global, than just one block would need to include the transactions, I presume. Greetings, Patrick -- Andre H. Juffer | Phone: +358-8-553 1161 The Biocenter and| Fax: +358-8-553-1141 the Dep. of Biochemistry | Email: [EMAIL PROTECTED] University of Oulu, Finland | WWW: www.biochem.oulu.fi/Biocomputing/ NordProt | WWW: www.nordprot.org - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [HELP]: blocks and domainmodel
Hello! snip/ Sorry, I was apparently not clear. I use facades that sit on top of the domain layer. My flow scripts just deal with these facades. These facades are made transaction aware. You do exactly the same. Currently, I have just one spring conf file (in the jar) that defines the transaction management for the domain. I am just not entirely clear whether the transactions are truly global or just local within a block. If they are local than I would need to include the same transaction definitions in a number of blocks. If they are truly global, than just one block would need to include the transactions, I presume. Following what Grzegorz mentioned earlier, I would say, that transaction definitions within domain-app-ctx are global for all blocks as long as one put a dependency to the domain.jar within the blocks pom.xml. Then it is just up to the blocks using domain.jar to include 'your' statement to META-INF/cocoon/spring/appCtx.xml to tell that there is another appCtx in the classpath. Actually there is only one global webAppCtx, including all sub-contexts and there should be no problem with transactions. Or do I miss something? I am not sure in wich cases there should be other transaction-rules within some blocks, because I only want to use transactional behaviour out of my domainmodel and never want to let cocoon do any DB-stuff itself. Greetings, Patrick -- Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten Browser-Versionen downloaden: http://www.gmx.net/de/go/browser - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [HELP]: blocks and domainmodel
Hi Patrick, Yeah, I guess that this would settle the matter then. One transaction definition file to transact them all... Cheers, Andre -Original Message- From: Patrick Heiden [mailto:[EMAIL PROTECTED] Sent: Thursday, March 20, 2008 16:54 To: users@cocoon.apache.org Subject: Re: [HELP]: blocks and domainmodel Hello! snip/ Sorry, I was apparently not clear. I use facades that sit on top of the domain layer. My flow scripts just deal with these facades. These facades are made transaction aware. You do exactly the same. Currently, I have just one spring conf file (in the jar) that defines the transaction management for the domain. I am just not entirely clear whether the transactions are truly global or just local within a block. If they are local than I would need to include the same transaction definitions in a number of blocks. If they are truly global, than just one block would need to include the transactions, I presume. Following what Grzegorz mentioned earlier, I would say, that transaction definitions within domain-app-ctx are global for all blocks as long as one put a dependency to the domain.jar within the blocks pom.xml. Then it is just up to the blocks using domain.jar to include 'your' statement to META-INF/cocoon/spring/appCtx.xml to tell that there is another appCtx in the classpath. Actually there is only one global webAppCtx, including all sub-contexts and there should be no problem with transactions. Or do I miss something? I am not sure in wich cases there should be other transaction-rules within some blocks, because I only want to use transactional behaviour out of my domainmodel and never want to let cocoon do any DB-stuff itself. Greetings, Patrick -- Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten Browser-Versionen downloaden: http://www.gmx.net/de/go/browser - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: RE: [HELP]: blocks and domainmodel
Hi Andre! Yeah, I guess that this would settle the matter then. One transaction definition file to transact them all... Maybe one last gap in addition to your thought about block-specific transaction-management: If one must somehow define special transaction purposes, e.g. different method-name-patterns, then usage of different transaction-managers could be fine. But I would try to avoid such design and spend a bit more effort upfront. Cheers ;) Patrick -- Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten Browser-Versionen downloaden: http://www.gmx.net/de/go/browser - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [HELP]: blocks and domainmodel
Patrick Heiden wrote: Hi Andre! Yeah, I guess that this would settle the matter then. One transaction definition file to transact them all... Maybe one last gap in addition to your thought about block-specific transaction-management: If one must somehow define special transaction purposes, e.g. different method-name-patterns, then usage of different transaction-managers could be fine. But I would try to avoid such design and spend a bit more effort upfront. Agreed. My transactions are also very straightforward. I do not use different method-name pattern, except to differentiate between methods that just get something from the database without actually modifying it and methods that result in a modification of one or more tables in the database. That's it. That's why I have just one transaction.xml. Thanks, Andre Cheers ;) Patrick -- Andre H. Juffer | Email: [EMAIL PROTECTED] The Biocenter and| WWW: www.biochem.oulu.fi/Biocomputing/ the Dep. of Biochemistry | Fax: +358-8-553-1141 University of Oulu, Finland | Phone: +358-8-553 1161 Triacle Biocomputing | WWW: www.triacle-bc.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]