You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by sg...@apache.org on 2021/10/05 19:27:47 UTC
[freemarker-generator] 02/02: FREEMARKER-195 [freemarker-generator]
Change of package names and cleanup
This is an automated email from the ASF dual-hosted git repository.
sgoeschl pushed a commit to branch FREEMARKER-195
in repository https://gitbox.apache.org/repos/asf/freemarker-generator.git
commit d0f36bc6386da434037ed333d3a8ff26caed35cb
Author: Siegfried Goeschl <si...@gmail.com>
AuthorDate: Tue Oct 5 21:26:11 2021 +0200
FREEMARKER-195 [freemarker-generator] Change of package names and cleanup
---
.../freemarker/generator/base/datasource/DataSource.java | 9 +++++++--
.../freemarker/generator/base/datasource/DataSources.java | 2 +-
.../freemarker/generator/datasource/DataSourcesTest.java | 10 +++++++++-
.../src/app/examples/templates/datasources.ftl | 1 +
.../freemarker/generator/cli/config/ConfigurationSupplier.java | 2 +-
.../generator/cli/{model => wrapper}/DataSourcesAdapter.java | 6 +++---
.../{model => wrapper}/FreeMarkerGeneratorObjectWrapper.java | 2 +-
7 files changed, 23 insertions(+), 9 deletions(-)
diff --git a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSource.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSource.java
index 779e955..de2b295 100644
--- a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSource.java
+++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSource.java
@@ -410,7 +410,8 @@ public class DataSource implements Closeable, javax.activation.DataSource {
}
/**
- * Matches a metadata key with a wildcard expression.
+ * Matches a metadata key with a wildcard expression. If the wildcard is prefixed
+ * with a "!" than the match will be negated.
*
* @param key metadata key, e.g. "name", "fileName", "baseName", "extension", "uri", "group"
* @param wildcard the wildcard string to match against
@@ -419,7 +420,11 @@ public class DataSource implements Closeable, javax.activation.DataSource {
*/
public boolean match(String key, String wildcard) {
final String value = getMetadata(key);
- return FilenameUtils.wildcardMatch(value, wildcard);
+ if (wildcard != null && wildcard.startsWith("!")) {
+ return !FilenameUtils.wildcardMatch(value, wildcard.substring(1));
+ } else {
+ return FilenameUtils.wildcardMatch(value, wildcard);
+ }
}
/**
diff --git a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSources.java b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSources.java
index 129b996..77b8a4a 100644
--- a/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSources.java
+++ b/freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/datasource/DataSources.java
@@ -160,7 +160,7 @@ public class DataSources implements Closeable {
}
/**
- * Find data sources based on their name using a wildcard string..
+ * Find data sources based on their name using a wildcard string.
*
* @param wildcard the wildcard string to match against
* @return list of matching data sources
diff --git a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesTest.java b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesTest.java
index 8ba7905..cbc2315 100644
--- a/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesTest.java
+++ b/freemarker-generator-base/src/test/java/org/apache/freemarker/generator/datasource/DataSourcesTest.java
@@ -60,13 +60,17 @@ public class DataSourcesTest {
assertEquals(1, dataSources.find("*o*.xml").size());
assertEquals(3, dataSources.find("*").size());
+
+ assertEquals(2, dataSources.find("!pom.xml").size());
+ assertEquals(3, dataSources.find("!").size());
+ assertEquals(0, dataSources.find("!*").size());
+ assertEquals(1, dataSources.find("!*.*").size());
}
}
@Test
public void shouldFindByGroupPart() {
try (DataSources dataSources = dataSources()) {
-
assertEquals(0, dataSources.find(GROUP_PART, null).size());
assertEquals(0, dataSources.find(GROUP_PART, "").size());
@@ -76,6 +80,10 @@ public class DataSourcesTest {
assertEquals(3, dataSources.find(GROUP_PART, "default").size());
assertEquals(3, dataSources.find(GROUP_PART, "d*").size());
assertEquals(3, dataSources.find(GROUP_PART, "d??????").size());
+
+ assertEquals(0, dataSources.find(GROUP_PART, "!*").size());
+ assertEquals(3, dataSources.find(GROUP_PART, "!unknown").size());
+ assertEquals(0, dataSources.find(GROUP_PART, "!default").size());
}
}
diff --git a/freemarker-generator-cli/src/app/examples/templates/datasources.ftl b/freemarker-generator-cli/src/app/examples/templates/datasources.ftl
index 2b0a8f8..c1b1566 100644
--- a/freemarker-generator-cli/src/app/examples/templates/datasources.ftl
+++ b/freemarker-generator-cli/src/app/examples/templates/datasources.ftl
@@ -84,6 +84,7 @@ DataSources.getGroups(): ${dataSources?api.getGroups()?size}
DataSources.find("*"): ${dataSources?api.find("*")?size}
DataSources.find("uri", "*.md"): ${dataSources?api.find("uri", "*.md")?size}
DataSources.find("extension", "md"): ${dataSources?api.find("extension", "md")?size}
+DataSources.find("name", "!readme"): ${dataSources?api.find("name", "!readme")?size}
<#if dataSources?has_content>
<#list dataSources as dataSource>
diff --git a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/ConfigurationSupplier.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/ConfigurationSupplier.java
index 63f21c0..a54f98d 100644
--- a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/ConfigurationSupplier.java
+++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/config/ConfigurationSupplier.java
@@ -20,7 +20,7 @@ import freemarker.cache.TemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Version;
import org.apache.freemarker.generator.base.util.PropertiesTransformer;
-import org.apache.freemarker.generator.cli.model.FreeMarkerGeneratorObjectWrapper;
+import org.apache.freemarker.generator.cli.wrapper.FreeMarkerGeneratorObjectWrapper;
import java.util.Properties;
import java.util.function.Supplier;
diff --git a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/DataSourcesAdapter.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/wrapper/DataSourcesAdapter.java
similarity index 96%
rename from freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/DataSourcesAdapter.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/wrapper/DataSourcesAdapter.java
index 3f49654..de25ed4 100644
--- a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/DataSourcesAdapter.java
+++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/wrapper/DataSourcesAdapter.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.freemarker.generator.cli.model;
+package org.apache.freemarker.generator.cli.wrapper;
import freemarker.ext.util.WrapperTemplateModel;
import freemarker.template.AdapterTemplateModel;
@@ -41,8 +41,8 @@ import static java.util.Objects.requireNonNull;
* API can be accessed using FreeMarkers "?api" built-in.
*/
public class DataSourcesAdapter extends WrappingTemplateModel
- implements TemplateHashModelEx2, AdapterTemplateModel, WrapperTemplateModel, TemplateModelWithAPISupport, TemplateSequenceModel,
- Serializable {
+ implements TemplateHashModelEx2, AdapterTemplateModel, WrapperTemplateModel, TemplateModelWithAPISupport,
+ TemplateSequenceModel, Serializable {
/** Wrapped instance */
private final DataSources dataSources;
diff --git a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/FreeMarkerGeneratorObjectWrapper.java b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/wrapper/FreeMarkerGeneratorObjectWrapper.java
similarity index 96%
rename from freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/FreeMarkerGeneratorObjectWrapper.java
rename to freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/wrapper/FreeMarkerGeneratorObjectWrapper.java
index 08027ce..102a84e 100644
--- a/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/model/FreeMarkerGeneratorObjectWrapper.java
+++ b/freemarker-generator-cli/src/main/java/org/apache/freemarker/generator/cli/wrapper/FreeMarkerGeneratorObjectWrapper.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.freemarker.generator.cli.model;
+package org.apache.freemarker.generator.cli.wrapper;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.TemplateModel;