hivemind-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Glen Stampoultzis <gst...@gmail.com>
Subject Re: Debugging autowiring
Date Thu, 09 Jun 2005 12:25:42 GMT
I also find autowiring tough to debug.  The error messages are line
precise but not very helpful.


On 6/9/05, Chris Conrad <cconrad@vasoftware.com> wrote:
> So, it appears that my description of the problem from last night is
> no longer correct.  Autowiring now seems to be not working correctly
> for multiple services in one of my modules.  The module descriptor
> looks like this:
> 
> <module id="security" version="0.0.1" package="xxx.security">
> 
>      <service-point id="AuthenticationService"
> interface="AuthenticationService">
>          <invoke-factory>
>              <construct class="impl.AuthenticationServiceImpl">
>                  <set property="sessionTimeout" value="$
> {sessionTimeout}"/>
>                  <set-service property="sessionRepository" service-
> id="SessionRepository"/>
>                  <set-service property="sessionManager" service-
> id="SessionManager"/>
>              </construct>
>          </invoke-factory>
>          <interceptor service-id="xxx.TransactionInterceptor"/>
>      </service-point>
> 
>      <service-point id="SessionCleanupTask"
> interface="java.lang.Runnable" visibility="private">
>          <invoke-factory>
>              <construct class="impl.SessionCleanupTask">
>                  <set property="sessionTimeout" value="$
> {sessionTimeout}"/>
>                  <set-service property="sessionRepository" service-
> id="SessionRepository"/>
>              </construct>
>          </invoke-factory>
>          <interceptor service-id="xxx.TransactionInterceptor"/>
>      </service-point>
> 
>      <service-point id="SessionManager"
> interface="impl.SessionManager" visibility="private">
>          <invoke-factory model="threaded">
>              <construct class="impl.SessionManagerImpl"/>
>          </invoke-factory>
>      </service-point>
> 
>      <service-point id="SessionRepository"
> interface="impl.SessionRepository" visibility="private">
>          <invoke-factory>
>              <construct class="impl.HibernateSessionRepository"/>
>          </invoke-factory>
>      </service-point>
> </module>
> 
> 
> If you notice, both the AuthenticationService and SessionCleanupTask
> have set-service elements.  Those two services are not being
> autowired correctly, I need to use the set-service element to get the
> services they depend on injected.  The Java code seems to meet the
> requirements for BuilderFactory to do the autowiring but you can
> check for yourself:
> 
>      public void setSessionManager(SessionManager sessionManager) {
>          this.sessionManager = sessionManager;
>      }
> 
>      public void setSessionRepository(SessionRepository
> sessionRepository) {
>          this.sessionRepository = sessionRepository;
>      }
> 
> setSessionRepository is identical in both of the services that aren't
> getting autowired.  I know this for a fact since I just cut and
> pasted the code from one to the other.
> 
> Am I don't something wrong here?  If not, how can I figure out why
> HiveMind isn't autowiring my services?  My AuthenticationService also
> depends on two other services not defined in this module and those
> two services are being correctly autowired.  And both of the two
> troublesome services are getting their Log properties autowired
> correctly as well.  This is doubly bothersome to me since last night
> the AuthenticationService was being autowired correctly.  The only
> difference between last night and tonight is I added the reference to
> the SessionManager service.
> 
> Thanks,
> --Chris
> 
> On Jun 8, 2005, at 2:13 AM, Chris Conrad wrote:
> 
> > Hello,
> >
> > I have two services in the same module and both of them need to
> > have a third service (also in that same module) injected.  Both of
> > the services are defined exactly the same and the setter is
> > identical in both (I cut and pasted the code to be sure of that).
> > But when I run my application, only one of the two services is
> > correctly autowired.  I've been trying to debug this issue myself,
> > but have found the code which performs the autowiring to be
> > difficult to trace through and the debug logging doesn't really say
> > anything about what properties it found to be autowirable.  Is
> > there a simple method for figuring out why HiveMind isn't
> > autowiring the one service correctly?  I'm working around the issue
> > right now by using set-service in the construct tag for the service
> > being mis-wired,  but I'd prefer to avoid the excess XML when it
> > shouldn't be necessary.
> >
> > Thanks,
> > --Chris
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: hivemind-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: hivemind-user-help@jakarta.apache.org
> >
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: hivemind-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: hivemind-user-help@jakarta.apache.org
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: hivemind-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: hivemind-user-help@jakarta.apache.org


Mime
View raw message