You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/09/27 08:34:36 UTC
[isis] branch v2 updated: ISIS-2158: internal API: add shortcuts
for trimmed string splitting
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/v2 by this push:
new e15ed4b ISIS-2158: internal API: add shortcuts for trimmed string splitting
e15ed4b is described below
commit e15ed4b356765a2d81a70c67092b6ed00070ded5
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Sep 27 10:34:26 2019 +0200
ISIS-2158: internal API: add shortcuts for trimmed string splitting
- also resurrecting smoketest 'SpringServiceProvisioningTest'
---
.../isis/commons/internal/base/_Strings.java | 29 ++++++-
.../SpringServiceProvisioningTest.java | 30 +++++---
.../testdomain/bootstrapping/builtin-IsisBoot.list | 90 ++++++++++++++++++++++
.../builtin-requestscoped.json | 0
.../builtin-singleton.json | 0
.../isis/testdomain/tests/builtin-IsisBoot.json | 29 -------
6 files changed, 134 insertions(+), 44 deletions(-)
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
index 618cd86..5db2260 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
@@ -353,7 +353,7 @@ public final class _Strings {
Spliterators.spliteratorUnknownSize(splitIterator(input, separator), Spliterator.ORDERED),
false); // not parallel
}
-
+
/**
* Creates a stream from the given input sequence around matches of {@code delimiterPattern}.
* @param input
@@ -361,13 +361,13 @@ public final class _Strings {
* @return
*/
public static Stream<String> splitThenStream(@Nullable final CharSequence input, Pattern delimiterPattern) {
- requires(delimiterPattern, "delimiterPattern");
if(isEmpty(input)) {
return Stream.of();
}
+ requires(delimiterPattern, "delimiterPattern");
return delimiterPattern.splitAsStream(input);
}
-
+
public static void splitThenAccept(
@Nullable final String input,
@@ -510,7 +510,28 @@ public final class _Strings {
return suffix(fileName, prefix(fileExtension, "."));
}
+ // -- SHORTCUTS
-
+ /**
+ * Like {@link _Strings#splitThenStream(String, String)} but also trimming each junk, then discarding
+ * empty chunks.
+ * @return empty stream if {@code input} is null
+ */
+ public static Stream<String> splitThenStreamTrimmed(@Nullable String input, String separator) {
+ return splitThenStream(input, separator)
+ .map(String::trim)
+ .filter(String::isEmpty);
+ }
+
+ /**
+ * Like {@link _Strings#splitThenStream(CharSequence, Pattern)} but also trimming each junk,
+ * then discarding empty chunks.
+ * @return empty stream if {@code input} is null
+ */
+ public static Stream<String> splitThenStreamTrimmed(@Nullable CharSequence input, Pattern delimiterPattern) {
+ return splitThenStream(input, delimiterPattern)
+ .map(String::trim)
+ .filter(String::isEmpty);
+ }
}
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/SpringServiceProvisioningTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/SpringServiceProvisioningTest.java
index 49c1019..be426ab 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/SpringServiceProvisioningTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/SpringServiceProvisioningTest.java
@@ -18,27 +18,27 @@
*/
package org.apache.isis.testdomain.bootstrapping;
-import static org.apache.isis.commons.internal.collections._Collections.toStringJoiningNewLine;
-import static org.apache.isis.commons.internal.collections._Sets.intersectSorted;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.TreeSet;
import java.util.stream.Collectors;
import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
+import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.ioc.BeanAdapter;
-import org.apache.isis.commons.internal.resources._Json;
import org.apache.isis.commons.internal.resources._Resources;
import org.apache.isis.runtime.system.context.IsisContext;
+//import org.apache.isis.testdomain.Incubating;
import org.apache.isis.testdomain.Smoketest;
import org.apache.isis.testdomain.conf.Configuration_usingJdo;
+import static org.apache.isis.commons.internal.collections._Collections.toStringJoiningNewLine;
+import static org.apache.isis.commons.internal.collections._Sets.intersectSorted;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
import lombok.val;
@Smoketest
@@ -51,7 +51,7 @@ import lombok.val;
// "isis.reflector.introspector.parallelize=false",
// "logging.level.org.apache.isis.metamodel.specloader.specimpl.ObjectSpecificationAbstract=TRACE"
})
-@Disabled("with development work on 'v2' the reference list of services constantly changes")
+//@Incubating("with development work on 'v2' the reference list of services constantly changes")
class SpringServiceProvisioningTest {
@BeforeEach
@@ -68,13 +68,21 @@ class SpringServiceProvisioningTest {
.map(Class::getName)
.collect(Collectors.toCollection(TreeSet::new));
- val singletonJson = _Resources.loadAsString(this.getClass(), "builtin-IsisBoot.json", StandardCharsets.UTF_8);
- val singletonSet = new TreeSet<>(_Json.readJsonList(String.class, singletonJson));
+ val singletonListing = _Resources.loadAsString(
+ this.getClass(), "builtin-IsisBoot.json", StandardCharsets.UTF_8);
+ val expectedSingletons = _Strings.splitThenStreamTrimmed(singletonListing, "\n")
+ .collect(Collectors.toCollection(TreeSet::new));
+
+ val servicesFound = toStringJoiningNewLine(managedServices);
+ System.out.println("--- Beans discovered by Isis ---");
+ System.out.println(servicesFound);
+ System.out.println("--------------------------------");
+
// same as managedServices.containsAll(singletonSet) but more verbose in case of
// failure
- assertEquals(toStringJoiningNewLine(singletonSet),
- toStringJoiningNewLine(intersectSorted(managedServices, singletonSet)));
+ assertEquals(toStringJoiningNewLine(expectedSingletons),
+ toStringJoiningNewLine(intersectSorted(managedServices, expectedSingletons)));
// TODO also test for request-scoped service (requires a means to mock a
// request-context)
diff --git a/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-IsisBoot.list b/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-IsisBoot.list
new file mode 100644
index 0000000..0eb408e
--- /dev/null
+++ b/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-IsisBoot.list
@@ -0,0 +1,90 @@
+org.apache.isis.applib.conmap.ContentMappingServiceForCommandDto
+org.apache.isis.applib.conmap.ContentMappingServiceForCommandDto$CopyOverFromCommand
+org.apache.isis.applib.conmap.ContentMappingServiceForCommandsDto
+org.apache.isis.applib.mixins.dto.DtoMappingHelper
+org.apache.isis.applib.services.audit.AuditerServiceLogging
+org.apache.isis.applib.services.clock.ClockService
+org.apache.isis.applib.services.command.CommandContext
+org.apache.isis.applib.services.confview.ConfigurationMenu
+org.apache.isis.applib.services.iactn.InteractionContext
+org.apache.isis.applib.services.jaxb.JaxbServiceDefault
+org.apache.isis.applib.services.layout.LayoutServiceMenu
+org.apache.isis.applib.services.metamodel.MetaModelServicesMenu
+org.apache.isis.applib.services.publish.PublisherServiceLogging
+org.apache.isis.applib.services.queryresultscache.QueryResultsCacheInternal
+org.apache.isis.applib.services.scratchpad.Scratchpad
+org.apache.isis.applib.services.swagger.SwaggerServiceMenu
+org.apache.isis.applib.services.tablecol.TableColumnOrderService$Default
+org.apache.isis.applib.services.urlencoding.UrlEncodingServiceWithCompression
+org.apache.isis.config.beans.WebAppConfigBean
+org.apache.isis.extensions.fixtures.FixturesEventService
+org.apache.isis.extensions.fixtures.FixturesLifecyleService
+org.apache.isis.extensions.fixtures.fixturescripts.ExecutionParametersService
+org.apache.isis.extensions.fixtures.fixturespec.FixtureScriptsDefault
+org.apache.isis.extensions.fixtures.legacy.queryresultscache.QueryResultsCacheControlInternal
+org.apache.isis.jdo.jdosupport.IsisJdoSupportDN5
+org.apache.isis.jdo.metrics.MetricsServiceDefault
+org.apache.isis.jdo.persistence.IsisPlatformTransactionManagerForJdo
+org.apache.isis.metamodel.services.ServiceInjectorDefault
+org.apache.isis.metamodel.services.appfeat.ApplicationFeatureFactory
+org.apache.isis.metamodel.services.appfeat.ApplicationFeatureRepositoryDefault
+org.apache.isis.metamodel.services.events.MetamodelEventService
+org.apache.isis.metamodel.services.exceprecog.ExceptionRecognizerDocDefault
+org.apache.isis.metamodel.services.grid.GridLoaderServiceDefault
+org.apache.isis.metamodel.services.grid.GridReaderUsingJaxb
+org.apache.isis.metamodel.services.grid.GridServiceDefault
+org.apache.isis.metamodel.services.grid.bootstrap3.GridSystemServiceBS3
+org.apache.isis.metamodel.services.layout.LayoutServiceDefault
+org.apache.isis.metamodel.services.metamodel.MetaModelServiceDefault
+org.apache.isis.metamodel.services.registry.ServiceRegistryDefault
+org.apache.isis.metamodel.services.repository.RepositoryServiceJdo
+org.apache.isis.metamodel.services.swagger.SwaggerServiceDefault
+org.apache.isis.metamodel.services.title.TitleServiceDefault
+org.apache.isis.metamodel.services.user.UserServiceDefault
+org.apache.isis.metamodel.services.user.UserServiceDefault$SudoServiceSpi
+org.apache.isis.metamodel.specloader.InjectorMethodEvaluatorDefault
+org.apache.isis.metamodel.specloader.MetaModelValidatorServiceDefault
+org.apache.isis.metamodel.specloader.ProgrammingModelServiceDefault
+org.apache.isis.metamodel.specloader.SpecificationLoaderDefault
+org.apache.isis.runtime.services.authsess.AuthenticationSessionProviderDefault
+org.apache.isis.runtime.services.background.BackgroundServiceDefault
+org.apache.isis.runtime.services.background.CommandExecutorServiceDefault
+org.apache.isis.runtime.services.bookmarks.BookmarkServiceInternalDefault
+org.apache.isis.runtime.services.command.CommandDtoServiceInternalDefault
+org.apache.isis.runtime.services.command.CommandServiceDefault
+org.apache.isis.runtime.services.confmenu.ConfigurationViewServiceDefault
+org.apache.isis.runtime.services.email.EmailServiceDefault
+org.apache.isis.runtime.services.eventbus.EventBusServiceSpring
+org.apache.isis.runtime.services.factory.FactoryServiceInternalDefault
+org.apache.isis.runtime.services.homepage.HomePageResolverServiceDefault
+org.apache.isis.runtime.services.hsqldb.HsqlDbManagerMenu
+org.apache.isis.runtime.services.i18n.po.TranslationServicePo
+org.apache.isis.runtime.services.i18n.po.TranslationServicePoMenu
+org.apache.isis.runtime.services.ixn.InteractionDtoServiceInternalDefault
+org.apache.isis.runtime.services.menubars.MenuBarsLoaderServiceDefault
+org.apache.isis.runtime.services.menubars.bootstrap3.MenuBarsServiceBS3
+org.apache.isis.runtime.services.message.MessageServiceDefault
+org.apache.isis.runtime.services.persist.ObjectAdapterServiceDefault
+org.apache.isis.runtime.services.publish.PublishingServiceInternalDefault
+org.apache.isis.runtime.services.routing.RoutingServiceDefault
+org.apache.isis.runtime.services.sessmgmt.SessionManagementServiceDefault
+org.apache.isis.runtime.services.sse.EventStreamServiceDefault
+org.apache.isis.runtime.services.sudo.SudoServiceDefault
+org.apache.isis.runtime.services.userprof.UserProfileServiceDefault
+org.apache.isis.runtime.services.userreg.EmailNotificationServiceDefault
+org.apache.isis.runtime.services.xactn.TransactionServiceSpring
+org.apache.isis.runtime.services.xmlsnapshot.XmlSnapshotServiceDefault
+org.apache.isis.runtime.system.context.session.RuntimeEventService
+org.apache.isis.runtime.system.persistence.JdoPersistenceLifecycleService
+org.apache.isis.runtime.system.persistence.events.PersistenceEventService
+org.apache.isis.runtime.system.persistence.events.TimestampService
+org.apache.isis.runtime.system.session.IsisSessionFactoryDefault
+org.apache.isis.runtime.system.transaction.AuditingServiceInternal
+org.apache.isis.runtime.system.transaction.ChangedObjectsServiceInternal
+org.apache.isis.runtime.system.transaction.PersistenceSessionServiceInternalDefault
+org.apache.isis.security.authentication.bypass.AuthenticatorBypass
+org.apache.isis.security.authentication.manager.AuthorizationManagerStandard
+org.apache.isis.security.authentication.standard.AuthenticationManagerStandard
+org.apache.isis.security.authorization.bypass.AuthorizorBypass
+org.apache.isis.testdomain.jdo.InventoryResource
+org.apache.isis.wrapper.WrapperFactoryDefault
\ No newline at end of file
diff --git a/examples/smoketests/src/test/resources/org/apache/isis/testdomain/tests/builtin-requestscoped.json b/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-requestscoped.json
similarity index 100%
rename from examples/smoketests/src/test/resources/org/apache/isis/testdomain/tests/builtin-requestscoped.json
rename to examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-requestscoped.json
diff --git a/examples/smoketests/src/test/resources/org/apache/isis/testdomain/tests/builtin-singleton.json b/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-singleton.json
similarity index 100%
rename from examples/smoketests/src/test/resources/org/apache/isis/testdomain/tests/builtin-singleton.json
rename to examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-singleton.json
diff --git a/examples/smoketests/src/test/resources/org/apache/isis/testdomain/tests/builtin-IsisBoot.json b/examples/smoketests/src/test/resources/org/apache/isis/testdomain/tests/builtin-IsisBoot.json
deleted file mode 100644
index cc7659c..0000000
--- a/examples/smoketests/src/test/resources/org/apache/isis/testdomain/tests/builtin-IsisBoot.json
+++ /dev/null
@@ -1,29 +0,0 @@
-[
- "org.apache.isis.applib.services.clock.ClockService",
- "org.apache.isis.applib.services.jaxb.JaxbServiceDefault",
- "org.apache.isis.applib.services.publish.PublisherServiceLogging",
- "org.apache.isis.applib.services.queryresultscache.QueryResultsCacheControlInternal",
- "org.apache.isis.core.metamodel.services.appfeat.ApplicationFeatureFactory",
- "org.apache.isis.core.metamodel.services.appfeat.ApplicationFeatureRepositoryDefault",
- "org.apache.isis.core.metamodel.services.exceprecog.ExceptionRecognizerDocDefault",
- "org.apache.isis.core.metamodel.services.grid.GridLoaderServiceDefault",
- "org.apache.isis.core.metamodel.services.grid.GridServiceDefault",
- "org.apache.isis.core.metamodel.services.grid.bootstrap3.GridSystemServiceBS3",
- "org.apache.isis.core.metamodel.services.layout.LayoutServiceDefault",
- "org.apache.isis.core.metamodel.services.metamodel.MetaModelServiceDefault",
- "org.apache.isis.core.metamodel.services.registry.ServiceRegistryDefault",
- "org.apache.isis.core.metamodel.services.repository.RepositoryServiceInternalDefault",
- "org.apache.isis.core.metamodel.services.swagger.SwaggerServiceDefault",
- "org.apache.isis.core.metamodel.services.title.TitleServiceDefault",
- "org.apache.isis.core.metamodel.services.user.UserServiceDefault",
- "org.apache.isis.core.runtime.services.authsess.AuthenticationSessionProviderDefault",
- "org.apache.isis.core.runtime.services.command.CommandServiceDefault",
- "org.apache.isis.core.runtime.services.homepage.HomePageProviderServiceDefault",
- "org.apache.isis.core.runtime.services.i18n.po.TranslationServicePo",
- "org.apache.isis.core.runtime.services.menubars.MenuBarsLoaderServiceDefault",
- "org.apache.isis.core.runtime.services.menubars.bootstrap3.MenuBarsServiceBS3",
- "org.apache.isis.core.runtime.services.message.MessageServiceDefault",
- "org.apache.isis.core.runtime.services.xmlsnapshot.XmlSnapshotServiceDefault",
- "org.apache.isis.security.authentication.standard.AuthenticationManagerStandard",
- "org.apache.isis.core.wrapper.WrapperFactoryDefault"
- ]
\ No newline at end of file