Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue #6021 - PoC for resolvePath within XmlConfiguration #6022

Merged
merged 10 commits into from
Mar 3, 2021
10 changes: 4 additions & 6 deletions jetty-deploy/src/main/config/etc/jetty-deploy.xml
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,10 @@
<Arg>
<New id="webappprovider" class="org.eclipse.jetty.deploy.providers.WebAppProvider">
<Set name="monitoredDirName">
<Property>
<Name>jetty.deploy.monitoredPath</Name>
<Default>
<Property name="jetty.base" default="." />/<Property name="jetty.deploy.monitoredDir" default="webapps"/>
</Default>
</Property>
<Call name="resolvePath" class="org.eclipse.jetty.xml.XmlConfiguration">
<Arg><Property name="jetty.base"/></Arg>
<Arg><Property name="jetty.deploy.monitoredDir" default="webapps" /></Arg>
</Call>
</Set>
<Set name="defaultsDescriptor">
<Property>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,10 @@
<Arg>
<New class="org.eclipse.jetty.deploy.bindings.GlobalWebappConfigBinding">
<Set name="jettyXml">
<Property>
<Name>jetty.deploy.webappCommonConfig</Name>
<Default>
<Property name="jetty.base"/>/etc/webapp-common.xml
</Default>
</Property>
<Call name="resolvePath" class="org.eclipse.jetty.xml.XmlConfiguration">
<Arg><Property name="jetty.base"/></Arg>
<Arg><Property name="jetty.deploy.webappCommonConfig" default="etc/webapp-common.xml"/></Arg>
</Call>
</Set>
</New>
</Arg>
Expand Down
2 changes: 1 addition & 1 deletion jetty-home/src/main/resources/modules/hawtio/hawtio.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<Arg>
<New class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/hawtio</Set>
<Set name="war"><Property name="jetty.base" default="."/>/lib/hawtio/hawtio.war</Set>
<Set name="war"><Property name="jetty.base"/>/lib/hawtio/hawtio.war</Set>
<Set name="extractWAR">true</Set>
<Set name="copyWebDir">false</Set>
<Set name="defaultsDescriptor"><Property name="jetty.home" default="."/>/etc/webdefault.xml</Set>
Expand Down
2 changes: 1 addition & 1 deletion jetty-home/src/main/resources/modules/jamon/jamon.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<Arg>
<New class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/jamon</Set>
<Set name="war"><Property name="jetty.base" default="."/>/lib/jamon/jamon.war</Set>
<Set name="war"><Property name="jetty.base"/>/lib/jamon/jamon.war</Set>
<Set name="extractWAR">true</Set>
<Set name="copyWebDir">false</Set>
<Set name="defaultsDescriptor"><Property name="jetty.home" default="."/>/etc/webdefault.xml</Set>
Expand Down
2 changes: 1 addition & 1 deletion jetty-home/src/main/resources/modules/jolokia/jolokia.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<Arg>
<New class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/jolokia</Set>
<Set name="war"><Property name="jetty.base" default="."/>/lib/jolokia/jolokia.war</Set>
<Set name="war"><Property name="jetty.base"/>/lib/jolokia/jolokia.war</Set>
<Set name="extractWAR">true</Set>
<Set name="copyWebDir">false</Set>
<Set name="defaultsDescriptor"><Property name="jetty.home" default="."/>/etc/webdefault.xml</Set>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

<New id="cacheMgr" class="org.infinispan.manager.DefaultCacheManager">
<Arg>
<Property name="jetty.base" default="."/>/etc/infinispan.xml
<Property name="jetty.base"/>/etc/infinispan.xml
</Arg>
<Get id="defaultConfig" name="defaultCacheConfiguration"/>
</New>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<!-- Get a reference to the default local cache. -->
<!-- ===================================================================== -->
<New id="cacheMgr" class="org.infinispan.manager.DefaultCacheManager">
<Arg><Property name="jetty.base" default="."/>/etc/infinispan.xml</Arg>
<Arg><Property name="jetty.base"/>/etc/infinispan.xml</Arg>
<Get id="cache" name="cache"></Get>
</New>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,21 @@
</Call>
</Call>
</New>

<New id="properties" class="java.util.Properties">
<Call name="load">
<Arg>
<New class="java.io.FileInputStream">
<Arg><Property name="jetty.base" default="."/>/resources/hotrod-client.properties</Arg>
</New>
<New class="java.io.FileInputStream">
<Arg><Property name="jetty.base"/>/resources/hotrod-client.properties</Arg>
</New>
</Arg>
</Call>
<Call name="put">
<Arg><Get class="org.hibernate.search.cfg.Environment" name="MODEL_MAPPING"/></Arg>
<Arg><Ref refid="mapping"/></Arg>
</Call>
</New>


<!-- ===================================================================== -->
<!-- Convert properties to configuration. -->
Expand All @@ -49,15 +49,15 @@
</Arg>
</Call>
<Call id="config" name="build"/>
</New>
</New>

