Skip to content

Commit 55cbba1

Browse files
authored
Merge pull request #232 from domaframework/fix/sqlfile-duplication
Fix SQL file duplication in code generation
2 parents afb6cf9 + 7cda84c commit 55cbba1

File tree

1 file changed

+41
-39
lines changed

1 file changed

+41
-39
lines changed

codegen/src/main/java/org/seasar/doma/gradle/codegen/extension/CodeGenConfig.java

Lines changed: 41 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.Set;
1313
import javax.inject.Inject;
1414
import javax.sql.DataSource;
15+
1516
import org.gradle.api.Action;
1617
import org.gradle.api.Project;
1718
import org.gradle.api.artifacts.Configuration;
@@ -152,19 +153,19 @@ private void applyDefaults(Project project) {
152153

153154
private Provider<DataSource> dataSourceProvider() {
154155
return url.map(
155-
it -> {
156-
String driverClassName = JdbcUtil.inferDriverClassName(it);
157-
if (driverClassName == null) {
158-
throw new CodeGenException(Message.DOMAGEN0024);
159-
}
160-
ClassLoader classLoader = createClassLoader();
161-
Driver driver =
162-
ClassUtil.newInstance(Driver.class, driverClassName, "driverClassName", classLoader);
163-
DriverWrapper driverWrapper = new DriverWrapper(driver);
164-
return globalFactory
165-
.get()
166-
.createDataSource(driverWrapper, user.getOrNull(), password.getOrNull(), url.get());
167-
});
156+
it -> {
157+
String driverClassName = JdbcUtil.inferDriverClassName(it);
158+
if (driverClassName == null) {
159+
throw new CodeGenException(Message.DOMAGEN0024);
160+
}
161+
ClassLoader classLoader = createClassLoader();
162+
Driver driver =
163+
ClassUtil.newInstance(Driver.class, driverClassName, "driverClassName", classLoader);
164+
DriverWrapper driverWrapper = new DriverWrapper(driver);
165+
return globalFactory
166+
.get()
167+
.createDataSource(driverWrapper, user.getOrNull(), password.getOrNull(), url.get());
168+
});
168169
}
169170

170171
protected ClassLoader createClassLoader() {
@@ -186,17 +187,17 @@ protected ClassLoader createClassLoader() {
186187

187188
private Provider<CodeGenDialect> codeGenDialectProvider() {
188189
return url.map(
189-
it -> {
190-
String dialectName = JdbcUtil.inferDialectName(it);
191-
if (dialectName == null) {
192-
throw new CodeGenException(Message.DOMAGEN0025);
193-
}
194-
CodeGenDialect codeGenDialect = CodeGenDialectRegistry.lookup(dialectName);
195-
if (codeGenDialect == null) {
196-
throw new CodeGenException(Message.DOMAGEN0023, dialectName);
197-
}
198-
return codeGenDialect;
199-
});
190+
it -> {
191+
String dialectName = JdbcUtil.inferDialectName(it);
192+
if (dialectName == null) {
193+
throw new CodeGenException(Message.DOMAGEN0025);
194+
}
195+
CodeGenDialect codeGenDialect = CodeGenDialectRegistry.lookup(dialectName);
196+
if (codeGenDialect == null) {
197+
throw new CodeGenException(Message.DOMAGEN0023, dialectName);
198+
}
199+
return codeGenDialect;
200+
});
200201
}
201202

202203
private Provider<LanguageClassResolver> languageClassResolverProvider() {
@@ -205,29 +206,30 @@ private Provider<LanguageClassResolver> languageClassResolverProvider() {
205206

206207
private Provider<Directory> sourceDirProvider(Project project) {
207208
return languageType.map(
208-
it -> project.getLayout().getProjectDirectory().dir("src/main/" + it.name().toLowerCase()));
209+
it -> project.getLayout().getProjectDirectory().dir("src/main/" + it.name().toLowerCase()));
209210
}
210211

211212
private Provider<Directory> testSourceDirProvider(Project project) {
212213
return languageType.map(
213-
it -> project.getLayout().getProjectDirectory().dir("src/test/" + it.name().toLowerCase()));
214+
it -> project.getLayout().getProjectDirectory().dir("src/test/" + it.name().toLowerCase()));
214215
}
215216

216217
private Provider<Generator> generatorProvider() {
217218
return globalFactory.map(
218-
it ->
219-
it.createGenerator(
220-
languageType.get(), templateEncoding.get(), templateDir.getAsFile().getOrNull()));
219+
it ->
220+
it.createGenerator(
221+
languageType.get(), templateEncoding.get(), templateDir.getAsFile().getOrNull()));
221222
}
222223

223224
private Provider<FileTree> sqlFilesProvider() {
224225
return resourceDir.map(
225-
it ->
226-
it.getAsFileTree()
227-
.matching(
228-
filterConfig -> {
229-
filterConfig.include("META-INF/**/*.sql");
230-
}));
226+
it -> {
227+
String packageName = daoConfig.getPackageName().get();
228+
String path = packageName.replace('.', '/');
229+
return it.getAsFileTree()
230+
.matching(
231+
filterConfig -> filterConfig.include("META-INF/" + path + "/*/*.sql"));
232+
});
231233
}
232234

233235
private void validateProperties(Project project) {
@@ -236,13 +238,13 @@ private void validateProperties(Project project) {
236238
}
237239
if (!dataSource.isPresent()) {
238240
throw new CodeGenException(
239-
Message.DOMAGEN0007, "dataSource", "Specify the \"url\" or the \"dataSource\" property.");
241+
Message.DOMAGEN0007, "dataSource", "Specify the \"url\" or the \"dataSource\" property.");
240242
}
241243
if (!codeGenDialect.isPresent()) {
242244
throw new CodeGenException(
243-
Message.DOMAGEN0007,
244-
"codeGenDialect",
245-
"Specify the \"url\" or the \"codeGenDialect\" property.");
245+
Message.DOMAGEN0007,
246+
"codeGenDialect",
247+
"Specify the \"url\" or the \"codeGenDialect\" property.");
246248
}
247249
if (!tableNamePattern.isPresent()) {
248250
throw new CodeGenException(Message.DOMAGEN0007, "tableNamePattern", "");

0 commit comments

Comments
 (0)