Hi Jeremy,

This is very weird since it should just work, and it does here.

I changed the Jumpstart's Home element to this:

@Elem
public class Home extends Element {
  public void processElement() {
    Template template = getHtmlTemplate("pub.home");
    print(template);
  }

  public Class getDeploymentClass() {
    return HomeDeployer.class;
  }

  public static class HomeDeployer extends ElementDeployer {
    public void deploy() throws EngineException {
      Config config = Config.getRepInstance();
      System.out.println(config.getString("database_name"));
    }
  }
}

... and the database name is correctly printed out.

This is one of the features of the repository, participants should automatically wait for each-other if you obtain them from the repository and they are not finished yet.

Since I can't duplicate your behavior here, it's difficult for me to track this down.

Just a small question, are you sure that 'config' is null and not one of the config parameters that you obtain?

Best regards,

Geert

On 15 Dec 2006, at 19:42, Jeremy Whitlock wrote:

Geert,
    Here is my participants.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rep SYSTEM "/dtd/rep.dtd">
<rep>
  <participant param="rep/config.xml">ParticipantConfig</participant>
<participant param="rep/datasources.xml">ParticipantDatasources</ participant>
  <participant param="sites/main.xml">ParticipantSite</participant>
</rep>

Nothing fancy.

Take care,

Jeremy

On 12/14/06, Geert Bevin <[EMAIL PROTECTED]> wrote: Hmmm, this is weird, the repository should automatically make the
deployer wait until the configuration participant is available. Could
you please also paste your participants.xml file? I will have to try
to duplicate this locally to trace it.

On 13 Dec 2006, at 17:41, Jeremy Whitlock wrote:

> Hi All,
>     Here are the code snippets of importance:
>
> ApplicationInitializer.java (This is a Deployer object)
> ----------------------------------------------------------------------
> ----
> @Override
>         public void deploy() throws EngineException {
>             try {
>                 cBean = new SACConfigurationBean();
>
>                 cBean.initialize ();
>
>                 bootstrapBundle();
>                 bootstrapConfiguration();
>             } catch (Exception e) {
>                 e.printStackTrace();
>             }
>         }
>
> SACConfigurationBean (This is a POJO with an initialize method to
> bootstrap the POJO values)
> ----------------------------------------------------------------------
> --------------------------------------------------------------------
> public void initialize() {
>         Config config = Config.getRepInstance();
>
>         setSacDataRoot(new File(config.getString
> ("SAC.DATA.ROOT")).getAbsolutePath()); // Error happens here
> because config is null
>         setSacLogRoot(new File(config.getString
> ("SAC.LOG.ROOT")).getAbsolutePath());
>         setSvnRepoRoot(new File(config.getString
> ("SVN.REPO.ROOT ")).getAbsolutePath());
>     }
>
> What happens is the Deployer Element is calling the
> SACConfigurationBean().initialize() during the
> ApplicationInitializer's deploy() method.  Based on the log output
> and stack trace, I think that the site is not fully initialized so
> my Config.getRepInstance() is returning a null and all use of the
> Config object result in an NPE.  Did I do something wrong?  I would
> think that a Deployer would run after the Site was initialized, or
> at least it would have access to the Site objects like the Config.
>
> Take care,
>
> Jeremy
>
> On 12/13/06, Geert Bevin < [EMAIL PROTECTED]> wrote: I think that your
> problem is that the site structure is being
> initialized before the configuration participant.
>
> Can you please paste the code where the NullPointerException happens?
>
> On 12 Dec 2006, at 19:58, Jeremy Whitlock wrote:
>
> > Hi All,
> > I am using a Deployer to do some staging of my application. To
> > do this, I would like to use Config.getRepInstance () but I have
> > found out that the repository instance is not available, resulting
> > in a null pointer.  How can I get access to the config.xml
> > reference before the repository instance is fully initialized?
> > Based on the log output, the config is the first thing instantiated:
> >
> > INFO: INITIALIZATION : Creating the config object ...
> > Dec 12, 2006 11:50:47 AM com.uwyn.rife.rep.BlockingRepository
> > runParticipants
> > INFO: INITIALIZATION : Creating the datasources object ...
> > Dec 12, 2006 11:50:47 AM com.uwyn.rife.rep.BlockingRepository
> > runParticipants
> > INFO: INITIALIZATION : Creating web application's site structure ...
> > 2006-12-12 11:50:48.396::INFO:  Started SelectChannelConnector @
> > 0.0.0.0:8080
> > [INFO] Started Jetty Server
> > null
> > java.lang.NullPointerException
> >         at
> > net.collab.extranet.sac.beans.SACConfigurationBean.initialize
> > (SACConfigurationBean.java:30)
> >         at net.collab.extranet.sac.elements.ApplicationInitializer
> > $Deployer.deploy(ApplicationInitializer.java:31)
> >         at com.uwyn.rife.engine.ElementInfo.deploy
> (ElementInfo.java:
> > 280)
> >         at com.uwyn.rife.engine.SiteBuilder.setupElements
> > (SiteBuilder.java:984)
> >         at com.uwyn.rife.engine.SiteBuilder.setupData
> > (SiteBuilder.java:1618)
> >         at com.uwyn.rife.engine.SiteBuilder.finish
> > (SiteBuilder.java :261)
> >         at com.uwyn.rife.engine.SiteBuilder.process
> > (SiteBuilder.java:252)
> >         at com.uwyn.rife.engine.SiteBuilder.getSite
> > (SiteBuilder.java:178)
> >         at
> > com.uwyn.rife.rep.participants.ParticipantSite.initialize
> > (ParticipantSite.java:36)
> >         at com.uwyn.rife.rep.BlockingParticipant.run
> > ( BlockingParticipant.java:252)
> >         at java.lang.Thread.run(Thread.java:595)
> >
> > Take care,
> >
> > Jeremy
> > _______________________________________________
> > Rife-users mailing list
> > [email protected]
> > http://lists.uwyn.com/mailman/listinfo/rife-users
>
> --
> Geert Bevin
> Uwyn "Use what you need" - http://uwyn.com
> RIFE Java application framework - http://rifers.org
> Music and words - http://gbevin.com
>
>
> _______________________________________________
> Rife-users mailing list
> [email protected]
> http://lists.uwyn.com/mailman/listinfo/rife-users
>
> _______________________________________________
> Rife-users mailing list
> [email protected]
> http://lists.uwyn.com/mailman/listinfo/rife-users

--
Geert Bevin
Uwyn "Use what you need" - http://uwyn.com
RIFE Java application framework - http://rifers.org
Music and words - http://gbevin.com


_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users

_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users

--
Geert Bevin
Uwyn "Use what you need" - http://uwyn.com
RIFE Java application framework - http://rifers.org
Music and words - http://gbevin.com


_______________________________________________
Rife-users mailing list
[email protected]
http://lists.uwyn.com/mailman/listinfo/rife-users

Reply via email to