Skip to content
This repository was archived by the owner on Sep 16, 2024. It is now read-only.

Commit 616e03b

Browse files
committed
#73 Added support for a FileFilter on AppConfig
1 parent 92f6d99 commit 616e03b

File tree

5 files changed

+56
-13
lines changed

5 files changed

+56
-13
lines changed

CHANGELOG.mdown

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# ml-app-deployer releases
22

3-
## 2.0rc1
3+
4+
## 2.0rc2 - TBD
5+
6+
* [#73](https://github.com/rjrudin/ml-app-deployer/issues/73) Added support for setting a FileFilter on AppConfig for controlling what assets are loaded
7+
8+
## 2.0rc1 - 2015-12-23
49

510
* Repackaging to com.marklogic
611

src/main/java/com/marklogic/appdeployer/AppConfig.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.marklogic.appdeployer;
22

3+
import java.io.FileFilter;
34
import java.util.ArrayList;
45
import java.util.HashMap;
56
import java.util.List;
@@ -70,6 +71,8 @@ public class AppConfig {
7071
// As defined by the REST API
7172
private String modulePermissions = "rest-admin,read,rest-admin,update,rest-extension-user,execute";
7273

74+
private FileFilter assetFileFilter;
75+
7376
// Additional module extensions that should be loaded as binaries into the modules database
7477
private String[] additionalBinaryExtensions;
7578

@@ -101,8 +104,8 @@ public void setSimpleSslConfig() {
101104
* @return
102105
*/
103106
public DatabaseClient newDatabaseClient() {
104-
return DatabaseClientFactory.newClient(getHost(), getRestPort(), getRestAdminUsername(),
105-
getRestAdminPassword(), getRestAuthentication(), getRestSslContext(), getRestSslHostnameVerifier());
107+
return DatabaseClientFactory.newClient(getHost(), getRestPort(), getRestAdminUsername(), getRestAdminPassword(),
108+
getRestAuthentication(), getRestSslContext(), getRestSslHostnameVerifier());
106109
}
107110

108111
/**
@@ -138,6 +141,11 @@ public XccAssetLoader newXccAssetLoader() {
138141
}
139142
l.setDocumentFormatGetter(getter);
140143
}
144+
145+
if (assetFileFilter != null) {
146+
l.setFileFilter(assetFileFilter);
147+
}
148+
141149
return l;
142150

143151
}
@@ -425,4 +433,12 @@ public void setModulePermissions(String assetPermissions) {
425433
this.modulePermissions = assetPermissions;
426434
}
427435

436+
public FileFilter getAssetFileFilter() {
437+
return assetFileFilter;
438+
}
439+
440+
public void setAssetFileFilter(FileFilter assetFileFilter) {
441+
this.assetFileFilter = assetFileFilter;
442+
}
443+
428444
}

src/test/java/com/marklogic/appdeployer/command/modules/LoadModulesTest.java

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
package com.marklogic.appdeployer.command.modules;
22

3+
import java.io.File;
4+
35
import org.junit.After;
46
import org.junit.Before;
57
import org.junit.Test;
68

7-
import com.marklogic.junit.PermissionsFragment;
8-
import com.marklogic.xcc.template.XccTemplate;
99
import com.marklogic.appdeployer.AbstractAppDeployerTest;
1010
import com.marklogic.appdeployer.command.restapis.DeployRestApiServersCommand;
11+
import com.marklogic.client.modulesloader.impl.AssetFileFilter;
12+
import com.marklogic.junit.PermissionsFragment;
13+
import com.marklogic.xcc.template.XccTemplate;
1114

1215
public class LoadModulesTest extends AbstractAppDeployerTest {
1316

@@ -55,20 +58,28 @@ public void loadModulesWithCustomPermissions() {
5558
perms.assertPermissionExists("app-user", "execute");
5659
}
5760

61+
@Test
62+
public void loadModulesWithAssetFileFilter() {
63+
LoadModulesCommand c = new LoadModulesCommand();
64+
appConfig.setAssetFileFilter(new TestFileFilter());
65+
66+
initializeAppDeployer(new DeployRestApiServersCommand(), c);
67+
appDeployer.deploy(appConfig);
68+
69+
assertEquals("true", xccTemplate.executeAdhocQuery("doc-available('/ext/lib/test.xqy')"));
70+
assertEquals("false", xccTemplate.executeAdhocQuery("doc-available('/ext/lib/test2.xqy')"));
71+
}
72+
5873
@Test
5974
public void testServerExists() {
6075
appConfig.setTestRestPort(8541);
6176
initializeAppDeployer(new DeployRestApiServersCommand(), new LoadModulesCommand());
6277
appDeployer.deploy(appConfig);
6378

64-
assertEquals(
65-
"true",
66-
xccTemplate
67-
.executeAdhocQuery("fn:doc-available('/Default/sample-app/rest-api/options/sample-app-options.xml')"));
68-
assertEquals(
69-
"true",
70-
xccTemplate
71-
.executeAdhocQuery("fn:doc-available('/Default/sample-app-test/rest-api/options/sample-app-options.xml')"));
79+
assertEquals("true", xccTemplate
80+
.executeAdhocQuery("fn:doc-available('/Default/sample-app/rest-api/options/sample-app-options.xml')"));
81+
assertEquals("true", xccTemplate.executeAdhocQuery(
82+
"fn:doc-available('/Default/sample-app-test/rest-api/options/sample-app-options.xml')"));
7283
}
7384

7485
private void assertModuleExistsWithDefaultPermissions(String message, String uri) {
@@ -88,3 +99,12 @@ private void assertDefaultPermissionsExists(String uri) {
8899
}
89100

90101
}
102+
103+
class TestFileFilter extends AssetFileFilter {
104+
105+
@Override
106+
public boolean accept(File f) {
107+
return !f.getName().equals("test2.xqy") && super.accept(f);
108+
}
109+
110+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<test/>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<test/>

0 commit comments

Comments
 (0)