Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
michaeloffner committed Mar 9, 2018
1 parent dbb69b1 commit da9b3aa
Show file tree
Hide file tree
Showing 6 changed files with 54 additions and 18 deletions.
40 changes: 32 additions & 8 deletions core/src/main/java/lucee/runtime/config/ConfigImpl.java
Expand Up @@ -437,6 +437,8 @@ public abstract class ConfigImpl implements Config {
private long queueTimeout=0;
private boolean queueEnable=false;

public static boolean onlyFirstMatch=false;

/**
* @return the allowURLRequestTimeout
*/
Expand Down Expand Up @@ -902,11 +904,17 @@ public PageSource getPageSourceExisting(PageContext pc,Mapping[] mappings, Strin

@Override
public PageSource[] getPageSources(PageContext pc,Mapping[] mappings, String realPath,boolean onlyTopLevel,boolean useSpecialMappings, boolean useDefaultMapping) {
return getPageSources(pc, mappings, realPath, onlyTopLevel, useSpecialMappings, useDefaultMapping, false);
return getPageSources(pc, mappings, realPath, onlyTopLevel, useSpecialMappings, useDefaultMapping, onlyFirstMatch);
}

@Override
public PageSource[] getPageSources(PageContext pc,Mapping[] mappings, String realPath,boolean onlyTopLevel,boolean useSpecialMappings, boolean useDefaultMapping, boolean useComponentMappings) {
public PageSource[] getPageSources(PageContext pc,Mapping[] mappings, String realPath,
boolean onlyTopLevel,boolean useSpecialMappings, boolean useDefaultMapping, boolean useComponentMappings) {
return getPageSources(pc, mappings, realPath, onlyTopLevel, useSpecialMappings, useDefaultMapping, useComponentMappings, onlyFirstMatch);
}
public PageSource[] getPageSources(PageContext pc,Mapping[] mappings, String realPath,
boolean onlyTopLevel,boolean useSpecialMappings, boolean useDefaultMapping,
boolean useComponentMappings, boolean onlyFirstMatch) {
realPath=realPath.replace('\\','/');
String lcRealPath = StringUtil.toLowerCase(realPath)+'/';
Mapping mapping;
Expand All @@ -919,7 +927,9 @@ public PageSource[] getPageSources(PageContext pc,Mapping[] mappings, String rea
mapping = mappings[i];
//print.err(lcRealPath+".startsWith"+(mapping.getStrPhysical()));
if(lcRealPath.startsWith(mapping.getVirtualLowerCaseWithSlash(),0)) {
list.add(mapping.getPageSource(realPath.substring(mapping.getVirtual().length())));
ps=mapping.getPageSource(realPath.substring(mapping.getVirtual().length()));
if(onlyFirstMatch) return new PageSource[]{ps};
else list.add(ps);
}
}
}
Expand All @@ -932,7 +942,10 @@ public PageSource[] getPageSources(PageContext pc,Mapping[] mappings, String rea
if(lcRealPath.startsWith(virtual,0)){
for(int i=0;i<tagMappings.length;i++) {
ps=tagMappings[i].getPageSource(realPath.substring(virtual.length()));
if(ps.exists()) list.add(ps);
if(ps.exists()) {
if(onlyFirstMatch) return new PageSource[]{ps};
else list.add(ps);
}
}
}

Expand All @@ -942,7 +955,10 @@ public PageSource[] getPageSources(PageContext pc,Mapping[] mappings, String rea
if(lcRealPath.startsWith(virtual,0)){
for(int i=0;i<tagMappings.length;i++) {
ps=tagMappings[i].getPageSource(realPath.substring(virtual.length()));
if(ps.exists()) list.add(ps);
if(ps.exists()) {
if(onlyFirstMatch) return new PageSource[]{ps};
else list.add(ps);
}
}
}
}
Expand All @@ -954,7 +970,10 @@ public PageSource[] getPageSources(PageContext pc,Mapping[] mappings, String rea
Mapping[] cmappings = getComponentMappings();
for(int i=0;i<cmappings.length;i++) {
ps=cmappings[i].getPageSource(realPath);
if(ps.exists()) list.add(ps);
if(ps.exists()) {
if(onlyFirstMatch) return new PageSource[]{ps};
else list.add(ps);
}
}
}
}
Expand All @@ -963,12 +982,17 @@ public PageSource[] getPageSources(PageContext pc,Mapping[] mappings, String rea
for(int i=0;i<this.mappings.length-1;i++) {
mapping = this.mappings[i];
if((!onlyTopLevel || mapping.isTopLevel()) && lcRealPath.startsWith(mapping.getVirtualLowerCaseWithSlash(),0)) {
list.add(mapping.getPageSource(realPath.substring(mapping.getVirtual().length())));
ps=mapping.getPageSource(realPath.substring(mapping.getVirtual().length()));
if(onlyFirstMatch) return new PageSource[]{ps};
else list.add(ps);
}
}

if(useDefaultMapping){
list.add(this.mappings[this.mappings.length-1].getPageSource(realPath));
ps=this.mappings[this.mappings.length-1].getPageSource(realPath);
if(onlyFirstMatch) return new PageSource[]{ps};
else list.add(ps);

}
return list.toArray(new PageSource[list.size()]);
}
Expand Down
Expand Up @@ -170,7 +170,9 @@ private static long second(long ms) {
* @throws BundleException
*/
static void load(ConfigServerImpl configServer, Document doc, boolean isReload, boolean doNew) throws ClassException, PageException, IOException, TagLibException, FunctionLibException, BundleException {
XMLConfigWebFactory.load(null,configServer,doc, isReload,doNew);
ConfigImpl.onlyFirstMatch=Caster.toBooleanValue(SystemUtil.getSystemPropOrEnvVar("lucee.mapping.first",Boolean.FALSE),false);
XMLConfigWebFactory.load(null,configServer,doc, isReload,doNew);

loadLabel(configServer,doc);
}

Expand Down
Expand Up @@ -17,11 +17,12 @@ public static void agentmain(String agentArgs, Instrumentation inst) {
private static void setInstrumentation(Instrumentation inst) {
if(inst!=null) {
try{
/*
System.out.println("start set instrumentation");
System.out.println(Thread.currentThread().getContextClassLoader().getClass().getName());
System.out.println(ClassLoader.getSystemClassLoader().getClass().getName());
System.out.println(new ExternalAgent().getClass().getClassLoader().getClass().getName());

*/
instrumentation=inst;
}
catch(Throwable t){
Expand Down
2 changes: 1 addition & 1 deletion loader/build.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project default="core" basedir="." name="Lucee" xmlns:artifact="antlib:org.apache.maven.artifact.ant">

<property name="version" value="5.2.7.31-SNAPSHOT"/>
<property name="version" value="5.2.7.32-SNAPSHOT"/>

<path id="maven-ant-tasks.classpath" path="../ant/lib/maven-ant-tasks-2.1.3.jar" />
<typedef resource="org/apache/maven/artifact/ant/antlib.xml"
Expand Down
2 changes: 1 addition & 1 deletion loader/pom.xml
Expand Up @@ -3,7 +3,7 @@

<groupId>org.lucee</groupId>
<artifactId>lucee</artifactId>
<version>5.2.7.31-SNAPSHOT</version>
<version>5.2.7.32-SNAPSHOT</version>
<packaging>jar</packaging>

<name>Lucee Loader Build</name>
Expand Down
21 changes: 15 additions & 6 deletions test/functions/SetHour.cfc
Expand Up @@ -28,12 +28,21 @@ component extends="org.lucee.cfml.test.LuceeTestCase" {
assertEquals("{ts '2000-01-01 01:00:00'}",t.setHour(1,getTimeZone())&"");
}

public void function testMethod() localmode="true" {
/*public void function testMethod() localmode="true" {
setTimeZone("UTC");
t=createDateTime(2000,1,1,0,0,0,0,"UTC");
assertEquals("{ts '2000-01-01 00:00:00'}",t&"");
t.setHours(1);
assertEquals("{ts '2000-01-01 01:00:00'}",t&"");
}
var tz=createObject('java','java.util.TimeZone');
var org=tz.getDefault();
tz.setDefault(tz.getTimeZone("UTC"));
try {
t=createDateTime(2000,1,1,0,0,0,0,"UTC");
assertEquals("{ts '2000-01-01 00:00:00'}",t&"");
t.setHours(1);
assertEquals("{ts '2000-01-01 01:00:00'}",t&"");
}
finally {
tz.setDefault(org);
}
}*/

}

0 comments on commit da9b3aa

Please sign in to comment.