<!-- ===================================================================== -->
<!-- Get a reference to the remote cachemanager. -->
<!-- ===================================================================== -->
<New id="remoteCacheManager" class="org.infinispan.client.hotrod.RemoteCacheManager">
<Arg><Ref refid="config"/></Arg>
</New>

<!-- ===================================================================== -->
<!-- Set up custom session serialization. -->
<!-- ===================================================================== -->
Expand All @@ -84,7 +84,7 @@
</Arg>
</Call>
</Call>

<!-- ===================================================================== -->
<!-- Get a reference to the remote cache. -->
<!-- ===================================================================== -->
Expand All @@ -93,10 +93,10 @@
<Arg><Property name="jetty.session.infinispan.remoteCacheName" default="sessions"/></Arg>
</Call>
</Ref>

<!-- ===================================================================== -->
<!-- Set queryMgrFactory reference to RemoteQueryManagerFactory -->
<!-- ===================================================================== -->
<New id="queryMgrFactory" class="org.eclipse.jetty.session.infinispan.RemoteQueryManagerFactory"/>
</Configure>
<New id="queryMgrFactory" class="org.eclipse.jetty.session.infinispan.RemoteQueryManagerFactory"/>

</Configure>
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<Arg>my.proto</Arg>
<Arg>
<New class="java.io.File">
<Arg><Property name="jetty.base" default="."/>/etc/my.proto</Arg>
<Arg><Property name="jetty.base"/>/etc/my.proto</Arg>
</New>
</Arg>
</Call>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<Call name="load">
<Arg>
<New class="java.io.FileInputStream">
<Arg><Property name="jetty.base" default="."/>/resources/hotrod-client.properties</Arg>
<Arg><Property name="jetty.base"/>/resources/hotrod-client.properties</Arg>
</New>
</Arg>
</Call>
Expand Down
7 changes: 6 additions & 1 deletion jetty-jaas/src/main/config/etc/jetty-jaas.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,12 @@
<!-- ======================================================== -->
<Call class="java.lang.System" name="setProperty">
<Arg>java.security.auth.login.config</Arg>
<Arg><Property name="jetty.base" default="." />/<Property name="jetty.jaas.login.conf" default="etc/login.conf"/></Arg>
<Arg>
<Call name="resolvePath" class="org.eclipse.jetty.xml.XmlConfiguration">
<Arg><Property name="jetty.base"/></Arg>
<Arg><Property name="jetty.jaas.login.conf" default="etc/login.conf" /></Arg>
</Call>
</Arg>
</Call>

</Configure>
7 changes: 6 additions & 1 deletion jetty-keystore/src/main/config/etc/jetty-test-keystore.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,12 @@

<Configure id="Server" class="org.eclipse.jetty.server.Server">
<Call class="org.eclipse.jetty.keystore.KeystoreGenerator" name="generateTestKeystore">
<Arg><Property name="jetty.base" default="." />/<Property name="jetty.sslContext.keyStorePath" default="etc/keystore.p12" /></Arg>
<Arg>
<Call name="resolvePath" class="org.eclipse.jetty.xml.XmlConfiguration">
<Arg><Property name="jetty.base"/></Arg>
<Arg><Property name="jetty.sslContext.keyStorePath" default="etc/keystore.p12" /></Arg>
</Call>
</Arg>
<Arg><Property name="jetty.sslContext.keyStorePassword" /></Arg>
</Call>
</Configure>
3 changes: 0 additions & 3 deletions jetty-keystore/src/main/config/modules/test-keystore.mod
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,3 @@ jetty.webapp.addServerClasses+=,${jetty.base.uri}/lib/bouncycastle/
jetty.sslContext.keyStorePath?=etc/test-keystore.p12
jetty.sslContext.keyStoreType?=PKCS12
jetty.sslContext.keyStorePassword?=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
jetty.sslContext.trustStorePath?=etc/test-keystore.p12
jetty.sslContext.trustStoreType?=PKCS12
jetty.sslContext.keyStorePassword?=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
2 changes: 1 addition & 1 deletion jetty-maven-plugin/src/main/resources/maven.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<Arg>
<Ref refid="wac" />
</Arg>
<Arg><Property name="jetty.base" default="."/>/etc/maven.props</Arg>
<Arg><Property name="jetty.base"/>/etc/maven.props</Arg>
<Arg>
<Ref refid="Server" />
</Arg>
Expand Down
4 changes: 2 additions & 2 deletions jetty-osgi/test-jetty-osgi/src/test/config/etc/jetty-ssl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@
<!-- ============================================================= -->
<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory$Server">
<Set name="Provider"><SystemProperty name="jetty.sslContext.provider"/></Set>
<Set name="KeyStorePath"><Property name="jetty.base" default="."/>/<Property name="jetty.sslContext.keyStorePath" default="etc/keystore.p12"/></Set>
<Set name="KeyStorePath"><Property name="jetty.base"/>/<Property name="jetty.sslContext.keyStorePath" default="etc/keystore.p12"/></Set>
<Set name="KeyStorePassword"><Property name="jetty.sslContext.keyStorePassword" default="OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4"/></Set>
<Set name="TrustStorePath"><Property name="jetty.base" default="."/>/<Property name="jetty.sslContext.trustStorePath" default="etc/keystore.p12"/></Set>
<Set name="TrustStorePath"><Property name="jetty.base"/>/<Property name="jetty.sslContext.trustStorePath" default="etc/keystore.p12"/></Set>
<Set name="TrustStorePassword"><Property name="jetty.sslContext.trustStorePassword" default="OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4"/></Set>
<Set name="NeedClientAuth" property="jetty.sslContext.needClientAuth"/>
<Set name="WantClientAuth" property="jetty.sslContext.wantClientAuth"/>
Expand Down
11 changes: 6 additions & 5 deletions jetty-server/src/main/config/etc/jetty-requestlog.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,12 @@
<!-- Writer -->
<Arg>
<New class="org.eclipse.jetty.server.AsyncRequestLogWriter">
<Arg><Property name="jetty.base" default="." />/<Property>
<Name>jetty.requestlog.filePath</Name>
<Default><Property name="jetty.requestlog.dir" default="logs"/>/yyyy_mm_dd.request.log</Default>
</Property></Arg>
<Arg/>
<Arg>
<Call name="resolvePath" class="org.eclipse.jetty.xml.XmlConfiguration">
<Arg><Property name="jetty.base"/></Arg>
<Arg><Property name="jetty.requestlog.dir" default="logs" />/yyyy_mm_dd.request.log</Arg>
</Call>
</Arg>

