I agree about splitting up the web and api application context. If you're going to move stuff between the api and omod projects, you might consider doing that before committing the mavenized module. But I'm fine if you commit it as-is so you don't have to worry about having uncommitted code.
-Darius On Fri, Nov 4, 2011 at 6:33 AM, Michael Seaton <[email protected]> wrote: > ** > Hey Rowan, > > I think we should encourage (or require) 2 application context's per > module. It is already supported (moduleApplicationContext.xml and > webModuleApplicationContext.xml) - you can see how we did this in the > reporting module here: > http://svn.openmrs.org/openmrs-modules/reporting/trunk/metadata/ > > I would say yes about going ahead and checking in htmlformentry with those > failing unit tests, as we work on getting the external dependencies sorted > out for fixing them. > > Mike > > > > On 11/04/2011 04:17 AM, Rowan Seymour wrote: > > 1. So we'd have two application context's per module? One in the API for > services etc and one in the OMOD for controllers etc? > 2. Can someone put logic 0.4 into the OpenMRS maven repos > 3. Can I check htmlformentry into SVN now that we're down to a mere 3 > failing tests? > > On 3 November 2011 21:36, Darius Jazayeri <[email protected]> wrote: > >> +2. >> >> Ben, Matt, etc, is there a reason we did things the way we did? (I.e. >> did something force us to put things in the omod project that don't really >> belong there?) >> >> -Darius >> >> On Thu, Nov 3, 2011 at 12:15 PM, Burke Mamlin <[email protected]>wrote: >> >>> +1 >>> >>> >>> On Thursday, November 3, 2011, Nyoman Ribeka <[email protected]> wrote: >>> > Hi, >>> > >>> > I think the workaround Rowan did by adding the mapping manually reveal >>> > a problem with the way we package the module. Right now what we have >>> > in the API layer for a mavenized module is just the class file only >>> > and the output from the API layer for a module is just the java class >>> > file for that module. With the current approach, we won't be able to >>> > do unit testing on the API layer because there's no configuration to >>> > wire the DAO and Service layer. And if we want to include the API >>> > layer of another module, we will end up with the same situation as >>> > above (maybe adding the omod as dependency, instead of the api would >>> > fix the above problem!) >>> > >>> > I think the better way to package the module is putting the class >>> > files and hbm and spring configuration in the api layer. With this >>> > approach we will have a better separation between the API and the web >>> > layer for the module itself. API will contains all the beans for that >>> > module and omod will contains the API jar file and the web layer for >>> > the module. >>> > >>> > Somewhat related question from me in the answers website: >>> > >>> https://answers.openmrs.org/questions/85/how-does-maven-replace-hbm-filenames-in-test-hibernatecfgxml >>> > >>> > On Thu, Nov 3, 2011 at 12:04 PM, Rowan Seymour <[email protected]> >>> wrote: >>> >> I edited test-hibernate.cfg.xml to explicitly include >>> the TokenRegistration >>> >> mapping file and that seems to fix the unknown entity exception, i.e. >>> >> >>> >> <hibernate-configuration> >>> >> <session-factory> >>> >> ${hbmConfig} >>> >> <mapping resource="TokenRegistration.hbm.xml" /> >>> >> </session-factory> >>> >> </hibernate-configuration> >>> >> >>> >> But now those 3 unit tests are failing with another exception... >>> >> java.lang.NoSuchMethodError: >>> >> >>> org.openmrs.logic.LogicContext.eval(Ljava/lang/Integer;Lorg/openmrs/logic/LogicCriteria;Ljava/util/Map;)Lorg/openmrs/logic/result/Result; >>> >> I've looked at the source for LogicContext and it appears that between >>> >> OpenMRS 1.7 and 1.8 it's eval methods switched from using Patient >>> objects as >>> >> parameters, to using integers. The same switch occurred >>> in LogicContextImpl >>> >> in the logic module between 0.4 and 0.5 >>> >> So I need to depend on version 0.4 of the logic module which isn't in >>> the >>> >> maven repository. Can someone who knows more about this module put it >>> in >>> >> maven? Does html form entry work with OpenMRS 1.8? >>> >> On 3 November 2011 15:50, Rowan Seymour <[email protected]> >>> wrote: >>> >>> >>> >>> It's using logic 0.5 same as Mark just showed. The 3 failing tests >>> are: >>> >>> >>> >>> >>> applyExcludes_shouldReturnCorrectXmlAfterApplyExcludeIfTag(org.openmrs.module.htmlformentry.HtmlFormEntryGeneratorTest): >>> >>> Unknown entity: org.openmrs.logic.token.TokenRegistration >>> >>> >>> >>> >>> applyIncludes_shouldReturnCorrectXmlAfterApplyIncludeTag(org.openmrs.module.htmlformentry.HtmlFormEntryGeneratorTest): >>> >>> Unknown entity: org.openmrs.logic.token.TokenRegistration >>> >>> >>> >>> >>> processIncludeLogic_shouldReturnACorrectBooleanValueForLogicTestString(org.openmrs.module.htmlformentry.HtmlFormEntryGeneratorTest): >>> >>> Unknown entity: org.openmrs.logic.token.TokenRegistration >>> >>> Stack trace just shows that it didn't recognize TokenRegistration as >>> an >>> >>> entity.... >>> >>> >>> >>> >>> applyExcludes_shouldReturnCorrectXmlAfterApplyExcludeIfTag(org.openmrs.module.htmlformentry.HtmlFormEntryGeneratorTest) >>> >>> Time elapsed: 0.255 sec <<< ERROR! >>> >>> org.hibernate.MappingException: Unknown entity: >>> >>> org.openmrs.logic.token.TokenRegistration >>> >>> at >>> >>> >>> org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:550) >>> >>> at >>> >>> >>> org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338) >>> >>> at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:180) >>> >>> at >>> >>> >>> org.hibernate.event.def.AbstractSaveEventListener.getEntityState(AbstractSaveEventListener.java:512) >>> >>> at >>> >>> >>> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:80) >>> >>> at >>> >>> >>> org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) >>> >>> at >>> org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507) >>> >>> at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499) >>> >>> at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495) >>> >>> at >>> >>> >>> org.openmrs.logic.token.db.hibernate.HibernateTokenDAO.saveTokenRegistration(HibernateTokenDAO.java:118) >>> >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> >>> at >>> >>> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>> >>> at >>> >>> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>> >>> at java.lang.reflect.Method.invoke(Method.java:597) >>> >>> at >>> >>> >>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) >>> >>> at >>> >>> org.springframework.aop.framework.ReflectiveMethodIn-- >>> >>> > Thanks, >>> > >>> > Nyoman Ribeka >>> > >>> > _________________________________________ >>> > >>> > To unsubscribe from OpenMRS Developers' mailing list, send an e-mail >>> to [email protected] with "SIGNOFF openmrs-devel-l" in the >>> body (not the subject) of your e-mail. >>> > >>> > [mailto:[email protected]?body=SIGNOFF%20openmrs-devel-l] >>> > >>> > >>> ------------------------------ >>> Click here to >>> unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from >>> OpenMRS Developers' mailing list >>> >> >> ------------------------------ >> Click here to >> unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from >> OpenMRS Developers' mailing list >> > > > > -- > *Rowan Seymour* > tel: +250 783835665 > http://twitter.com/rowanseymour > > ------------------------------ > Click here to > unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from > OpenMRS Developers' mailing list > > ------------------------------ > Click here to > unsubscribe<[email protected]?body=SIGNOFF%20openmrs-devel-l>from > OpenMRS Developers' mailing list > _________________________________________ To unsubscribe from OpenMRS Developers' mailing list, send an e-mail to [email protected] with "SIGNOFF openmrs-devel-l" in the body (not the subject) of your e-mail. [mailto:[email protected]?body=SIGNOFF%20openmrs-devel-l]

