2014-02-14 5 views
5

Ich arbeite an einem Projekt, das jetty-env.xml verwendet, um einige Ressourcen in der Testumgebung zu definieren. Es erfordert, dass ich es entführe und meinen Benutzernamen und mein Passwort für die Ressourcen einfüge. Gibt es eine Möglichkeit, meine Anmeldeinformationen auf externe Weise zu definieren und stattdessen einen Eigenschaftenplatzhalter zu verwenden? Wie im Frühling applicationConfig.xml kann ich $ {username} wie in meinen Systemeigenschaften definiert verwenden.Kann ich Eigenschaftenplatzhalter in Jetty-env.xml verwenden?

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"> 
<Configure id="wac" class="org.mortbay.jetty.webapp.WebAppContext"> 
<New id="validation_mail" class="org.mortbay.jetty.plus.naming.Resource"> 
    <Arg>mail/exampleMail</Arg> 
    <Arg> 
     <New class="org.mortbay.naming.factories.MailSessionReference"> 
      <Set name="user"></Set> 
      <Set name="password"></Set> 
      <Set name="properties"> 
       <New class="java.util.Properties"> 
        <Put name="mail.smtp.host">mail.example.edu</Put> 
       </New> 
      </Set> 
     </New> 
    </Arg> 
</New> 

<New id="datasource" class="org.mortbay.jetty.plus.naming.Resource"> 
    <Arg>jdbc/DataSource</Arg> 
    <Arg> 
     <New class="com.sybase.jdbc3.jdbc.SybDataSource"> 
      <Set name="databaseName">example</Set> 
      <Set name="serverName">testip.example.edu:2025</Set> 
      <Set name="portNumber">2025</Set> 
      <Set name="user">username</Set> <!-- put username here --> 
      <Set name="password">password</Set> <!-- put password here --> 
     </New> 
    </Arg> 
</New> 

Ich bin neu in diesen Tools, also könnte ich näher an einer Antwort sein als ich denke. Jede Hilfe wäre willkommen.

Enviroment: Frühling Tool Suite 3.4.0 RELEASE Maven 3 Jetty Plugin 6.1 Frühling 3

Antwort

3

Sie können Umgebungsvariablen definieren und die Env-Tag als Platzhalter verwenden.

<New id="dsDatasource" class="org.eclipse.jetty.plus.jndi.Resource"> 
    <Arg>jdbc/dsProtWb</Arg> 
    <Arg> 
     <New class="org.apache.commons.dbcp.BasicDataSource"> 
      <Set name="driverClassName">net.sourceforge.jtds.jdbc.Driver</Set> 
      <Set name='url'>jdbc:jtds:sqlserver://ROPFDN812Q:4900/dlmp_proteomics_wb_dev;instance=FDNDEV18;domain=mfad</Set> 
      <Set name="username"><Env name="LANID"/></Set> 
      <Set name="password"><Env name="LANPW"/></Set> 
     </New> 
    </Arg> 
</New> 
+0

Wo legen Sie die Env-Variablen? – millsofmn

+0

Das hängt von Ihrem Betriebssystem ab. Sie können sie entweder in Ihre Shell-Initialisierung (Linux oder Unix) exportieren oder für schlechte Windows-Benutzer können Sie die Anweisungen hier folgen. http://www.computerhope.com/issues/ch000549.htm –

+1

BTW, Sie müssen Jetty 7.6 ausgeführt werden, damit dies funktioniert. Denken Sie daran, dass Jetty in diesem Zeitraum zur Eclipse-Foundation migriert wurde. –

4

Wenn Sie das Plugin jetty maven verwenden, können Sie Ihre Eigenschaften in einer Eigenschaftendatei definieren.

Konfigurieren der Anlegestelle Plugin wie folgt aus:

<configuration> 
    <systemPropertiesFile>${project.basedir}/src/test/conf/jetty-env.properties</systemPropertiesFile> 
</configuration> 

Und dann können Sie Ihre Anlegestelle-env.xml so aussehen:

<New id="dsDatasource" class="org.eclipse.jetty.plus.jndi.Resource"> 
    <Arg>jdbc/dsProtWb</Arg> 
    <Arg> 
    <New class="org.apache.commons.dbcp.BasicDataSource"> 
     <Set name="driverClassName">net.sourceforge.jtds.jdbc.Driver</Set> 
     <Set name='url'>jdbc:jtds:sqlserver://ROPFDN812Q:4900/dlmp_proteomics_wb_dev;instance=FDNDEV18;domain=mfad</Set> 
     <Set name="username"><SystemProperty name="LANID" /></Set> 
     <Set name="password"><SystemProperty name="LANPW" /></Set> 
    </New> 
    </Arg> 
</New>  
Verwandte Themen