<Set name="filenameDateFormat"><Property name="jetty.requestlog.filenameDateFormat" default="yyyy_MM_dd"/></Set>
<Set name="retainDays"><Property name="jetty.requestlog.retainDays" default="90"/></Set>
Expand Down
18 changes: 8 additions & 10 deletions jetty-server/src/main/config/etc/jetty-ssl-context.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,20 @@
<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory$Server">
<Set name="Provider" property="jetty.sslContext.provider" />
<Set name="KeyStorePath">
<Property name="jetty.sslContext.keyStoreAbsolutePath">
<Default>
<Property name="jetty.base" default="." />/<Property name="jetty.sslContext.keyStorePath" deprecated="jetty.keystore" default="etc/keystore"/>
</Default>
</Property>
<Call name="resolvePath" class="org.eclipse.jetty.xml.XmlConfiguration">
<Arg><Property name="jetty.base"/></Arg>
<Arg><Property name="jetty.sslContext.keyStorePath" deprecated="jetty.sslContext.keyStoreAbsolutePath,jetty.keystore" default="etc/keystore.p12" /></Arg>
</Call>
</Set>
<Set name="KeyStorePassword"><Property name="jetty.sslContext.keyStorePassword" /></Set>
<Set name="KeyStoreType" property="jetty.sslContext.keyStoreType" />
<Set name="KeyStoreProvider" property="jetty.sslContext.keyStoreProvider" />
<Set name="KeyManagerPassword"><Property name="jetty.sslContext.keyManagerPassword" /></Set>
<Set name="TrustStorePath">
<Property name="jetty.sslContext.trustStoreAbsolutePath">
<Default>
<Property name="jetty.base" default="." />/<Property name="jetty.sslContext.trustStorePath" deprecated="jetty.truststore" default="etc/keystore"/>
</Default>
</Property>
<Call name="resolvePath" class="org.eclipse.jetty.xml.XmlConfiguration">
<Arg><Property name="jetty.base"/></Arg>
<Arg><Property name="jetty.sslContext.trustStorePath" deprecated="jetty.sslContext.trustStoreAbsolutePath,jetty.truststore" /></Arg>
</Call>
</Set>
<Set name="TrustStorePassword" property="jetty.sslContext.trustStorePassword" />
<Set name="TrustStoreType" property="jetty.sslContext.trustStoreType" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -708,13 +708,20 @@ public String getTrustStorePath()
*/
public void setTrustStorePath(String trustStorePath)
{
try
if (StringUtil.isEmpty(trustStorePath))
{
_trustStoreResource = Resource.newResource(trustStorePath);
_trustStoreResource = null;
}
catch (Exception e)
else
{
throw new IllegalArgumentException(e);
try
{
_trustStoreResource = Resource.newResource(trustStorePath);
}
catch (Exception e)
{
throw new IllegalArgumentException(e);
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,22 @@ public void initializeDefaults(Object object)
{
}

/**
* Utility method to resolve a provided path against a directory.
*
* @param dir the directory (should be a directory reference, does not have to exist)
* @param destPath the destination path (can be relative or absolute, syntax depends on OS + FileSystem in use,
* and does not need to exist)
* @return String to resolved and normalized path, or null if dir or destPath is empty.
*/
public static String resolvePath(String dir, String destPath)
{
if (StringUtil.isEmpty(dir) || StringUtil.isEmpty(destPath))
return null;

return Paths.get(dir).resolve(destPath).normalize().toString();
}

private static class JettyXmlConfiguration implements ConfigurationProcessor
{
XmlParser.Node _root;
Expand Down
Loading