Skip to content

Commit dc101d2

Browse files
committed
Add stub for studies module
1 parent c271dc3 commit dc101d2

File tree

11 files changed

+224
-0
lines changed

11 files changed

+224
-0
lines changed

Studies/build.gradle

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
plugins {
2+
id 'org.labkey.build.module'
3+
}
4+
5+
dependencies
6+
{
7+
BuildUtils.addLabKeyDependency(project: project, config: "implementation", depProjectPath: ":server:modules:LabDevKitModules:laboratory", depProjectConfig: "apiJarFile")
8+
BuildUtils.addLabKeyDependency(project: project, config: "implementation", depProjectPath: ":server:modules:LabDevKitModules:LDK", depProjectConfig: "apiJarFile")
9+
10+
BuildUtils.addLabKeyDependency(project: project, config: "modules", depProjectPath: ":server:modules:LabDevKitModules:laboratory", depProjectConfig: "published", depExtension: "module")
11+
BuildUtils.addLabKeyDependency(project: project, config: "modules", depProjectPath: ":server:modules:LabDevKitModules:LDK", depProjectConfig: "published", depExtension: "module")
12+
}
13+

Studies/module.properties

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
ModuleClass: org.labkey.studies.StudiesModule
2+
Label: Studies
3+
Description: Extensions to the study framework, designed to more flexibly manage multiple study designs from one source of data
4+
License: Apache 2.0
5+
LicenseURL: http://www.apache.org/licenses/LICENSE-2.0
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CREATE SCHEMA studies;
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
CREATE SCHEMA studies;
2+
GO
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<tables xsi:schemaLocation="http://labkey.org/data/xml ..\..\..\..\schemas\tableInfo.xsd"
3+
xmlns="http://labkey.org/data/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.labkey.studies;
2+
3+
import org.labkey.api.action.SpringActionController;
4+
5+
public class StudiesController extends SpringActionController
6+
{
7+
private static final DefaultActionResolver _actionResolver = new DefaultActionResolver(StudiesController.class);
8+
public static final String NAME = "studies";
9+
10+
public StudiesController()
11+
{
12+
setActionResolver(_actionResolver);
13+
}
14+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package org.labkey.studies;
2+
3+
public class StudiesManager
4+
{
5+
private static final StudiesManager _instance = new StudiesManager();
6+
7+
private StudiesManager()
8+
{
9+
// prevent external construction with a private default constructor
10+
}
11+
12+
public static StudiesManager get()
13+
{
14+
return _instance;
15+
}
16+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package org.labkey.studies;
2+
3+
import org.jetbrains.annotations.NotNull;
4+
import org.jetbrains.annotations.Nullable;
5+
import org.labkey.api.data.Container;
6+
import org.labkey.api.module.DefaultModule;
7+
import org.labkey.api.module.ModuleContext;
8+
import org.labkey.api.view.WebPartFactory;
9+
10+
import java.util.Collection;
11+
import java.util.Collections;
12+
import java.util.Set;
13+
14+
public class StudiesModule extends DefaultModule
15+
{
16+
public static final String NAME = "Studies";
17+
18+
@Override
19+
public String getName()
20+
{
21+
return NAME;
22+
}
23+
24+
@Override
25+
public @Nullable Double getSchemaVersion()
26+
{
27+
return 23.000;
28+
}
29+
30+
@Override
31+
public boolean hasScripts()
32+
{
33+
return true;
34+
}
35+
36+
@Override
37+
@NotNull
38+
protected Collection<WebPartFactory> createWebPartFactories()
39+
{
40+
return Collections.emptyList();
41+
}
42+
43+
@Override
44+
protected void init()
45+
{
46+
addController(StudiesController.NAME, StudiesController.class);
47+
}
48+
49+
@Override
50+
public void doStartup(ModuleContext moduleContext)
51+
{
52+
53+
}
54+
55+
@Override
56+
@NotNull
57+
public Collection<String> getSummary(Container c)
58+
{
59+
return Collections.emptyList();
60+
}
61+
62+
@Override
63+
@NotNull
64+
public Set<String> getSchemaNames()
65+
{
66+
return Collections.singleton(StudiesSchema.NAME);
67+
}
68+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package org.labkey.studies;
2+
3+
import org.labkey.api.data.DbSchema;
4+
import org.labkey.api.data.DbSchemaType;
5+
import org.labkey.api.data.dialect.SqlDialect;
6+
7+
public class StudiesSchema
8+
{
9+
private static final StudiesSchema _instance = new StudiesSchema();
10+
public static final String NAME = "studies";
11+
12+
public static StudiesSchema getInstance()
13+
{
14+
return _instance;
15+
}
16+
17+
private StudiesSchema()
18+
{
19+
20+
}
21+
22+
public DbSchema getSchema()
23+
{
24+
return DbSchema.get(NAME, DbSchemaType.Module);
25+
}
26+
27+
public SqlDialect getSqlDialect()
28+
{
29+
return getSchema().getSqlDialect();
30+
}
31+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package org.labkey.test.tests.studies;
2+
3+
import org.junit.Before;
4+
import org.junit.BeforeClass;
5+
import org.junit.Test;
6+
import org.junit.experimental.categories.Category;
7+
import org.labkey.test.BaseWebDriverTest;
8+
import org.labkey.test.TestTimeoutException;
9+
import org.labkey.test.categories.InDevelopment;
10+
11+
import java.util.Collections;
12+
import java.util.List;
13+
14+
@Category({InDevelopment.class})
15+
public class StudiesTest extends BaseWebDriverTest
16+
{
17+
@Override
18+
protected void doCleanup(boolean afterTest) throws TestTimeoutException
19+
{
20+
_containerHelper.deleteProject(getProjectName(), afterTest);
21+
}
22+
23+
@BeforeClass
24+
public static void setupProject()
25+
{
26+
StudiesTest init = (StudiesTest)getCurrentTest();
27+
28+
init.doSetup();
29+
}
30+
31+
private void doSetup()
32+
{
33+
_containerHelper.createProject(getProjectName(), null);
34+
}
35+
36+
@Before
37+
public void preTest()
38+
{
39+
goToProjectHome();
40+
}
41+
42+
@Test
43+
public void testStudiesModule()
44+
{
45+
_containerHelper.enableModule("Studies");
46+
47+
}
48+
49+
@Override
50+
protected BrowserType bestBrowser()
51+
{
52+
return BrowserType.CHROME;
53+
}
54+
55+
@Override
56+
protected String getProjectName()
57+
{
58+
return "StudiesTest Project";
59+
}
60+
61+
@Override
62+
public List<String> getAssociatedModules()
63+
{
64+
return Collections.singletonList("Studies");
65+
}
66+
}

0 commit comments

Comments
 (0)