From a1aa4e1748ee2609e6790a2af4f0a89a97cbf351 Mon Sep 17 00:00:00 2001 From: Tom Page Date: Mon, 11 May 2020 08:44:44 +0100 Subject: [PATCH 01/65] SEARCH-2247 Remove all unused and commented code from AbstractAuthorityQueryWeight. Use this tidying as an oportunity to test the community mirroring. --- .../query/AbstractAuthorityQueryWeight.java | 26 ++++--------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthorityQueryWeight.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthorityQueryWeight.java index fb3941772..853a41dfe 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthorityQueryWeight.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthorityQueryWeight.java @@ -24,12 +24,9 @@ import org.apache.lucene.index.IndexReaderContext; import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.index.Term; import org.apache.lucene.index.TermContext; -import org.apache.lucene.search.CollectionStatistics; import org.apache.lucene.search.Explanation; import org.apache.lucene.search.Query; -import org.apache.lucene.search.TermStatistics; import org.apache.lucene.search.Weight; -import org.apache.lucene.search.similarities.TFIDFSimilarity; import org.apache.solr.search.SolrIndexSearcher; /** @@ -41,37 +38,29 @@ public abstract class AbstractAuthorityQueryWeight extends Weight { protected Query query; protected SolrIndexSearcher searcher; - protected TFIDFSimilarity similarity; protected float value; - protected float idf; - protected float queryNorm; - protected float queryWeight; - protected Explanation idfExp; protected boolean needsScores; public AbstractAuthorityQueryWeight(SolrIndexSearcher searcher, boolean needsScores, Query query, String authTermName, String authTermText) throws IOException { super(query); this.searcher = searcher; - //this.similarity = (TFIDFSimilarity) searcher.getSimilarity(true); - CollectionStatistics collectionStats = searcher.collectionStatistics(authTermName); + searcher.collectionStatistics(authTermName); final IndexReaderContext context = searcher.getTopReaderContext(); final Term term = new Term(authTermName, authTermText); final TermContext termContext = TermContext.build(context, term); - TermStatistics termStats = searcher.termStatistics(term, termContext); - //idfExp = similarity.idfExplain(collectionStats, termStats); - //idf = idfExp.getValue(); + searcher.termStatistics(term, termContext); this.needsScores = needsScores; } @Override - public Explanation explain(LeafReaderContext context, int doc) throws IOException + public Explanation explain(LeafReaderContext context, int doc) { throw new UnsupportedOperationException(); } @Override - public float getValueForNormalization() throws IOException + public float getValueForNormalization() { return sumOfSquaredWeights(); } @@ -79,15 +68,10 @@ public abstract class AbstractAuthorityQueryWeight extends Weight @Override public void normalize(float queryNorm, float topLevelBoost) { - //this.queryNorm = queryNorm; - //queryWeight *= queryNorm; // normalize query weight - //value = queryWeight * idf; // idf for document } - protected float sumOfSquaredWeights() throws IOException + protected float sumOfSquaredWeights() { - //queryWeight = idf; // compute query weight - //return queryWeight * queryWeight; // square it return 0; } } From f73c5da1202e83443a73c711efb94b0bdc9d8fb3 Mon Sep 17 00:00:00 2001 From: Tom Page Date: Wed, 13 May 2020 09:39:29 +0100 Subject: [PATCH 02/65] Fix version of e2e pom. --- e2e-test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index c7ea6717b..731229414 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -4,7 +4,7 @@ org.alfresco alfresco-search-and-insight-parent - 1.5.0-SNAPSHOT + 2.0.0-SNAPSHOT search-analytics-e2e-test search-analytics-e2e-test From d9989913f18d775e1b82ac249c04ce821c9c9479 Mon Sep 17 00:00:00 2001 From: Keerat Date: Wed, 13 May 2020 11:50:05 +0100 Subject: [PATCH 03/65] SEARCH-2249 Adding plugin to parent pom and updating license property in search-services --- pom.xml | 36 ++++++++++++++++++++++++++++++++++++ search-services/pom.xml | 1 + 2 files changed, 37 insertions(+) diff --git a/pom.xml b/pom.xml index ad4614f72..18b2f7899 100644 --- a/pom.xml +++ b/pom.xml @@ -35,6 +35,7 @@ https://artifacts.alfresco.com/nexus/content/repositories/public/org/apache/solr/solr/solr-${solr.version}/solr-solr-${solr.version}.zip ${project.build.directory}/solr-${solr.version} + enterprise search-services @@ -70,6 +71,41 @@ alphabetical + + org.codehaus.mojo + license-maven-plugin + + false + Alfresco Software Limited + true + true + classpath://alfresco + ${licenseName} + + src + + + **/*.java + **/*.jsp + + + + + check-licenses + compile + + check-file-header + + + + + + org.alfresco + alfresco-license-headers + 1.0 + + + diff --git a/search-services/pom.xml b/search-services/pom.xml index 820b235ed..4d2570772 100644 --- a/search-services/pom.xml +++ b/search-services/pom.xml @@ -16,6 +16,7 @@ 1.7.30 3.2.13 + community alfresco-solrclient-lib From 77aa47b1d64f6a860db45c9588cd2260140a3f7a Mon Sep 17 00:00:00 2001 From: Keerat Date: Wed, 13 May 2020 13:27:13 +0100 Subject: [PATCH 04/65] SEARCH-2249 Adding all the license headers to the search services projects --- .../lucene/analysis/AnalysisException.java | 20 ++++++--- .../impl/lucene/analysis/MLAnalayser.java | 20 ++++++--- .../lucene/analysis/MLTokenDuplicator.java | 20 ++++++--- .../impl/lucene/analysis/PathAnalyzer.java | 20 ++++++--- .../impl/lucene/analysis/PathTokenFilter.java | 20 ++++++--- .../solr/AlfrescoAnalyzerWrapper.java | 20 ++++++--- .../AlfrescoCollatableMLTextFieldType.java | 20 ++++++--- .../solr/AlfrescoCollatableTextFieldType.java | 20 ++++++--- .../solr/AlfrescoCoreAdminHandler.java | 19 ++++++--- .../org/alfresco/solr/AlfrescoFieldType.java | 20 ++++++--- .../alfresco/solr/AlfrescoLockException.java | 20 ++++++--- ...lfrescoSolr4FunctionEvaluationContext.java | 20 ++++++--- .../alfresco/solr/AlfrescoSolrDataModel.java | 20 ++++++--- .../main/java/org/alfresco/solr/Cloud.java | 19 ++++++--- .../org/alfresco/solr/ContextAwareQuery.java | 20 ++++++--- .../org/alfresco/solr/DualPivotQuickSort.java | 20 ++++++--- .../org/alfresco/solr/HandlerOfResources.java | 21 ++++++---- .../alfresco/solr/HandlerReportHelper.java | 21 ++++++---- .../org/alfresco/solr/InformationServer.java | 20 ++++++--- .../alfresco/solr/SolrInformationServer.java | 20 ++++++--- .../alfresco/solr/SolrKeyResourceLoader.java | 20 ++++++--- .../alfresco/solr/StripLocaleStrField.java | 20 ++++++--- .../alfresco/solr/TrackerStateException.java | 20 ++++++--- .../solr/adapters/SolrOpenBitSetAdapter.java | 20 ++++++--- .../solr/adapters/SolrSimpleOrderedMap.java | 20 ++++++--- .../solr/cache/AuthorityCacheRegenerator.java | 20 ++++++--- .../alfresco/solr/cache/CacheConstants.java | 20 ++++++--- .../solr/cache/PathCacheRegenerator.java | 20 ++++++--- .../component/AsyncBuildSuggestComponent.java | 30 +++++++------- .../solr/component/ClearLocaleComponent.java | 20 ++++++--- .../solr/component/ConsistencyComponent.java | 5 ++- .../solr/component/FingerPrintComponent.java | 19 ++++++--- .../solr/component/QueryLoggingComponent.java | 20 ++++++--- .../RewriteFacetCountsComponent.java | 20 ++++++--- .../RewriteFacetParametersComponent.java | 20 ++++++--- .../component/RewriteFieldListComponent.java | 20 ++++++--- .../solr/component/SetLocaleComponent.java | 20 ++++++--- .../SetProcessedDeniesComponent.java | 20 ++++++--- .../solr/component/TempFileWarningLogger.java | 20 ++++++--- ...AlfrescoSpellCheckBackCompatComponent.java | 19 ++++++--- .../AlfrescoSpellCheckCollation.java | 19 ++++++--- .../AlfrescoSpellCheckCollator.java | 20 ++++++--- .../AlfrescoSpellCheckComponent.java | 25 +++++++++++ .../org/alfresco/solr/config/ConfigUtil.java | 20 ++++++--- .../org/alfresco/solr/data/GlobalReaders.java | 20 ++++++--- .../solr/lifecycle/SolrCoreLoadListener.java | 20 ++++++--- .../java/org/alfresco/solr/logging/Log.java | 20 ++++++--- .../AbsoluteStructuredFieldPosition.java | 20 ++++++--- .../solr/query/AbstractAuthorityQuery.java | 20 ++++++--- .../query/AbstractAuthorityQueryWeight.java | 20 ++++++--- .../solr/query/AbstractAuthoritySetQuery.java | 20 ++++++--- .../alfresco/solr/query/AbstractQParser.java | 20 ++++++--- .../solr/query/AbstractSolrCachingScorer.java | 20 ++++++--- .../AbstractStructuredFieldPosition.java | 20 ++++++--- .../solr/query/AlfrescoDefaultTextFields.java | 20 ++++++--- .../solr/query/AlfrescoFTSQParserPlugin.java | 20 ++++++--- .../query/AlfrescoLuceneQParserPlugin.java | 20 ++++++--- .../query/AlfrescoReRankQParserPlugin.java | 26 +++++++++++- .../solr/query/AllAccessCollector.java | 20 ++++++--- .../query/AnyStructuredFieldPosition.java | 20 ++++++--- .../org/alfresco/solr/query/BitsFilter.java | 19 ++++++--- .../solr/query/CachingTermPositions.java | 20 ++++++--- .../solr/query/CmisQParserPlugin.java | 20 ++++++--- .../ContentSizeGroupingAnalyticsQuery.java | 20 ++++++--- .../query/ContentSizeGroupingCollector.java | 20 ++++++--- .../ContentSizeGroupingQParserPlugin.java | 20 ++++++--- ...cendantAndSelfStructuredFieldPosition.java | 20 ++++++--- .../alfresco/solr/query/DocValuesCache.java | 19 ++++++--- .../solr/query/EmptyHybridBitSet.java | 20 +++++---- .../org/alfresco/solr/query/HybridBitSet.java | 19 ++++++--- .../Lucene4QueryBuilderContextSolrImpl.java | 20 ++++++--- .../solr/query/Lucene4QueryParserAdaptor.java | 20 ++++++--- .../query/MimetypeGroupingAnalyticsQuery.java | 20 ++++++--- .../solr/query/MimetypeGroupingCollector.java | 20 ++++++--- .../query/MimetypeGroupingQParserPlugin.java | 20 ++++++--- .../alfresco/solr/query/PostFilterQuery.java | 19 ++++++--- .../RelativeStructuredFieldPosition.java | 20 ++++++--- .../SelfAxisStructuredFieldPosition.java | 20 ++++++--- .../alfresco/solr/query/Solr4QueryParser.java | 20 ++++++--- .../solr/query/SolrAuthorityQuery.java | 20 ++++++--- .../solr/query/SolrAuthorityScorer.java | 20 ++++++--- .../solr/query/SolrAuthoritySetQuery.java | 20 ++++++--- .../solr/query/SolrAuthoritySetScorer.java | 20 ++++++--- .../solr/query/SolrCachingPathQuery.java | 20 ++++++--- .../solr/query/SolrCachingPathScorer.java | 20 ++++++--- .../solr/query/SolrCachingPathWeight.java | 20 ++++++--- .../solr/query/SolrContainerScorer.java | 20 ++++++--- .../alfresco/solr/query/SolrDeniedQuery.java | 20 ++++++--- .../alfresco/solr/query/SolrDeniedScorer.java | 20 ++++++--- .../alfresco/solr/query/SolrDenySetQuery.java | 20 ++++++--- .../solr/query/SolrDenySetScorer.java | 20 ++++++--- .../solr/query/SolrDenySetScorer2.java | 20 ++++++--- .../alfresco/solr/query/SolrOwnerQuery.java | 20 ++++++--- .../alfresco/solr/query/SolrOwnerScorer.java | 20 ++++++--- .../solr/query/SolrOwnerSetQuery.java | 20 ++++++--- .../solr/query/SolrOwnerSetScorer.java | 20 ++++++--- .../alfresco/solr/query/SolrPathQuery.java | 20 ++++++--- .../alfresco/solr/query/SolrPathScorer.java | 20 ++++++--- .../alfresco/solr/query/SolrReaderQuery.java | 20 ++++++--- .../alfresco/solr/query/SolrReaderScorer.java | 20 ++++++--- .../solr/query/SolrReaderSetQuery.java | 20 ++++++--- .../solr/query/SolrReaderSetScorer.java | 20 ++++++--- .../solr/query/SolrReaderSetScorer2.java | 20 ++++++--- .../alfresco/solr/query/SolrXPathHandler.java | 20 ++++++--- .../solr/query/StructuredFieldPosition.java | 20 ++++++--- .../solr/query/StructuredFieldTerm.java | 20 ++++++--- .../schema/highlight/CompositeReader.java | 20 ++++++--- .../LanguagePrefixedTextAnalyzer.java | 20 ++++++--- .../highlight/LanguagePrefixedTextField.java | 20 ++++++--- .../LanguagePrefixedTokenStream.java | 20 ++++++--- .../solr/schema/highlight/package-info.java | 20 ++++++--- .../solr/servlet/Solr4X509ServletFilter.java | 41 +++++++++++-------- .../alfresco/solr/tracker/ACLIDModRouter.java | 20 ++++++--- .../solr/tracker/ACLIDMurmurRouter.java | 20 ++++++--- .../solr/tracker/AbstractTracker.java | 20 ++++++--- .../alfresco/solr/tracker/AbstractWorker.java | 18 ++++++-- .../org/alfresco/solr/tracker/AclTracker.java | 20 ++++++--- .../alfresco/solr/tracker/CascadeTracker.java | 20 ++++++--- .../alfresco/solr/tracker/CommitTracker.java | 19 ++++++--- .../solr/tracker/ComposableDocRouter.java | 26 ++++++++++++ .../alfresco/solr/tracker/ContentTracker.java | 20 ++++++--- .../solr/tracker/CoreStatePublisher.java | 17 ++++---- .../solr/tracker/DBIDRangeRouter.java | 20 ++++++--- .../org/alfresco/solr/tracker/DBIDRouter.java | 20 ++++++--- .../solr/tracker/DateMonthRouter.java | 20 ++++++--- .../solr/tracker/DateQuarterRouter.java | 20 ++++++--- .../org/alfresco/solr/tracker/DocRouter.java | 20 ++++++--- .../solr/tracker/DocRouterFactory.java | 20 ++++++--- .../solr/tracker/DocRouterWithFallback.java | 26 ++++++++++++ ...licitShardIdWithDynamicPropertyRouter.java | 20 ++++++--- ...plicitShardIdWithStaticPropertyRouter.java | 20 ++++++--- .../solr/tracker/MetadataTracker.java | 20 ++++++--- .../alfresco/solr/tracker/ModelTracker.java | 20 ++++++--- .../alfresco/solr/tracker/PropertyRouter.java | 20 ++++++--- .../solr/tracker/SlaveCoreStatePublisher.java | 20 ++++++--- .../solr/tracker/SolrTrackerScheduler.java | 20 ++++++--- .../org/alfresco/solr/tracker/Tracker.java | 20 ++++++--- .../org/alfresco/solr/tracker/TrackerJob.java | 20 ++++++--- .../solr/tracker/TrackerRegistry.java | 20 ++++++--- .../pool/DefaultTrackerPoolFactory.java | 20 ++++++--- .../solr/tracker/pool/TrackerPoolFactory.java | 20 ++++++--- .../AlfrescoFieldMapperTransformer.java | 20 ++++++--- ...AlfrescoFieldMapperTransformerFactory.java | 20 ++++++--- .../transformer/DocValueDocTransformer.java | 20 ++++++--- .../DocValueDocTransformerFactory.java | 20 ++++++--- .../solr/utils/AlfrescoFileUtils.java | 20 ++++++--- .../alfresco/solr/utils/ThrowingConsumer.java | 19 ++++++--- .../alfresco/solr/utils/ThrowingFunction.java | 19 ++++++--- .../java/org/alfresco/solr/utils/Utils.java | 20 ++++++--- .../minhash/ContextAccumulatingFilter.java | 20 ++++++--- .../ContextAccumulatingFilterFactory.java | 20 ++++++--- .../solr/core/CoreDescriptorDecorator.java | 20 ++++++--- .../component/AlfrescoHttpShardHandler.java | 20 ++++++--- .../AlfrescoHttpShardHandlerFactory.java | 20 ++++++--- .../component/AlfrescoLukeRequestHandler.java | 20 ++++++--- .../component/AlfrescoQueryRequest.java | 36 +++++++--------- .../component/AlfrescoSearchHandler.java | 20 ++++++--- .../component/AlfrescoSolrHighlighter.java | 20 ++++++--- .../impl/lucene/analysis/MLAnalayserTest.java | 20 ++++++--- .../lucene/analysis/PathTokenFilterTest.java | 20 ++++++--- .../solr/AbstractAlfrescoDistributedIT.java | 26 ++++++++++++ .../alfresco/solr/AbstractAlfrescoSolrIT.java | 20 ++++++--- .../solr/AdminHandlerDistributedIT.java | 20 ++++++--- .../org/alfresco/solr/AdminHandlerIT.java | 26 ++++++++++++ ...AlfrescoCollatableMLTextFieldTypeTest.java | 20 ++++++--- .../AlfrescoCollatableTextFieldTypeTest.java | 20 ++++++--- .../solr/AlfrescoCoreAdminHandlerIT.java | 20 ++++++--- .../solr/AlfrescoJsonQueryRequest.java | 20 ++++++--- .../alfresco/solr/AlfrescoSolrConstants.java | 20 ++++++--- .../alfresco/solr/AlfrescoSolrReloadIT.java | 26 ++++++++++++ .../org/alfresco/solr/AlfrescoSolrUtils.java | 20 ++++++--- .../solr/AlfrescoTrackerRegistrationIT.java | 20 ++++++--- .../alfresco/solr/CMISDataCreatorTest.java | 20 ++++++--- .../solr/CoresCreateUpdateDistributedIT.java | 20 ++++++--- .../solr/CoresCreateViaPropertyIT.java | 20 ++++++--- .../alfresco/solr/DynamicCopyFieldsIT.java | 26 ++++++++++++ .../alfresco/solr/HandlerOfResourcesTest.java | 21 ++++++---- .../org/alfresco/solr/SolrDataModelTest.java | 20 ++++++--- .../org/alfresco/solr/SolrITInitializer.java | 26 ++++++++++++ .../solr/SolrInformationServerTest.java | 19 ++++++--- .../java/org/alfresco/solr/SolrTestFiles.java | 20 ++++++--- .../alfresco/solr/TemplatesDistributedIT.java | 20 ++++++--- .../alfresco/solr/basics/RandomSupplier.java | 26 ++++++++++++ .../solr/basics/SolrResponsesComparator.java | 26 ++++++++++++ .../RewriteFacetParametersComponentTest.java | 19 ++++++--- .../component/TempFileWarningLoggerTest.java | 20 ++++++--- .../alfresco/solr/config/ConfigUtilTest.java | 20 ++++++--- .../solr/dataload/TestDataProvider.java | 20 ++++++--- .../AlfrescoHighligherDistributedIT.java | 20 ++++++--- .../solr/highlight/AlfrescoHighlighterIT.java | 19 ++++++--- .../lifecycle/SolrCoreLoadListenerTest.java | 20 ++++++--- .../solr/query/AlfrescoLuceneQParserTest.java | 20 ++++++--- .../query/AlfrescoReRankQParserPluginIT.java | 19 ++++++--- .../solr/query/AlfrescoSolrFingerprintIT.java | 19 ++++++--- .../solr/query/AlfrescoSolrSortIT.java | 20 ++++++--- .../query/AlfrescoSolrSpellcheckerIT.java | 19 ++++++--- .../org/alfresco/solr/query/AuthDataLoad.java | 20 ++++++--- .../org/alfresco/solr/query/AuthQueryIT.java | 20 ++++++--- .../DistributedAlfrescoSolrFacetingIT.java | 20 ++++++--- .../DistributedAlfrescoSolrFingerPrintIT.java | 20 ++++++--- ...DistributedAlfrescoSolrSpellcheckerIT.java | 20 ++++++--- .../solr/query/Solr4QueryParserTest.java | 20 ++++++--- .../org/alfresco/solr/query/SolrAuthIT.java | 19 ++++++--- .../solr/query/UntokenisedFieldIT.java | 20 ++++++--- .../afts/qparser/AbstractQParserPluginIT.java | 20 ++++++--- .../afts/qparser/FieldNameEscapingIT.java | 20 ++++++--- .../query/afts/qparser/QParserPluginIT.java | 19 ++++++--- .../AFTSDefaultTextQueryIT.java | 20 ++++++--- .../requestHandler/AFTSDisjunctionIT.java | 20 ++++++--- .../AFTSIdentifierFieldsIT.java | 20 ++++++--- .../afts/requestHandler/AFTSRangeQueryIT.java | 20 ++++++--- .../requestHandler/AFTSRequestHandlerIT.java | 26 ++++++++++++ .../AbstractRequestHandlerIT.java | 26 ++++++++++++ .../solr/query/afts/requestHandler/MNTIT.java | 26 ++++++++++++ .../cmis/AlfrescoCMISQParserPluginIT.java | 19 ++++++--- .../org/alfresco/solr/query/cmis/CmisIT.java | 20 ++++++--- .../solr/query/cmis/LoadCMISData.java | 19 ++++++--- .../solr/query/cmis/SortCMISTest.java | 20 ++++++--- .../solr/query/cmis/TrieFieldsCMISTest.java | 20 ++++++--- .../schema/highlight/CompositeReaderTest.java | 20 ++++++--- .../LanguagePrefixedTokenStreamTest.java | 20 ++++++--- .../servlet/Solr4X509ServletFilterTest.java | 19 ++++++--- .../solr/tracker/ACLIDMurmurRouterTest.java | 20 ++++++--- .../solr/tracker/AclModCountRouterIT.java | 20 ++++++--- .../AlfrescoSolrTrackerExceptionIT.java | 20 ++++++--- .../solr/tracker/AlfrescoSolrTrackerIT.java | 20 ++++++--- .../AlfrescoSolrTrackerRollbackIT.java | 20 ++++++--- .../tracker/AlfrescoSolrTrackerStateIT.java | 19 ++++++--- .../alfresco/solr/tracker/CascadingIT.java | 20 ++++++--- .../ContentPropertyValueTrackerIT.java | 20 ++++++--- .../solr/tracker/ContentTrackerIT.java | 20 ++++++--- .../solr/tracker/DBIDRangeRouterTest.java | 20 ++++++--- .../alfresco/solr/tracker/DBIDRouterTest.java | 20 ++++++--- .../solr/tracker/DateMonthRouterIT.java | 20 ++++++--- ...DistributedAclIdAlfrescoSolrTrackerIT.java | 20 ++++++--- .../DistributedAlfrescoSolrJsonIT.java | 20 ++++++--- .../DistributedAlfrescoSolrTrackerIT.java | 20 ++++++--- ...ibutedAlfrescoSolrTrackerLargeTxnIdIT.java | 20 ++++++--- .../DistributedAlfrescoSolrTrackerRaceIT.java | 20 ++++++--- ...DistributedAlfrescoSolrTrackerStateIT.java | 20 ++++++--- .../tracker/DistributedCascadeTrackerIT.java | 20 ++++++--- .../DistributedDateAbstractSolrTrackerIT.java | 20 ++++++--- ...ributedDateMonthAlfrescoSolrTrackerIT.java | 20 ++++++--- ...butedDateQuarterAlfrescoSolrTrackerIT.java | 20 ++++++--- ...tedDateSplitYearAlfrescoSolrTrackerIT.java | 20 ++++++--- ...ributedDbidRangeAlfrescoSolrTrackerIT.java | 20 ++++++--- ...dExpandDbidRangeAlfrescoSolrTrackerIT.java | 20 ++++++--- ...icitShardIdWithStaticPropertyRouterIT.java | 20 ++++++--- ...tributedExplicitShardRoutingTrackerIT.java | 20 ++++++--- ...tedPropertyBasedAlfrescoSolrTrackerIT.java | 20 ++++++--- .../solr/tracker/DocRouterFactoryTest.java | 20 ++++++--- .../solr/tracker/ExplicitIDRouterIT.java | 20 ++++++--- .../tracker/ExplicitIDWithLRISRouterIT.java | 20 ++++++--- ...tShardIdWithDynamicPropertyRouterTest.java | 20 ++++++--- ...itShardIdWithStaticPropertyRouterTest.java | 20 ++++++--- .../solr/tracker/MetadataTrackerTest.java | 19 ++++++--- .../alfresco/solr/tracker/ModelTrackerIT.java | 20 ++++++--- .../solr/tracker/PropertyRouterIT.java | 20 ++++++--- .../tracker/SolrTrackerSchedulerTest.java | 20 ++++++--- .../alfresco/solr/tracker/TrackerJobTest.java | 20 ++++++--- .../solr/tracker/TrackerRegistryTest.java | 20 ++++++--- .../pool/DefaultTrackerPoolFactoryTest.java | 20 ++++++--- .../AlfrescoFieldMapperTransformerIT.java | 20 ++++++--- .../AlfrescoLukeRequestHandlerIT.java | 20 ++++++--- .../java/org/alfresco/solr/AclReport.java | 4 +- ...lfrescoClientDataModelServicesFactory.java | 5 ++- .../java/org/alfresco/solr/BoundedDeque.java | 4 +- .../solr/IndexTrackingShutdownException.java | 5 ++- .../InformationServerCollectionProvider.java | 5 ++- .../java/org/alfresco/solr/NodeReport.java | 5 ++- .../java/org/alfresco/solr/TrackerState.java | 4 +- .../alfresco/solr/adapters/IOpenBitSet.java | 4 +- .../solr/adapters/ISimpleOrderedMap.java | 5 ++- .../java/org/alfresco/solr/client/Acl.java | 5 ++- .../alfresco/solr/client/AclChangeSet.java | 5 ++- .../alfresco/solr/client/AclChangeSets.java | 5 ++- .../org/alfresco/solr/client/AclReaders.java | 5 ++- .../alfresco/solr/client/AlfrescoModel.java | 5 ++- .../solr/client/AlfrescoModelDiff.java | 5 ++- .../solr/client/ContentPropertyValue.java | 5 ++- .../solr/client/GetNodesParameters.java | 5 ++- .../solr/client/LookAheadBufferedReader.java | 20 ++++++--- .../solr/client/MLTextPropertyValue.java | 5 ++- .../solr/client/MultiPropertyValue.java | 5 ++- .../java/org/alfresco/solr/client/Node.java | 5 ++- .../alfresco/solr/client/NodeMetaData.java | 5 ++- .../solr/client/NodeMetaDataParameters.java | 5 ++- .../alfresco/solr/client/PropertyValue.java | 5 ++- .../alfresco/solr/client/SOLRAPIClient.java | 5 ++- .../solr/client/SOLRAPIClientFactory.java | 4 +- .../solr/client/SOLRAPIQueueClient.java | 4 +- .../java/org/alfresco/solr/client/Status.java | 5 ++- .../solr/client/StringPropertyValue.java | 5 ++- .../org/alfresco/solr/client/Transaction.java | 5 ++- .../alfresco/solr/client/Transactions.java | 5 ++- .../solr/tracker/IndexHealthReport.java | 5 ++- .../alfresco/solr/tracker/TrackerStats.java | 5 ++- .../org/alfresco/solr/BoundedDequeTest.java | 16 ++++---- .../alfresco/solr/client/AclReadersTest.java | 5 ++- .../client/LookAheadBufferedReaderTest.java | 17 ++++---- .../solr/client/SOLRAPIClientFactoryTest.java | 4 +- .../solr/client/SOLRAPIClientTest.java | 5 ++- .../org/alfresco/ThirdPartyLicensesIT.java | 20 ++++++--- 303 files changed, 3972 insertions(+), 1637 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/AnalysisException.java b/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/AnalysisException.java index f1eac4414..7aa414099 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/AnalysisException.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/AnalysisException.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2010 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.repo.search.impl.lucene.analysis; import org.alfresco.error.AlfrescoRuntimeException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/MLAnalayser.java b/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/MLAnalayser.java index 3d310b4c1..334d0c231 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/MLAnalayser.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/MLAnalayser.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2010 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.repo.search.impl.lucene.analysis; import java.io.BufferedReader; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/MLTokenDuplicator.java b/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/MLTokenDuplicator.java index 8af0ecdc1..ce476a1f4 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/MLTokenDuplicator.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/MLTokenDuplicator.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2010 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.repo.search.impl.lucene.analysis; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/PathAnalyzer.java b/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/PathAnalyzer.java index 15d100f95..b8d8dc4f3 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/PathAnalyzer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/PathAnalyzer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.repo.search.impl.lucene.analysis; import org.apache.lucene.analysis.Analyzer; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/PathTokenFilter.java b/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/PathTokenFilter.java index 808c9e0b0..79d8c1adb 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/PathTokenFilter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/repo/search/impl/lucene/analysis/PathTokenFilter.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2010 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.repo.search.impl.lucene.analysis; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoAnalyzerWrapper.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoAnalyzerWrapper.java index 8d9b17f88..0da879e34 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoAnalyzerWrapper.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoAnalyzerWrapper.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2013 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import org.alfresco.repo.search.MLAnalysisMode; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCollatableMLTextFieldType.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCollatableMLTextFieldType.java index 89d171642..8028cfd6a 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCollatableMLTextFieldType.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCollatableMLTextFieldType.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCollatableTextFieldType.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCollatableTextFieldType.java index 064fddce2..0bd6f84ab 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCollatableTextFieldType.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCollatableTextFieldType.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java index 2a5202f1a..846b364ca 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoFieldType.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoFieldType.java index 29009aab2..1f000e4a4 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoFieldType.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoFieldType.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoLockException.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoLockException.java index d6a5d3c89..a5a346e3f 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoLockException.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoLockException.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; /** diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolr4FunctionEvaluationContext.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolr4FunctionEvaluationContext.java index cec7e2062..8ab2990a0 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolr4FunctionEvaluationContext.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolr4FunctionEvaluationContext.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import org.alfresco.repo.search.impl.parsers.AlfrescoFunctionEvaluationContext; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java index b6c574b25..9a676addd 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import static java.util.Collections.unmodifiableList; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/Cloud.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/Cloud.java index 5aaa5fea6..27ddf4314 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/Cloud.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/Cloud.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/ContextAwareQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/ContextAwareQuery.java index 10d855062..acc700063 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/ContextAwareQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/ContextAwareQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2010 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/DualPivotQuickSort.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/DualPivotQuickSort.java index 5228808c8..bdf10ddfe 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/DualPivotQuickSort.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/DualPivotQuickSort.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2013 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import java.util.Comparator; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerOfResources.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerOfResources.java index 9d8052652..005c1d4c6 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerOfResources.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerOfResources.java @@ -1,24 +1,29 @@ /* - * Copyright (C) 2005 - 2016 Alfresco Software Limited - * - * This file is part of the Alfresco software. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is * provided under the following open source license terms: - * + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import java.io.File; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerReportHelper.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerReportHelper.java index 193bf8d24..a6738ba79 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerReportHelper.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerReportHelper.java @@ -1,24 +1,29 @@ /* - * Copyright (C) 2005 - 2016 Alfresco Software Limited - * - * This file is part of the Alfresco software. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is * provided under the following open source license terms: - * + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import org.alfresco.error.AlfrescoRuntimeException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/InformationServer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/InformationServer.java index 16072939e..c23d6ca2e 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/InformationServer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/InformationServer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java index bdec26555..165793132 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import static java.util.Arrays.asList; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrKeyResourceLoader.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrKeyResourceLoader.java index 7c93de6cb..47efdec19 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrKeyResourceLoader.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrKeyResourceLoader.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2010 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import java.io.FileNotFoundException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/StripLocaleStrField.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/StripLocaleStrField.java index 132425a4f..81c16652c 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/StripLocaleStrField.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/StripLocaleStrField.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import static java.util.Optional.ofNullable; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/TrackerStateException.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/TrackerStateException.java index 66ea14c36..1c9c39299 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/TrackerStateException.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/TrackerStateException.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2015 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import org.alfresco.error.AlfrescoRuntimeException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/adapters/SolrOpenBitSetAdapter.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/adapters/SolrOpenBitSetAdapter.java index 75d60d9ad..05bf759ac 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/adapters/SolrOpenBitSetAdapter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/adapters/SolrOpenBitSetAdapter.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.adapters; import org.apache.lucene.util.LongBitSet; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/adapters/SolrSimpleOrderedMap.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/adapters/SolrSimpleOrderedMap.java index 7a0e72707..c1901afb2 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/adapters/SolrSimpleOrderedMap.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/adapters/SolrSimpleOrderedMap.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.adapters; import org.apache.solr.common.util.SimpleOrderedMap; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/cache/AuthorityCacheRegenerator.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/cache/AuthorityCacheRegenerator.java index 0aba98ba7..624a64d08 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/cache/AuthorityCacheRegenerator.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/cache/AuthorityCacheRegenerator.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.cache; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/cache/CacheConstants.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/cache/CacheConstants.java index a16bde482..fcc882cbe 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/cache/CacheConstants.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/cache/CacheConstants.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.cache; /** diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/cache/PathCacheRegenerator.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/cache/PathCacheRegenerator.java index ad0577b59..795f00b1c 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/cache/PathCacheRegenerator.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/cache/PathCacheRegenerator.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.cache; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/AsyncBuildSuggestComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/AsyncBuildSuggestComponent.java index 184a2f161..64c556140 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/AsyncBuildSuggestComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/AsyncBuildSuggestComponent.java @@ -1,31 +1,31 @@ -package org.alfresco.solr.component; - /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . - * - * - * This file is based upon code copied from the Solr project and modified. - * The original code is licensed to the Apache Software Foundation. Please see: - * - * http://lucene.apache.org/solr/ - * http://www.apache.org/licenses/LICENSE-2.0 + * #L% */ +package org.alfresco.solr.component; + import java.io.File; import java.io.IOException; import java.lang.invoke.MethodHandles; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/ClearLocaleComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/ClearLocaleComponent.java index affc0189f..90d0cef67 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/ClearLocaleComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/ClearLocaleComponent.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.component; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/ConsistencyComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/ConsistencyComponent.java index ddeb3ddf2..575e8c90f 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/ConsistencyComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/ConsistencyComponent.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.component; import org.alfresco.solr.AlfrescoCoreAdminHandler; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/FingerPrintComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/FingerPrintComponent.java index 59f7db1e9..023e88d9e 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/FingerPrintComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/FingerPrintComponent.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.component; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/QueryLoggingComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/QueryLoggingComponent.java index 93ef9fa11..c6c049d3f 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/QueryLoggingComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/QueryLoggingComponent.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2013 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.component; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFacetCountsComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFacetCountsComponent.java index a85a910c8..15f0365ab 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFacetCountsComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFacetCountsComponent.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.component; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFacetParametersComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFacetParametersComponent.java index 9f80b7dcb..7e556b461 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFacetParametersComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFacetParametersComponent.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.component; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFieldListComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFieldListComponent.java index 22240edee..67ec4c616 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFieldListComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFieldListComponent.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.component; import org.alfresco.solr.AlfrescoSolrDataModel; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/SetLocaleComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/SetLocaleComponent.java index 0c6f40e52..672186e40 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/SetLocaleComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/SetLocaleComponent.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.component; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/SetProcessedDeniesComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/SetProcessedDeniesComponent.java index d5a8b6973..addba8b18 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/SetProcessedDeniesComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/SetProcessedDeniesComponent.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.component; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/TempFileWarningLogger.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/TempFileWarningLogger.java index 357e167a2..21a4a8cfa 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/TempFileWarningLogger.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/TempFileWarningLogger.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.component; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckBackCompatComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckBackCompatComponent.java index c62fc29a8..ba7531da1 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckBackCompatComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckBackCompatComponent.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.component.spellcheck; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckCollation.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckCollation.java index ebccdd792..eee5b97df 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckCollation.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckCollation.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.component.spellcheck; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckCollator.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckCollator.java index 59712bcfa..a6b277433 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckCollator.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckCollator.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.component.spellcheck; import java.util.ArrayList; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckComponent.java index bbfafa648..2bfe76ed2 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/spellcheck/AlfrescoSpellCheckComponent.java @@ -1,3 +1,28 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ package org.alfresco.solr.component.spellcheck; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/config/ConfigUtil.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/config/ConfigUtil.java index a02fd159a..08e8183aa 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/config/ConfigUtil.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/config/ConfigUtil.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.config; import org.slf4j.Logger; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/data/GlobalReaders.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/data/GlobalReaders.java index 53b0b55fe..bdf656a49 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/data/GlobalReaders.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/data/GlobalReaders.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.data; import java.util.HashSet; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/lifecycle/SolrCoreLoadListener.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/lifecycle/SolrCoreLoadListener.java index b4add4612..bd8225c57 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/lifecycle/SolrCoreLoadListener.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/lifecycle/SolrCoreLoadListener.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.lifecycle; import static java.util.Arrays.asList; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/logging/Log.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/logging/Log.java index 228c5caeb..d074ffefe 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/logging/Log.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/logging/Log.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2015 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.logging; import org.slf4j.Logger; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbsoluteStructuredFieldPosition.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbsoluteStructuredFieldPosition.java index 4c52f376f..e2e54b808 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbsoluteStructuredFieldPosition.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbsoluteStructuredFieldPosition.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthorityQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthorityQuery.java index 1a1bf8149..3b845ee12 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthorityQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthorityQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthorityQueryWeight.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthorityQueryWeight.java index 853a41dfe..3b46846e3 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthorityQueryWeight.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthorityQueryWeight.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthoritySetQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthoritySetQuery.java index 8cff300f2..9bf0c98ee 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthoritySetQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractAuthoritySetQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractQParser.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractQParser.java index 9d721ecc9..e3fd8b0b5 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractQParser.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractQParser.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2011 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.BufferedReader; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractSolrCachingScorer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractSolrCachingScorer.java index 6102afd1b..fa3704536 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractSolrCachingScorer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractSolrCachingScorer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2010 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractStructuredFieldPosition.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractStructuredFieldPosition.java index f6c65d77a..ce05a219a 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractStructuredFieldPosition.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AbstractStructuredFieldPosition.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; public abstract class AbstractStructuredFieldPosition implements StructuredFieldPosition diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoDefaultTextFields.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoDefaultTextFields.java index 5cb176bf7..914cedd86 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoDefaultTextFields.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoDefaultTextFields.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import org.alfresco.model.ContentModel; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoFTSQParserPlugin.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoFTSQParserPlugin.java index 45724f381..b8355fde2 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoFTSQParserPlugin.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoFTSQParserPlugin.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import org.alfresco.repo.search.impl.parsers.FTSQueryParser.RerankPhase; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoLuceneQParserPlugin.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoLuceneQParserPlugin.java index 3fb8a7dd2..513466758 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoLuceneQParserPlugin.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoLuceneQParserPlugin.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import org.alfresco.repo.search.impl.parsers.FTSQueryParser; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoReRankQParserPlugin.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoReRankQParserPlugin.java index 823d0f44d..aa45b708c 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoReRankQParserPlugin.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AlfrescoReRankQParserPlugin.java @@ -1,4 +1,28 @@ - +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ package org.alfresco.solr.query; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AllAccessCollector.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AllAccessCollector.java index 8b1410ac8..ecc986759 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AllAccessCollector.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AllAccessCollector.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import org.apache.solr.search.DelegatingCollector; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AnyStructuredFieldPosition.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AnyStructuredFieldPosition.java index 574fcd499..1f4841c2e 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AnyStructuredFieldPosition.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/AnyStructuredFieldPosition.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/BitsFilter.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/BitsFilter.java index 4f3029347..86729c908 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/BitsFilter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/BitsFilter.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2012 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.query; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/CachingTermPositions.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/CachingTermPositions.java index 6696a9433..f17ca745a 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/CachingTermPositions.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/CachingTermPositions.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/CmisQParserPlugin.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/CmisQParserPlugin.java index 073deda89..eb08bb0ba 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/CmisQParserPlugin.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/CmisQParserPlugin.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import org.alfresco.opencmis.search.CMISQueryOptions.CMISQueryMode; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/ContentSizeGroupingAnalyticsQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/ContentSizeGroupingAnalyticsQuery.java index 1394cde33..efeca2487 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/ContentSizeGroupingAnalyticsQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/ContentSizeGroupingAnalyticsQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import org.apache.lucene.search.IndexSearcher; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/ContentSizeGroupingCollector.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/ContentSizeGroupingCollector.java index 84978b0e4..b0d345a70 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/ContentSizeGroupingCollector.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/ContentSizeGroupingCollector.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/ContentSizeGroupingQParserPlugin.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/ContentSizeGroupingQParserPlugin.java index 0deb39a9a..ecdf069f9 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/ContentSizeGroupingQParserPlugin.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/ContentSizeGroupingQParserPlugin.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2013 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import org.apache.lucene.search.Query; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/DescendantAndSelfStructuredFieldPosition.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/DescendantAndSelfStructuredFieldPosition.java index 3911f33fd..dc72e3814 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/DescendantAndSelfStructuredFieldPosition.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/DescendantAndSelfStructuredFieldPosition.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; public class DescendantAndSelfStructuredFieldPosition extends AnyStructuredFieldPosition diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/DocValuesCache.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/DocValuesCache.java index d5bb1b276..75d1a7b0e 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/DocValuesCache.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/DocValuesCache.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2012 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.query; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/EmptyHybridBitSet.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/EmptyHybridBitSet.java index 0c6181d79..d7ad4e196 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/EmptyHybridBitSet.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/EmptyHybridBitSet.java @@ -1,21 +1,27 @@ - /* - * Copyright (C) 2005-2012 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.query; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/HybridBitSet.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/HybridBitSet.java index 5db68be82..5c9170cbb 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/HybridBitSet.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/HybridBitSet.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2012 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.query; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Lucene4QueryBuilderContextSolrImpl.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Lucene4QueryBuilderContextSolrImpl.java index 39bd98936..5c5758065 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Lucene4QueryBuilderContextSolrImpl.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Lucene4QueryBuilderContextSolrImpl.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.util.Properties; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Lucene4QueryParserAdaptor.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Lucene4QueryParserAdaptor.java index 65dd83eb8..e0c29c1e5 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Lucene4QueryParserAdaptor.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Lucene4QueryParserAdaptor.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.util.List; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/MimetypeGroupingAnalyticsQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/MimetypeGroupingAnalyticsQuery.java index 6d6359515..6373e6f28 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/MimetypeGroupingAnalyticsQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/MimetypeGroupingAnalyticsQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.util.HashMap; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/MimetypeGroupingCollector.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/MimetypeGroupingCollector.java index 7253121fb..e2495756b 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/MimetypeGroupingCollector.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/MimetypeGroupingCollector.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/MimetypeGroupingQParserPlugin.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/MimetypeGroupingQParserPlugin.java index 07600b668..3557525e3 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/MimetypeGroupingQParserPlugin.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/MimetypeGroupingQParserPlugin.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2013 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.File; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/PostFilterQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/PostFilterQuery.java index 42115d03e..ae3888b9e 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/PostFilterQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/PostFilterQuery.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2012 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.query; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/RelativeStructuredFieldPosition.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/RelativeStructuredFieldPosition.java index 9977992a5..a530329d7 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/RelativeStructuredFieldPosition.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/RelativeStructuredFieldPosition.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SelfAxisStructuredFieldPosition.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SelfAxisStructuredFieldPosition.java index 63e6aa77b..da6a32acd 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SelfAxisStructuredFieldPosition.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SelfAxisStructuredFieldPosition.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java index 3d46c0d48..13d13003c 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2015 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import edu.umd.cs.findbugs.annotations.SuppressWarnings; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthorityQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthorityQuery.java index 93dbf7fca..8adba04ae 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthorityQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthorityQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthorityScorer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthorityScorer.java index 72deebf85..909cf8ae7 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthorityScorer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthorityScorer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthoritySetQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthoritySetQuery.java index e4d5c9cca..7ced34aa0 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthoritySetQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthoritySetQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2012 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthoritySetScorer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthoritySetScorer.java index 92bc33844..29202fdd4 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthoritySetScorer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrAuthoritySetScorer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2012 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrCachingPathQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrCachingPathQuery.java index a4e8f7d52..62146dc3a 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrCachingPathQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrCachingPathQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2010 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrCachingPathScorer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrCachingPathScorer.java index 44db941ae..5f03dd69e 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrCachingPathScorer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrCachingPathScorer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrCachingPathWeight.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrCachingPathWeight.java index d64fc7828..b5448bab3 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrCachingPathWeight.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrCachingPathWeight.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrContainerScorer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrContainerScorer.java index d59ff05bd..db53d2153 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrContainerScorer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrContainerScorer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDeniedQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDeniedQuery.java index d8ac274fc..81393449a 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDeniedQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDeniedQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDeniedScorer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDeniedScorer.java index 32e02fa9b..b9e6de2a3 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDeniedScorer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDeniedScorer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDenySetQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDenySetQuery.java index bf159a632..5618a038f 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDenySetQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDenySetQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDenySetScorer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDenySetScorer.java index 4e3bd1b34..1c9f2d53c 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDenySetScorer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDenySetScorer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2012 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDenySetScorer2.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDenySetScorer2.java index 5e14f1fcb..bffd3b86f 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDenySetScorer2.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrDenySetScorer2.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2012 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerQuery.java index 896cc084c..8857601f2 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2010 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerScorer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerScorer.java index 1359fc94d..2853fe449 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerScorer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerScorer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2010 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerSetQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerSetQuery.java index 6c71c91c2..f4ca02f58 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerSetQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerSetQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2012 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerSetScorer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerSetScorer.java index 68acaaaad..b7f5962d6 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerSetScorer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrOwnerSetScorer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2012 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrPathQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrPathQuery.java index e4fb7ec53..051231996 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrPathQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrPathQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrPathScorer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrPathScorer.java index 7b7f48980..d8e409b27 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrPathScorer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrPathScorer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderQuery.java index 40f69f425..02ffa736c 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderScorer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderScorer.java index 2726dda30..600fcf3f2 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderScorer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderScorer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderSetQuery.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderSetQuery.java index ce75f052e..0d43ee142 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderSetQuery.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderSetQuery.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2012 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderSetScorer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderSetScorer.java index 6b3c3cb1b..5e84aae32 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderSetScorer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderSetScorer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2012 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderSetScorer2.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderSetScorer2.java index 73636c13a..85ea519e5 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderSetScorer2.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrReaderSetScorer2.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2012 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrXPathHandler.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrXPathHandler.java index 50481dcf2..4f0cd4991 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrXPathHandler.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/SolrXPathHandler.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.util.ArrayList; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/StructuredFieldPosition.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/StructuredFieldPosition.java index 43413d52d..5479de3ec 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/StructuredFieldPosition.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/StructuredFieldPosition.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/StructuredFieldTerm.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/StructuredFieldTerm.java index 77d966786..d6fe47d09 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/StructuredFieldTerm.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/StructuredFieldTerm.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import org.apache.lucene.index.Term; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/CompositeReader.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/CompositeReader.java index 16c8d9d3f..ebcb8428d 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/CompositeReader.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/CompositeReader.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.schema.highlight; import static java.util.Arrays.asList; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTextAnalyzer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTextAnalyzer.java index ac5311480..15c872157 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTextAnalyzer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTextAnalyzer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.schema.highlight; import org.alfresco.solr.AlfrescoAnalyzerWrapper; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTextField.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTextField.java index 442ef9d1b..f321fcc39 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTextField.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTextField.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.schema.highlight; import org.alfresco.solr.AlfrescoAnalyzerWrapper; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTokenStream.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTokenStream.java index 19de520c1..bc3d6f080 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTokenStream.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTokenStream.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.schema.highlight; import static java.util.Optional.of; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/package-info.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/package-info.java index 5bdac27dd..0751a8e82 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/package-info.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/schema/highlight/package-info.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + /** * This package contains a custom field type (and dependent component) which is supposed to be used * only on fields that diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/servlet/Solr4X509ServletFilter.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/servlet/Solr4X509ServletFilter.java index ca1e29345..3286482f3 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/servlet/Solr4X509ServletFilter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/servlet/Solr4X509ServletFilter.java @@ -1,21 +1,28 @@ /* -* Copyright (C) 2005-2013 Alfresco Software Limited. -* -* This file is part of Alfresco -* -* Alfresco is free software: you can redistribute it and/or modify -* it under the terms of the GNU Lesser General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* Alfresco is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public License -* along with Alfresco. If not, see . -*/ + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ package org.alfresco.solr.servlet; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ACLIDModRouter.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ACLIDModRouter.java index 408b33317..3a7dd790c 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ACLIDModRouter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ACLIDModRouter.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.solr.client.Acl; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ACLIDMurmurRouter.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ACLIDMurmurRouter.java index 004ecc1ee..cc6fa85ec 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ACLIDMurmurRouter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ACLIDMurmurRouter.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.apache.solr.common.util.Hash; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java index 32adf6761..85f3299a1 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.Optional.ofNullable; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractWorker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractWorker.java index 40c126319..1d013f18f 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractWorker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractWorker.java @@ -1,17 +1,29 @@ /* - * Copyright (C) 2005-2020 Alfresco Software Limited. - * This file is part of Alfresco + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.slf4j.Logger; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AclTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AclTracker.java index 17ef3081a..e039893b6 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AclTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AclTracker.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CascadeTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CascadeTracker.java index 7eb0fa437..7506cb2c7 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CascadeTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CascadeTracker.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.stream.Collectors.joining; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CommitTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CommitTracker.java index 3086d146d..7066b2907 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CommitTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CommitTracker.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.tracker; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ComposableDocRouter.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ComposableDocRouter.java index 2e42115ed..ee57db5a3 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ComposableDocRouter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ComposableDocRouter.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.solr.tracker; import org.slf4j.Logger; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ContentTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ContentTracker.java index b605c534a..ff2c66fd1 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ContentTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ContentTracker.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import com.google.common.collect.Lists; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CoreStatePublisher.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CoreStatePublisher.java index 45352c1e9..dda43d880 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CoreStatePublisher.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CoreStatePublisher.java @@ -1,28 +1,29 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% - * This file is part of the Alfresco software. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is * provided under the following open source license terms: - * + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.tracker; import static java.util.Optional.of; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DBIDRangeRouter.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DBIDRangeRouter.java index b405b479a..ecb22d115 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DBIDRangeRouter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DBIDRangeRouter.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import java.util.Map; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DBIDRouter.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DBIDRouter.java index 7922f1d19..120b440bf 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DBIDRouter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DBIDRouter.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.apache.solr.common.util.Hash; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DateMonthRouter.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DateMonthRouter.java index 20282e8d9..2219c83d8 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DateMonthRouter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DateMonthRouter.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.util.ISO8601DateFormat; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DateQuarterRouter.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DateQuarterRouter.java index 8f57ed0ae..6b488d180 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DateQuarterRouter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DateQuarterRouter.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.util.ISO8601DateFormat; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DocRouter.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DocRouter.java index d146acc98..257b99da0 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DocRouter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DocRouter.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.solr.client.Node; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DocRouterFactory.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DocRouterFactory.java index 21d3b38ac..f99990b3b 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DocRouterFactory.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DocRouterFactory.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.error.AlfrescoRuntimeException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DocRouterWithFallback.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DocRouterWithFallback.java index 08462a801..691294979 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DocRouterWithFallback.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/DocRouterWithFallback.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.solr.tracker; import org.alfresco.service.namespace.QName; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ExplicitShardIdWithDynamicPropertyRouter.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ExplicitShardIdWithDynamicPropertyRouter.java index 67a6e6c85..4d46d00d1 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ExplicitShardIdWithDynamicPropertyRouter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ExplicitShardIdWithDynamicPropertyRouter.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import java.util.Map; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ExplicitShardIdWithStaticPropertyRouter.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ExplicitShardIdWithStaticPropertyRouter.java index 9c82ac152..55e95d13d 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ExplicitShardIdWithStaticPropertyRouter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ExplicitShardIdWithStaticPropertyRouter.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.solr.client.Acl; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java index c8443fe58..439b1c981 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import com.google.common.collect.Lists; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ModelTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ModelTracker.java index 196dc7b5d..6ef37d808 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ModelTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ModelTracker.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import java.io.File; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/PropertyRouter.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/PropertyRouter.java index d1b4d620d..412c1c823 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/PropertyRouter.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/PropertyRouter.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.repo.index.shard.ShardMethodEnum; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/SlaveCoreStatePublisher.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/SlaveCoreStatePublisher.java index 9ca1753f0..b8c04634f 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/SlaveCoreStatePublisher.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/SlaveCoreStatePublisher.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static org.alfresco.solr.tracker.Tracker.Type.NODE_STATE_PUBLISHER; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/SolrTrackerScheduler.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/SolrTrackerScheduler.java index 9c25ea249..900519be4 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/SolrTrackerScheduler.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/SolrTrackerScheduler.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import java.util.Collection; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/Tracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/Tracker.java index b7e049fa5..2497a2e33 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/Tracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/Tracker.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import java.util.Properties; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/TrackerJob.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/TrackerJob.java index c5e90506c..5d822767c 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/TrackerJob.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/TrackerJob.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2010 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.quartz.DisallowConcurrentExecution; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/TrackerRegistry.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/TrackerRegistry.java index 1417f051e..83dd155ff 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/TrackerRegistry.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/TrackerRegistry.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import java.util.Collection; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/pool/DefaultTrackerPoolFactory.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/pool/DefaultTrackerPoolFactory.java index ee5ac61e5..fcec22b62 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/pool/DefaultTrackerPoolFactory.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/pool/DefaultTrackerPoolFactory.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker.pool; import java.util.Properties; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/pool/TrackerPoolFactory.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/pool/TrackerPoolFactory.java index 25b169888..b4a714442 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/pool/TrackerPoolFactory.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/pool/TrackerPoolFactory.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker.pool; import java.util.concurrent.ThreadPoolExecutor; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/AlfrescoFieldMapperTransformer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/AlfrescoFieldMapperTransformer.java index e56a250f6..5783e6260 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/AlfrescoFieldMapperTransformer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/AlfrescoFieldMapperTransformer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.transformer; import org.alfresco.solr.AlfrescoSolrDataModel; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/AlfrescoFieldMapperTransformerFactory.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/AlfrescoFieldMapperTransformerFactory.java index 601b340d5..40fe2e2d4 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/AlfrescoFieldMapperTransformerFactory.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/AlfrescoFieldMapperTransformerFactory.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.transformer; import org.apache.solr.common.params.SolrParams; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/DocValueDocTransformer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/DocValueDocTransformer.java index 40586674f..2121275af 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/DocValueDocTransformer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/DocValueDocTransformer.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.transformer; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/DocValueDocTransformerFactory.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/DocValueDocTransformerFactory.java index f6c1894e6..0829b3457 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/DocValueDocTransformerFactory.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/transformer/DocValueDocTransformerFactory.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.transformer; import org.apache.solr.common.params.SolrParams; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/AlfrescoFileUtils.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/AlfrescoFileUtils.java index dcbf963cf..7f5ba804a 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/AlfrescoFileUtils.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/AlfrescoFileUtils.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.utils; import org.apache.commons.io.FileUtils; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/ThrowingConsumer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/ThrowingConsumer.java index dfde5a381..da476c76a 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/ThrowingConsumer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/ThrowingConsumer.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.utils; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/ThrowingFunction.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/ThrowingFunction.java index b21c22bf4..a6ca43dde 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/ThrowingFunction.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/ThrowingFunction.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.utils; diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/Utils.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/Utils.java index 2d9815793..17a557019 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/Utils.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/utils/Utils.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.utils; import static java.util.Collections.emptyList; diff --git a/search-services/alfresco-search/src/main/java/org/apache/lucene/analysis/minhash/ContextAccumulatingFilter.java b/search-services/alfresco-search/src/main/java/org/apache/lucene/analysis/minhash/ContextAccumulatingFilter.java index 477799b0f..c31834e58 100644 --- a/search-services/alfresco-search/src/main/java/org/apache/lucene/analysis/minhash/ContextAccumulatingFilter.java +++ b/search-services/alfresco-search/src/main/java/org/apache/lucene/analysis/minhash/ContextAccumulatingFilter.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.apache.lucene.analysis.minhash; import java.io.IOException; diff --git a/search-services/alfresco-search/src/main/java/org/apache/lucene/analysis/minhash/ContextAccumulatingFilterFactory.java b/search-services/alfresco-search/src/main/java/org/apache/lucene/analysis/minhash/ContextAccumulatingFilterFactory.java index 528025f34..3ef3b7d18 100644 --- a/search-services/alfresco-search/src/main/java/org/apache/lucene/analysis/minhash/ContextAccumulatingFilterFactory.java +++ b/search-services/alfresco-search/src/main/java/org/apache/lucene/analysis/minhash/ContextAccumulatingFilterFactory.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.apache.lucene.analysis.minhash; import java.util.Map; diff --git a/search-services/alfresco-search/src/main/java/org/apache/solr/core/CoreDescriptorDecorator.java b/search-services/alfresco-search/src/main/java/org/apache/solr/core/CoreDescriptorDecorator.java index 3951e7b8b..0e1b5eeee 100644 --- a/search-services/alfresco-search/src/main/java/org/apache/solr/core/CoreDescriptorDecorator.java +++ b/search-services/alfresco-search/src/main/java/org/apache/solr/core/CoreDescriptorDecorator.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.apache.solr.core; import java.util.List; diff --git a/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoHttpShardHandler.java b/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoHttpShardHandler.java index d192ba072..7a469b086 100644 --- a/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoHttpShardHandler.java +++ b/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoHttpShardHandler.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2013 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.apache.solr.handler.component; import org.alfresco.solr.query.AbstractQParser; diff --git a/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoHttpShardHandlerFactory.java b/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoHttpShardHandlerFactory.java index 11aba3039..afae2a709 100644 --- a/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoHttpShardHandlerFactory.java +++ b/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoHttpShardHandlerFactory.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2013 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.apache.solr.handler.component; diff --git a/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoLukeRequestHandler.java b/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoLukeRequestHandler.java index 62a098948..a42d6cd4f 100644 --- a/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoLukeRequestHandler.java +++ b/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoLukeRequestHandler.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2013 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.apache.solr.handler.component; import static org.apache.lucene.index.IndexOptions.DOCS; diff --git a/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoQueryRequest.java b/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoQueryRequest.java index 4a305421c..7bd150380 100644 --- a/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoQueryRequest.java +++ b/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoQueryRequest.java @@ -1,39 +1,31 @@ /* - * Copyright (C) 2005-2013 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.apache.solr.handler.component; -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ import java.util.Collection; import java.util.Collections; diff --git a/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoSearchHandler.java b/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoSearchHandler.java index 0d6f34984..c83cca560 100644 --- a/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoSearchHandler.java +++ b/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoSearchHandler.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.apache.solr.handler.component; import static java.util.Optional.of; diff --git a/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoSolrHighlighter.java b/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoSolrHighlighter.java index 0c42cdeb1..c8281991a 100644 --- a/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoSolrHighlighter.java +++ b/search-services/alfresco-search/src/main/java/org/apache/solr/handler/component/AlfrescoSolrHighlighter.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2013 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.apache.solr.handler.component; import static java.lang.String.join; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/repo/search/impl/lucene/analysis/MLAnalayserTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/repo/search/impl/lucene/analysis/MLAnalayserTest.java index a9d6694c6..068a4e3ed 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/repo/search/impl/lucene/analysis/MLAnalayserTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/repo/search/impl/lucene/analysis/MLAnalayserTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.repo.search.impl.lucene.analysis; import static org.junit.Assert.assertEquals; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/repo/search/impl/lucene/analysis/PathTokenFilterTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/repo/search/impl/lucene/analysis/PathTokenFilterTest.java index 791fa6f53..a9d1aeaa2 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/repo/search/impl/lucene/analysis/PathTokenFilterTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/repo/search/impl/lucene/analysis/PathTokenFilterTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2010 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.repo.search.impl.lucene.analysis; import java.io.IOException; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AbstractAlfrescoDistributedIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AbstractAlfrescoDistributedIT.java index 390901404..f424ab9d3 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AbstractAlfrescoDistributedIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AbstractAlfrescoDistributedIT.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.solr; import static java.util.Arrays.asList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AbstractAlfrescoSolrIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AbstractAlfrescoSolrIT.java index 9dc5f589f..27572311f 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AbstractAlfrescoSolrIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AbstractAlfrescoSolrIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import org.alfresco.repo.search.impl.parsers.FTSQueryParser; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AdminHandlerDistributedIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AdminHandlerDistributedIT.java index e8d8d8285..d157e14b8 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AdminHandlerDistributedIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AdminHandlerDistributedIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import org.apache.solr.SolrTestCaseJ4; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AdminHandlerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AdminHandlerIT.java index 2f99e776f..56887c032 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AdminHandlerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AdminHandlerIT.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.solr; import org.apache.solr.common.SolrException; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCollatableMLTextFieldTypeTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCollatableMLTextFieldTypeTest.java index dcd57f47e..cd8470d82 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCollatableMLTextFieldTypeTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCollatableMLTextFieldTypeTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import static org.junit.Assert.assertEquals; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCollatableTextFieldTypeTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCollatableTextFieldTypeTest.java index b937779a2..d3424bb5a 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCollatableTextFieldTypeTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCollatableTextFieldTypeTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import static org.junit.Assert.assertEquals; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerIT.java index 83abaec9b..227212ce2 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2015 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import static java.util.Arrays.asList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoJsonQueryRequest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoJsonQueryRequest.java index e3d4a29a3..9dea4b66b 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoJsonQueryRequest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoJsonQueryRequest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2017 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import java.util.ArrayList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrConstants.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrConstants.java index 3447a031c..fc745aebe 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrConstants.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrConstants.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import org.alfresco.service.namespace.QName; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrReloadIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrReloadIT.java index 05bded1e4..2fdbbe01f 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrReloadIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrReloadIT.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.solr; import static java.util.Collections.singletonList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrUtils.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrUtils.java index 7ded65d02..17d0166eb 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrUtils.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrUtils.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import static java.util.Optional.of; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoTrackerRegistrationIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoTrackerRegistrationIT.java index 1a20f0a9c..ef84250d3 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoTrackerRegistrationIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoTrackerRegistrationIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2017 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import java.util.Collection; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/CMISDataCreatorTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/CMISDataCreatorTest.java index edd3e709e..77278b0d3 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/CMISDataCreatorTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/CMISDataCreatorTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2013 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import java.io.ByteArrayInputStream; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/CoresCreateUpdateDistributedIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/CoresCreateUpdateDistributedIT.java index f50eff84d..f31aade04 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/CoresCreateUpdateDistributedIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/CoresCreateUpdateDistributedIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import org.alfresco.service.cmr.repository.StoreRef; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/CoresCreateViaPropertyIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/CoresCreateViaPropertyIT.java index 0812825bb..01a1562d4 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/CoresCreateViaPropertyIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/CoresCreateViaPropertyIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import org.apache.solr.SolrTestCaseJ4; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java index 4fe3cbd73..775006d6d 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.solr; import com.google.common.collect.Sets; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/HandlerOfResourcesTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/HandlerOfResourcesTest.java index eb7067137..669f6cd20 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/HandlerOfResourcesTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/HandlerOfResourcesTest.java @@ -1,24 +1,29 @@ /* - * Copyright (C) 2005 - 2016 Alfresco Software Limited - * - * This file is part of the Alfresco software. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is * provided under the following open source license terms: - * + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import org.junit.Test; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrDataModelTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrDataModelTest.java index 3dcc1c45b..590b6398c 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrDataModelTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrDataModelTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import static org.junit.Assert.assertEquals; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrITInitializer.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrITInitializer.java index c4f8070dd..bb3b1fa52 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrITInitializer.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrITInitializer.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.solr; import static org.alfresco.solr.AlfrescoSolrUtils.createCoreUsingTemplate; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrInformationServerTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrInformationServerTest.java index 82525c195..2ee5c6cf7 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrInformationServerTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrInformationServerTest.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrTestFiles.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrTestFiles.java index 287701511..dba8f428b 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrTestFiles.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrTestFiles.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; /** * A trait to mixin the location of the test files used in solr test. diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/TemplatesDistributedIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/TemplatesDistributedIT.java index 190319b12..fd270dc89 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/TemplatesDistributedIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/TemplatesDistributedIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr; import static org.alfresco.solr.AlfrescoSolrUtils.assertSummaryCorrect; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/basics/RandomSupplier.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/basics/RandomSupplier.java index 7c42b928f..c27333119 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/basics/RandomSupplier.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/basics/RandomSupplier.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.solr.basics; import java.util.Date; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/basics/SolrResponsesComparator.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/basics/SolrResponsesComparator.java index 6497d716f..b9d98006c 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/basics/SolrResponsesComparator.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/basics/SolrResponsesComparator.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.solr.basics; import com.google.common.collect.Sets; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/component/RewriteFacetParametersComponentTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/component/RewriteFacetParametersComponentTest.java index 4bb8020f1..0465a0126 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/component/RewriteFacetParametersComponentTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/component/RewriteFacetParametersComponentTest.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.component; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/component/TempFileWarningLoggerTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/component/TempFileWarningLoggerTest.java index 004698efc..6275f308f 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/component/TempFileWarningLoggerTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/component/TempFileWarningLoggerTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.component; import static org.junit.Assert.assertEquals; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/config/ConfigUtilTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/config/ConfigUtilTest.java index 75dd607ba..3d55b634d 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/config/ConfigUtilTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/config/ConfigUtilTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.config; import org.alfresco.solr.AlfrescoCoreAdminHandler; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/dataload/TestDataProvider.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/dataload/TestDataProvider.java index 4a98111b7..a99533957 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/dataload/TestDataProvider.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/dataload/TestDataProvider.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.dataload; import static java.util.Arrays.asList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/highlight/AlfrescoHighligherDistributedIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/highlight/AlfrescoHighligherDistributedIT.java index 6880f825d..598730b65 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/highlight/AlfrescoHighligherDistributedIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/highlight/AlfrescoHighligherDistributedIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.highlight; import static java.util.Arrays.asList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/highlight/AlfrescoHighlighterIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/highlight/AlfrescoHighlighterIT.java index 12bbae599..bd52c43dd 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/highlight/AlfrescoHighlighterIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/highlight/AlfrescoHighlighterIT.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.highlight; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/lifecycle/SolrCoreLoadListenerTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/lifecycle/SolrCoreLoadListenerTest.java index 233bfa393..9f4217478 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/lifecycle/SolrCoreLoadListenerTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/lifecycle/SolrCoreLoadListenerTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2013 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.lifecycle; import static java.util.Arrays.asList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoLuceneQParserTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoLuceneQParserTest.java index edfb14a94..5ecc9e98d 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoLuceneQParserTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoLuceneQParserTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import static org.junit.Assert.assertEquals; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoReRankQParserPluginIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoReRankQParserPluginIT.java index 1797a5c17..5ffc5fc01 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoReRankQParserPluginIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoReRankQParserPluginIT.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.query; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoSolrFingerprintIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoSolrFingerprintIT.java index 41bade7c9..83e8d8fe7 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoSolrFingerprintIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoSolrFingerprintIT.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.query; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoSolrSortIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoSolrSortIT.java index 9f302a699..98018197c 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoSolrSortIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoSolrSortIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import org.alfresco.solr.AbstractAlfrescoDistributedIT; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoSolrSpellcheckerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoSolrSpellcheckerIT.java index 4d6ad4257..83945f68b 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoSolrSpellcheckerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AlfrescoSolrSpellcheckerIT.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.query; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AuthDataLoad.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AuthDataLoad.java index 0b86af558..5b2582495 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AuthDataLoad.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AuthDataLoad.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import static org.alfresco.solr.AlfrescoSolrUtils.addAcl; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AuthQueryIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AuthQueryIT.java index 82d9d70a6..50351ec00 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AuthQueryIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/AuthQueryIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import java.io.IOException; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/DistributedAlfrescoSolrFacetingIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/DistributedAlfrescoSolrFacetingIT.java index 672f51b53..9b7890690 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/DistributedAlfrescoSolrFacetingIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/DistributedAlfrescoSolrFacetingIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import org.alfresco.solr.AbstractAlfrescoDistributedIT; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/DistributedAlfrescoSolrFingerPrintIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/DistributedAlfrescoSolrFingerPrintIT.java index 6ede22382..bf5db0454 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/DistributedAlfrescoSolrFingerPrintIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/DistributedAlfrescoSolrFingerPrintIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import static java.util.Arrays.asList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/DistributedAlfrescoSolrSpellcheckerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/DistributedAlfrescoSolrSpellcheckerIT.java index 4585b7efe..376bf0714 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/DistributedAlfrescoSolrSpellcheckerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/DistributedAlfrescoSolrSpellcheckerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import org.alfresco.solr.AbstractAlfrescoDistributedIT; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/Solr4QueryParserTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/Solr4QueryParserTest.java index afd515960..b99996103 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/Solr4QueryParserTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/Solr4QueryParserTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2015 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import static org.junit.Assert.assertEquals; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/SolrAuthIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/SolrAuthIT.java index 0491c2f4a..73c7fb2bf 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/SolrAuthIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/SolrAuthIT.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.query; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/UntokenisedFieldIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/UntokenisedFieldIT.java index e1d4be2da..34630d704 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/UntokenisedFieldIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/UntokenisedFieldIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-206 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query; import org.alfresco.solr.AbstractAlfrescoSolrIT; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/qparser/AbstractQParserPluginIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/qparser/AbstractQParserPluginIT.java index 35520530a..7865b4060 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/qparser/AbstractQParserPluginIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/qparser/AbstractQParserPluginIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query.afts.qparser; import org.alfresco.solr.AbstractAlfrescoSolrIT; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/qparser/FieldNameEscapingIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/qparser/FieldNameEscapingIT.java index f2d103787..29474c454 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/qparser/FieldNameEscapingIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/qparser/FieldNameEscapingIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query.afts.qparser; import org.alfresco.repo.search.adaptor.lucene.QueryConstants; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/qparser/QParserPluginIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/qparser/QParserPluginIT.java index 13164621b..dbed2ad9a 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/qparser/QParserPluginIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/qparser/QParserPluginIT.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.query.afts.qparser; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSDefaultTextQueryIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSDefaultTextQueryIT.java index 88d2a03af..0994626ec 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSDefaultTextQueryIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSDefaultTextQueryIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query.afts.requestHandler; import org.alfresco.service.cmr.repository.NodeRef; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSDisjunctionIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSDisjunctionIT.java index 732a70442..aa35829e4 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSDisjunctionIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSDisjunctionIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query.afts.requestHandler; import static java.util.stream.IntStream.range; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSIdentifierFieldsIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSIdentifierFieldsIT.java index 44000da38..b2c776e9b 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSIdentifierFieldsIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSIdentifierFieldsIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query.afts.requestHandler; import static java.util.stream.IntStream.range; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSRangeQueryIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSRangeQueryIT.java index 18fcef646..d17a66e20 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSRangeQueryIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSRangeQueryIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query.afts.requestHandler; import static java.util.stream.IntStream.range; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSRequestHandlerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSRequestHandlerIT.java index e846b6989..7652b42b1 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSRequestHandlerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSRequestHandlerIT.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.solr.query.afts.requestHandler; import static java.util.stream.LongStream.range; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AbstractRequestHandlerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AbstractRequestHandlerIT.java index 929b0d30e..8b3cac72e 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AbstractRequestHandlerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AbstractRequestHandlerIT.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.solr.query.afts.requestHandler; import org.alfresco.solr.AbstractAlfrescoSolrIT; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/MNTIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/MNTIT.java index 613e2da1e..3dbb2a977 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/MNTIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/MNTIT.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.solr.query.afts.requestHandler; import org.alfresco.solr.dataload.TestDataProvider; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/AlfrescoCMISQParserPluginIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/AlfrescoCMISQParserPluginIT.java index e5803fe88..9bcbc2e6e 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/AlfrescoCMISQParserPluginIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/AlfrescoCMISQParserPluginIT.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.query.cmis; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/CmisIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/CmisIT.java index 6b05203f2..0a6c2dbb9 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/CmisIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/CmisIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query.cmis; import java.util.Calendar; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/LoadCMISData.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/LoadCMISData.java index f64efe0a5..78da12105 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/LoadCMISData.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/LoadCMISData.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.query.cmis; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/SortCMISTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/SortCMISTest.java index 88b3e0ad0..e644b1658 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/SortCMISTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/SortCMISTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query.cmis; import static org.alfresco.solr.AlfrescoSolrUtils.addNode; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/TrieFieldsCMISTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/TrieFieldsCMISTest.java index 73f666357..37b040cd7 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/TrieFieldsCMISTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/cmis/TrieFieldsCMISTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.query.cmis; import static org.alfresco.solr.AlfrescoSolrUtils.addNode; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/schema/highlight/CompositeReaderTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/schema/highlight/CompositeReaderTest.java index 82346b2a4..eaffa0a52 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/schema/highlight/CompositeReaderTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/schema/highlight/CompositeReaderTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.schema.highlight; import org.apache.commons.io.IOUtils; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTokenStreamTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTokenStreamTest.java index 33f1a663c..87968bb54 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTokenStreamTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/schema/highlight/LanguagePrefixedTokenStreamTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.schema.highlight; import org.alfresco.solr.AlfrescoAnalyzerWrapper; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/servlet/Solr4X509ServletFilterTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/servlet/Solr4X509ServletFilterTest.java index f89bc92f4..dd2ac4d5c 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/servlet/Solr4X509ServletFilterTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/servlet/Solr4X509ServletFilterTest.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.servlet; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ACLIDMurmurRouterTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ACLIDMurmurRouterTest.java index d670b2eca..c3ef0d2fb 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ACLIDMurmurRouterTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ACLIDMurmurRouterTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.Arrays.stream; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AclModCountRouterIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AclModCountRouterIT.java index 451b29ed6..07b0612f1 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AclModCountRouterIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AclModCountRouterIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.Arrays.stream; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerExceptionIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerExceptionIT.java index cdf81b87a..42ce42091 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerExceptionIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerExceptionIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.Arrays.asList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerIT.java index df0d34c45..ea9847166 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.Arrays.asList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerRollbackIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerRollbackIT.java index 1d6b25243..ef0811ed5 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerRollbackIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerRollbackIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static org.alfresco.solr.AlfrescoSolrUtils.ancestors; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerStateIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerStateIT.java index b77fce2b0..f86c86363 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerStateIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/AlfrescoSolrTrackerStateIT.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.tracker; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/CascadingIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/CascadingIT.java index 79dc0c3fb..7be0c52a8 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/CascadingIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/CascadingIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static org.alfresco.solr.AlfrescoSolrUtils.getTransaction; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ContentPropertyValueTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ContentPropertyValueTrackerIT.java index 974719ac7..87cc9c270 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ContentPropertyValueTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ContentPropertyValueTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.model.ContentModel; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ContentTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ContentTrackerIT.java index 650587546..c574311d1 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ContentTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ContentTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static org.mockito.Mockito.*; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DBIDRangeRouterTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DBIDRangeRouterTest.java index a683191ae..b2596cdba 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DBIDRangeRouterTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DBIDRangeRouterTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.stream.IntStream.range; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DBIDRouterTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DBIDRouterTest.java index cb7e4837b..1de135a26 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DBIDRouterTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DBIDRouterTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.Arrays.stream; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DateMonthRouterIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DateMonthRouterIT.java index 03cf95823..247d8da95 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DateMonthRouterIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DateMonthRouterIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.Arrays.stream; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAclIdAlfrescoSolrTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAclIdAlfrescoSolrTrackerIT.java index bbe6eef1b..a9f0008cc 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAclIdAlfrescoSolrTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAclIdAlfrescoSolrTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.repo.index.shard.ShardMethodEnum; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrJsonIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrJsonIT.java index 8f9471b11..bc9d68287 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrJsonIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrJsonIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static org.alfresco.solr.AlfrescoSolrUtils.TestActChanges; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerIT.java index a9010eb96..04bab0422 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.Arrays.asList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerLargeTxnIdIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerLargeTxnIdIT.java index 6dd92cc8d..6296dd9e6 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerLargeTxnIdIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerLargeTxnIdIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.repo.search.adaptor.lucene.QueryConstants; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerRaceIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerRaceIT.java index e41f8a457..631cd7363 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerRaceIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerRaceIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.repo.search.adaptor.lucene.QueryConstants; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerStateIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerStateIT.java index 4d6657607..0f44d50a4 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerStateIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerStateIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.Arrays.asList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedCascadeTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedCascadeTrackerIT.java index dfcf83474..980053dfb 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedCascadeTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedCascadeTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.Collections.singletonList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateAbstractSolrTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateAbstractSolrTrackerIT.java index 68e99a0a5..266699084 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateAbstractSolrTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateAbstractSolrTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.model.ContentModel; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateMonthAlfrescoSolrTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateMonthAlfrescoSolrTrackerIT.java index f1a534976..97171dc01 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateMonthAlfrescoSolrTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateMonthAlfrescoSolrTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.Collections.singletonList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateQuarterAlfrescoSolrTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateQuarterAlfrescoSolrTrackerIT.java index 7073a0c8e..f2533c8e2 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateQuarterAlfrescoSolrTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateQuarterAlfrescoSolrTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.repo.index.shard.ShardMethodEnum; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateSplitYearAlfrescoSolrTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateSplitYearAlfrescoSolrTrackerIT.java index 0be33736a..d1aac24b2 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateSplitYearAlfrescoSolrTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDateSplitYearAlfrescoSolrTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.repo.index.shard.ShardMethodEnum; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDbidRangeAlfrescoSolrTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDbidRangeAlfrescoSolrTrackerIT.java index e1b3c8475..c0e77989c 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDbidRangeAlfrescoSolrTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedDbidRangeAlfrescoSolrTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.solr.AbstractAlfrescoDistributedIT; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedExpandDbidRangeAlfrescoSolrTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedExpandDbidRangeAlfrescoSolrTrackerIT.java index f3260eac9..5154ec876 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedExpandDbidRangeAlfrescoSolrTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedExpandDbidRangeAlfrescoSolrTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.repo.search.adaptor.lucene.QueryConstants; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedExplicitShardIdWithStaticPropertyRouterIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedExplicitShardIdWithStaticPropertyRouterIT.java index fb9587836..302c19bb2 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedExplicitShardIdWithStaticPropertyRouterIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedExplicitShardIdWithStaticPropertyRouterIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import java.util.Properties; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedExplicitShardRoutingTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedExplicitShardRoutingTrackerIT.java index 739dc69c5..bbd5bcd1a 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedExplicitShardRoutingTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedExplicitShardRoutingTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.model.ContentModel; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedPropertyBasedAlfrescoSolrTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedPropertyBasedAlfrescoSolrTrackerIT.java index 8cfc1745a..a380182d8 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedPropertyBasedAlfrescoSolrTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedPropertyBasedAlfrescoSolrTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2016 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.Collections.singletonList; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DocRouterFactoryTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DocRouterFactoryTest.java index e4236c7b9..a1a13e8d0 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DocRouterFactoryTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DocRouterFactoryTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static org.alfresco.solr.tracker.DocRouterFactory.SHARD_RANGE_KEY; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitIDRouterIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitIDRouterIT.java index 0800301f8..f8d2a9962 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitIDRouterIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitIDRouterIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.Arrays.stream; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitIDWithLRISRouterIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitIDWithLRISRouterIT.java index 0cebbbac3..966b915c3 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitIDWithLRISRouterIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitIDWithLRISRouterIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.repo.index.shard.ShardMethodEnum; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitShardIdWithDynamicPropertyRouterTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitShardIdWithDynamicPropertyRouterTest.java index 21f5b6a2c..fafd0aec1 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitShardIdWithDynamicPropertyRouterTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitShardIdWithDynamicPropertyRouterTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.solr.client.Acl; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitShardIdWithStaticPropertyRouterTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitShardIdWithStaticPropertyRouterTest.java index 794182016..0b2d5bfb4 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitShardIdWithStaticPropertyRouterTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ExplicitShardIdWithStaticPropertyRouterTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.stream.IntStream.range; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/MetadataTrackerTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/MetadataTrackerTest.java index b3b4d56fd..2a7e1ec79 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/MetadataTrackerTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/MetadataTrackerTest.java @@ -1,20 +1,27 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ package org.alfresco.solr.tracker; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ModelTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ModelTrackerIT.java index 5259f300b..69ec1f7c0 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ModelTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/ModelTrackerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static org.junit.Assert.assertEquals; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/PropertyRouterIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/PropertyRouterIT.java index ac233df7a..33731a695 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/PropertyRouterIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/PropertyRouterIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static java.util.Arrays.stream; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/SolrTrackerSchedulerTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/SolrTrackerSchedulerTest.java index a5a0d1ab4..bd276d116 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/SolrTrackerSchedulerTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/SolrTrackerSchedulerTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static org.junit.Assert.assertFalse; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/TrackerJobTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/TrackerJobTest.java index af2d587d1..0146e5a79 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/TrackerJobTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/TrackerJobTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static org.mockito.Mockito.verify; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/TrackerRegistryTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/TrackerRegistryTest.java index f16f56a19..d002b31c2 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/TrackerRegistryTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/TrackerRegistryTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker; import static org.junit.Assert.assertEquals; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/pool/DefaultTrackerPoolFactoryTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/pool/DefaultTrackerPoolFactoryTest.java index 641badb0b..5e89a44f7 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/pool/DefaultTrackerPoolFactoryTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/pool/DefaultTrackerPoolFactoryTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.tracker.pool; import static org.junit.Assert.assertEquals; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/transformer/AlfrescoFieldMapperTransformerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/transformer/AlfrescoFieldMapperTransformerIT.java index b3969f120..c85eccde6 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/transformer/AlfrescoFieldMapperTransformerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/transformer/AlfrescoFieldMapperTransformerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2017 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.transformer; import com.carrotsearch.randomizedtesting.annotations.ThreadLeakScope; diff --git a/search-services/alfresco-search/src/test/java/org/apache/solr/handler/component/AlfrescoLukeRequestHandlerIT.java b/search-services/alfresco-search/src/test/java/org/apache/solr/handler/component/AlfrescoLukeRequestHandlerIT.java index 9c2a2dfe4..7ed7d0358 100644 --- a/search-services/alfresco-search/src/test/java/org/apache/solr/handler/component/AlfrescoLukeRequestHandlerIT.java +++ b/search-services/alfresco-search/src/test/java/org/apache/solr/handler/component/AlfrescoLukeRequestHandlerIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2013 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.apache.solr.handler.component; import static org.junit.Assert.assertEquals; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/AclReport.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/AclReport.java index 58505e92c..5e0cdc407 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/AclReport.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/AclReport.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/AlfrescoClientDataModelServicesFactory.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/AlfrescoClientDataModelServicesFactory.java index 55f0c6417..6897461a4 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/AlfrescoClientDataModelServicesFactory.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/AlfrescoClientDataModelServicesFactory.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr; import java.util.HashMap; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/BoundedDeque.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/BoundedDeque.java index 9717dc89a..a4eb7dd89 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/BoundedDeque.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/BoundedDeque.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/IndexTrackingShutdownException.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/IndexTrackingShutdownException.java index 9194a0a69..c528ea19e 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/IndexTrackingShutdownException.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/IndexTrackingShutdownException.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr; public class IndexTrackingShutdownException extends RuntimeException diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/InformationServerCollectionProvider.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/InformationServerCollectionProvider.java index 57293db9d..a43cbcc3b 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/InformationServerCollectionProvider.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/InformationServerCollectionProvider.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr; import org.alfresco.solr.adapters.IOpenBitSet; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/NodeReport.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/NodeReport.java index d89f77df0..8bda05107 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/NodeReport.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/NodeReport.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr; import org.alfresco.solr.client.Node.SolrApiNodeStatus; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/TrackerState.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/TrackerState.java index 8c36b99bc..d7fc4b859 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/TrackerState.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/TrackerState.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/adapters/IOpenBitSet.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/adapters/IOpenBitSet.java index ded45fb78..a2ac19197 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/adapters/IOpenBitSet.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/adapters/IOpenBitSet.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/adapters/ISimpleOrderedMap.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/adapters/ISimpleOrderedMap.java index 0c7e17b45..645409e5d 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/adapters/ISimpleOrderedMap.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/adapters/ISimpleOrderedMap.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.adapters; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Acl.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Acl.java index ff8d26ec0..ae9b54a6e 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Acl.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Acl.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; /** diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AclChangeSet.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AclChangeSet.java index 115bf9961..029d937c4 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AclChangeSet.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AclChangeSet.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; /** diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AclChangeSets.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AclChangeSets.java index 617ae9676..052064051 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AclChangeSets.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AclChangeSets.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import java.util.ArrayList; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AclReaders.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AclReaders.java index 32158d5d2..04f5c1db1 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AclReaders.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AclReaders.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import static java.util.Collections.unmodifiableList; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AlfrescoModel.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AlfrescoModel.java index a979d1094..d789064e4 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AlfrescoModel.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AlfrescoModel.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import org.alfresco.repo.dictionary.M2Model; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AlfrescoModelDiff.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AlfrescoModelDiff.java index ea9ae61d8..6bfcd7e18 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AlfrescoModelDiff.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/AlfrescoModelDiff.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import org.alfresco.service.namespace.QName; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/ContentPropertyValue.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/ContentPropertyValue.java index f4fb33453..fa8e1d32f 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/ContentPropertyValue.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/ContentPropertyValue.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import java.util.Locale; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/GetNodesParameters.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/GetNodesParameters.java index 040530fd8..2e168e4d6 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/GetNodesParameters.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/GetNodesParameters.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import java.util.List; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/LookAheadBufferedReader.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/LookAheadBufferedReader.java index 50edf4018..ab24a1119 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/LookAheadBufferedReader.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/LookAheadBufferedReader.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2005-2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.solr.client; import java.io.BufferedReader; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/MLTextPropertyValue.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/MLTextPropertyValue.java index d7596e011..1403e3818 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/MLTextPropertyValue.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/MLTextPropertyValue.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import java.util.HashMap; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/MultiPropertyValue.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/MultiPropertyValue.java index 7575672c4..98580073f 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/MultiPropertyValue.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/MultiPropertyValue.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import java.util.ArrayList; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Node.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Node.java index ecebb3537..15dd43b47 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Node.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Node.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; public class Node diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/NodeMetaData.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/NodeMetaData.java index 6fb038834..44578a649 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/NodeMetaData.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/NodeMetaData.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import java.util.List; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/NodeMetaDataParameters.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/NodeMetaDataParameters.java index 303a32af1..b9938ea13 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/NodeMetaDataParameters.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/NodeMetaDataParameters.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import java.util.List; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/PropertyValue.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/PropertyValue.java index 1c50894b7..b0d788a5a 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/PropertyValue.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/PropertyValue.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; /** diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClient.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClient.java index b141929d4..5d7247d38 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClient.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClient.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import com.fasterxml.jackson.core.JsonFactory; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClientFactory.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClientFactory.java index f467d3242..122c01c53 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClientFactory.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClientFactory.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Data model classes + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIQueueClient.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIQueueClient.java index 643c47f4f..2e68fe80c 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIQueueClient.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIQueueClient.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Data model classes + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Status.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Status.java index 578a4e64b..2c21b5541 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Status.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Status.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import javax.servlet.http.HttpServletResponse; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/StringPropertyValue.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/StringPropertyValue.java index db76c6bf9..ae6b6d236 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/StringPropertyValue.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/StringPropertyValue.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; /** diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Transaction.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Transaction.java index e2fab0fc7..7e253de8e 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Transaction.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Transaction.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; /** diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Transactions.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Transactions.java index b25621e89..73c6da2ca 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Transactions.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/Transactions.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import java.util.Comparator; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/tracker/IndexHealthReport.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/tracker/IndexHealthReport.java index f35993ab1..2edf71054 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/tracker/IndexHealthReport.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/tracker/IndexHealthReport.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.tracker; import org.alfresco.solr.InformationServerCollectionProvider; diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/tracker/TrackerStats.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/tracker/TrackerStats.java index 93291cad9..a13c92011 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/tracker/TrackerStats.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/tracker/TrackerStats.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.tracker; import java.util.ArrayList; diff --git a/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/BoundedDequeTest.java b/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/BoundedDequeTest.java index 73472f71a..95e300c1a 100644 --- a/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/BoundedDequeTest.java +++ b/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/BoundedDequeTest.java @@ -1,24 +1,24 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% - * This file is part of the Alfresco software. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is * provided under the following open source license terms: - * + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . * #L% diff --git a/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/AclReadersTest.java b/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/AclReadersTest.java index 50a96eb0e..b14c2ce59 100644 --- a/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/AclReadersTest.java +++ b/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/AclReadersTest.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import static java.util.Arrays.asList; diff --git a/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/LookAheadBufferedReaderTest.java b/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/LookAheadBufferedReaderTest.java index f51142c43..93e6bb65e 100644 --- a/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/LookAheadBufferedReaderTest.java +++ b/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/LookAheadBufferedReaderTest.java @@ -1,28 +1,29 @@ -/*- +/* * #%L - * Alfresco Remote API + * Alfresco Search Services * %% * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% - * This file is part of the Alfresco software. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is * provided under the following open source license terms: - * + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import org.junit.Test; diff --git a/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/SOLRAPIClientFactoryTest.java b/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/SOLRAPIClientFactoryTest.java index f9910a6c7..b10bd10ac 100644 --- a/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/SOLRAPIClientFactoryTest.java +++ b/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/SOLRAPIClientFactoryTest.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of diff --git a/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/SOLRAPIClientTest.java b/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/SOLRAPIClientTest.java index 6e61c9c4a..b36fdfc8b 100644 --- a/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/SOLRAPIClientTest.java +++ b/search-services/alfresco-solrclient-lib/src/test/java/org/alfresco/solr/client/SOLRAPIClientTest.java @@ -1,8 +1,8 @@ /* * #%L - * Alfresco Solr Client + * Alfresco Search Services * %% - * Copyright (C) 2005 - 2016 Alfresco Software Limited + * Copyright (C) 2005 - 2020 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -23,6 +23,7 @@ * along with Alfresco. If not, see . * #L% */ + package org.alfresco.solr.client; import java.io.BufferedReader; diff --git a/search-services/packaging/src/test/java/org/alfresco/ThirdPartyLicensesIT.java b/search-services/packaging/src/test/java/org/alfresco/ThirdPartyLicensesIT.java index 9d1740d29..17bb08092 100644 --- a/search-services/packaging/src/test/java/org/alfresco/ThirdPartyLicensesIT.java +++ b/search-services/packaging/src/test/java/org/alfresco/ThirdPartyLicensesIT.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2014 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco; import static java.util.stream.Collectors.toList; From 98e5121630300bd29984f6959ee589eb3e55cbd9 Mon Sep 17 00:00:00 2001 From: Keerat Date: Wed, 13 May 2020 14:05:48 +0100 Subject: [PATCH 05/65] SEARCH-2249 Updating the license property in the e2e/pom file --- e2e-test/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index 731229414..8c6540d6b 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -19,6 +19,7 @@ 2.7.7 + community From c938d256f6d211204c049dc86c2b101baec8a790 Mon Sep 17 00:00:00 2001 From: Keerat Date: Wed, 13 May 2020 14:30:05 +0100 Subject: [PATCH 06/65] SEARCH-2249 Adding all the license headers to the e2e test project --- .../java/org/alfresco/search/TestGroup.java | 20 +++++++++---- .../functional/AbstractE2EFunctionalTest.java | 28 ++++++++++++++++--- .../cmis/AbstractCmisE2ETest.java | 26 +++++++++++++++++ .../cmis/SolrSearchByAspectTests.java | 26 +++++++++++++++++ .../cmis/SolrSearchByIdTests.java | 26 +++++++++++++++++ .../cmis/SolrSearchByPathTests.java | 26 +++++++++++++++++ .../cmis/SolrSearchByPropertyTests.java | 26 +++++++++++++++++ .../cmis/SolrSearchInFolderTests.java | 26 +++++++++++++++++ .../cmis/SolrSearchInTreeTests.java | 26 +++++++++++++++++ .../cmis/SolrSearchScoreQueryTests.java | 26 +++++++++++++++++ .../cmis/SorlSearchSimpleQueryTests.java | 26 +++++++++++++++++ .../searchServices/sanity/SetupTest.java | 27 +++++++++++++++--- .../search/AbstractSearchServicesE2ETest.java | 18 ++++++++++-- .../search/ExplicitRoutingTest.java | 26 +++++++++++++++++ .../search/FacetFieldsSearchTest.java | 20 +++++++++---- .../search/FacetIntervalSearchTest.java | 20 +++++++++---- .../search/FacetRangeSearchTest.java | 20 +++++++++---- .../search/FacetedSearchTest.java | 20 +++++++++---- .../search/FieldDefinitionTest.java | 26 +++++++++++++++++ .../search/FingerPrintTest.java | 20 +++++++++---- .../search/PivotFacetedSearchTest.java | 20 +++++++++---- .../search/SearchAFTSInFieldTest.java | 27 +++++++++++++++--- .../search/SearchAPATHTest.java | 20 +++++++++---- .../search/SearchHighLightTest.java | 18 ++++++++++-- .../search/SearchPermissionsTest.java | 20 +++++++++---- .../search/SearchQueryPaginationTest.java | 27 +++++++++++++++--- .../SearchSecondaryAssociationTest.java | 27 +++++++++++++++--- .../search/SearchSpellCheckTest.java | 20 +++++++++---- .../searchServices/search/SearchTest.java | 20 +++++++++---- .../search/SearchWithCustomModelTest.java | 27 +++++++++++++++--- .../searchServices/search/ShardInfoTest.java | 18 ++++++++++-- .../search/SpecialCharacterSearchTest.java | 20 +++++++++---- .../search/StatsSearchTest.java | 20 +++++++++---- .../tracker/CascadingIntegrationTest.java | 28 ++++++++++++++++--- .../solr/SearchSolrAPITest.java | 18 ++++++++++-- .../solr/admin/SolrE2eAdminTest.java | 18 ++++++++++-- .../backup/AbstractBackupE2ETest.java | 26 +++++++++++++++++ .../backup/SearchServicesOnBackupTests.java | 26 +++++++++++++++++ .../backup/SearchServicesPostBackupTests.java | 26 +++++++++++++++++ .../backup/SearchServicesPreBackupTests.java | 26 +++++++++++++++++ .../upgrade/AbstractUpgradeE2ETest.java | 26 +++++++++++++++++ .../upgrade/SearchServiceUpgradeTests.java | 26 +++++++++++++++++ 42 files changed, 862 insertions(+), 121 deletions(-) diff --git a/e2e-test/src/main/java/org/alfresco/search/TestGroup.java b/e2e-test/src/main/java/org/alfresco/search/TestGroup.java index 5155b8bd5..3e981287f 100644 --- a/e2e-test/src/main/java/org/alfresco/search/TestGroup.java +++ b/e2e-test/src/main/java/org/alfresco/search/TestGroup.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2018 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.search; public class TestGroup diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/AbstractE2EFunctionalTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/AbstractE2EFunctionalTest.java index 71fdba621..6f377f23a 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/AbstractE2EFunctionalTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/AbstractE2EFunctionalTest.java @@ -1,9 +1,29 @@ /* - * Copyright 2019 Alfresco Software, Ltd. All rights reserved. - * License rights for this program may be obtained from Alfresco Software, Ltd. - * pursuant to a written agreement and any use of this program without such an - * agreement is prohibited. + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional; import static java.util.Optional.ofNullable; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/AbstractCmisE2ETest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/AbstractCmisE2ETest.java index f096c15ff..2d4eb2367 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/AbstractCmisE2ETest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/AbstractCmisE2ETest.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.functional.searchServices.cmis; import java.lang.reflect.Method; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByAspectTests.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByAspectTests.java index 0fe47d474..9cfca22f7 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByAspectTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByAspectTests.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.functional.searchServices.cmis; import org.alfresco.search.TestGroup; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByIdTests.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByIdTests.java index 3a52c75dd..dd9b27723 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByIdTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByIdTests.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.functional.searchServices.cmis; import org.alfresco.search.TestGroup; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPathTests.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPathTests.java index a9dc4e4a7..d135a14dc 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPathTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPathTests.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.functional.searchServices.cmis; import org.alfresco.search.TestGroup; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPropertyTests.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPropertyTests.java index 9b6ad81e7..8f5c6d3c3 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPropertyTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchByPropertyTests.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.functional.searchServices.cmis; import java.util.List; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInFolderTests.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInFolderTests.java index bc903f30d..3a585d81c 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInFolderTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInFolderTests.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.functional.searchServices.cmis; import org.alfresco.utility.Utility; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInTreeTests.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInTreeTests.java index 1be2a268e..ca455cc44 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInTreeTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchInTreeTests.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.functional.searchServices.cmis; import org.alfresco.search.TestGroup; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchScoreQueryTests.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchScoreQueryTests.java index 847c5bc1b..7b78557e3 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchScoreQueryTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SolrSearchScoreQueryTests.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.functional.searchServices.cmis; import java.math.BigDecimal; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SorlSearchSimpleQueryTests.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SorlSearchSimpleQueryTests.java index 3c2cdc617..9d14a0b79 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SorlSearchSimpleQueryTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/cmis/SorlSearchSimpleQueryTests.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.functional.searchServices.cmis; import org.testng.annotations.Test; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/sanity/SetupTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/sanity/SetupTest.java index 01b8cdadb..6930c7670 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/sanity/SetupTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/sanity/SetupTest.java @@ -1,8 +1,27 @@ /* - * Copyright 2018 Alfresco Software, Ltd. All rights reserved. - * License rights for this program may be obtained from Alfresco Software, Ltd. - * pursuant to a written agreement and any use of this program without such an - * agreement is prohibited. + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% */ package org.alfresco.test.search.functional.searchServices.sanity; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java index 9c01c7d9c..4ebb66e9f 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/AbstractSearchServicesE2ETest.java @@ -1,17 +1,29 @@ /* - * Copyright (C) 2018 Alfresco Software Limited. - * This file is part of Alfresco + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; import org.alfresco.test.search.functional.AbstractE2EFunctionalTest; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ExplicitRoutingTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ExplicitRoutingTest.java index 576bfacfb..51430f28f 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ExplicitRoutingTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ExplicitRoutingTest.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.functional.searchServices.search; import org.alfresco.search.TestGroup; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetFieldsSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetFieldsSearchTest.java index f6bf50849..7d0d275e4 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetFieldsSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetFieldsSearchTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; import javax.json.Json; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetIntervalSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetIntervalSearchTest.java index 5639022ec..d50abfa33 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetIntervalSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetIntervalSearchTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2017 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; import org.alfresco.rest.model.RestErrorModel; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java index 8614deb4d..9688d564e 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetRangeSearchTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2017 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; import static org.hamcrest.MatcherAssert.assertThat; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetedSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetedSearchTest.java index 0da2b5ebc..aea0728fb 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetedSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FacetedSearchTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2018 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; import java.util.ArrayList; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FieldDefinitionTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FieldDefinitionTest.java index bae7bd1ca..bb38e667d 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FieldDefinitionTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FieldDefinitionTest.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.functional.searchServices.search; import org.alfresco.rest.search.SearchResponse; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FingerPrintTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FingerPrintTest.java index ac07b7718..688563809 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FingerPrintTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/FingerPrintTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2018 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; import static jersey.repackaged.com.google.common.collect.Sets.newHashSet; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/PivotFacetedSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/PivotFacetedSearchTest.java index 8bba9f7b0..d543961ac 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/PivotFacetedSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/PivotFacetedSearchTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2017 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; import java.time.LocalDateTime; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchAFTSInFieldTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchAFTSInFieldTest.java index 1ce552969..6fc22c2f3 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchAFTSInFieldTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchAFTSInFieldTest.java @@ -1,8 +1,27 @@ /* - * Copyright 2019 Alfresco Software, Ltd. All rights reserved. - * License rights for this program may be obtained from Alfresco Software, Ltd. - * pursuant to a written agreement and any use of this program without such an - * agreement is prohibited. + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% */ package org.alfresco.test.search.functional.searchServices.search; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchAPATHTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchAPATHTest.java index 95df381d7..413fd3fe5 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchAPATHTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchAPATHTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2018 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java index 83246e4ee..678db8aa8 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchHighLightTest.java @@ -1,17 +1,29 @@ /* - * Copyright (C) 2017 Alfresco Software Limited. - * This file is part of Alfresco + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; import java.util.ArrayList; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchPermissionsTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchPermissionsTest.java index f2b79e547..3f9754831 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchPermissionsTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchPermissionsTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2020 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; import javax.json.Json; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchQueryPaginationTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchQueryPaginationTest.java index 3e52c121c..7a90de3fd 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchQueryPaginationTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchQueryPaginationTest.java @@ -1,8 +1,27 @@ /* - * Copyright 2019 Alfresco Software, Ltd. All rights reserved. - * License rights for this program may be obtained from Alfresco Software, Ltd. - * pursuant to a written agreement and any use of this program without such an - * agreement is prohibited. + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% */ package org.alfresco.test.search.functional.searchServices.search; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchSecondaryAssociationTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchSecondaryAssociationTest.java index c9e0e0dcf..5ccbd3ea0 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchSecondaryAssociationTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchSecondaryAssociationTest.java @@ -1,8 +1,27 @@ /* - * Copyright 2019 Alfresco Software, Ltd. All rights reserved. - * License rights for this program may be obtained from Alfresco Software, Ltd. - * pursuant to a written agreement and any use of this program without such an - * agreement is prohibited. + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% */ package org.alfresco.test.search.functional.searchServices.search; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchSpellCheckTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchSpellCheckTest.java index 3fd535335..86e17ec6a 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchSpellCheckTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchSpellCheckTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2018 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; import org.alfresco.dataprep.SiteService.Visibility; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchTest.java index 72c6ab684..3ecf2d9e2 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2018 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; import static java.util.Arrays.asList; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchWithCustomModelTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchWithCustomModelTest.java index f50c4174f..cce905976 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchWithCustomModelTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchWithCustomModelTest.java @@ -1,8 +1,27 @@ /* - * Copyright 2019 Alfresco Software, Ltd. All rights reserved. - * License rights for this program may be obtained from Alfresco Software, Ltd. - * pursuant to a written agreement and any use of this program without such an - * agreement is prohibited. + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% */ package org.alfresco.test.search.functional.searchServices.search; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java index 4a0cb1b39..669dc15da 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/ShardInfoTest.java @@ -1,17 +1,29 @@ /* - * Copyright (C) 2005-2018 Alfresco Software Limited. - * This file is part of Alfresco + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; import org.testng.annotations.Test; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SpecialCharacterSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SpecialCharacterSearchTest.java index 226e39b3c..4c6a5e6e2 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SpecialCharacterSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SpecialCharacterSearchTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2019 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; import org.alfresco.test.search.functional.AbstractE2EFunctionalTest; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/StatsSearchTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/StatsSearchTest.java index 0236fb1ed..074282697 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/StatsSearchTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/StatsSearchTest.java @@ -1,21 +1,29 @@ /* - * Copyright (C) 2017 Alfresco Software Limited. - * - * This file is part of Alfresco - * + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search; import static org.testng.Assert.assertEquals; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/tracker/CascadingIntegrationTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/tracker/CascadingIntegrationTest.java index 84570427f..cec58be0f 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/tracker/CascadingIntegrationTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/tracker/CascadingIntegrationTest.java @@ -1,9 +1,29 @@ /* - * Copyright 2019 Alfresco Software, Ltd. All rights reserved. - * License rights for this program may be obtained from Alfresco Software, Ltd. - * pursuant to a written agreement and any use of this program without such an - * agreement is prohibited. + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.search.tracker; import java.util.List; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/SearchSolrAPITest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/SearchSolrAPITest.java index 1d7bc2522..85b0d19c0 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/SearchSolrAPITest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/SearchSolrAPITest.java @@ -1,17 +1,29 @@ /* - * Copyright (C) 2018 Alfresco Software Limited. - * This file is part of Alfresco + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.solr; import javax.json.JsonArrayBuilder; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/admin/SolrE2eAdminTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/admin/SolrE2eAdminTest.java index 20666ad8c..b82f25b0e 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/admin/SolrE2eAdminTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/admin/SolrE2eAdminTest.java @@ -1,17 +1,29 @@ /* - * Copyright (C) 2020 Alfresco Software Limited. - * This file is part of Alfresco + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * * Alfresco is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. + * * Alfresco is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. + * * You should have received a copy of the GNU Lesser General Public License * along with Alfresco. If not, see . + * #L% */ + package org.alfresco.test.search.functional.searchServices.solr.admin; import java.util.ArrayList; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/AbstractBackupE2ETest.java b/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/AbstractBackupE2ETest.java index 251dc4c57..8ef3fef2d 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/AbstractBackupE2ETest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/AbstractBackupE2ETest.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.nonFunctional.backup; import java.io.File; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/SearchServicesOnBackupTests.java b/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/SearchServicesOnBackupTests.java index 6ae928d72..663370096 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/SearchServicesOnBackupTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/SearchServicesOnBackupTests.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.nonFunctional.backup; import org.testng.annotations.Test; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/SearchServicesPostBackupTests.java b/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/SearchServicesPostBackupTests.java index 4bd434480..774b96b8d 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/SearchServicesPostBackupTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/SearchServicesPostBackupTests.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.nonFunctional.backup; import org.testng.annotations.Test; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/SearchServicesPreBackupTests.java b/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/SearchServicesPreBackupTests.java index 78775bade..3371c07f0 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/SearchServicesPreBackupTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/backup/SearchServicesPreBackupTests.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.nonFunctional.backup; import static org.hamcrest.MatcherAssert.assertThat; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/upgrade/AbstractUpgradeE2ETest.java b/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/upgrade/AbstractUpgradeE2ETest.java index 59f618e9f..9e24de781 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/upgrade/AbstractUpgradeE2ETest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/upgrade/AbstractUpgradeE2ETest.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.nonFunctional.upgrade; import org.alfresco.cmis.CmisWrapper; diff --git a/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/upgrade/SearchServiceUpgradeTests.java b/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/upgrade/SearchServiceUpgradeTests.java index d332f5380..b672fc320 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/upgrade/SearchServiceUpgradeTests.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/nonFunctional/upgrade/SearchServiceUpgradeTests.java @@ -1,3 +1,29 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + package org.alfresco.test.search.nonFunctional.upgrade; import org.alfresco.utility.LogFactory; From e239cc89c52db402a2157aa0958c3b688086d09a Mon Sep 17 00:00:00 2001 From: Tom Page Date: Wed, 13 May 2020 15:40:26 +0100 Subject: [PATCH 07/65] SEARCH-2254 Use latest base image. The previous one had a default expiry of two weeks. --- search-services/packaging/src/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/search-services/packaging/src/docker/Dockerfile b/search-services/packaging/src/docker/Dockerfile index 89462d717..453f1fcc8 100644 --- a/search-services/packaging/src/docker/Dockerfile +++ b/search-services/packaging/src/docker/Dockerfile @@ -1,6 +1,6 @@ # Alfresco Search Services ${project.version} Docker Image -FROM alfresco/alfresco-base-java:11.0.7-openjdk-centos-7-145f5d28c8ca +FROM alfresco/alfresco-base-java:11.0.7-openjdk-centos-7-480e2906d08a LABEL creator="Gethin James" maintainer="Alfresco Search Services Team" ENV DIST_DIR /opt/alfresco-search-services From 10439647770b8b6e6c0d51ef69dca5a0ceb469af Mon Sep 17 00:00:00 2001 From: agazzarini Date: Wed, 13 May 2020 17:35:14 +0200 Subject: [PATCH 08/65] [ SEARCH-2151 ] Tidy up RewriteFieldListComponent --- .../component/RewriteFieldListComponent.java | 32 ++++++++----------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFieldListComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFieldListComponent.java index 22240edee..a79f8c8b5 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFieldListComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFieldListComponent.java @@ -18,35 +18,30 @@ */ package org.alfresco.solr.component; +import static java.util.Optional.ofNullable; + import org.alfresco.solr.AlfrescoSolrDataModel; +import org.apache.solr.common.params.CommonParams; import org.apache.solr.common.params.ModifiableSolrParams; import org.apache.solr.common.params.SolrParams; import org.apache.solr.handler.component.ResponseBuilder; import org.apache.solr.handler.component.SearchComponent; import org.apache.solr.request.SolrQueryRequest; +import org.apache.solr.response.transform.DocTransformer; import org.apache.solr.search.SolrReturnFields; -import java.io.IOException; import java.util.HashSet; -import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; -import static java.util.Optional.ofNullable; -import static org.alfresco.solr.AlfrescoSolrDataModel.FieldUse.FACET; -import static org.alfresco.solr.AlfrescoSolrDataModel.FieldUse.FTS; -import static org.alfresco.solr.AlfrescoSolrDataModel.FieldUse.ID; -import static org.alfresco.solr.AlfrescoSolrDataModel.FieldUse.SORT; - -/** - * @Author elia - */ - /** * Transform the fieldlist depending on the use of cached transformer: * [cached] -> add to the field list the translations of the fiels to the internal schema notation * otherwise -> modify the field list in order to contains a subset of the following fields: * id, DBID, _version_ and score + * + * @author eporciani */ public class RewriteFieldListComponent extends SearchComponent { @@ -67,7 +62,7 @@ public class RewriteFieldListComponent extends SearchComponent { String originalFieldList = req.getParams().get("fl"); boolean cacheTransformer = ofNullable(solrReturnFields.getTransformer()) - .map(t -> t.getName()) + .map(DocTransformer::getName) .map(name -> name.contains("fmap")) .orElse(false); @@ -81,7 +76,7 @@ public class RewriteFieldListComponent extends SearchComponent { { fieldListSet.addAll(solrReturnFields.getLuceneFieldNames() .stream() - .filter(field -> allowedNonCachedFields.contains(field)) + .filter(allowedNonCachedFields::contains) .collect(Collectors.toSet())); } @@ -90,7 +85,7 @@ public class RewriteFieldListComponent extends SearchComponent { fieldListSet.addAll(defaultNonCachedFields); } - params.set("fl", fieldListSet.stream().collect(Collectors.joining(","))); + params.set(CommonParams.FL, String.join(",", fieldListSet)); } else { @@ -101,9 +96,8 @@ public class RewriteFieldListComponent extends SearchComponent { else { fieldListSet.addAll(solrReturnFields.getLuceneFieldNames().stream() - .map( field -> AlfrescoSolrDataModel.getInstance() - .mapStoredProperty(field, req)) - .filter(schemaFieldName -> schemaFieldName != null) + .map( field -> AlfrescoSolrDataModel.getInstance().mapStoredProperty(field, req)) + .filter(Objects::nonNull) .map(schemaFieldName -> schemaFieldName.chars() .mapToObj(c -> (char) c) .map(c -> Character.isJavaIdentifierPart(c)? c : '?') @@ -112,7 +106,7 @@ public class RewriteFieldListComponent extends SearchComponent { .collect(Collectors.toSet())); } - params.add("fl", fieldListSet.stream().collect(Collectors.joining(","))); + params.add(CommonParams.FL, String.join(",", fieldListSet)); } // This is added for filtering the fields in the cached transformer. From 5ef703e42388e9a0b25397c49e3ca59cebeecd97 Mon Sep 17 00:00:00 2001 From: Keerat Date: Wed, 13 May 2020 17:12:54 +0100 Subject: [PATCH 09/65] SEARCH-2249 Fixing the format of the plugin in the parent pom --- pom.xml | 70 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/pom.xml b/pom.xml index 18b2f7899..2331aa6a0 100644 --- a/pom.xml +++ b/pom.xml @@ -71,41 +71,41 @@ alphabetical - - org.codehaus.mojo - license-maven-plugin - - false - Alfresco Software Limited - true - true - classpath://alfresco - ${licenseName} - - src - - - **/*.java - **/*.jsp - - - - - check-licenses - compile - - check-file-header - - - - - - org.alfresco - alfresco-license-headers - 1.0 - - - + + org.codehaus.mojo + license-maven-plugin + + false + Alfresco Software Limited + true + true + classpath://alfresco + ${licenseName} + + src + + + **/*.java + **/*.jsp + + + + + check-licenses + compile + + check-file-header + + + + + + org.alfresco + alfresco-license-headers + 1.0 + + + From 112a8897a838161a93aa540e3d94a2362e17f3ed Mon Sep 17 00:00:00 2001 From: Keerat Date: Wed, 13 May 2020 17:18:42 +0100 Subject: [PATCH 10/65] SEARCH-2249 Fixing the format of the plugin in the parent pom --- pom.xml | 64 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/pom.xml b/pom.xml index 2331aa6a0..be238c9f2 100644 --- a/pom.xml +++ b/pom.xml @@ -73,38 +73,38 @@ org.codehaus.mojo - license-maven-plugin - - false - Alfresco Software Limited - true - true - classpath://alfresco - ${licenseName} - - src - - - **/*.java - **/*.jsp - - - - - check-licenses - compile - - check-file-header - - - - - - org.alfresco - alfresco-license-headers - 1.0 - - + license-maven-plugin + + false + Alfresco Software Limited + true + true + classpath://alfresco + ${licenseName} + + src + + + **/*.java + **/*.jsp + + + + + check-licenses + compile + + check-file-header + + + + + + org.alfresco + alfresco-license-headers + 1.0 + + From f2e8517ca638867c10c08d525dfced69e72106ec Mon Sep 17 00:00:00 2001 From: bamboo_auth Date: Thu, 14 May 2020 07:48:05 +0000 Subject: [PATCH 11/65] [maven-release-plugin] prepare release 2.0.0-A1 --- e2e-test/pom.xml | 9 ++++----- pom.xml | 4 ++-- search-services/alfresco-search/pom.xml | 4 ++-- search-services/alfresco-solrclient-lib/pom.xml | 2 +- search-services/packaging/pom.xml | 2 +- search-services/pom.xml | 4 ++-- 6 files changed, 12 insertions(+), 13 deletions(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index 8c6540d6b..a7dd218c3 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -1,10 +1,9 @@ - + 4.0.0 org.alfresco alfresco-search-and-insight-parent - 2.0.0-SNAPSHOT + 2.0.0-A1 search-analytics-e2e-test search-analytics-e2e-test @@ -16,8 +15,8 @@ 3.0.20 3.3.0.1 src/test/resources/SearchSuite.xml - - + + 2.7.7 community diff --git a/pom.xml b/pom.xml index be238c9f2..60e1f60ac 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ 10 alfresco-search-and-insight-parent - 2.0.0-SNAPSHOT + 2.0.0-A1 pom Alfresco Search And Insight Parent @@ -24,7 +24,7 @@ scm:git:https://git.alfresco.com/search_discovery/insightengine.git scm:git:https://git.alfresco.com/search_discovery/insightengine.git https://git.alfresco.com/search_discovery/insightengine.git - HEAD + 2.0.0-A1 11 diff --git a/search-services/alfresco-search/pom.xml b/search-services/alfresco-search/pom.xml index 091ce549a..688f37656 100644 --- a/search-services/alfresco-search/pom.xml +++ b/search-services/alfresco-search/pom.xml @@ -6,7 +6,7 @@ org.alfresco alfresco-search-parent - 2.0.0-SNAPSHOT + 2.0.0-A1 ../pom.xml @@ -15,7 +15,7 @@ org.alfresco alfresco-solrclient-lib - 2.0.0-SNAPSHOT + 2.0.0-A1 servlet-api diff --git a/search-services/alfresco-solrclient-lib/pom.xml b/search-services/alfresco-solrclient-lib/pom.xml index 93e7d0695..e26ed5df6 100644 --- a/search-services/alfresco-solrclient-lib/pom.xml +++ b/search-services/alfresco-solrclient-lib/pom.xml @@ -7,7 +7,7 @@ org.alfresco alfresco-search-parent - 2.0.0-SNAPSHOT + 2.0.0-A1 diff --git a/search-services/packaging/pom.xml b/search-services/packaging/pom.xml index 7d42ed0b7..564ba3f08 100644 --- a/search-services/packaging/pom.xml +++ b/search-services/packaging/pom.xml @@ -13,7 +13,7 @@ org.alfresco alfresco-search-parent - 2.0.0-SNAPSHOT + 2.0.0-A1 ../pom.xml diff --git a/search-services/pom.xml b/search-services/pom.xml index 4d2570772..68022e176 100644 --- a/search-services/pom.xml +++ b/search-services/pom.xml @@ -4,13 +4,13 @@ org.alfresco alfresco-search-and-insight-parent - 2.0.0-SNAPSHOT + 2.0.0-A1 org.alfresco alfresco-search-parent - 2.0.0-SNAPSHOT + 2.0.0-A1 pom Alfresco Solr Search parent From a149509a2314d2cce70cc83032fea598f9ed3c36 Mon Sep 17 00:00:00 2001 From: bamboo_auth Date: Thu, 14 May 2020 07:48:08 +0000 Subject: [PATCH 12/65] [maven-release-plugin] prepare for next development iteration --- e2e-test/pom.xml | 2 +- pom.xml | 4 ++-- search-services/alfresco-search/pom.xml | 4 ++-- search-services/alfresco-solrclient-lib/pom.xml | 2 +- search-services/packaging/pom.xml | 2 +- search-services/pom.xml | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index a7dd218c3..e80a0558e 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -3,7 +3,7 @@ org.alfresco alfresco-search-and-insight-parent - 2.0.0-A1 + 2.0.0-SNAPSHOT search-analytics-e2e-test search-analytics-e2e-test diff --git a/pom.xml b/pom.xml index 60e1f60ac..be238c9f2 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ 10 alfresco-search-and-insight-parent - 2.0.0-A1 + 2.0.0-SNAPSHOT pom Alfresco Search And Insight Parent @@ -24,7 +24,7 @@ scm:git:https://git.alfresco.com/search_discovery/insightengine.git scm:git:https://git.alfresco.com/search_discovery/insightengine.git https://git.alfresco.com/search_discovery/insightengine.git - 2.0.0-A1 + HEAD 11 diff --git a/search-services/alfresco-search/pom.xml b/search-services/alfresco-search/pom.xml index 688f37656..091ce549a 100644 --- a/search-services/alfresco-search/pom.xml +++ b/search-services/alfresco-search/pom.xml @@ -6,7 +6,7 @@ org.alfresco alfresco-search-parent - 2.0.0-A1 + 2.0.0-SNAPSHOT ../pom.xml @@ -15,7 +15,7 @@ org.alfresco alfresco-solrclient-lib - 2.0.0-A1 + 2.0.0-SNAPSHOT servlet-api diff --git a/search-services/alfresco-solrclient-lib/pom.xml b/search-services/alfresco-solrclient-lib/pom.xml index e26ed5df6..93e7d0695 100644 --- a/search-services/alfresco-solrclient-lib/pom.xml +++ b/search-services/alfresco-solrclient-lib/pom.xml @@ -7,7 +7,7 @@ org.alfresco alfresco-search-parent - 2.0.0-A1 + 2.0.0-SNAPSHOT diff --git a/search-services/packaging/pom.xml b/search-services/packaging/pom.xml index 564ba3f08..7d42ed0b7 100644 --- a/search-services/packaging/pom.xml +++ b/search-services/packaging/pom.xml @@ -13,7 +13,7 @@ org.alfresco alfresco-search-parent - 2.0.0-A1 + 2.0.0-SNAPSHOT ../pom.xml diff --git a/search-services/pom.xml b/search-services/pom.xml index 68022e176..4d2570772 100644 --- a/search-services/pom.xml +++ b/search-services/pom.xml @@ -4,13 +4,13 @@ org.alfresco alfresco-search-and-insight-parent - 2.0.0-A1 + 2.0.0-SNAPSHOT org.alfresco alfresco-search-parent - 2.0.0-A1 + 2.0.0-SNAPSHOT pom Alfresco Solr Search parent From caa4a66e59bbf1a5e27d3653f4831bc92fa1c1da Mon Sep 17 00:00:00 2001 From: Tom Page Date: Thu, 14 May 2020 10:43:12 +0100 Subject: [PATCH 13/65] SEARCH-2249 Allow automated updates to the copyright headers. This can be done with the command: mvn clean install -Dlicense.update.dryrun=false -DskipTests=true --- pom.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index be238c9f2..ac7e92625 100644 --- a/pom.xml +++ b/pom.xml @@ -36,6 +36,7 @@ https://artifacts.alfresco.com/nexus/content/repositories/public/org/apache/solr/solr/solr-${solr.version}/solr-solr-${solr.version}.zip ${project.build.directory}/solr-${solr.version} enterprise + true search-services @@ -77,10 +78,12 @@ false Alfresco Software Limited + true true true classpath://alfresco ${licenseName} + ${license.update.dryrun} src @@ -94,7 +97,7 @@ check-licenses compile - check-file-header + update-file-header From 1d39e1ae48568f81bab6f8563bfa5cb254a6be40 Mon Sep 17 00:00:00 2001 From: eliaporciani Date: Fri, 15 May 2020 11:39:47 +0200 Subject: [PATCH 14/65] [SEARCH-2166] changes for making work date derived fields in search and fl statement --- .../alfresco/solr/AlfrescoSolrDataModel.java | 46 +++++++++++++++---- .../component/RewriteFieldListComponent.java | 18 ++++---- .../alfresco/solr/query/Solr4QueryParser.java | 11 +++++ 3 files changed, 59 insertions(+), 16 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java index b6c574b25..c7a2bfcab 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java @@ -108,6 +108,12 @@ import org.springframework.beans.BeansException; import org.springframework.context.support.FileSystemXmlApplicationContext; import static java.util.Optional.ofNullable; +import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_DAY_FIELD_SUFFIX; +import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_HOUR_FIELD_SUFFIX; +import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_MINUTE_FIELD_SUFFIX; +import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_MONTH_FIELD_SUFFIX; +import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_SECOND_FIELD_SUFFIX; +import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_YEAR_FIELD_SUFFIX; /** * @author Andy @@ -1027,6 +1033,12 @@ public class AlfrescoSolrDataModel implements QueryConstants } + public String getDateDerivedFIeld(QName propertyQName) + { + PropertyDefinition propertyDefinition = getPropertyDefinition(propertyQName); + return "part@sd@" + propertyDefinition.getName().toString(); + } + /** * Get all the field names into which we must copy the source data @@ -1626,28 +1638,46 @@ public class AlfrescoSolrDataModel implements QueryConstants } } - if (propertyDef == null || propertyDef.getName() == null){ + if (propertyDef == null || propertyDef.getName() == null) + { return mapNonPropertyFields(luceneField); } - if (propertyDef.getName().equals(DataTypeDefinition.TEXT)) + if ((propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME) + || propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE) && + !isDerivedDateField(fieldNameAndEnding.getSecond()))) { - return getStoredTextField(propertyDef.getName()); + return getDateDerivedFIeld(propertyDef.getName()) + fieldNameAndEnding.getSecond(); } - else if (propertyDef.getName().equals(DataTypeDefinition.MLTEXT)) + else if (propertyDef.getDataType().getName().equals(DataTypeDefinition.TEXT)) { - return getStoredMLTextField(propertyDef.getName()); + return getStoredTextField(propertyDef.getName()) + fieldNameAndEnding.getSecond(); } - else if (propertyDef.getName().equals(DataTypeDefinition.CONTENT)) + else if (propertyDef.getDataType().getName().equals(DataTypeDefinition.MLTEXT)) { - return getStoredContentField(propertyDef.getName()); + return getStoredMLTextField(propertyDef.getName()) + fieldNameAndEnding.getSecond(); + } + else if (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT)) + { + return getStoredContentField(propertyDef.getName()) + fieldNameAndEnding.getSecond(); } else { - return mapAlfrescoField(FieldUse.FTS, 0, fieldNameAndEnding, luceneField, propertyDef); + return mapAlfrescoField(FieldUse.FTS, 0, fieldNameAndEnding, luceneField, propertyDef) + + fieldNameAndEnding.getSecond(); } } + public boolean isDerivedDateField(String suffix) { + return Set.of(UNIT_OF_TIME_YEAR_FIELD_SUFFIX, + UNIT_OF_TIME_MONTH_FIELD_SUFFIX, + UNIT_OF_TIME_DAY_FIELD_SUFFIX, + UNIT_OF_TIME_HOUR_FIELD_SUFFIX, + UNIT_OF_TIME_MINUTE_FIELD_SUFFIX, + UNIT_OF_TIME_SECOND_FIELD_SUFFIX).contains(suffix); + } + + public String mapProperty(String potentialProperty, FieldUse fieldUse, SolrQueryRequest req, int position) { if(potentialProperty.equals("asc") || potentialProperty.equals("desc") || potentialProperty.equals("_docid_")) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFieldListComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFieldListComponent.java index a79f8c8b5..42e569e92 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFieldListComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/RewriteFieldListComponent.java @@ -18,10 +18,7 @@ */ package org.alfresco.solr.component; -import static java.util.Optional.ofNullable; - import org.alfresco.solr.AlfrescoSolrDataModel; -import org.apache.solr.common.params.CommonParams; import org.apache.solr.common.params.ModifiableSolrParams; import org.apache.solr.common.params.SolrParams; import org.apache.solr.handler.component.ResponseBuilder; @@ -35,13 +32,17 @@ import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; +import static java.util.Optional.ofNullable; + +/** + * @Author elia + */ + /** * Transform the fieldlist depending on the use of cached transformer: * [cached] -> add to the field list the translations of the fiels to the internal schema notation * otherwise -> modify the field list in order to contains a subset of the following fields: * id, DBID, _version_ and score - * - * @author eporciani */ public class RewriteFieldListComponent extends SearchComponent { @@ -85,7 +86,7 @@ public class RewriteFieldListComponent extends SearchComponent { fieldListSet.addAll(defaultNonCachedFields); } - params.set(CommonParams.FL, String.join(",", fieldListSet)); + params.set("fl", String.join(",", fieldListSet)); } else { @@ -96,7 +97,8 @@ public class RewriteFieldListComponent extends SearchComponent { else { fieldListSet.addAll(solrReturnFields.getLuceneFieldNames().stream() - .map( field -> AlfrescoSolrDataModel.getInstance().mapStoredProperty(field, req)) + .map( field -> AlfrescoSolrDataModel.getInstance() + .mapStoredProperty(field, req)) .filter(Objects::nonNull) .map(schemaFieldName -> schemaFieldName.chars() .mapToObj(c -> (char) c) @@ -106,7 +108,7 @@ public class RewriteFieldListComponent extends SearchComponent { .collect(Collectors.toSet())); } - params.add(CommonParams.FL, String.join(",", fieldListSet)); + params.add("fl", String.join(",", fieldListSet)); } // This is added for filtering the fields in the cached transformer. diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java index 3d46c0d48..84d8dc9c0 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java @@ -4217,6 +4217,17 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants } } + else if (AlfrescoSolrDataModel.getInstance().isDerivedDateField(fieldNameAndEnding.getSecond())) + { + if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE) + || propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME ))) + { + return subQueryBuilder.getQuery( + AlfrescoSolrDataModel.getInstance() + .getDateDerivedFIeld(propertyQName) + fieldNameAndEnding.getSecond(), + queryText, analysisMode, luceneFunction); + } + } // Already in expanded form From ce77d56301933fc2c8ce45799df89cb532e37381 Mon Sep 17 00:00:00 2001 From: agazzarini Date: Mon, 18 May 2020 09:11:01 +0200 Subject: [PATCH 15/65] [ SEARCH-2151 ] Wrong boolean check on date fields --- .../java/org/alfresco/solr/AlfrescoSolrDataModel.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java index c7a2bfcab..126c8a91d 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java @@ -1033,7 +1033,7 @@ public class AlfrescoSolrDataModel implements QueryConstants } - public String getDateDerivedFIeld(QName propertyQName) + public String getDateDerivedField(QName propertyQName) { PropertyDefinition propertyDefinition = getPropertyDefinition(propertyQName); return "part@sd@" + propertyDefinition.getName().toString(); @@ -1644,10 +1644,10 @@ public class AlfrescoSolrDataModel implements QueryConstants } if ((propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME) - || propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE) && - !isDerivedDateField(fieldNameAndEnding.getSecond()))) + || propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE)) && + isDerivedDateField(fieldNameAndEnding.getSecond())) { - return getDateDerivedFIeld(propertyDef.getName()) + fieldNameAndEnding.getSecond(); + return getDateDerivedField(propertyDef.getName()) + fieldNameAndEnding.getSecond(); } else if (propertyDef.getDataType().getName().equals(DataTypeDefinition.TEXT)) { From f6a10e4ec331a203031aa3c369db7aef915c9079 Mon Sep 17 00:00:00 2001 From: agazzarini Date: Mon, 18 May 2020 09:11:38 +0200 Subject: [PATCH 16/65] [ SEARCH-2151 ] Wrong method name --- .../src/main/java/org/alfresco/solr/query/Solr4QueryParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java index 84d8dc9c0..22b198b52 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java @@ -4224,7 +4224,7 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants { return subQueryBuilder.getQuery( AlfrescoSolrDataModel.getInstance() - .getDateDerivedFIeld(propertyQName) + fieldNameAndEnding.getSecond(), + .getDateDerivedField(propertyQName) + fieldNameAndEnding.getSecond(), queryText, analysisMode, luceneFunction); } } From 548b7ec49069d955d77696f11cb36bf012c3a07f Mon Sep 17 00:00:00 2001 From: eliaporciani Date: Mon, 18 May 2020 20:11:23 +0200 Subject: [PATCH 17/65] [SEARCH-2166] managed faceting with derived date fields --- .../alfresco/solr/AlfrescoSolrDataModel.java | 43 ++++++++++++++++--- .../alfresco/solr/query/Solr4QueryParser.java | 4 +- 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java index 798c28a5e..0c02553a3 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java @@ -954,8 +954,12 @@ public class AlfrescoSolrDataModel implements QueryConstants } } - public String getStoredTextField(QName propertyQName) + { + return getStoredTextField(propertyQName, null); + } + + public String getStoredTextField(QName propertyQName, String suffix) { PropertyDefinition propertyDefinition = getPropertyDefinition(propertyQName); @@ -981,11 +985,21 @@ public class AlfrescoSolrDataModel implements QueryConstants sb.append("@"); sb.append(propertyDefinition.getName().toString()); + if (suffix != null) + { + sb.append(suffix); + } + return sb.toString(); } public String getStoredMLTextField(QName propertyQName) + { + return getStoredMLTextField(propertyQName, null); + } + + public String getStoredMLTextField(QName propertyQName, String suffix) { PropertyDefinition propertyDefinition = getPropertyDefinition(propertyQName); @@ -1009,11 +1023,21 @@ public class AlfrescoSolrDataModel implements QueryConstants sb.append("@"); sb.append(propertyDefinition.getName().toString()); + if (suffix != null) + { + sb.append(suffix); + } + return sb.toString(); } public String getStoredContentField(QName propertyQName) + { + return getStoredContentField(propertyQName, null); + } + + public String getStoredContentField(QName propertyQName, String suffix) { PropertyDefinition propertyDefinition = getPropertyDefinition(propertyQName); @@ -1037,14 +1061,19 @@ public class AlfrescoSolrDataModel implements QueryConstants sb.append("@"); sb.append(propertyDefinition.getName().toString()); + if (suffix != null) + { + sb.append(suffix); + } + return sb.toString(); } - public String getDateDerivedField(QName propertyQName) + public String getDateDerivedField(QName propertyQName, String suffix) { PropertyDefinition propertyDefinition = getPropertyDefinition(propertyQName); - return "part@sd@" + propertyDefinition.getName().toString(); + return "part@sd@" + propertyDefinition.getName().toString() + suffix; } @@ -1655,19 +1684,19 @@ public class AlfrescoSolrDataModel implements QueryConstants || propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE)) && isDerivedDateField(fieldNameAndEnding.getSecond())) { - return getDateDerivedField(propertyDef.getName()) + fieldNameAndEnding.getSecond(); + return getDateDerivedField(propertyDef.getName(), fieldNameAndEnding.getSecond()); } else if (propertyDef.getDataType().getName().equals(DataTypeDefinition.TEXT)) { - return getStoredTextField(propertyDef.getName()) + fieldNameAndEnding.getSecond(); + return getStoredTextField(propertyDef.getName(), fieldNameAndEnding.getSecond()); } else if (propertyDef.getDataType().getName().equals(DataTypeDefinition.MLTEXT)) { - return getStoredMLTextField(propertyDef.getName()) + fieldNameAndEnding.getSecond(); + return getStoredMLTextField(propertyDef.getName(), fieldNameAndEnding.getSecond()); } else if (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT)) { - return getStoredContentField(propertyDef.getName()) + fieldNameAndEnding.getSecond(); + return getStoredContentField(propertyDef.getName(), fieldNameAndEnding.getSecond()); } else { diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java index f89fd7a2b..c6765f5dd 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java @@ -4204,7 +4204,7 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants return subQueryBuilder .getQuery( AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyQName, ContentFieldType.TRANSFORMATION_TIME, + .getQueryableFields(propertyQName, ContentFieldType.TRANSFORMATION_TIME, FieldUse.ID) .getFields().get(0).getField(), queryText, analysisMode, luceneFunction); @@ -4232,7 +4232,7 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants { return subQueryBuilder.getQuery( AlfrescoSolrDataModel.getInstance() - .getDateDerivedField(propertyQName) + fieldNameAndEnding.getSecond(), + .getDateDerivedField(propertyQName, fieldNameAndEnding.getSecond()), queryText, analysisMode, luceneFunction); } } From 2fd8af72615244cf4673a7b4353093a910cbd4c3 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Tue, 19 May 2020 11:20:41 +0200 Subject: [PATCH 18/65] SEARCH-2252: Avoid to add fields declared as not indexed to SOLR Schema and to SOLR Index. --- .../model/indexing-disabled-content-model.xml | 31 ++++ .../search/SearchNonIndexedFields.java | 138 ++++++++++++++++++ .../alfresco/solr/SolrInformationServer.java | 92 ++++++------ 3 files changed, 219 insertions(+), 42 deletions(-) create mode 100644 e2e-test/src/main/resources/model/indexing-disabled-content-model.xml create mode 100644 e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchNonIndexedFields.java diff --git a/e2e-test/src/main/resources/model/indexing-disabled-content-model.xml b/e2e-test/src/main/resources/model/indexing-disabled-content-model.xml new file mode 100644 index 000000000..12e3bf645 --- /dev/null +++ b/e2e-test/src/main/resources/model/indexing-disabled-content-model.xml @@ -0,0 +1,31 @@ + + + + Indexed and Non Indexed field comparison + + + + + + + + + + + + + Sample + cm:content + + + d:text + + + d:text + + + + + + + diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchNonIndexedFields.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchNonIndexedFields.java new file mode 100644 index 000000000..3a051461e --- /dev/null +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchNonIndexedFields.java @@ -0,0 +1,138 @@ +/* + * #%L + * Alfresco Search Services E2E Test + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ +package org.alfresco.test.search.functional.searchServices.search; + +import java.util.HashMap; +import java.util.Map; + +import org.alfresco.rest.core.RestRequest; +import org.alfresco.rest.model.RestTextResponse; +import org.alfresco.rest.search.SearchResponse; +import org.alfresco.test.search.functional.AbstractE2EFunctionalTest; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.model.FileModel; +import org.alfresco.utility.model.FileType; +import org.alfresco.utility.model.FolderModel; +import org.apache.chemistry.opencmis.commons.PropertyIds; +import org.apache.chemistry.opencmis.commons.enums.VersioningState; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.testng.Assert; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +import io.restassured.RestAssured; + +/** + * Testing that fields declared as non indexed (index="true" in Alfresco Content Model) + * are not created in SOLR Schema and that are not stored in SOLR Index. + * + * @author aborroy + * + */ +public class SearchNonIndexedFields extends AbstractE2EFunctionalTest +{ + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + serverHealth.assertServerIsOnline(); + + deployCustomModel("model/indexing-disabled-content-model.xml"); + + dataUser.addUserToSite(testUser, testSite, UserRole.SiteContributor); + + FolderModel testFolder = dataContent.usingSite(testSite).usingUser(testUser).createFolder(); + + FileModel sampleFile = FileModel.getRandomFileModel(FileType.TEXT_PLAIN, "Sample"); + sampleFile.setName("in1-" + sampleFile.getName()); + + // One field indexed and one field not indexed + Map properties = new HashMap<>(); + properties.put(PropertyIds.OBJECT_TYPE_ID, "D:index:sample"); + properties.put(PropertyIds.NAME, sampleFile.getName()); + properties.put("index:indexed", "Indexed"); + properties.put("index:nonIndexed", "Not indexed"); + + cmisApi.authenticateUser(testUser).usingSite(testSite).usingResource(testFolder).createFile(sampleFile, properties, VersioningState.MAJOR) + .assertThat().existsInRepo(); + + sampleFile = FileModel.getRandomFileModel(FileType.TEXT_PLAIN, "Sample"); + sampleFile.setName("in2-" + sampleFile.getName()); + + // Only one field not indexed + properties = new HashMap<>(); + properties.put(PropertyIds.OBJECT_TYPE_ID, "D:index:sample"); + properties.put(PropertyIds.NAME, sampleFile.getName()); + properties.put("index:nonIndexed", "Not indexed"); + + cmisApi.authenticateUser(testUser).usingSite(testSite).usingResource(testFolder).createFile(sampleFile, properties, VersioningState.MAJOR) + .assertThat().existsInRepo(); + + waitForIndexing(sampleFile.getName(), true); + + } + + /** + * Test that non indexed fields are not stored in SOLR Index + */ + @Test(priority = 1) + public void testIndexedAndNonIndexedField() + { + SearchResponse response = queryAsUser(testUser, "index_indexed:[* TO *]"); + restClient.assertStatusCodeIs(HttpStatus.OK); + Assert.assertEquals(response.getPagination().getCount(), 1); + + response = queryAsUser(testUser, "index_nonIndexed:[* TO *]"); + restClient.assertStatusCodeIs(HttpStatus.OK); + Assert.assertEquals(response.getPagination().getCount(), 0); + + } + + /** + * Test that non indexed fields are not created in SOLR Schema + */ + @Test(priority = 2) + public void testNonIndexedDoesNotExist() + { + RestAssured.basePath = "solr/alfresco"; + + restClient.configureSolrEndPoint(); + restClient.configureRequestSpec().setBasePath(RestAssured.basePath); + + RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "admin/luke"); + RestTextResponse response = restClient.processTextResponse(request); + String bodyResponse = response.getResponse().getBody().print(); + + Assert.assertTrue(bodyResponse.contains("{http://www.alfresco.org/model/index/1.0}indexed"), + "Expecting index:indexed field to be present in SOLR Schema"); + Assert.assertTrue(!bodyResponse.contains("{http://www.alfresco.org/model/index/1.0}nonIndexed"), + "Expecting index:nonIndexed field NOT to be present in SOLR Schema"); + + } + + +} diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java index 165793132..ebe39eab5 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java @@ -2300,56 +2300,64 @@ public class SolrInformationServer implements InformationServer for (Entry property : properties.entrySet()) { + QName propertyQName = property.getKey(); - document.addField(FIELD_PROPERTIES, propertyQName.toString()); - document.addField(FIELD_PROPERTIES, propertyQName.getPrefixString()); - - PropertyValue value = property.getValue(); - if(value != null) + + // Skip adding Alfresco Fields declared as indexed="false" to SOLR Schema + if (dataModel.getPropertyDefinition(propertyQName).isIndexed()) { - if (value instanceof StringPropertyValue) + + document.addField(FIELD_PROPERTIES, propertyQName.toString()); + document.addField(FIELD_PROPERTIES, propertyQName.getPrefixString()); + + PropertyValue value = property.getValue(); + if(value != null) { - stringProperty(propertyQName, (StringPropertyValue) value, properties.get(ContentModel.PROP_LOCALE), setAndCollect); - } - else if (value instanceof MLTextPropertyValue) - { - mltextProperty(propertyQName,(MLTextPropertyValue) value, setAndCollect); - } - else if (value instanceof ContentPropertyValue) - { - addContentProperty(setAndCollect, document, propertyQName, (ContentPropertyValue) value, contentIndexingIsEnabled); - } - else if (value instanceof MultiPropertyValue) - { - MultiPropertyValue typedValue = (MultiPropertyValue) value; - AlfrescoSolrDataModel dataModel = AlfrescoSolrDataModel.getInstance(); - clearFields( - document, - dataModel.getIndexedFieldNamesForProperty(propertyQName).getFields() - .stream() - .map(FieldInstance::getField) - .collect(Collectors.toList())); - - for (PropertyValue singleValue : typedValue.getValues()) + if (value instanceof StringPropertyValue) { - if (singleValue instanceof StringPropertyValue) + stringProperty(propertyQName, (StringPropertyValue) value, properties.get(ContentModel.PROP_LOCALE), setAndCollect); + } + else if (value instanceof MLTextPropertyValue) + { + mltextProperty(propertyQName,(MLTextPropertyValue) value, setAndCollect); + } + else if (value instanceof ContentPropertyValue) + { + addContentProperty(setAndCollect, document, propertyQName, (ContentPropertyValue) value, contentIndexingIsEnabled); + } + else if (value instanceof MultiPropertyValue) + { + MultiPropertyValue typedValue = (MultiPropertyValue) value; + AlfrescoSolrDataModel dataModel = AlfrescoSolrDataModel.getInstance(); + clearFields( + document, + dataModel.getIndexedFieldNamesForProperty(propertyQName).getFields() + .stream() + .map(FieldInstance::getField) + .collect(Collectors.toList())); + + for (PropertyValue singleValue : typedValue.getValues()) { - stringProperty(propertyQName, (StringPropertyValue) singleValue, properties.get(ContentModel.PROP_LOCALE), addAndCollect); - } - else if (singleValue instanceof MLTextPropertyValue) - { - mltextProperty(propertyQName,(MLTextPropertyValue) singleValue, addAndCollect); - } - else if (singleValue instanceof ContentPropertyValue) - { - addContentProperty(addAndCollect, document, propertyQName, (ContentPropertyValue) singleValue, contentIndexingIsEnabled); + if (singleValue instanceof StringPropertyValue) + { + stringProperty(propertyQName, (StringPropertyValue) singleValue, properties.get(ContentModel.PROP_LOCALE), addAndCollect); + } + else if (singleValue instanceof MLTextPropertyValue) + { + mltextProperty(propertyQName,(MLTextPropertyValue) singleValue, addAndCollect); + } + else if (singleValue instanceof ContentPropertyValue) + { + addContentProperty(addAndCollect, document, propertyQName, (ContentPropertyValue) singleValue, contentIndexingIsEnabled); + } } } } - } - else - { - document.addField(FIELD_NULLPROPERTIES, propertyQName.toString()); + else + { + document.addField(FIELD_NULLPROPERTIES, propertyQName.toString()); + } + } } } From 72000a8c994690c739b24940eecbda0c1b6077da Mon Sep 17 00:00:00 2001 From: agazzarini Date: Tue, 19 May 2020 12:33:19 +0200 Subject: [PATCH 19/65] [ SEARCH-2222 ] E2E Tests (yellow) --- .../org/alfresco/solr/AlfrescoSolrDataModel.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java index 0c02553a3..1ce573f8b 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java @@ -170,7 +170,13 @@ public class AlfrescoSolrDataModel implements QueryConstants public static final String CONTENT_S_LOCALE_PREFIX = "content@s__locale@"; static final String PART_FIELDNAME_PREFIX = "part@sd@"; - + static final Set DATE_PART_SUFFIXES = + Set.of(UNIT_OF_TIME_YEAR_FIELD_SUFFIX, + UNIT_OF_TIME_MONTH_FIELD_SUFFIX, + UNIT_OF_TIME_DAY_FIELD_SUFFIX, + UNIT_OF_TIME_HOUR_FIELD_SUFFIX, + UNIT_OF_TIME_MINUTE_FIELD_SUFFIX, + UNIT_OF_TIME_SECOND_FIELD_SUFFIX); /** * Infix used for denoting a primitive single valued field with no doc values enabled * @@ -1706,12 +1712,7 @@ public class AlfrescoSolrDataModel implements QueryConstants } public boolean isDerivedDateField(String suffix) { - return Set.of(UNIT_OF_TIME_YEAR_FIELD_SUFFIX, - UNIT_OF_TIME_MONTH_FIELD_SUFFIX, - UNIT_OF_TIME_DAY_FIELD_SUFFIX, - UNIT_OF_TIME_HOUR_FIELD_SUFFIX, - UNIT_OF_TIME_MINUTE_FIELD_SUFFIX, - UNIT_OF_TIME_SECOND_FIELD_SUFFIX).contains(suffix); + return DATE_PART_SUFFIXES.contains(suffix); } From 7e9602b67fad3309227c1c3d6beda345331ef4be Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Wed, 20 May 2020 10:36:06 +0200 Subject: [PATCH 20/65] SEARCH-2252: Avoid indexing fields without property definition information. --- .../java/org/alfresco/solr/SolrInformationServer.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java index ebe39eab5..fbed07f15 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java @@ -2302,9 +2302,10 @@ public class SolrInformationServer implements InformationServer { QName propertyQName = property.getKey(); + PropertyDefinition propertyDefinition = dataModel.getPropertyDefinition(propertyQName); // Skip adding Alfresco Fields declared as indexed="false" to SOLR Schema - if (dataModel.getPropertyDefinition(propertyQName).isIndexed()) + if (propertyDefinition != null && propertyDefinition.isIndexed()) { document.addField(FIELD_PROPERTIES, propertyQName.toString()); @@ -2359,6 +2360,12 @@ public class SolrInformationServer implements InformationServer } } + else + { + LOGGER.debug("Field '" + propertyQName + "' has not been indexed " + + (propertyDefinition != null ? "as property definition is not found." + : "as it has been declared as not indexable in the Content Model.")); + } } } From 61c1d3ddf675f1b1e18feaa128ef374401c927dd Mon Sep 17 00:00:00 2001 From: eliaporciani Date: Wed, 20 May 2020 14:43:15 +0200 Subject: [PATCH 21/65] [SEARCH-2166] implemented range queries. --- .../alfresco/solr/query/Solr4QueryParser.java | 86 ++++++++++++------- .../alfresco/solr/DynamicCopyFieldsIT.java | 2 +- .../alfresco-solrclient-lib/pom.xml | 2 +- 3 files changed, 56 insertions(+), 34 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java index c6765f5dd..b04218d01 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java @@ -3115,43 +3115,65 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants { return buildTextMLTextOrContentRange(field, part1, part2, includeLower, includeUpper, analysisMode, expandedFieldName, propertyDef, tokenisationMode); - } else if (propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME) - || propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE)) + } else if ((propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME) + || propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE)) && + !AlfrescoSolrDataModel.getInstance().isDerivedDateField(fieldNameAndEnding.getSecond())) { - Pair dateAndResolution1 = parseDateString(part1); - Pair dateAndResolution2 = parseDateString(part2); - - BooleanQuery.Builder bQuery = new BooleanQuery.Builder(); - IndexedField indexedField = AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyDef.getName(), null, FieldUse.ID); - for (FieldInstance instance : indexedField.getFields()) + if (AlfrescoSolrDataModel.getInstance().isDerivedDateField(fieldNameAndEnding.getSecond())) { - String start = dateAndResolution1 == null ? part1 - : (includeLower ? getDateStart(dateAndResolution1) : getDateEnd(dateAndResolution1)); - String end = dateAndResolution2 == null ? part2 - : (includeUpper ? getDateEnd(dateAndResolution2) : getDateStart(dateAndResolution2)); - if (start.equals("*")) - { - start = null; - } - if (end.equals("*")) - { - end = null; - } - SchemaField sf = schema.getField(instance.getField()); - - Query query = sf.getType().getRangeQuery(null, sf, start, end, includeLower, includeUpper); - if (query != null) - { - bQuery.add(query, Occur.SHOULD); - } } - return bQuery.build(); - } else + else + { + Pair dateAndResolution1 = parseDateString(part1); + Pair dateAndResolution2 = parseDateString(part2); + + BooleanQuery.Builder bQuery = new BooleanQuery.Builder(); + IndexedField indexedField = AlfrescoSolrDataModel.getInstance() + .getQueryableFields(propertyDef.getName(), null, FieldUse.ID); + for (FieldInstance instance : indexedField.getFields()) + { + String start = dateAndResolution1 == null ? part1 + : (includeLower ? getDateStart(dateAndResolution1) : getDateEnd(dateAndResolution1)); + String end = dateAndResolution2 == null ? part2 + : (includeUpper ? getDateEnd(dateAndResolution2) : getDateStart(dateAndResolution2)); + if (start.equals("*")) + { + start = null; + } + if (end.equals("*")) + { + end = null; + } + + SchemaField sf = schema.getField(instance.getField()); + + Query query = sf.getType().getRangeQuery(null, sf, start, end, includeLower, includeUpper); + if (query != null) + { + bQuery.add(query, Occur.SHOULD); + } + } + return bQuery.build(); + } + + } + else { - String solrField = AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyDef.getName(), null, FieldUse.ID).getFields().get(0).getField(); + + String solrField; + + if ((propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME) + || propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE)) && + AlfrescoSolrDataModel.getInstance().isDerivedDateField(fieldNameAndEnding.getSecond())) + { + solrField = AlfrescoSolrDataModel.getInstance().getDateDerivedField(propertyDef.getName(), fieldNameAndEnding.getSecond()); + } + else + { + solrField = AlfrescoSolrDataModel.getInstance() + .getQueryableFields(propertyDef.getName(), null, FieldUse.ID).getFields().get(0).getField(); + } String start = null; try diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java index 775006d6d..211dcc076 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java @@ -375,6 +375,7 @@ public class DynamicCopyFieldsIT extends AbstractAlfrescoDistributedIT { @Test public void textLOVWholeGeneratedFieldsTest() { + Assert.assertFalse(); HashSet fieldModifiers = fieldMap.get(TEXT_LOVWHOLE); assertAllSingleValue(fieldModifiers); Set dynamicFieldsTypes = fieldModifiers.stream() @@ -410,7 +411,6 @@ public class DynamicCopyFieldsIT extends AbstractAlfrescoDistributedIT { * index=disable */ @Test - @Ignore("index enable=false is ignored") public void textNoneGeneratedFieldsTest() { HashSet fieldModifiers = fieldMap.get(TEXT_NONE); diff --git a/search-services/alfresco-solrclient-lib/pom.xml b/search-services/alfresco-solrclient-lib/pom.xml index 93e7d0695..38d42ab33 100644 --- a/search-services/alfresco-solrclient-lib/pom.xml +++ b/search-services/alfresco-solrclient-lib/pom.xml @@ -22,7 +22,7 @@ - 8.112 + 8.-SNAPSHOT 2.10.3 From 62b7324b58c2c244fa9c0689c08362064de983bf Mon Sep 17 00:00:00 2001 From: eliaporciani Date: Wed, 20 May 2020 15:00:00 +0200 Subject: [PATCH 22/65] [SEARCH-2166] restored test --- .../src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java index 211dcc076..775006d6d 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java @@ -375,7 +375,6 @@ public class DynamicCopyFieldsIT extends AbstractAlfrescoDistributedIT { @Test public void textLOVWholeGeneratedFieldsTest() { - Assert.assertFalse(); HashSet fieldModifiers = fieldMap.get(TEXT_LOVWHOLE); assertAllSingleValue(fieldModifiers); Set dynamicFieldsTypes = fieldModifiers.stream() @@ -411,6 +410,7 @@ public class DynamicCopyFieldsIT extends AbstractAlfrescoDistributedIT { * index=disable */ @Test + @Ignore("index enable=false is ignored") public void textNoneGeneratedFieldsTest() { HashSet fieldModifiers = fieldMap.get(TEXT_NONE); From 05962b1cd61ef7bfc00668d36e30caab16eec4a4 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Wed, 20 May 2020 15:35:58 +0200 Subject: [PATCH 23/65] SEARCH-2252: Remove unused tests. --- .../search/SearchNonIndexedFields.java | 2 +- .../alfresco/solr/DynamicCopyFieldsIT.java | 34 ------------------- 2 files changed, 1 insertion(+), 35 deletions(-) diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchNonIndexedFields.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchNonIndexedFields.java index 3a051461e..af75cbd02 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchNonIndexedFields.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/search/SearchNonIndexedFields.java @@ -129,7 +129,7 @@ public class SearchNonIndexedFields extends AbstractE2EFunctionalTest Assert.assertTrue(bodyResponse.contains("{http://www.alfresco.org/model/index/1.0}indexed"), "Expecting index:indexed field to be present in SOLR Schema"); - Assert.assertTrue(!bodyResponse.contains("{http://www.alfresco.org/model/index/1.0}nonIndexed"), + Assert.assertFalse(bodyResponse.contains("{http://www.alfresco.org/model/index/1.0}nonIndexed"), "Expecting index:nonIndexed field NOT to be present in SOLR Schema"); } diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java index 775006d6d..c72eb5e61 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/DynamicCopyFieldsIT.java @@ -387,40 +387,6 @@ public class DynamicCopyFieldsIT extends AbstractAlfrescoDistributedIT { DynamicFieldType.SORT), dynamicFieldsTypes); } - /** - * Test correct fields are generated: - * Properties (mltext): - * index=disable - */ - @Test - @Ignore("index enable=false is ignored") - public void mltextNoneGeneratedFieldsTest() - { - HashSet fieldModifiers = fieldMap.get(MLTEXT_NONE); - assertAllMultiValue(fieldModifiers); - Set dynamicFieldsTypes = fieldModifiers.stream() - .map(this::modifierToDynamicFieldType) - .collect(Collectors.toSet()); - Assert.assertEquals(Set.of(DynamicFieldType.STORED), dynamicFieldsTypes); - } - - /** - * Test correct fields are generated: - * Properties (text): - * index=disable - */ - @Test - @Ignore("index enable=false is ignored") - public void textNoneGeneratedFieldsTest() - { - HashSet fieldModifiers = fieldMap.get(TEXT_NONE); - assertAllSingleValue(fieldModifiers); - Set dynamicFieldsTypes = fieldModifiers.stream() - .map(this::modifierToDynamicFieldType) - .collect(Collectors.toSet()); - Assert.assertEquals(Set.of(DynamicFieldType.STORED), dynamicFieldsTypes); - } - /** * Test correct fields are generated: * Properties (text): From bac0ed28aa08646d0af20e6658835b501c39f005 Mon Sep 17 00:00:00 2001 From: eliaporciani Date: Wed, 20 May 2020 22:56:22 +0200 Subject: [PATCH 24/65] [SEARCH-2166] added support for order by code refactoring --- .../alfresco/solr/AlfrescoSolrDataModel.java | 92 ++++++--- .../alfresco/solr/SolrInformationServer.java | 34 ++-- .../alfresco/solr/query/Solr4QueryParser.java | 186 ++++-------------- 3 files changed, 128 insertions(+), 184 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java index 1ce573f8b..00e91199f 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java @@ -155,16 +155,22 @@ public class AlfrescoSolrDataModel implements QueryConstants HIGHLIGHT } - public enum ContentFieldType + public enum SpecializedFieldType { - DOCID, - SIZE, - LOCALE, - MIMETYPE, - ENCODING, + CONTENT_DOCID, + CONTENT_SIZE, + CONTENT_LOCALE, + CONTENT_MIMETYPE, + CONTENT_ENCODING, TRANSFORMATION_STATUS, TRANSFORMATION_TIME, - TRANSFORMATION_EXCEPTION + TRANSFORMATION_EXCEPTION, + UNIT_OF_TIME_SECOND, + UNIT_OF_TIME_MINUTE, + UNIT_OF_TIME_HOUR, + UNIT_OF_TIME_DAY, + UNIT_OF_TIME_MONTH, + UNIT_OF_TIME_YEAR } public static final String CONTENT_S_LOCALE_PREFIX = "content@s__locale@"; @@ -615,7 +621,7 @@ public class AlfrescoSolrDataModel implements QueryConstants return dictionaryComponent; } - public IndexedField getIndexedFieldForContentPropertyMetadata(QName propertyQName, ContentFieldType type) + public IndexedField getIndexedFieldForSpecializedPropertyMetadata(QName propertyQName, SpecializedFieldType type) { IndexedField indexedField = new IndexedField(); PropertyDefinition propertyDefinition = getPropertyDefinition(propertyQName); @@ -640,19 +646,19 @@ public class AlfrescoSolrDataModel implements QueryConstants builder.append('_'); switch (type) { - case DOCID: + case CONTENT_DOCID: builder.append("docid"); break; - case ENCODING: + case CONTENT_ENCODING: builder.append("encoding"); break; - case LOCALE: + case CONTENT_LOCALE: builder.append("locale"); break; - case MIMETYPE: + case CONTENT_MIMETYPE: builder.append("mimetype"); break; - case SIZE: + case CONTENT_SIZE: builder.append("size"); break; case TRANSFORMATION_EXCEPTION: @@ -667,21 +673,30 @@ public class AlfrescoSolrDataModel implements QueryConstants default: break; } + builder.append('@'); builder.append(propertyQName); indexedField.addField(builder.toString(), false, false); - + } + else if (dataTypeDefinition.getName().equals(DataTypeDefinition.DATE) || + dataTypeDefinition.getName().equals(DataTypeDefinition.DATETIME)) + { + String dateDerivedSuffix = getDateDerivedSuffix(type); + if (dateDerivedSuffix != null) + { + indexedField.addField(getDateDerivedField(propertyQName, dateDerivedSuffix), false, true); + } } return indexedField; } - public IndexedField getQueryableFields(QName propertyQName, ContentFieldType type, FieldUse fieldUse) + public IndexedField getQueryableFields(QName propertyQName, SpecializedFieldType type, FieldUse fieldUse) { if(type != null) { - return getIndexedFieldForContentPropertyMetadata(propertyQName, type); + return getIndexedFieldForSpecializedPropertyMetadata(propertyQName, type); } IndexedField indexedField = new IndexedField(); @@ -1082,6 +1097,27 @@ public class AlfrescoSolrDataModel implements QueryConstants return "part@sd@" + propertyDefinition.getName().toString() + suffix; } + public String getDateDerivedSuffix(SpecializedFieldType type) + { + switch (type) + { + case UNIT_OF_TIME_SECOND: + return UNIT_OF_TIME_SECOND_FIELD_SUFFIX; + case UNIT_OF_TIME_MINUTE: + return UNIT_OF_TIME_MINUTE_FIELD_SUFFIX; + case UNIT_OF_TIME_HOUR: + return UNIT_OF_TIME_HOUR_FIELD_SUFFIX; + case UNIT_OF_TIME_DAY: + return UNIT_OF_TIME_DAY_FIELD_SUFFIX; + case UNIT_OF_TIME_MONTH: + return UNIT_OF_TIME_MONTH_FIELD_SUFFIX; + case UNIT_OF_TIME_YEAR: + return UNIT_OF_TIME_YEAR_FIELD_SUFFIX; + default: + return null; + } + } + /** * Get all the field names into which we must copy the source data @@ -1803,20 +1839,32 @@ public class AlfrescoSolrDataModel implements QueryConstants /** * @param ending String - * @return ContentFieldType + * @return SpecializedFieldType */ - public ContentFieldType getTextField(String ending) + public SpecializedFieldType getTextField(String ending) { switch(ending) { case FIELD_MIMETYPE_SUFFIX: - return ContentFieldType.MIMETYPE; + return SpecializedFieldType.CONTENT_MIMETYPE; case FIELD_SIZE_SUFFIX: - return ContentFieldType.SIZE; + return SpecializedFieldType.CONTENT_SIZE; case FIELD_LOCALE_SUFFIX: - return ContentFieldType.LOCALE; + return SpecializedFieldType.CONTENT_LOCALE; case FIELD_ENCODING_SUFFIX: - return ContentFieldType.ENCODING; + return SpecializedFieldType.CONTENT_ENCODING; + case UNIT_OF_TIME_SECOND_FIELD_SUFFIX: + return SpecializedFieldType.UNIT_OF_TIME_SECOND; + case UNIT_OF_TIME_MINUTE_FIELD_SUFFIX: + return SpecializedFieldType.UNIT_OF_TIME_MINUTE; + case UNIT_OF_TIME_HOUR_FIELD_SUFFIX: + return SpecializedFieldType.UNIT_OF_TIME_HOUR; + case UNIT_OF_TIME_DAY_FIELD_SUFFIX: + return SpecializedFieldType.UNIT_OF_TIME_DAY; + case UNIT_OF_TIME_MONTH_FIELD_SUFFIX: + return SpecializedFieldType.UNIT_OF_TIME_MONTH; + case UNIT_OF_TIME_YEAR_FIELD_SUFFIX: + return SpecializedFieldType.UNIT_OF_TIME_YEAR; case FIELD_TRANSFORMATION_STATUS_SUFFIX: case FIELD_TRANSFORMATION_TIME_SUFFIX: case FIELD_TRANSFORMATION_EXCEPTION_SUFFIX: diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java index 165793132..e931c24aa 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java @@ -2412,10 +2412,10 @@ public class SolrInformationServer implements InformationServer private void addContentPropertyMetadata( SolrInputDocument doc, QName propertyQName, - AlfrescoSolrDataModel.ContentFieldType type, + AlfrescoSolrDataModel.SpecializedFieldType type, GetTextContentResponse textContentResponse) { - IndexedField indexedField = dataModel.getIndexedFieldForContentPropertyMetadata(propertyQName, type); + IndexedField indexedField = dataModel.getIndexedFieldForSpecializedPropertyMetadata(propertyQName, type); for (FieldInstance fieldInstance : indexedField.getFields()) { switch(type) @@ -2440,27 +2440,27 @@ public class SolrInformationServer implements InformationServer BiConsumer consumer, QName propertyQName, ContentPropertyValue contentPropertyValue, - AlfrescoSolrDataModel.ContentFieldType type) + AlfrescoSolrDataModel.SpecializedFieldType type) { IndexedField indexedField = - AlfrescoSolrDataModel.getInstance().getIndexedFieldForContentPropertyMetadata(propertyQName, type); + AlfrescoSolrDataModel.getInstance().getIndexedFieldForSpecializedPropertyMetadata(propertyQName, type); for (FieldInstance fieldInstance : indexedField.getFields()) { switch(type) { - case DOCID: + case CONTENT_DOCID: consumer.accept(fieldInstance.getField(), contentPropertyValue.getId()); break; - case ENCODING: + case CONTENT_ENCODING: consumer.accept(fieldInstance.getField(), contentPropertyValue.getEncoding()); break; - case LOCALE: + case CONTENT_LOCALE: consumer.accept(fieldInstance.getField(), contentPropertyValue.getLocale().toString()); break; - case MIMETYPE: + case CONTENT_MIMETYPE: consumer.accept(fieldInstance.getField(), contentPropertyValue.getMimetype()); break; - case SIZE: + case CONTENT_SIZE: consumer.accept(fieldInstance.getField(), contentPropertyValue.getLength()); break; // Skips the ones that require the text content response @@ -2583,11 +2583,11 @@ public class SolrInformationServer implements InformationServer ContentPropertyValue propertyValue, boolean contentIndexingEnabled) { - addContentPropertyMetadata(consumer, propertyName, propertyValue, AlfrescoSolrDataModel.ContentFieldType.DOCID); - addContentPropertyMetadata(consumer, propertyName, propertyValue, AlfrescoSolrDataModel.ContentFieldType.SIZE); - addContentPropertyMetadata(consumer, propertyName, propertyValue, AlfrescoSolrDataModel.ContentFieldType.LOCALE); - addContentPropertyMetadata(consumer, propertyName, propertyValue, AlfrescoSolrDataModel.ContentFieldType.MIMETYPE); - addContentPropertyMetadata(consumer, propertyName, propertyValue, AlfrescoSolrDataModel.ContentFieldType.ENCODING); + addContentPropertyMetadata(consumer, propertyName, propertyValue, AlfrescoSolrDataModel.SpecializedFieldType.CONTENT_DOCID); + addContentPropertyMetadata(consumer, propertyName, propertyValue, AlfrescoSolrDataModel.SpecializedFieldType.CONTENT_SIZE); + addContentPropertyMetadata(consumer, propertyName, propertyValue, AlfrescoSolrDataModel.SpecializedFieldType.CONTENT_LOCALE); + addContentPropertyMetadata(consumer, propertyName, propertyValue, AlfrescoSolrDataModel.SpecializedFieldType.CONTENT_MIMETYPE); + addContentPropertyMetadata(consumer, propertyName, propertyValue, AlfrescoSolrDataModel.SpecializedFieldType.CONTENT_ENCODING); if (contentIndexingEnabled) { @@ -2639,9 +2639,9 @@ public class SolrInformationServer implements InformationServer // Expensive call to be done with ContentTracker try (GetTextContentResponse response = repositoryClient.getTextContent(dbId, propertyQName, null)) { - addContentPropertyMetadata(doc, propertyQName, AlfrescoSolrDataModel.ContentFieldType.TRANSFORMATION_STATUS, response); - addContentPropertyMetadata(doc, propertyQName, AlfrescoSolrDataModel.ContentFieldType.TRANSFORMATION_EXCEPTION, response); - addContentPropertyMetadata(doc, propertyQName, AlfrescoSolrDataModel.ContentFieldType.TRANSFORMATION_TIME, response); + addContentPropertyMetadata(doc, propertyQName, AlfrescoSolrDataModel.SpecializedFieldType.TRANSFORMATION_STATUS, response); + addContentPropertyMetadata(doc, propertyQName, AlfrescoSolrDataModel.SpecializedFieldType.TRANSFORMATION_EXCEPTION, response); + addContentPropertyMetadata(doc, propertyQName, AlfrescoSolrDataModel.SpecializedFieldType.TRANSFORMATION_TIME, response); final String textContent = textContentFrom(response); diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java index b04218d01..f681348e7 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java @@ -52,7 +52,7 @@ import org.alfresco.service.namespace.NamespacePrefixResolver; import org.alfresco.service.namespace.QName; import org.alfresco.solr.AlfrescoAnalyzerWrapper; import org.alfresco.solr.AlfrescoSolrDataModel; -import org.alfresco.solr.AlfrescoSolrDataModel.ContentFieldType; +import org.alfresco.solr.AlfrescoSolrDataModel.SpecializedFieldType; import org.alfresco.solr.AlfrescoSolrDataModel.FieldInstance; import org.alfresco.solr.AlfrescoSolrDataModel.FieldUse; import org.alfresco.solr.AlfrescoSolrDataModel.IndexedField; @@ -3064,22 +3064,22 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants { case FIELD_SIZE_SUFFIX: solrField = AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyDef.getName(), ContentFieldType.SIZE, FieldUse.ID) + .getQueryableFields(propertyDef.getName(), SpecializedFieldType.CONTENT_SIZE, FieldUse.ID) .getFields().get(0).getField(); break; case FIELD_MIMETYPE_SUFFIX: solrField = AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyDef.getName(), ContentFieldType.MIMETYPE, FieldUse.ID) + .getQueryableFields(propertyDef.getName(), SpecializedFieldType.CONTENT_MIMETYPE, FieldUse.ID) .getFields().get(0).getField(); break; case FIELD_ENCODING_SUFFIX: solrField = AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyDef.getName(), ContentFieldType.ENCODING, FieldUse.ID) + .getQueryableFields(propertyDef.getName(), SpecializedFieldType.CONTENT_ENCODING, FieldUse.ID) .getFields().get(0).getField(); break; case FIELD_LOCALE_SUFFIX: solrField = AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyDef.getName(), ContentFieldType.LOCALE, FieldUse.ID) + .getQueryableFields(propertyDef.getName(), SpecializedFieldType.CONTENT_LOCALE, FieldUse.ID) .getFields().get(0).getField(); break; } @@ -3119,61 +3119,44 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants || propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE)) && !AlfrescoSolrDataModel.getInstance().isDerivedDateField(fieldNameAndEnding.getSecond())) { - if (AlfrescoSolrDataModel.getInstance().isDerivedDateField(fieldNameAndEnding.getSecond())) - { + Pair dateAndResolution1 = parseDateString(part1); + Pair dateAndResolution2 = parseDateString(part2); - } - else + BooleanQuery.Builder bQuery = new BooleanQuery.Builder(); + IndexedField indexedField = AlfrescoSolrDataModel.getInstance() + .getQueryableFields(propertyDef.getName(), null, FieldUse.ID); + for (FieldInstance instance : indexedField.getFields()) { - Pair dateAndResolution1 = parseDateString(part1); - Pair dateAndResolution2 = parseDateString(part2); - - BooleanQuery.Builder bQuery = new BooleanQuery.Builder(); - IndexedField indexedField = AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyDef.getName(), null, FieldUse.ID); - for (FieldInstance instance : indexedField.getFields()) + String start = dateAndResolution1 == null ? part1 + : (includeLower ? getDateStart(dateAndResolution1) : getDateEnd(dateAndResolution1)); + String end = dateAndResolution2 == null ? part2 + : (includeUpper ? getDateEnd(dateAndResolution2) : getDateStart(dateAndResolution2)); + if (start.equals("*")) { - String start = dateAndResolution1 == null ? part1 - : (includeLower ? getDateStart(dateAndResolution1) : getDateEnd(dateAndResolution1)); - String end = dateAndResolution2 == null ? part2 - : (includeUpper ? getDateEnd(dateAndResolution2) : getDateStart(dateAndResolution2)); - if (start.equals("*")) - { - start = null; - } - if (end.equals("*")) - { - end = null; - } - - SchemaField sf = schema.getField(instance.getField()); - - Query query = sf.getType().getRangeQuery(null, sf, start, end, includeLower, includeUpper); - if (query != null) - { - bQuery.add(query, Occur.SHOULD); - } + start = null; + } + if (end.equals("*")) + { + end = null; } - return bQuery.build(); - } + SchemaField sf = schema.getField(instance.getField()); + + Query query = sf.getType().getRangeQuery(null, sf, start, end, includeLower, includeUpper); + if (query != null) + { + bQuery.add(query, Occur.SHOULD); + } + } + return bQuery.build(); } else { - - String solrField; - - if ((propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME) - || propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE)) && - AlfrescoSolrDataModel.getInstance().isDerivedDateField(fieldNameAndEnding.getSecond())) - { - solrField = AlfrescoSolrDataModel.getInstance().getDateDerivedField(propertyDef.getName(), fieldNameAndEnding.getSecond()); - } - else - { - solrField = AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyDef.getName(), null, FieldUse.ID).getFields().get(0).getField(); - } + String solrField = AlfrescoSolrDataModel.getInstance() + .getQueryableFields(propertyDef.getName(), + AlfrescoSolrDataModel.getInstance().getTextField(fieldNameAndEnding.getSecond()), + FieldUse.ID) + .getFields().get(0).getField(); String start = null; try @@ -4165,98 +4148,13 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants } } - // Mime type - if (fieldNameAndEnding.getSecond().equals(FIELD_MIMETYPE_SUFFIX)) + if (fieldNameAndEnding.getSecond() != null && propertyDef != null) { - if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT))) - { - return subQueryBuilder.getQuery(AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyQName, ContentFieldType.MIMETYPE, FieldUse.ID).getFields().get(0) - .getField(), queryText, analysisMode, luceneFunction); - } - - } else if (fieldNameAndEnding.getSecond().equals(FIELD_SIZE_SUFFIX)) - { - if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT))) - { - return subQueryBuilder.getQuery(AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyQName, ContentFieldType.SIZE, FieldUse.ID).getFields().get(0) - .getField(), queryText, analysisMode, luceneFunction); - - } - - } else if (fieldNameAndEnding.getSecond().equals(FIELD_LOCALE_SUFFIX)) - { - if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT))) - { - return subQueryBuilder.getQuery(AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyQName, ContentFieldType.LOCALE, FieldUse.ID).getFields().get(0) - .getField(), queryText, analysisMode, luceneFunction); - - } - - } else if (fieldNameAndEnding.getSecond().equals(FIELD_ENCODING_SUFFIX)) - { - if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT))) - { - return subQueryBuilder.getQuery(AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyQName, ContentFieldType.ENCODING, FieldUse.ID).getFields().get(0) - .getField(), queryText, analysisMode, luceneFunction); - - } - - } else if (fieldNameAndEnding.getSecond().equals(FIELD_TRANSFORMATION_STATUS_SUFFIX)) - { - if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT))) - { - return subQueryBuilder - .getQuery( - AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyQName, ContentFieldType.TRANSFORMATION_STATUS, - FieldUse.ID) - .getFields().get(0).getField(), - queryText, analysisMode, luceneFunction); - - } - - } else if (fieldNameAndEnding.getSecond().equals(FIELD_TRANSFORMATION_TIME_SUFFIX)) - { - if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT))) - { - return subQueryBuilder - .getQuery( - AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyQName, ContentFieldType.TRANSFORMATION_TIME, - FieldUse.ID) - .getFields().get(0).getField(), - queryText, analysisMode, luceneFunction); - - } - - } else if (fieldNameAndEnding.getSecond().equals(FIELD_TRANSFORMATION_EXCEPTION_SUFFIX)) - { - if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT))) - { - return subQueryBuilder.getQuery( - AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyQName, ContentFieldType.TRANSFORMATION_EXCEPTION, - FieldUse.ID) - .getFields().get(0).getField(), - queryText, analysisMode, luceneFunction); - - } - - } - else if (AlfrescoSolrDataModel.getInstance().isDerivedDateField(fieldNameAndEnding.getSecond())) - { - if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE) - || propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME ))) - { - return subQueryBuilder.getQuery( - AlfrescoSolrDataModel.getInstance() - .getDateDerivedField(propertyQName, fieldNameAndEnding.getSecond()), - queryText, analysisMode, luceneFunction); - } + return subQueryBuilder.getQuery(AlfrescoSolrDataModel.getInstance() + .getQueryableFields(propertyQName, + AlfrescoSolrDataModel.getInstance().getTextField(fieldNameAndEnding.getSecond()), + FieldUse.ID).getFields().get(0) + .getField(), queryText, analysisMode, luceneFunction); } // Already in expanded form @@ -5535,6 +5433,4 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants query.setRewriteMethod(MultiTermQuery.CONSTANT_SCORE_REWRITE); return query; } - - } From 3d2b9fb026d5cc56634fe9773bb806bd940a88a9 Mon Sep 17 00:00:00 2001 From: eliaporciani Date: Wed, 20 May 2020 22:57:31 +0200 Subject: [PATCH 25/65] [SEARCH-2166] updated alfresco-data-model dependency --- search-services/alfresco-solrclient-lib/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/search-services/alfresco-solrclient-lib/pom.xml b/search-services/alfresco-solrclient-lib/pom.xml index 38d42ab33..915d097b2 100644 --- a/search-services/alfresco-solrclient-lib/pom.xml +++ b/search-services/alfresco-solrclient-lib/pom.xml @@ -22,7 +22,7 @@ - 8.-SNAPSHOT + search-2166-2 2.10.3 From a7acb51d95a4991253bbce70604a13cc7ae6fdab Mon Sep 17 00:00:00 2001 From: eliaporciani Date: Thu, 21 May 2020 08:25:37 +0200 Subject: [PATCH 26/65] [SEARCH-2166] restored solr4queryparser --- .../alfresco/solr/query/Solr4QueryParser.java | 97 +++++++++++++++++-- 1 file changed, 91 insertions(+), 6 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java index f681348e7..127040937 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java @@ -4148,13 +4148,98 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants } } - if (fieldNameAndEnding.getSecond() != null && propertyDef != null) + // Mime type + if (fieldNameAndEnding.getSecond().equals(FIELD_MIMETYPE_SUFFIX)) { - return subQueryBuilder.getQuery(AlfrescoSolrDataModel.getInstance() - .getQueryableFields(propertyQName, - AlfrescoSolrDataModel.getInstance().getTextField(fieldNameAndEnding.getSecond()), - FieldUse.ID).getFields().get(0) - .getField(), queryText, analysisMode, luceneFunction); + if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT))) + { + return subQueryBuilder.getQuery(AlfrescoSolrDataModel.getInstance() + .getQueryableFields(propertyQName, SpecializedFieldType.CONTENT_MIMETYPE, FieldUse.ID).getFields().get(0) + .getField(), queryText, analysisMode, luceneFunction); + } + + } else if (fieldNameAndEnding.getSecond().equals(FIELD_SIZE_SUFFIX)) + { + if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT))) + { + return subQueryBuilder.getQuery(AlfrescoSolrDataModel.getInstance() + .getQueryableFields(propertyQName, SpecializedFieldType.CONTENT_SIZE, FieldUse.ID).getFields().get(0) + .getField(), queryText, analysisMode, luceneFunction); + + } + + } else if (fieldNameAndEnding.getSecond().equals(FIELD_LOCALE_SUFFIX)) + { + if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT))) + { + return subQueryBuilder.getQuery(AlfrescoSolrDataModel.getInstance() + .getQueryableFields(propertyQName, SpecializedFieldType.CONTENT_LOCALE, FieldUse.ID).getFields().get(0) + .getField(), queryText, analysisMode, luceneFunction); + + } + + } else if (fieldNameAndEnding.getSecond().equals(FIELD_ENCODING_SUFFIX)) + { + if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT))) + { + return subQueryBuilder.getQuery(AlfrescoSolrDataModel.getInstance() + .getQueryableFields(propertyQName, SpecializedFieldType.CONTENT_ENCODING, FieldUse.ID).getFields().get(0) + .getField(), queryText, analysisMode, luceneFunction); + + } + + } else if (fieldNameAndEnding.getSecond().equals(FIELD_TRANSFORMATION_STATUS_SUFFIX)) + { + if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT))) + { + return subQueryBuilder + .getQuery( + AlfrescoSolrDataModel.getInstance() + .getQueryableFields(propertyQName, SpecializedFieldType.TRANSFORMATION_STATUS, + FieldUse.ID) + .getFields().get(0).getField(), + queryText, analysisMode, luceneFunction); + + } + + } else if (fieldNameAndEnding.getSecond().equals(FIELD_TRANSFORMATION_TIME_SUFFIX)) + { + if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT))) + { + return subQueryBuilder + .getQuery( + AlfrescoSolrDataModel.getInstance() + .getQueryableFields(propertyQName, SpecializedFieldType.TRANSFORMATION_TIME, + FieldUse.ID) + .getFields().get(0).getField(), + queryText, analysisMode, luceneFunction); + + } + + } else if (fieldNameAndEnding.getSecond().equals(FIELD_TRANSFORMATION_EXCEPTION_SUFFIX)) + { + if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.CONTENT))) + { + return subQueryBuilder.getQuery( + AlfrescoSolrDataModel.getInstance() + .getQueryableFields(propertyQName, SpecializedFieldType.TRANSFORMATION_EXCEPTION, + FieldUse.ID) + .getFields().get(0).getField(), + queryText, analysisMode, luceneFunction); + + } + + } + else if (AlfrescoSolrDataModel.getInstance().isDerivedDateField(fieldNameAndEnding.getSecond())) + { + if ((propertyDef != null) && (propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE) + || propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME ))) + { + return subQueryBuilder.getQuery( + AlfrescoSolrDataModel.getInstance() + .getDateDerivedField(propertyQName, fieldNameAndEnding.getSecond()), + queryText, analysisMode, luceneFunction); + } } // Already in expanded form From fdf390c4f01533f049dca7467d3e6935f4112426 Mon Sep 17 00:00:00 2001 From: eliaporciani Date: Fri, 22 May 2020 11:43:04 +0200 Subject: [PATCH 27/65] [SEARCH-2166] updated alfresc-data-model version --- search-services/alfresco-solrclient-lib/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/search-services/alfresco-solrclient-lib/pom.xml b/search-services/alfresco-solrclient-lib/pom.xml index 915d097b2..5ed140a74 100644 --- a/search-services/alfresco-solrclient-lib/pom.xml +++ b/search-services/alfresco-solrclient-lib/pom.xml @@ -22,7 +22,7 @@ - search-2166-2 + 8.115 2.10.3 From 3debea0e11aa8ac5481b1f3d00c0c6ed7f2b98f9 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Tue, 2 Jun 2020 13:39:24 +0200 Subject: [PATCH 28/65] SEARCH-1915: Fix 6.2.x latest versions for Enterprise and Community --- .../generators/app/templates/6.2/.env | 18 ++-- .../app/templates/6.2/docker-compose-ce.yml | 12 +-- .../app/templates/6.2/docker-compose-ee.yml | 85 +++---------------- 3 files changed, 27 insertions(+), 88 deletions(-) diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/.env b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/.env index 352f5b342..af5ab5ebb 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/.env +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/.env @@ -1,15 +1,13 @@ -ALFRESCO_TAG=latest -SHARE_TAG=6.2.0 +ALFRESCO_TAG=6.2.1 +ALFRESCO_CE_TAG=6.2.0-ga +SHARE_TAG=6.2.1 POSTGRES_TAG=11.4 -TRANSFORM_ROUTER_TAG=1.1.0 -PDF_RENDERER_TAG=2.1.0 -IMAGE_MAGICK_TAG=2.1.0 -LIBREOFFICE_TAG=2.1.0 -TIKA_TAG=2.1.0 -TRANSFORM_MISC_TAG=2.1.0 -SHARED_FILE_STORE_TAG=0.5.3 +TRANSFORM_ROUTER_TAG=1.2.0 +TRANSFORM_CORE_AIO_TAG=2.2.1 +TRANSFORMER_TAG=2.1.0 +SHARED_FILE_STORE_TAG=0.7.0 ACTIVE_MQ_TAG=5.15.8 -DIGITAL_WORKSPACE_TAG=1.3.0 +DIGITAL_WORKSPACE_TAG=1.5.0 ACS_NGINX_TAG=3.0.1 ACS_COMMUNITY_NGINX_TAG=1.0.0 SEARCH_TAG=latest diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml index c6f466991..0773340eb 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml @@ -7,7 +7,7 @@ services: build: context: ./alfresco args: - ALFRESCO_TAG: ${ALFRESCO_TAG} + ALFRESCO_TAG: ${ALFRESCO_CE_TAG} SOLR_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> TRUSTSTORE_TYPE: JCEKS TRUSTSTORE_PASS: kT9X6oe68t @@ -141,7 +141,7 @@ services: <% } %> alfresco-pdf-renderer: - image: alfresco/alfresco-pdf-renderer:${PDF_RENDERER_TAG} + image: alfresco/alfresco-pdf-renderer:${TRANSFORMER_TAG} mem_limit: 1g environment: JAVA_OPTS: " -Xms256m -Xmx512m" @@ -149,7 +149,7 @@ services: - 8090:8090 imagemagick: - image: alfresco/alfresco-imagemagick:${IMAGE_MAGICK_TAG} + image: alfresco/alfresco-imagemagick:${TRANSFORMER_TAG} mem_limit: 1g environment: JAVA_OPTS: " -Xms256m -Xmx512m" @@ -157,7 +157,7 @@ services: - 8091:8090 libreoffice: - image: alfresco/alfresco-libreoffice:${LIBREOFFICE_TAG} + image: alfresco/alfresco-libreoffice:${TRANSFORMER_TAG} mem_limit: 1g environment: JAVA_OPTS: " -Xms256m -Xmx512m" @@ -165,7 +165,7 @@ services: - 8092:8090 tika: - image: alfresco/alfresco-tika:${TIKA_TAG} + image: alfresco/alfresco-tika:${TRANSFORMER_TAG} mem_limit: 1g environment: JAVA_OPTS: " -Xms256m -Xmx512m" @@ -173,7 +173,7 @@ services: - 8093:8090 transform-misc: - image: alfresco/alfresco-transform-misc:${TRANSFORM_MISC_TAG} + image: alfresco/alfresco-transform-misc:${TRANSFORMER_TAG} mem_limit: 1g environment: JAVA_OPTS: " -Xms256m -Xmx512m" diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml index 964f94de1..1efb7dd31 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml @@ -34,20 +34,12 @@ services: -Dtransform.service.enabled=true -Dtransform.service.url=http://transform-router:8095 -Dsfs.url=http://shared-file-store:8099/ - - -Dlocal.transform.service.enabled=true - -DlocalTransform.pdfrenderer.url=http://alfresco-pdf-renderer:8090/ - -DlocalTransform.imagemagick.url=http://imagemagick:8090/ - -DlocalTransform.libreoffice.url=http://libreoffice:8090/ - -DlocalTransform.tika.url=http://tika:8090/ - -DlocalTransform.misc.url=http://transform-misc:8090/ - - -Dlegacy.transform.service.enabled=true - -Dalfresco-pdf-renderer.url=http://alfresco-pdf-renderer:8090/ - -Djodconverter.url=http://libreoffice:8090/ - -Dimg.url=http://imagemagick:8090/ - -Dtika.url=http://tika:8090/ - -Dtransform.misc.url=http://transform-misc:8090/ + -DlocalTransform.core-aio.url=http://transform-core-aio:8090/ + -Dalfresco-pdf-renderer.url=http://transform-core-aio:8090/ + -Djodconverter.url=http://transform-core-aio:8090/ + -Dimg.url=http://transform-core-aio:8090/ + -Dtika.url=http://transform-core-aio:8090/ + -Dtransform.misc.url=http://transform-core-aio:8090/ -Dcsrf.filter.enabled=false -Dalfresco.restApi.basicAuthScheme=true @@ -207,75 +199,24 @@ services: environment: JAVA_OPTS: " -Xms256m -Xmx512m" ACTIVEMQ_URL: "nio://activemq:61616" - IMAGEMAGICK_URL: "http://imagemagick:8090" - PDF_RENDERER_URL : "http://alfresco-pdf-renderer:8090" - LIBREOFFICE_URL : "http://libreoffice:8090" - TIKA_URL : "http://tika:8090" + CORE_AIO_URL : "http://transform-core-aio:8090" FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" ports: - 8095:8095 links: - activemq - alfresco-pdf-renderer: - image: alfresco/alfresco-pdf-renderer:${PDF_RENDERER_TAG} - mem_limit: 1g + transform-core-aio: + image: alfresco/alfresco-transform-core-aio:${TRANSFORM_CORE_AIO_TAG} + mem_limit: 1536m environment: - JAVA_OPTS: " -Xms256m -Xmx512m" + JAVA_OPTS: " -Xms256m -Xmx1536m" ACTIVEMQ_URL: "nio://activemq:61616" FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" ports: - 8090:8090 links: - - activemq - - imagemagick: - image: alfresco/alfresco-imagemagick:${IMAGE_MAGICK_TAG} - mem_limit: 1g - environment: - JAVA_OPTS: " -Xms256m -Xmx512m" - ACTIVEMQ_URL: "nio://activemq:61616" - FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" - ports: - - 8091:8090 - links: - - activemq - - libreoffice: - image: alfresco/alfresco-libreoffice:${LIBREOFFICE_TAG} - mem_limit: 1g - environment: - JAVA_OPTS: " -Xms256m -Xmx512m" - ACTIVEMQ_URL: "nio://activemq:61616" - FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" - ports: - - 8092:8090 - links: - - activemq - - tika: - image: alfresco/alfresco-tika:${TIKA_TAG} - mem_limit: 1g - environment: - JAVA_OPTS: " -Xms256m -Xmx512m" - ACTIVEMQ_URL: "nio://activemq:61616" - FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" - ports: - - 8093:8090 - links: - - activemq - - transform-misc: - image: alfresco/alfresco-transform-misc:${TRANSFORM_MISC_TAG} - mem_limit: 1g - environment: - JAVA_OPTS: " -Xms256m -Xmx512m" - ACTIVEMQ_URL: "nio://activemq:61616" - FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" - ports: - - 8094:8090 - links: - - activemq + - activemq shared-file-store: image: alfresco/alfresco-shared-file-store:${SHARED_FILE_STORE_TAG} @@ -320,7 +261,7 @@ services: activemq: image: alfresco/alfresco-activemq:${ACTIVE_MQ_TAG} - mem_limit: 512m + mem_limit: 1g ports: - 8161:8161 # Web Console - 5672:5672 # AMQP From 7863e0df8f0f25ef741f7643442e2a1efd0c6c97 Mon Sep 17 00:00:00 2001 From: agazzarini Date: Tue, 2 Jun 2020 14:41:44 +0200 Subject: [PATCH 29/65] [ SEARCH-2223 ] Tidy up after review comments --- .../alfresco/solr/AlfrescoSolrDataModel.java | 645 +++++++++--------- .../alfresco/solr/SolrInformationServer.java | 3 +- 2 files changed, 309 insertions(+), 339 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java index 00e91199f..7baf7c6e7 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java @@ -185,15 +185,11 @@ public class AlfrescoSolrDataModel implements QueryConstants UNIT_OF_TIME_SECOND_FIELD_SUFFIX); /** * Infix used for denoting a primitive single valued field with no doc values enabled - * - * @see #getFieldForText */ private static final String SINGLE_VALUE_WITHOUT_DOC_VALUES_MARKER = "@s_@"; /** * Infix used for denoting a primitive single valued field with no doc values enabled - * - * @see #getFieldForText */ private static final String SINGLE_VALUE_WITH_DOC_VALUES_MARKER = "@sd@"; @@ -209,26 +205,22 @@ public class AlfrescoSolrDataModel implements QueryConstants private final static AlfrescoSolrDataModel INSTANCE = new AlfrescoSolrDataModel(); - private TenantService tenantService; + private final TenantService tenantService; - private NamespaceDAO namespaceDAO; + private final NamespaceDAO namespaceDAO; - private DictionaryDAOImpl dictionaryDAO; + private final DictionaryDAOImpl dictionaryDAO; - private Map dictionaryServices; + private final Map dictionaryServices; - private Map cmisDictionaryServices; + private final Map cmisDictionaryServices; - private Map> modelErrors = new HashMap<>(); - - private Set suggestableProperties = new HashSet<>(); - - private Set crossLocaleSearchDataTypes = new HashSet<>(); - - private Set crossLocaleSearchProperties = new HashSet<>(); - - private Set identifierProperties = new HashSet<>(); - private ThreadPoolExecutor threadPool; + private final Map> modelErrors = new HashMap<>(); + private final Set suggestableProperties = new HashSet<>(); + private final Set crossLocaleSearchDataTypes = new HashSet<>(); + private final Set crossLocaleSearchProperties = new HashSet<>(); + private final Set identifierProperties = new HashSet<>(); + private final ThreadPoolExecutor threadPool; public void close() { threadPool.shutdown(); @@ -678,8 +670,7 @@ public class AlfrescoSolrDataModel implements QueryConstants builder.append(propertyQName); indexedField.addField(builder.toString(), false, false); } - else if (dataTypeDefinition.getName().equals(DataTypeDefinition.DATE) || - dataTypeDefinition.getName().equals(DataTypeDefinition.DATETIME)) + else if (isDateOrDatetime(dataTypeDefinition)) { String dateDerivedSuffix = getDateDerivedSuffix(type); if (dateDerivedSuffix != null) @@ -756,225 +747,6 @@ public class AlfrescoSolrDataModel implements QueryConstants return indexedField; } - /* - * Adds best completion fields in order of preference - */ - private void addCompletionFields(PropertyDefinition propertyDefinition, IndexedField indexedField) - { - if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) - { - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - else - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); - } - } - else if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.TRUE)) - { - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - else - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); - } - } - else if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE)) - { - indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); - } - } - - /* - * Adds best fts fields in order of preference - */ - - private void addFullTextSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) - { - if (((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.TRUE) - || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) - && !isIdentifierTextProperty(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), true, false); - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - } - else - { - indexedField.addField(getFieldForText(true, false, false, propertyDefinition), true, false); - indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); - } - } - - private void addHighlightSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) - { - QName propertyName = propertyDefinition.getName(); - QName propertyDataTypeQName = propertyDefinition.getDataType().getName(); - String fieldName; - - if(propertyDataTypeQName.equals(DataTypeDefinition.MLTEXT)) - { - fieldName = getStoredMLTextField(propertyName); - } - else if(propertyDataTypeQName.equals(DataTypeDefinition.CONTENT)) - { - fieldName = getStoredContentField(propertyName); - } - else - { - fieldName = getStoredTextField(propertyName); - } - - indexedField.addField(fieldName, false, false); - } - - /* - * Adds best identifier fields in order of preference - */ - private void addIdentifierSearchFields(PropertyDefinition propertyDefinition, IndexedField indexedField) - { - if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) - || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) - { - - indexedField.addField(getFieldForText(true, false, false, propertyDefinition), true, false); - indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); - } - else - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), true, false); - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - } - } - - /* - * Adds best identifier fields in order of preference - */ - private void addFacetSearchFields(PropertyDefinition propertyDefinition, IndexedField indexedField) - { - if(propertyDefinition.getDataType().getName().equals(DataTypeDefinition.TEXT)) - { - if (!isIdentifierTextProperty(propertyDefinition.getName())) - { - if(propertyDefinition.getFacetable() == Facetable.TRUE) - { - indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); - } - } - } - - - if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) - || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH) - || isIdentifierTextProperty(propertyDefinition.getName())) - { - - indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); - } - else - { - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - else - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); - } - } - } - - private void addMultiSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) - { - if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) - || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH) - || isIdentifierTextProperty(propertyDefinition.getName())) - { - - indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); - } - else - { - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - else - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); - } - } - } - - private void addStatsSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) - { - addFacetSearchFields(propertyDefinition, indexedField); - } - - private void addSortSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) - { - // Can only order on single valued fields - DataTypeDefinition dataTypeDefinition = propertyDefinition.getDataType(); - if(dataTypeDefinition.getName().equals(DataTypeDefinition.TEXT)) - { - if(!propertyDefinition.isMultiValued()) - { - if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) - || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) - { - indexedField.addField(getFieldForText(false, false, true, propertyDefinition), false, true); - } - else if (isIdentifierTextProperty(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); - } - else - { - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - else - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); - } - } - } - } - - if(dataTypeDefinition.getName().equals(DataTypeDefinition.MLTEXT)) - { - if(!propertyDefinition.isMultiValued()) - { - if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) - || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) - { - indexedField.addField(getFieldForText(false, false, true, propertyDefinition), false, true); - } - else - { - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - else - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); - } - } - } - } - } - public String getStoredTextField(QName propertyQName) { return getStoredTextField(propertyQName, null); @@ -1265,43 +1037,6 @@ public class AlfrescoSolrDataModel implements QueryConstants } } - private boolean isPrimitive(DataTypeDefinition dataType) - { - if(dataType.getName().equals(DataTypeDefinition.INT)) - { - return true; - } - else if(dataType.getName().equals(DataTypeDefinition.LONG)) - { - return true; - } - else if(dataType.getName().equals(DataTypeDefinition.FLOAT)) - { - return true; - } - else if(dataType.getName().equals(DataTypeDefinition.DOUBLE)) - { - return true; - } - else if(dataType.getName().equals(DataTypeDefinition.DATE)) - { - return true; - } - else if(dataType.getName().equals(DataTypeDefinition.DATETIME)) - { - return true; - } - else if(dataType.getName().equals(DataTypeDefinition.BOOLEAN)) - { - return true; - } - else if(dataType.getName().equals(DataTypeDefinition.CATEGORY)) - { - return true; - } - else return dataType.getName().equals(DataTypeDefinition.NODE_REF); - } - public String getFieldForNonText(PropertyDefinition propertyDefinition) { StringBuilder builder = new StringBuilder(); @@ -1388,30 +1123,6 @@ public class AlfrescoSolrDataModel implements QueryConstants dictionaryDAO.removeModel(modelQName); } - private Set validateModel(M2Model model) - { - try - { - dictionaryDAO.getCompiledModel(QName.createQName(model.getName(), namespaceDAO)); - } - catch (DictionaryException | NamespaceException exception) - { - // No model to diff - return Collections.emptySet(); - } - - // namespace unknown - no model - List modelDiffs = dictionaryDAO.diffModelIgnoringConstraints(model); - return modelDiffs.stream() - .filter(diff -> diff.getDiffType().equals(M2ModelDiff.DIFF_UPDATED)) - .map(diff -> - String.format("Model not updated: %s Failed to validate model update - found non-incrementally updated %s '%s'", - model.getName(), - diff.getElementType(), - diff.getElementName())) - .collect(Collectors.toSet()); - } - M2Model getM2Model(QName modelQName) { return dictionaryDAO.getCompiledModel(modelQName).getM2Model(); @@ -1722,9 +1433,7 @@ public class AlfrescoSolrDataModel implements QueryConstants return mapNonPropertyFields(luceneField); } - if ((propertyDef.getDataType().getName().equals(DataTypeDefinition.DATETIME) - || propertyDef.getDataType().getName().equals(DataTypeDefinition.DATE)) && - isDerivedDateField(fieldNameAndEnding.getSecond())) + if (isDateOrDatetime(propertyDef.getDataType()) && isDerivedDateField(fieldNameAndEnding.getSecond())) { return getDateDerivedField(propertyDef.getName(), fieldNameAndEnding.getSecond()); } @@ -1747,11 +1456,11 @@ public class AlfrescoSolrDataModel implements QueryConstants } } - public boolean isDerivedDateField(String suffix) { + public boolean isDerivedDateField(String suffix) + { return DATE_PART_SUFFIXES.contains(suffix); } - public String mapProperty(String potentialProperty, FieldUse fieldUse, SolrQueryRequest req, int position) { if(potentialProperty.equals("asc") || potentialProperty.equals("desc") || potentialProperty.equals("_docid_")) @@ -1794,35 +1503,6 @@ public class AlfrescoSolrDataModel implements QueryConstants return solrSortField; } - private String mapAlfrescoField(FieldUse fieldUse, int position, Pair fieldNameAndEnding, String luceneField, PropertyDefinition propertyDef) { - String solrSortField; - if(propertyDef != null) - { - - IndexedField fields = AlfrescoSolrDataModel.getInstance().getQueryableFields(propertyDef.getName(), getTextField(fieldNameAndEnding.getSecond()), fieldUse); - if(fields.getFields().size() > 0) - { - if(fields.getFields().size() > position) - { - solrSortField = fields.getFields().get(position).getField(); - } - else - { - solrSortField = fields.getFields().get(0).getField(); - } - } - else - { - solrSortField = mapNonPropertyFields(luceneField); - } - } - else - { - solrSortField = mapNonPropertyFields(luceneField); - } - return solrSortField; - } - public String mapNonPropertyFields(String queryField) { switch(queryField) @@ -1886,10 +1566,9 @@ public class AlfrescoSolrDataModel implements QueryConstants * date or datetime (e.g. year, month, second, minute). * * @param sourceFieldName the date/datetime source field name. - * @param sourceDataTypeDefinition the datatype of the source field name (date or datetime) * @return the prefix that can be used for denoting a date or datetime part */ - public String destructuredDateTimePartFieldNamePrefix(String sourceFieldName, DataTypeDefinition sourceDataTypeDefinition) { + public String destructuredDateTimePartFieldNamePrefix(String sourceFieldName) { // source field name example: datetime@sd@{http://www.alfresco.org/model/content/1.0}created // prefix: datetime String prefix = sourceFieldName.substring(0, sourceFieldName.indexOf("@")); @@ -1903,4 +1582,296 @@ public class AlfrescoSolrDataModel implements QueryConstants return sourceFieldName.replace(sourceFieldNamePrefixWithoutDocValues, PART_FIELDNAME_PREFIX) .replace(sourceFieldNamePrefixWithDocValues, PART_FIELDNAME_PREFIX); } + + private boolean isDateOrDatetime(DataTypeDefinition dataType) + { + return dataType.getName().equals(DataTypeDefinition.DATE) || + dataType.getName().equals(DataTypeDefinition.DATETIME); + } + + private boolean isPrimitive(DataTypeDefinition dataType) + { + QName name = dataType.getName(); + return name.equals(DataTypeDefinition.INT) + || name.equals(DataTypeDefinition.LONG) + || name.equals(DataTypeDefinition.FLOAT) + || name.equals(DataTypeDefinition.DOUBLE) + || isDateOrDatetime(dataType) + || name.equals(DataTypeDefinition.BOOLEAN) + || name.equals(DataTypeDefinition.CATEGORY) + || name.equals(DataTypeDefinition.NODE_REF); + } + + private String mapAlfrescoField(FieldUse fieldUse, int position, Pair fieldNameAndEnding, String luceneField, PropertyDefinition propertyDef) + { + String solrSortField; + if(propertyDef != null) + { + + IndexedField fields = AlfrescoSolrDataModel.getInstance().getQueryableFields(propertyDef.getName(), getTextField(fieldNameAndEnding.getSecond()), fieldUse); + if(fields.getFields().size() > 0) + { + if(fields.getFields().size() > position) + { + solrSortField = fields.getFields().get(position).getField(); + } + else + { + solrSortField = fields.getFields().get(0).getField(); + } + } + else + { + solrSortField = mapNonPropertyFields(luceneField); + } + } + else + { + solrSortField = mapNonPropertyFields(luceneField); + } + return solrSortField; + } + + private Set validateModel(M2Model model) + { + try + { + dictionaryDAO.getCompiledModel(QName.createQName(model.getName(), namespaceDAO)); + } + catch (DictionaryException | NamespaceException exception) + { + // No model to diff + return Collections.emptySet(); + } + + // namespace unknown - no model + List modelDiffs = dictionaryDAO.diffModelIgnoringConstraints(model); + return modelDiffs.stream() + .filter(diff -> diff.getDiffType().equals(M2ModelDiff.DIFF_UPDATED)) + .map(diff -> + String.format("Model not updated: %s Failed to validate model update - found non-incrementally updated %s '%s'", + model.getName(), + diff.getElementType(), + diff.getElementName())) + .collect(Collectors.toSet()); + } + + /* + * Adds best completion fields in order of preference + */ + private void addCompletionFields(PropertyDefinition propertyDefinition, IndexedField indexedField) + { + if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) + { + if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) + { + indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); + } + else + { + indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); + } + } + else if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.TRUE)) + { + if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) + { + indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); + } + else + { + indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); + } + } + else if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE)) + { + indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); + } + } + + /* + * Adds best fts fields in order of preference + */ + + private void addFullTextSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) + { + if (((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.TRUE) + || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) + && !isIdentifierTextProperty(propertyDefinition.getName())) + { + indexedField.addField(getFieldForText(true, true, false, propertyDefinition), true, false); + if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) + { + indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); + } + } + else + { + indexedField.addField(getFieldForText(true, false, false, propertyDefinition), true, false); + indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); + } + } + + private void addHighlightSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) + { + QName propertyName = propertyDefinition.getName(); + QName propertyDataTypeQName = propertyDefinition.getDataType().getName(); + String fieldName; + + if(propertyDataTypeQName.equals(DataTypeDefinition.MLTEXT)) + { + fieldName = getStoredMLTextField(propertyName); + } + else if(propertyDataTypeQName.equals(DataTypeDefinition.CONTENT)) + { + fieldName = getStoredContentField(propertyName); + } + else + { + fieldName = getStoredTextField(propertyName); + } + + indexedField.addField(fieldName, false, false); + } + + /* + * Adds best identifier fields in order of preference + */ + private void addIdentifierSearchFields(PropertyDefinition propertyDefinition, IndexedField indexedField) + { + if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) + || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) + { + + indexedField.addField(getFieldForText(true, false, false, propertyDefinition), true, false); + indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); + } + else + { + indexedField.addField(getFieldForText(true, true, false, propertyDefinition), true, false); + if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) + { + indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); + } + } + } + + /* + * Adds best identifier fields in order of preference + */ + private void addFacetSearchFields(PropertyDefinition propertyDefinition, IndexedField indexedField) + { + if(propertyDefinition.getDataType().getName().equals(DataTypeDefinition.TEXT)) + { + if (!isIdentifierTextProperty(propertyDefinition.getName())) + { + if(propertyDefinition.getFacetable() == Facetable.TRUE) + { + indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); + } + } + } + + + if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) + || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH) + || isIdentifierTextProperty(propertyDefinition.getName())) + { + + indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); + } + else + { + if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) + { + indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); + } + else + { + indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); + } + } + } + + private void addMultiSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) + { + if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) + || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH) + || isIdentifierTextProperty(propertyDefinition.getName())) + { + + indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); + } + else + { + if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) + { + indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); + } + else + { + indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); + } + } + } + + private void addStatsSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) + { + addFacetSearchFields(propertyDefinition, indexedField); + } + + private void addSortSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) + { + // Can only order on single valued fields + DataTypeDefinition dataTypeDefinition = propertyDefinition.getDataType(); + if(dataTypeDefinition.getName().equals(DataTypeDefinition.TEXT)) + { + if(!propertyDefinition.isMultiValued()) + { + if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) + || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) + { + indexedField.addField(getFieldForText(false, false, true, propertyDefinition), false, true); + } + else if (isIdentifierTextProperty(propertyDefinition.getName())) + { + indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); + } + else + { + if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) + { + indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); + } + else + { + indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); + } + } + } + } + + if(dataTypeDefinition.getName().equals(DataTypeDefinition.MLTEXT)) + { + if(!propertyDefinition.isMultiValued()) + { + if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) + || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) + { + indexedField.addField(getFieldForText(false, false, true, propertyDefinition), false, true); + } + else + { + if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) + { + indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); + } + else + { + indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); + } + } + } + } + } } \ No newline at end of file diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java index 5eda8d6d8..f4341000d 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java @@ -3826,7 +3826,7 @@ public class SolrInformationServer implements InformationServer { try { - String fieldNamePrefix = dataModel.destructuredDateTimePartFieldNamePrefix(sourceFieldName, dataType); + String fieldNamePrefix = dataModel.destructuredDateTimePartFieldNamePrefix(sourceFieldName); ZonedDateTime dateTime = ZonedDateTime.parse(value, DateTimeFormatter.ISO_ZONED_DATE_TIME); consumer.accept(fieldNamePrefix + UNIT_OF_TIME_YEAR_FIELD_SUFFIX, dateTime.getYear()); consumer.accept(fieldNamePrefix + UNIT_OF_TIME_MONTH_FIELD_SUFFIX, dateTime.getMonth().getValue()); @@ -3953,7 +3953,6 @@ public class SolrInformationServer implements InformationServer */ private Optional> getNodesMetaDataFromRepository(NodeMetaDataParameters parameters) { - Collection nodeMetaDataCollection = null; try { return Optional.of(notNullOrEmpty(repositoryClient.getNodesMetaData(parameters))); From 2487dd2a1d0369429b0904b2d848ff9f1fdde10d Mon Sep 17 00:00:00 2001 From: agazzarini Date: Tue, 2 Jun 2020 14:59:02 +0200 Subject: [PATCH 30/65] [ SEARCH-2223 ] Minor refactoring (streams + flatmap) --- .../org/alfresco/solr/SolrInformationServer.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java index f4341000d..9af248938 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java @@ -380,12 +380,12 @@ public class SolrInformationServer implements InformationServer public static final String CASCADE_TRACKER_ENABLED = "alfresco.cascade.tracker.enabled"; private static final String UNIT_OF_TIME_FIELD_INFIX = "_unit_of_time"; - static final String UNIT_OF_TIME_YEAR_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_year"; - static final String UNIT_OF_TIME_MONTH_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_month"; - static final String UNIT_OF_TIME_DAY_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_day"; - static final String UNIT_OF_TIME_HOUR_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_hour"; - static final String UNIT_OF_TIME_MINUTE_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_minute"; - static final String UNIT_OF_TIME_SECOND_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_second"; + public static final String UNIT_OF_TIME_YEAR_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_year"; + public static final String UNIT_OF_TIME_MONTH_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_month"; + public static final String UNIT_OF_TIME_DAY_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_day"; + public static final String UNIT_OF_TIME_HOUR_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_hour"; + public static final String UNIT_OF_TIME_MINUTE_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_minute"; + public static final String UNIT_OF_TIME_SECOND_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_second"; private final static Function> LAZY_EMPTY_MUTABLE_LIST = key -> new ArrayList<>(); From 18a7d5af3b5679b7bf8ad90b566e1d1979df9281 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Tue, 2 Jun 2020 16:38:27 +0200 Subject: [PATCH 31/65] SEARCH-1915: Support for ACS 7.x (named temporary as "latest") Created the new env var password specification for cryptographic stores when using mTLS in latest. Added new cryptographic stores set according to ACS 7.x criteria --- .../README.md | 22 +- .../generators/app/index.js | 23 +- .../app/templates/images/search/Dockerfile | 29 +- .../keystores/{ => 6.x}/alfresco/keystore | Bin .../alfresco/keystore-passwords.properties | 0 .../ssl-keystore-passwords.properties | 0 .../ssl-truststore-passwords.properties | 0 .../keystores/{ => 6.x}/alfresco/ssl.keystore | Bin .../{ => 6.x}/alfresco/ssl.truststore | Bin .../keystores/{ => 6.x}/client/browser.p12 | Bin .../solr/ssl-keystore-passwords.properties | 0 .../solr/ssl-truststore-passwords.properties | 0 .../{ => 6.x}/solr/ssl.repo.client.keystore | Bin .../{ => 6.x}/solr/ssl.repo.client.truststore | Bin .../zeppelin/ssl.repo.client.keystore | Bin .../zeppelin/ssl.repo.client.truststore | Bin .../templates/keystores/7.x/alfresco/keystore | Bin 0 -> 327 bytes .../keystores/7.x/alfresco/ssl.keystore | Bin 0 -> 3288 bytes .../keystores/7.x/alfresco/ssl.truststore | Bin 0 -> 1854 bytes .../keystores/7.x/client/browser.p12 | Bin 0 -> 3033 bytes .../7.x/solr/ssl-repo-client.keystore | Bin 0 -> 3298 bytes .../7.x/solr/ssl-repo-client.truststore | Bin 0 -> 2883 bytes .../7.x/zeppelin/ssl.repo.client.keystore | Bin 0 -> 3265 bytes .../7.x/zeppelin/ssl.repo.client.truststore | Bin 0 -> 2850 bytes .../generators/app/templates/latest/.env | 14 + .../templates/latest/docker-compose-ce.yml | 206 +++++++++++ .../templates/latest/docker-compose-ee.yml | 338 ++++++++++++++++++ 27 files changed, 603 insertions(+), 29 deletions(-) rename e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/{ => 6.x}/alfresco/keystore (100%) rename e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/{ => 6.x}/alfresco/keystore-passwords.properties (100%) rename e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/{ => 6.x}/alfresco/ssl-keystore-passwords.properties (100%) rename e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/{ => 6.x}/alfresco/ssl-truststore-passwords.properties (100%) rename e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/{ => 6.x}/alfresco/ssl.keystore (100%) rename e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/{ => 6.x}/alfresco/ssl.truststore (100%) rename e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/{ => 6.x}/client/browser.p12 (100%) rename e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/{ => 6.x}/solr/ssl-keystore-passwords.properties (100%) rename e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/{ => 6.x}/solr/ssl-truststore-passwords.properties (100%) rename e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/{ => 6.x}/solr/ssl.repo.client.keystore (100%) rename e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/{ => 6.x}/solr/ssl.repo.client.truststore (100%) rename e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/{ => 6.x}/zeppelin/ssl.repo.client.keystore (100%) rename e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/{ => 6.x}/zeppelin/ssl.repo.client.truststore (100%) create mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/alfresco/keystore create mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/alfresco/ssl.keystore create mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/alfresco/ssl.truststore create mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/client/browser.p12 create mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/solr/ssl-repo-client.keystore create mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/solr/ssl-repo-client.truststore create mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl.repo.client.keystore create mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl.repo.client.truststore create mode 100755 e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env create mode 100755 e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml create mode 100755 e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml diff --git a/e2e-test/generator-alfresco-docker-compose/README.md b/e2e-test/generator-alfresco-docker-compose/README.md index 00a45e386..68c0ab08f 100644 --- a/e2e-test/generator-alfresco-docker-compose/README.md +++ b/e2e-test/generator-alfresco-docker-compose/README.md @@ -17,8 +17,10 @@ $ tree generators/app/templates/ │   ├── .env │   ├── docker-compose-ce.yml │   └── docker-compose-ee.yml -├── empty -│   └── empty +├── latest +│   ├── .env +│   ├── docker-compose-ce.yml +│   └── docker-compose-ee.yml├── empty ├── images │   ├── alfresco │   │   ├── Dockerfile @@ -42,7 +44,7 @@ $ tree generators/app/templates/ │   │   └── sharding-share-config-custom.xml │   └── zeppelin │   └── Dockerfile -└── keystores +└── keystores :: 6.x / 7.x ├── alfresco ├── client ├── solr @@ -50,8 +52,8 @@ $ tree generators/app/templates/ ``` * `.env` includes default values for Docker Compose environment variables -* `docker-compose-ce.yml` is the base Docker Compose Template for Alfresco Community deployment (for ACS 6.2 and ACS 6.1) -* `docker-compose-ee.yml` is the base Docker Compose Template for Alfresco Enterprise deployment (for ACS 6.2 and ACS 6.1) +* `docker-compose-ce.yml` is the base Docker Compose Template for Alfresco Community deployment (for latest, ACS 6.2 and ACS 6.1) +* `docker-compose-ee.yml` is the base Docker Compose Template for Alfresco Enterprise deployment (for latest, ACS 6.2 and ACS 6.1) * `alfresco` includes a Dockerfile template to start Alfresco Repository * `model` includes a default content model (Sharding Explicit Routing or empty). This `empty` file is required for Dockerfile to work, so it should not be deleted. * `share` includes a Dockerfile template to start Share Web Application @@ -59,7 +61,7 @@ $ tree generators/app/templates/ * `search` includes a Dockerfile template to start Search Services and Insight Engine * `config` includes configuration for HTTP Web Proxy (NGINX) * `zeppelin` includes a Dockerfile template to start Zeppelin with SSL -* `keystores` includes every truststore and keystore required for SSL configuration +* `keystores` includes every truststore and keystore required for SSL configuration. Included different stores for ACS 6.x and ACS 7.x, as there were changes between this versions ## Installation @@ -80,15 +82,17 @@ $ yo alfresco-docker-compose ## ACS Version -Currently supported ACS Versions are `6.2` and `6.1` +Currently supported ACS Versions are `latest`, `6.2` and `6.1` This is the first choice to be selected when the generator is executed. ``` ? Which ACS version do you want to use? 6.1 -❯ 6.2 + 6.2 +❯ latest ``` + ## AGS Version Currently supported AGS Version is `latest` (based in ACS 6.1). @@ -197,7 +201,7 @@ $ yo alfresco-docker-compose --acsVersion=6.2 --alfrescoVersion=community --http **Parameter names reference** -`--acsVersion`: default 6.2, but could be set to 6.1 +`--acsVersion`: default latest, but could be set to 6.2 or 6.1 `--ags:`: only available when acsVersion=6.1 `--alfrescoVersion`: community or enterprise `--httpMode`: http or https diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/index.js b/e2e-test/generator-alfresco-docker-compose/generators/app/index.js index 2058411fc..a53d3d5c0 100644 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/index.js +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/index.js @@ -21,8 +21,8 @@ module.exports = class extends Generator { type: 'list', name: 'acsVersion', message: 'Which ACS version do you want to use?', - choices: [ "6.1", "6.2" ], - default: '6.2' + choices: [ '6.1', '6.2', 'latest' ], + default: 'latest' }, { whenFunction: response => response.acsVersion == '6.1', @@ -143,10 +143,8 @@ module.exports = class extends Generator { // Generate boilerplate from "templates" folder writing() { - var dockerComposeTemplateDirectory = '6.2'; - if (this.props.acsVersion.startsWith('6.1')) { - dockerComposeTemplateDirectory = '6.1'; - } + // Set base template directory: 6.1, 6.2, latest + var dockerComposeTemplateDirectory = this.props.acsVersion; // Docker Compose environment variables values this.fs.copyTpl( @@ -181,10 +179,10 @@ module.exports = class extends Generator { (this.props.alfrescoVersion == 'community' ? (this.props.ags ? 'alfresco/alfresco-governance-share-community' : - 'alfresco/alfresco-share') : + 'quay.io/alfresco/alfresco-share') : (this.props.ags ? 'quay.io/alfresco/alfresco-governance-share-enterprise': - 'alfresco/alfresco-share' + 'quay.io/alfresco/alfresco-share' ) ); @@ -297,21 +295,22 @@ module.exports = class extends Generator { // Add resources for SSL configuration if (this.props.httpMode == 'https') { + var subfolder = this.props.acsVersion == 'latest' ? '7.x' : '6.x' this.fs.copy( - this.templatePath('keystores/alfresco'), + this.templatePath('keystores/' + subfolder + '/alfresco'), this.destinationPath('keystores/alfresco') ) this.fs.copy( - this.templatePath('keystores/solr'), + this.templatePath('keystores/' + subfolder + '/solr'), this.destinationPath('keystores/solr') ) this.fs.copy( - this.templatePath('keystores/client'), + this.templatePath('keystores/' + subfolder + '/client'), this.destinationPath('keystores/client') ) if (this.props.zeppelin == true) { this.fs.copy( - this.templatePath('keystores/zeppelin'), + this.templatePath('keystores/' + subfolder + '/zeppelin'), this.destinationPath('keystores/zeppelin') ) } diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile index 0ff7861ba..6c13bf1ed 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile @@ -32,16 +32,29 @@ ENV TRUSTSTORE_TYPE $TRUSTSTORE_TYPE ARG KEYSTORE_TYPE ENV KEYSTORE_TYPE $KEYSTORE_TYPE +# Passwords using Env Vars +ARG PASSWORDS_AS_ENV_VARS +ENV PASSWORDS_AS_ENV_VARS $PASSWORDS_AS_ENV_VARS + # Set SSL properties RUN if [ "$ALFRESCO_COMMS" == "https" ] ; then \ - sed -i '/^bash.*/i \ - sed -i "'"s/alfresco.encryption.ssl.keystore.location=.*/alfresco.encryption.ssl.keystore.location=\\\/opt\\\/<%=searchPath%>\\\/keystore\\\/ssl.repo.client.keystore/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ - sed -i "'"s/alfresco.encryption.ssl.keystore.passwordFileLocation=.*/alfresco.encryption.ssl.keystore.passwordFileLocation=\\\/opt\\\/<%=searchPath%>\\\/keystore\\\/ssl-keystore-passwords.properties/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ - sed -i "'"s/alfresco.encryption.ssl.keystore.type=.*/alfresco.encryption.ssl.keystore.type=${KEYSTORE_TYPE}/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ - sed -i "'"s/alfresco.encryption.ssl.truststore.location=.*/alfresco.encryption.ssl.truststore.location=\\\/opt\\\/<%=searchPath%>\\\/keystore\\\/ssl.repo.client.truststore/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ - sed -i "'"s/alfresco.encryption.ssl.truststore.passwordFileLocation=.*/alfresco.encryption.ssl.truststore.passwordFileLocation=\\\/opt\\\/<%=searchPath%>\\\/keystore\\\/ssl-truststore-passwords.properties/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ - sed -i "'"s/alfresco.encryption.ssl.truststore.type=.*/alfresco.encryption.ssl.truststore.type=${TRUSTSTORE_TYPE}/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties' \ - ${DIST_DIR}/solr/bin/search_config_setup.sh; \ + if [ "$PASSWORDS_AS_ENV_VARS" == "true" ]; then \ + sed -i '/^bash.*/i \ + sed -i "'"s/alfresco.encryption.ssl.keystore.location=.*/alfresco.encryption.ssl.keystore.location=\\\/opt\\\/<%=searchPath%>\\\/keystore\\\/ssl-repo-client.keystore/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ + sed -i "'"s/alfresco.encryption.ssl.keystore.type=.*/alfresco.encryption.ssl.keystore.type=${KEYSTORE_TYPE}/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ + sed -i "'"s/alfresco.encryption.ssl.truststore.location=.*/alfresco.encryption.ssl.truststore.location=\\\/opt\\\/<%=searchPath%>\\\/keystore\\\/ssl-repo-client.truststore/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ + sed -i "'"s/alfresco.encryption.ssl.truststore.type=.*/alfresco.encryption.ssl.truststore.type=${TRUSTSTORE_TYPE}/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh; \ + else \ + sed -i '/^bash.*/i \ + sed -i "'"s/alfresco.encryption.ssl.keystore.location=.*/alfresco.encryption.ssl.keystore.location=\\\/opt\\\/<%=searchPath%>\\\/keystore\\\/ssl.repo.client.keystore/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ + sed -i "'"s/alfresco.encryption.ssl.keystore.passwordFileLocation=.*/alfresco.encryption.ssl.keystore.passwordFileLocation=\\\/opt\\\/<%=searchPath%>\\\/keystore\\\/ssl-keystore-passwords.properties/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ + sed -i "'"s/alfresco.encryption.ssl.keystore.type=.*/alfresco.encryption.ssl.keystore.type=${KEYSTORE_TYPE}/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ + sed -i "'"s/alfresco.encryption.ssl.truststore.location=.*/alfresco.encryption.ssl.truststore.location=\\\/opt\\\/<%=searchPath%>\\\/keystore\\\/ssl.repo.client.truststore/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ + sed -i "'"s/alfresco.encryption.ssl.truststore.passwordFileLocation=.*/alfresco.encryption.ssl.truststore.passwordFileLocation=\\\/opt\\\/<%=searchPath%>\\\/keystore\\\/ssl-truststore-passwords.properties/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ + sed -i "'"s/alfresco.encryption.ssl.truststore.type=.*/alfresco.encryption.ssl.truststore.type=${TRUSTSTORE_TYPE}/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh; \ + fi \ fi # REPLICATION diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/alfresco/keystore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/alfresco/keystore similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/alfresco/keystore rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/alfresco/keystore diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/alfresco/keystore-passwords.properties b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/alfresco/keystore-passwords.properties similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/alfresco/keystore-passwords.properties rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/alfresco/keystore-passwords.properties diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/alfresco/ssl-keystore-passwords.properties b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/alfresco/ssl-keystore-passwords.properties similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/alfresco/ssl-keystore-passwords.properties rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/alfresco/ssl-keystore-passwords.properties diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/alfresco/ssl-truststore-passwords.properties b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/alfresco/ssl-truststore-passwords.properties similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/alfresco/ssl-truststore-passwords.properties rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/alfresco/ssl-truststore-passwords.properties diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/alfresco/ssl.keystore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/alfresco/ssl.keystore similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/alfresco/ssl.keystore rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/alfresco/ssl.keystore diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/alfresco/ssl.truststore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/alfresco/ssl.truststore similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/alfresco/ssl.truststore rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/alfresco/ssl.truststore diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/client/browser.p12 b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/client/browser.p12 similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/client/browser.p12 rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/client/browser.p12 diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/solr/ssl-keystore-passwords.properties b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/solr/ssl-keystore-passwords.properties similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/solr/ssl-keystore-passwords.properties rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/solr/ssl-keystore-passwords.properties diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/solr/ssl-truststore-passwords.properties b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/solr/ssl-truststore-passwords.properties similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/solr/ssl-truststore-passwords.properties rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/solr/ssl-truststore-passwords.properties diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/solr/ssl.repo.client.keystore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/solr/ssl.repo.client.keystore similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/solr/ssl.repo.client.keystore rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/solr/ssl.repo.client.keystore diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/solr/ssl.repo.client.truststore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/solr/ssl.repo.client.truststore similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/solr/ssl.repo.client.truststore rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/solr/ssl.repo.client.truststore diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/zeppelin/ssl.repo.client.keystore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/zeppelin/ssl.repo.client.keystore similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/zeppelin/ssl.repo.client.keystore rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/zeppelin/ssl.repo.client.keystore diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/zeppelin/ssl.repo.client.truststore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/zeppelin/ssl.repo.client.truststore similarity index 100% rename from e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/zeppelin/ssl.repo.client.truststore rename to e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/6.x/zeppelin/ssl.repo.client.truststore diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/alfresco/keystore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/alfresco/keystore new file mode 100644 index 0000000000000000000000000000000000000000..439bc1f861272ed97542fa9242f42ffd04e16988 GIT binary patch literal 327 zcmXqLVsvI=WHxC0%f_kI=F#?@myw-uLF0Rt#y19yFAW->p$Ok#X}oICc*&sgJR3Ju zH4hgf>w+qS3S92M!f1Tik zH9Q_)YD(SXXZ-Z$HgqwNhr5we#8601fFYM5m7#8E2#ZiiW^Ss2 zp{a$bg_(hwfuV_^p@E%&q5&rxt2Q4qlN2ihi%7tUi}~TpGSzd_qXZSXHa(ri<~xB! f#N|lal#HE$%&VpJjhV!L%WjK|cV%K`Y+C>T8B%IO literal 0 HcmV?d00001 diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/alfresco/ssl.keystore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/alfresco/ssl.keystore new file mode 100644 index 0000000000000000000000000000000000000000..c0cff56f8b1b130dd2ce09fdfbf9175e17aedae3 GIT binary patch literal 3288 zcmeH}do+~$8pr3Icdll}Z5ZW#t7NbAPJ>Kp8>vtdhQu!0#K>)CG(&Ec88U~YLTqtd z3Po-0lx&v>gR&LbF4cAy*>0OfWvYWSlU=9PY3)DGT4(jo{^PgS`#kUSuJwC=&+q&B zKCP{-tuPo2{&C6ic!3)jfj(R&&x^CcivfcHN8KL$VhuwcFfxItlF~^i8a^gj4!Iy4 zfWwszYnREr+s#`T#k{T5Fr-}A>fq)C5l~n|p^b2X001~742mM-AS?=WL7<3m>+K%` z3?A;XhfIVNq;Jr8nY|1@ZzkK9$?zs?K^oGe44!29=U%kw9G~D&2A8RA7wm0BmWO1e z1vos~g&n}=gtEzM&}wN0#4B2b@Pauk?T=qtSwfmBgiR1+44IKPQH(c{-Bk$2(vb3J z`1Lm^$ocfl03-|)B*Gv;JX|1vO@>%jj_+@-npB|{k;_4ub;DVMvgm8r2L-R9=JtlD zFN$+)>qRM7en_7kq5R?Hq>$f~B%fY-`Gnb+m#%lXR=s#4!H}eQFzyE)0p&iESNf{* z;en9$g%?DmPSr92Td3?#C3RQaD<~O1T-Mk?khPO-Q=HyY7jqtaEe9Y8;2;14@;o7r z_f64|MUW6mSj<3u!=3)AoAkRDnJK5~Vk6f+NK4WH4L!svh{XSL0bW`_L?9s$0G8i( zP(x1ggg{8HlJL_5kX#y2^5^`R-^g7#~ZnGaWmGazA5TSa<49a3&lxf0l+X)NpP7# zoE0rJdrL%cMIwO9kU9$c4GKU2hHxSP$ssT?V$W`Uk^j$d5G2qL(QrQ8Db`y*apH)- z#cb(dZ%|b~+LFgg%E#9xx2cl(sojZuP>g)6>q1LRw@d0w{_ah$(dnDzI{S>bF0nc} z>A1?+B8xGH{rC5u#Vz-8Ot+N-3UnWvE#!Q+G+cyE?LXGI&ZI;QxJ~^;j(>9Sj=Jpd z<^1H;P5yPK2QYEC4q)_o=5)tZvctup$0A*&{IH~U>JjCz|28-(k6J(-p#nrWN@92{3Pd zbMlnnrGc?W5%C6w_FymjEO})7`L=y;f7W*g4$l=OHpOjrWzhpvj+4%3)}Lu{5tQHY zCxR9&O>Qm+e4fN~nfExI5MQrTs3+dF+O^>HG^jsyWNB;E*{*R#BZTK9Rkk1tslw&sG+Gr7XuB^B@zvVU-%n6Kew-5M5*r4H9`>2!zCH&3o6{62r%gX_n)|^!zF;K( zgJ!aQ-b-=Xgwew5%_7G9W3Ywz< zE))&0-&?E%uW$$^@l>p*&;}5Sw*!C_uP7Qs`A>>~SWD917sO=K>2})IOg59t2xfX~ z)0y03Os=*SlN;>kn_Inmg($CV}_JdW*%Y{xhCr&LCp&C1!a)n_Lrf5 zNpLD(Ao%K6EBecWigb$j=t0O_h$xNMAn=e33L{}V5{U)@NJ*MhKoB5YG&Ydq#R&A} z@Pa?nj?}Jp&cJ$qwD<5q9UZOSg}$`kYUB0%s)W!mb!H8&`9cX5Wp^N~r~+;CPsig5 zLLz2v=O*{4OGndPTPpgD@rX+&eu&&WME({DoMWbfPpna&(y#YsO+^t6Vr1b4p_j< z#K^=XlBBSW|F>81_op1ccFAfPPq7Jz3^L$l8#k_1$?-y_Ry6a3t>BaBQgjp4L|L5ggAsS^Vc5UbWr5j%+Z995|m(Pdq zywF?kgUu5-SIuV>Yh+?(WMEvJU=Rn66j?qNF%}U{j{Ap>Y`ynpL+~E^*^|41f9QqZ zHIN5JfUGi$gn?KCb_F~j1;Q+>2F#3%|G_aR%MWC+umF=%8*%^u6Ad%a=M6`{uVCic ztKo3v*0X|}&t`q@VlPh?%ROqn|L8Q`kjvTO!XGNKFL7ATJ-H%owt+^u+|QnRk+s=gH3oi(>rkHzOTL+F3T z-fwrzR{3#v-YS}a?TJx)*Zwl-0A~sQ;^G|LqSOLlcF4(0%_{+BiNeSeCr-h$ z1T!!@Fh2%jA4ry95@1C0%fP2E)C^z*%mBuq3}6P%07g*;m9R{SC5Muc8MO>FAem7S zJu?OY1F|@?B)_Oq!5JK!2KbWx<@U`^uX&p;On|L>xprUR3I_I72@!97|9z4dSiJqsJ~PQm)^&v+4V32CMQHnduDxD3 z*?DDa^ZLh^-}%^0YB;0p8+pX9({EL3#_Sn9GRse|stD*7Pg#3s3;)luO{{;Lu9`$b zl716okwFt<9=HetCSN8424I=Rnb79J*!IJTkr9-9*&Gav5kkByYGNw>1*v(#!9EJ^ zsd=eIi6yBi3c;yGWvN99&Z$KunQ58HKry5oWmb2Bzdr2P`RmK8%!CE2HYW%t#~L*5 zgJh}3Z3c~-v1h7uzN3ox1h!t~-pU zzZ^E(cR}Mt*tBAXllGStXK@AXf870bfg;<^|IL+bITwyFKAaf%%=HCFdsd3^dBc;& z|NMOg*UVg@Hp9?x5A%wPN|VJl?!Eo>JiEVj^y4-`lX-d3K4E+xle=G>%USV9kR|)i cHGauea=oD&UI|J%%dUKLv}lRl!@X5e07h+FmjD0& literal 0 HcmV?d00001 diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/client/browser.p12 b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/client/browser.p12 new file mode 100644 index 0000000000000000000000000000000000000000..a58b6a736510e39f2e2fed678d4d4dd9bcd77bba GIT binary patch literal 3033 zcmY+DXE+;-7RM7KwP&o>9<_>uh^kd;OI4^*BQ4TtHAbl|ErQn8L=`cMsx5>!#%slF zwY1b;L3vSIYuw)Z-21-I{cxW1Jip&L=hOK^u&kqWKzaz4H4((D5Mvs1zz#eIBw|@3 z7_h7%zi}W0OE2|*iXO~>rRVyM*?t!ji1oi)Y%D-JB9^Wef~Bj3$b(q^hkqZxzyP+H z^e|{s5~xW)oAWYVr%zX@Kw#+T0UcHhSh~omni?1jC(P9^!+YLvO8yp1HpXVpjvYC= zxm3d0#}G=jxElu2W3vZm6tDSbjlEF==ql`xy62aCr>{iQ4!rl*j>qm*1Zlj^R()S| zVanuz$Z#Z!aMgy99*sJ?Zk$L|j(+~No*z{Fa537JoNCXwwev|D>ot<~Bv!fiX8vqW z^XZG%fIm?jm7zRh9)A@qKu^vEOgp z&DUr0qTw88U}{XCULWO$AaiJ%gP@4*0aF_I>qLZAv^ZJy2Dl9GSLvdPD2M>QrELqz ziVV3BCP?)+%1>_Ix-ky7PMU^(i(JVrR$8+%U)||H8q8O*Gu|!o%wY&}VPbR#K3Hkx z#q@g&I9Y|3D`o(C+>zRi{Fff)YXQ+`#Ox@NqS|q2a z-iWCWqxrt&Iw-vd=Z#+(@b9-loN)24U(MA*>MBhO0hzkStM(JjhE^rTQVH=)FL4?6pR74rkGbw}p)`-(|kOI^IBJ%f(GlQXA zq8tD>fG@xY5D4%C+y(eTB>vHSP%s0}&4*rh#i8nOC|nh$p$dV*G$B|f#NR{bKtwE) z&Tphi2L$|Xs{a_^|78R8?`-tcU35hnu3qGoJ#TS;#Le`uiLd=X*@(oRJCqXI7=)g( z&5gZupb-rgcS15uT;v&Iqklv_dLk9j+O2qs5}8331>(~GQihH2dQG>6vspO2WWSf` zkv6~ql7)JZ6V!XTX6DS;-AW=Qcrh(M9Ru#^CThhv*XZ&b&Da_-3$hE?_XQ$1&S_YN zeZ4|$>Zfs;er@j>tg`NS_U-<*bLr!T4Tz72i1bNvlG3VyHj1mv?UZHC#v~CJ^>%iGXwZb3p`reiJn%s7x^ZS z1jUVw)TFxm2qMMs#@_YZ*Lfx{HBPF>^lw$@c1_|0w{U`G$M3XlL@j50q_nf;rIS8a z+a!AOjsHcxfb*F0^Zgd%Sj_c{xO3yZ-5Z%G@yz&{D!HGjm_nvUA~Ce*ATId#+NAF@ zv^1uN5`3EXZ~Ox6dAME1Evf(7lCdrr?Dl_I6$=Y3eRwk)P$}lBrQA``X^p>g{&h zSPFN6b6>4z-RlE>U%h>)j;9MM^A*&vvZgoFK^JXyn~$(fR(syrW`&ykg`=$xR7xq>m=cuK;}pju@8`(+Pik*_Cm+)~8P&T^f+x77X_LiTw4o zx)kq6HcA{F!U;CxPrx@zD$)~L`^o!&nnj@%+pSTD{9=d9*I8^v zUcINSS(0N1Z6qHTNNGl-@4@rU**a$l64DKty%6z+?G964I8(Bu49#OH_meF14_@ZZ znb0zxg4OdyWoWSNs<$5zG#(`O|>1DIDYd|RvZYSQ4aL@OgS7R9MU`p zaO!$DIv_O`^ELCQhBfZYGdwH*$dneb78Ew5C$YLG=t@0CeR8D>&ULm9a}tC%8?ii)go-)aj&`mB?r7h-lO1mk;PGC(F$_&F4*T6<10Y?=!Na?^@E%<=O*oS z8vBT4?*)zaMG_Oorxr{mlljob`ng{W)Sd=4HSWAPAna~msR1a8UC+MMVV`w}ko2*~ z#ISACV&kg(Zq2}>FNfN<$#_@)iG}}4G ztWbn0H=6>;sL6v?u8&jdLimfB1J*fV=S<>Jv`@JT(OOu4NP5CE{|Yg^uxTy3AHd`C z(1ziC<06X^ui-nm$G14uLCw=2j}z;cEeelQ?~p!&ofxS?fySmH zAv}TXg`;NCp8NgTPL)UCD$(Ko#i)WptGOy~8~(OBVOcpyg5D!c+kh-WW;#nZZXx-d zlo>kcM8~IB5AfRx;Rnn#1 zZ`U@$Zo1pEfY|SA?e=BPk10nPLFnA=m7e8vJuH17argYMx>^6i6_*K_D-9WrhaHbG zL8F^hPN?=*qV59-{|MI?xoMQDYWL%OhZo07f)W$3Y_J3EZB=hd!Y295$BNN>Sg2Ml zLmyS%wVS8Qrxqx!iwtPV1PsC~(ybfK zP-{yva=9qXaG;B2vDB(|59TxQF0Z@RkAt;XJzV(Q@FW(WBj9>3QB~J8>l&;YzI!6v zO0&#vnKFG2%dX@M9X7$f`@p!y7^0YXRJ3GjNngDAQ?{1+oThV>bduzQ8vjDlYa#|w z{oN4r0dYK3HiL22oJ;4-lHyep`9UhrGRibDK=|<1N z<&N&??7HP7rj_D@DsX3OErSw|A=8~PfS-HdOJ(&(5?i4P_coVj P9}%1{uhG#1V~GC(R->oB literal 0 HcmV?d00001 diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/solr/ssl-repo-client.keystore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/solr/ssl-repo-client.keystore new file mode 100644 index 0000000000000000000000000000000000000000..f1474dd04f3cbe8fed7fe9e6f68daf658e75e181 GIT binary patch literal 3298 zcmeH}do+~$8pr3I8^g>nrbfhZOWPs#J4P;vjoBp`F2t(2z;g{ba zH~-@^0}v1xHyHwQ&qKLf$V{kd{d1>|h8byta^m+ev9HFj{E8K+K(&`FpINjDmD^m+ zx48cxy)-jx;WyG8%??-GmL{2XyD(aRil$7DRJgzTB1xSf<(81i#vonii*7I1cR7dt zv@(fDC^c+hP-Qz^4G6!~HJ8*p_o{7e!C)!a9;sQ&f5rY2Rgn)6xKJ1X0g609kL{+& zW8nn&4wUHA`z?2#yu4xG_)SiFqW!AY@ljAg&;WTA_%4tT^Z5d_umBH7fG_~q+U}sd zgy0Dd7hI+Ij}Jg_X<&jsk7->ggQ1($Onx4k3?7`!ew`>1P9p@g8aB6H(sbzaKaO9B z@P8y~aHXTnBL`HYU*8)ZAEDxIQnS`lFgzO z?hjCXF4f?7B~A-YnSnTN0m;9Q=vG*ZpC4jntIDpG52v{{RlNZd1d;$C5^Oe8lf?)Y z$bsq02;>NIAujE0V*)Ld3Up8i${|r2NB|C~L-7D80T*3&pVRLQ)Xjs!U>FlP4;o_( zfWzTGsMwJ;$;H-a%l&nx2XfsElbmrEBNA#{u?2%!=0B$PR#98D-5tb{+`=H^bI!&E znL}FAeRra&v!gWX59LKu>aYiTtIhJ%L!1&a%!B*vUf|FAMi$Mb+O9A!+B9_Kcww(K z@UoeSmNsMGCLiQwWV)z?cTAeK4)*fHY)?n+nm^8j{%{iYMtLNriGN|CBuM?x!oyhU`_!Ep?NLTU1{kB<~rP z^ot;m`dN*6dncJ05Rc$D?Q1vkI@}ya<|7WaJlv-}@$=Hm8De`J;@f9phljN9N` z@BM?1VeNSfvwm(%Ut3HPD_0ARJWH|}(&@DmS6zqpnI^AQP*wZF>c;yLzY6O~U%zqt z3IFX>_0fbVf08r>lA5aUb=%473Es)8=BjQD-qvzA^gCgjR);*BmmR{y-BYP8T?gyz zM=j1@R(V>C44Bzxs6bCNYD}J8rBCIh8I8ZfE68rtP~7hB7+FpnP|Hl&TB45bT$3Jb zt9S6;gSE^A(ERBE&nA_aIvmbD1%n+wAdy02_RmS$=``CvdpSCfrWH0{5UVDM1zIHiPRB4n^ZgwfFq%0p6W|pFNIUsB6iAKN*({WPjLUZ1fi(b-l zu0{K`l9R_8?|2ig?j|>wQ66rS{XM{80(iqF1dH+x;80266Xkt*8vZw~wFS5)3308v zjcaXJF!H^He8x}y2kTG=)!tc$(x=v8Cy+hcmlMQ_R3vYUAN(^=_no_CHiO|k%BVCX z4fHmq_#s_v4R%*XC+##!I(zDAR{QVknTrk8y$=Sf__k#bkqS@eS*y2;3X(;4U-ETj zA`#a^UV+NF#?BhnucHS-(#hpZ|YjwMOc zt43~1tcBe~Z1VbbT;7422e3dM5V&o)0@y-9h`?b{p7BS3_*F9i5W*H|0+Rld!oc?u z_Sgh70`2W7isp^*ZoJk#2Kfyo`LU9>*8^z zZ+YTr?jV={&H%WzAoteiE#NBmY%!Pn#cvqz^J9x}rug7UhyoBVj8)-iPz)(5Ks*8= z0t3Ju!Xyrk0mXSJW)O|a^a)~fK9P{ny!PMIsMLxL8TL6q79ZbQMqPjG+mvx8*_w zuJUr(-Yg=q5mxq-ayp@=X?VFu#K!Q%L_AI>FYpA#3HyqcG~LZC+rYv7H-3?j`D9f#yiwCM`2_QILf6({|3{#rV#)D literal 0 HcmV?d00001 diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/solr/ssl-repo-client.truststore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/solr/ssl-repo-client.truststore new file mode 100644 index 0000000000000000000000000000000000000000..c09e6891a0e5e89969690e53b91828140b6e4e16 GIT binary patch literal 2883 zcmX?i?%X*B1_mY|W(L#z#l<Q3<2haEeAeR-9cuwd2Z1mWaZgT{TpV3bv6 zY20SexVb@uljHuOBU|si*$}+Pe)i<9;2(P7cNaFcENN^U@D$c0lBBSW|F>81_op1c zcFAfPPq7Jz3<4)oS$;;w|DZr(U0@&#@{cMDj{z4Ohc+7{D=RxQqk#xWP>_Y!fV+t^ zCqFqcCnLYO1UXRvvk)^dHJBdIUZdAscss+&nfuZIubk^{WbU21_3y4bjHkaGHrsbW z<3-rCVuq9UmlbDm1?_*_{dIvN+s^;Zm25c|jxau)82HTf1xI^Uit%~Flg9u2eFfLd zT%k6@&~Oj)ii=8<#WwD}{q;P%zjgHEHbIkldC@*$d>@m$U!2QX@kfv)`_DCgNknmw z2+fqb$%&BS;AkqmIAD5h(8L5R5|{!Y#R2w!8QcYgA+Ufj0TmF&-~z%hYQWPM-eTf) zspGDfVJCOL7Pnk!xPzHX{n6Y9eC(?@Pb~df|H-#h=I@XBo`()kUN(KkhbPAGl7j@7 z9GfUGW6Ppii|5HoDV6eve!S||5)+E)m|o1w7WIDdman_cM3i3q{!Exvarb{-&K06j zmSWd-?q9m`Wzx2zM|k;s_|6Nx^*-12k1V+Twzc5T-R6lWt*aZ)1n&7Cx5vbg zVe07vZlO}MuI8$~6xy9Nw^fhD=QTsHP^(5z%15difhoU;x>cjHfg&)Dfz`AW z?y3=QV!zwGb=6l&=8Y(r!_AZ!qSNZe9#k*#h zOIxhF9VhO&ZrX0oACDMR_^%rm?N+l+F3eiwBYe=RT&``gbH?W@ehe*#msKonm^p97 zzVBH-961gJ&uVONi1tzWP~Ojc?(ChbGK^-&zJ+|rb1FT2nT~a$ulmf^jBSeE(^5-! z7{5QmDO6;tIa(*eo0XtC(e*vUoi%=OX>5g0_qwq!40G0By<~THd4){sKJJrKHd?az zL{zNY$?h>Hutu;=nB$YHQB?iH!WrSGciuIOT`~7jz_idbjTQg?c}?a|JJ0B$b?oc| z1|D|P(uP;T{dNCpci7rlIJ`CV^vs)aM6kI$H#_g%fxITZ3+I#1@n~LQS^4{?#e~B$ UK6_e{>&hArKW8|-kn?aG0D2FY!vFvP literal 0 HcmV?d00001 diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl.repo.client.keystore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl.repo.client.keystore new file mode 100644 index 0000000000000000000000000000000000000000..b0dc4ef08f20f8e319befa4f5c61f3599c135152 GIT binary patch literal 3265 zcmX?i?%X*B1_mZL=1$B>D@rX+&euy$WME*-o*|~4%)lCpt}rciG~ zVFN*s3_A~(Z(?RjYFfhHvk{{Irtt#G+IMpOO?kLjeOmkOFQV z_RzfSy!`S!Lums^kO(u6kaKBqNq(*ZT&J_6ft)z6p{0SDk-33|v4yc&lsK<3h-(Dp z4!i>!=Oc$1BP#=QV=se2V<%H%Bf~c907es!s9w(ED5hD6m0FYjA7-%jzSU)dzBzY`yP;d)~*FL}r8IN1|DK6@?nyqiD1EM5Ek{%Of4 zDN_v7_lqn}e#Xkhkrnau?d6%z1LX|grA&U=WmBQFhf9ZtqovGKsPtX->y=w>xtzZG zkcpX*fpKwyK^!cW=6*U;24zU2eMdLfa#|VIRJo(h8gJdV4IBQNoz|#J~+Hud}FghHkZ)3 z#*Ze2(^kLD6F={|C0X$CIT`D&w=--{h6wwf=9rsu)xSIF@lNgMq0`>@N;cT5wU?)C zYCkFzw{U^yLiWEqYyuMRTYf*fG+?LQ|78y~(^F0uCe7Gz=;y3uaue6<*~HjRN=bf` zeMot)(HpKSyUs-b^8q6Re{pe+UQucRFc0KprskDE@`2_)Uh*%(Bm?*~;bK%GGVYXOm`s z7YaUeVe)$}OVO?KL!Xvx+W&sNhSA(pwceLs9+ToXobok3N&mds+_@jNd_TOrVV6VT zdFji?Y7V!44hfKn(KA}VXr*g(WPa#uj*Im@k{@5@wcXFU{9R2xKqDq#!u~TB@u^&w z*4|A>@6Yp|?cZ#_OR&tlxh~~ymwhZl?A|$Fu18*b(a`OD%c*OF#arWjW%W;INlsPC zw7IkYaQQ*0SNED0M=#S;I3&A2B41`JYmMH<>7QlW?z#Vbw>n9`r!}v0A@jot(#yWR zShvjZfJ8=*-0DWP>C)RmbndB?N*q+lxXX}WxvcP?NQ2(AYr@rf+m~L^O$nZBskwyB zf4#tyck@b)H{NM4n>;0=>&1FChPQW{AJ$ofZGE)b_Xkt{MD>3iX3_WGa_;%GssC`? zcFl-wvEt3o7PEgj+;D+?;yi!ZnJ%Sbu0JxR1=j5?KE*S^r$6Jvd$uP_`{sZ2(ddp% z6YZb!PS?O8vF6t52cHy+vi$bET)9x(@5#K(rT>rJov~zZU~z6{IPcQ-;yN~M-~Fpw zmxpmgO$b-^-4wfR-Qw*&-XB~-i-HWQPHZTS>WH%4dZtBmoBc)~{r($G1%Y!!IhgJg zRfi-<{BK@7mot7?sb#i&#y9TxqI1KE~rpqdGfVa8~4n5?){m=?oz;>Wn~*b z{f-Sdc*k)nyUgYcw`k*}OPq!2Wt-NSgNt)msm%;5v6*iGu_L6^W)fgT%XtG|8e$gL zMxf%_1Xf&E!m1D~^$8hOhn9f`r0P&auR4N&*}gclB)_Oq!5N(S4e%Azt1le7%2E8X z>xO})zpma3%P`?vnZMQO08iEpE&3B#V!3&u8d}JZ~q5)_xMWGi@kSNWxehA z@1fbOx&zPMSH7GXE6K3ocr#nN#W~aEkb=62G2NhvF&SLp0t;Iv0|sCX%bC#T!Pxf0 ziIEXh*s?ho7$byuS=7W-{0ma^f`fe&+*9*XixNvxQxt+zi^@`q6r59wN;1e>|sjhi7AK;vqI#ueDBfQ5}MOBx#oJcTtOwN*e3 z33xTcy1+mf#8+kEG2mk30G8{ltnAE;1|lFqK^9&E?k3Kh{N%)(jQrvfw0r}qu`;f) zwA_DJ&ETVN>X6!y@!8eset5m={+if#%9UTw=jy0Tvu$Qj=UM-bW68-$MxSPXH(LI1 z{9ja4(np^KNnFsxgabe5dpRw}vR2`Wm0mgp< zIM{vWx*uby;@kV?V&2=8_EVOhcqevivFe;zqm45fv>x&0`O(JNKsC;;JZjwkwWCsp R^IlGP`#I&4U%Td=1_1Dfk68c! literal 0 HcmV?d00001 diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl.repo.client.truststore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl.repo.client.truststore new file mode 100644 index 0000000000000000000000000000000000000000..2feb2d8270a13046c97c5fade08f3b3eaad25749 GIT binary patch literal 2850 zcmX?i?%X*B1_mY|W(Lz7#l<;#MX3e(3=E9fGsM(87+53pObsl7@>dO-m@fjc)dFTF zMkXdE0R{tJHcqWJkGAi;jEvl@3eG0uz?^*hMkAY zH!(9MH7_GIF~v~cKo%s(#UtjJlU9^koSd%^oS#-wo>-Ks;8T*KXDDF62U5Vz!ycNK zotIypXDDqT2@+xE5ppgqF3HbTfa`R2G>{YLHMBG^Gcq@@Ft#u@ixTHG0&z{CT!SK* zo3J>L47Vs7C_>yKh3=LhUsBt#LURRxVVWi-Jppv860)8!YoV%48XYJOlb39 zZ2RHF$jHLN%*5tkV2lvrWlCa8J!kElMm&O;HF=Eh>+I2lf#^ILZ);btv3Ny_pwGX4jJ4C?{| zVUQM;Zk+06mv!J=&kxG=iO?*lmz)U6{AzpPnV;!_K@-y* zAa;dhex%SC{AGYKs0=WIl>q}@NZ~6Gwpj--ns`L@au!E1ZIk?eZU3@t-+#q93XUdi zC;CHQMB_-@5sBiZ}hrCTabh_}~lI8-sbtJ7&kpp6Kz}YoX`e{PAV!+VA&I zOFl`NVwk>PWO4E{RxXaLh^KEa&wL&zXZS8<^2;up3Z*?KbjOyTm3dq{JiUyWWmShWURa1&agchBJ6vbV{Xb-|L&m2JGGyO zPJ81k*#mp#->PdQM6Jt9mCHYPEA?3YBZ@8}PIv0V+2cX(dFF7YOHLnDc4>Zc)`G6Ui2bgaFu_LS! zWJL4JfR|JRE5S+FDD?tTkaB$+S3s+w_bd{s{W!V$%Q}cp!qeRbF z&E?-2GX0$N4Y?ju^_zN^4=hzrH>vuzdc(TwYBj6+x6gffZvDp7i(a!I+}3>kpZU7O zbJl&W>t<0h^Oah|6h3jz>x*0Zqg)xy;@*^F)BW&z)%`WG@02UQp3l`$nP%I}pw6@Y9mkTBlZ-yi{%*AV;l^1_*79Bd zW;d^Nd45?YHT$T*x)aalggR8G`ZTxRV=@o=7vsW~yFX*)>8Uz0O9G7l1aPqX%ymD; uQpLCT&BeU8EA6K&Kk-iN)?(E;vvh9q&lF|Oip`nJIy=km^B=8aOZ5TmUxfGo literal 0 HcmV?d00001 diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env new file mode 100755 index 000000000..405062f6a --- /dev/null +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env @@ -0,0 +1,14 @@ +ALFRESCO_TAG=latest +ALFRESCO_CE_TAG=latest +SHARE_TAG=latest +POSTGRES_TAG=11.4 +TRANSFORM_ROUTER_TAG=1.2.0 +TRANSFORM_CORE_AIO_TAG=2.2.1 +SHARED_FILE_STORE_TAG=0.7.0 +ACTIVE_MQ_TAG=5.15.8 +DIGITAL_WORKSPACE_TAG=1.5.0 +ACS_NGINX_TAG=3.0.1 +ACS_COMMUNITY_NGINX_TAG=1.0.0 +SEARCH_TAG=latest +ZEPPELIN_TAG=latest +ACA_TAG=master-latest \ No newline at end of file diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml new file mode 100755 index 000000000..fb3ab2c01 --- /dev/null +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml @@ -0,0 +1,206 @@ +# Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose +version: "2" + +services: + + alfresco: + build: + context: ./alfresco + args: + ALFRESCO_TAG: ${ALFRESCO_CE_TAG} + SOLR_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + TRUSTSTORE_PASS: kT9X6oe68t + KEYSTORE_TYPE: JCEKS + KEYSTORE_PASS: kT9X6oe68t <% } %> + COMPRESS_CONTENT: "<%=gzip%>" + mem_limit: 1800m + environment: + JAVA_OPTS : " + -Ddb.driver=org.postgresql.Driver + -Ddb.username=alfresco + -Ddb.password=alfresco + -Ddb.url=jdbc:postgresql://postgres:5432/alfresco + -Dsolr.host=<%=searchSolrHost%> + -Dsolr.port.ssl=8983 + -Dsolr.secureComms=<%=secureComms%> + -Dsolr.baseUrl=/solr + -Dindex.subsystem.name=solr6 + -Dshare.host=localhost + -Dalfresco.port=8080 + -Daos.baseUrlOverwrite=http://localhost:8080/alfresco/aos + -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" + -Ddeployment.method=DOCKER_COMPOSE + + -DlocalTransform.core-aio.url=http://transform-core-aio:8090/ + -Dalfresco-pdf-renderer.url=http://transform-core-aio:8090/ + -Djodconverter.url=http://transform-core-aio:8090/ + -Dimg.url=http://transform-core-aio:8090/ + -Dtika.url=http://transform-core-aio:8090/ + -Dtransform.misc.url=http://transform-core-aio:8090/ + + -Dcsrf.filter.enabled=false + -Dalfresco.restApi.basicAuthScheme=true + -Xms1500m -Xmx1500m + " <% if (httpMode == 'https') { %> + ports: + - 8443:8443 + volumes: + - ./keystores/alfresco:/usr/local/tomcat/alf_data/keystore <% } %> + + solr6: + build: + context: ./search + args: + SEARCH_TAG: ${SEARCH_TAG} + SOLR_HOSTNAME: solr6 + ALFRESCO_HOSTNAME: alfresco + ALFRESCO_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + KEYSTORE_TYPE: JCEKS <% } %> <% if (replication) { %> + ENABLE_MASTER: "true" + ENABLE_SLAVE: "false" <% } %> + COMPRESS_CONTENT: "<%=gzip%>" + mem_limit: 1200m + environment: + #Solr needs to know how to register itself with Alfresco + SOLR_ALFRESCO_HOST: "alfresco" + SOLR_ALFRESCO_PORT: "<%=alfrescoPort%>" + ALFRESCO_SECURE_COMMS: <%=secureComms%> + #Alfresco needs to know how to call solr + SOLR_SOLR_HOST: "solr6" + SOLR_SOLR_PORT: "8983" + #Create the default alfresco and archive cores + SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" + SOLR_JAVA_MEM: "-Xms1g -Xmx1g" <% if (httpMode == 'https') { %> + SOLR_SSL_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.truststore" + SOLR_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_TRUST_STORE_TYPE: "JCEKS" + SOLR_SSL_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_NEED_CLIENT_AUTH: "true" + SOLR_OPTS: " + -Dsolr.ssl.checkPeerName=false + -Dsolr.allow.unsafe.resourceloading=true + " <% } %> + ports: + - 8083:8983 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/solr:/opt/<%=searchPath%>/keystore <% } %> + + <% if (replication) { %> + solr6secondary: + build: + context: ./search + args: + SEARCH_TAG: ${SEARCH_TAG} + SOLR_HOSTNAME: solr6secondary + ALFRESCO_HOSTNAME: alfresco + ALFRESCO_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + KEYSTORE_TYPE: JCEKS <% } %> <% if (replication) { %> + ENABLE_MASTER: <% if (replication == 'master-master') { %>"true"<% } else { %>"false"<% } %> + ENABLE_SLAVE: <% if (replication == 'master-master') { %>"false"<% } else { %>"true"<% } %> + MASTER_HOST: solr6 <% } %> + COMPRESS_CONTENT: "<%=gzip%>" + mem_limit: 1200m + environment: + #Solr needs to know how to register itself with Alfresco + SOLR_ALFRESCO_HOST: "alfresco" + SOLR_ALFRESCO_PORT: "<%=alfrescoPort%>" + ALFRESCO_SECURE_COMMS: <%=secureComms%> + #Alfresco needs to know how to call solr + SOLR_SOLR_HOST: "solr6secondary" + SOLR_SOLR_PORT: "8983" + #Create the default alfresco and archive cores + SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" + SOLR_JAVA_MEM: "-Xms1g -Xmx1g" <% if (httpMode == 'https') { %> + SOLR_SSL_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.truststore" + SOLR_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_TRUST_STORE_TYPE: "JCEKS" + SOLR_SSL_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_NEED_CLIENT_AUTH: "true" + SOLR_OPTS: " + -Dsolr.ssl.checkPeerName=false + -Dsolr.allow.unsafe.resourceloading=true + " <% } %> + ports: + - 8084:8983 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/solr:/opt/<%=searchPath%>/keystore <% } %> + <% } %> + + transform-core-aio: + image: alfresco/alfresco-transform-core-aio:${TRANSFORM_CORE_AIO_TAG} + mem_limit: 1536m + environment: + JAVA_OPTS: " -Xms256m -Xmx1536m" + ports: + - 8090:8090 + + share: + build: + context: ./share + args: + SHARE_TAG: ${SHARE_TAG} + mem_limit: 1g + environment: + REPO_HOST: "alfresco" + REPO_PORT: "8080" + JAVA_OPTS: " + -Xms500m + -Xmx500m + -Dalfresco.host=localhost + -Dalfresco.port=8080 + -Dalfresco.context=alfresco + -Dalfresco.protocol=http + " + + postgres: + image: postgres:${POSTGRES_TAG} + mem_limit: 512m + environment: + - POSTGRES_PASSWORD=alfresco + - POSTGRES_USER=alfresco + - POSTGRES_DB=alfresco + command: postgres -c max_connections=300 -c log_min_messages=LOG + ports: + - 5432:5432 + + activemq: + image: alfresco/alfresco-activemq:${ACTIVE_MQ_TAG} + mem_limit: 1g + ports: + - 8161:8161 # Web Console + - 5672:5672 # AMQP + - 61616:61616 # OpenWire + - 61613:61613 # STOMP + + content-app: + image: alfresco/alfresco-content-app:${ACA_TAG} + mem_limit: 256m + depends_on: + - alfresco + + # HTTP proxy to provide HTTP Default port access to services + # SOLR API and SOLR Web Console are protected to avoid unauthenticated access + proxy: + image: nginx:stable-alpine + mem_limit: 128m + depends_on: + - alfresco + volumes: + - ./config/nginx.conf:/etc/nginx/nginx.conf + - ./config/nginx.htpasswd:/etc/nginx/conf.d/nginx.htpasswd <% if (httpWebMode == 'https') { %> + - ./config/cert/localhost.cer:/etc/nginx/localhost.cer + - ./config/cert/localhost.key:/etc/nginx/localhost.key <% } %> + ports: + - <%=port%>:<%=port%> + links: + - alfresco + - share + - solr6 + - content-app \ No newline at end of file diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml new file mode 100755 index 000000000..5b3ebb509 --- /dev/null +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml @@ -0,0 +1,338 @@ +# Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose +version: "2" + +services: + alfresco: + build: + context: ./alfresco + args: + ALFRESCO_TAG: ${ALFRESCO_TAG} + SOLR_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + TRUSTSTORE_PASS: kT9X6oe68t + KEYSTORE_TYPE: JCEKS + KEYSTORE_PASS: kT9X6oe68t <% } %> + COMPRESS_CONTENT: "<%=gzip%>" + mem_limit: 1800m + environment: + JAVA_OPTS: " + -Ddb.driver=org.postgresql.Driver + -Ddb.username=alfresco + -Ddb.password=alfresco + -Ddb.url=jdbc:postgresql://postgres:5432/alfresco + -Dsolr.host=<%=searchSolrHost%> + -Dsolr.port.ssl=8983 + -Dsolr.secureComms=<%=secureComms%> + -Dsolr.baseUrl=/solr <% if (sharding == 'true') { %> + -Dsolr.useDynamicShardRegistration=true <% } %> + -Dindex.subsystem.name=solr6 + + -Daos.baseUrlOverwrite=http://localhost:8080/alfresco/aos + -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" + -Ddeployment.method=DOCKER_COMPOSE + + -Dmetadata-keystore.password=mp6yc0UD9e + -Dmetadata-keystore.aliases=metadata + -Dmetadata-keystore.metadata.password=mp6yc0UD9e + -Dmetadata-keystore.metadata.algorithm=AES <% if (httpMode == 'https') { %> + -Dencryption.keystore.type=pkcs12 + -Dencryption.cipherAlgorithm=AES/CBC/PKCS5Padding + -Dencryption.keyAlgorithm=AES <% } %> + + -Dtransform.service.enabled=true + -Dtransform.service.url=http://transform-router:8095 + -Dsfs.url=http://shared-file-store:8099/ + -DlocalTransform.core-aio.url=http://transform-core-aio:8090/ + -Dalfresco-pdf-renderer.url=http://transform-core-aio:8090/ + -Djodconverter.url=http://transform-core-aio:8090/ + -Dimg.url=http://transform-core-aio:8090/ + -Dtika.url=http://transform-core-aio:8090/ + -Dtransform.misc.url=http://transform-core-aio:8090/ + + -Dcsrf.filter.enabled=false + -Dalfresco.restApi.basicAuthScheme=true + -Xms1500m -Xmx1500m + <% if (httpMode == 'https') { %> + -Dssl-keystore.password=kT9X6oe68t + -Dssl-keystore.aliases=ssl-alfresco-ca,ssl-repo + -Dssl-keystore.ssl-alfresco-ca.password=kT9X6oe68t + -Dssl-keystore.ssl-repo.password=kT9X6oe68t + -Dssl-truststore.password=kT9X6oe68t + -Dssl-truststore.aliases=alfresco-ca,ssl-repo-client + -Dssl-truststore.alfresco-ca.password=kT9X6oe68t + -Dssl-truststore.ssl-repo-client.password=kT9X6oe68t <% } %> + " <% if (httpMode == 'https') { %> + ports: + - 8443:8443 + volumes: + - ./keystores/alfresco:/usr/local/tomcat/alf_data/keystore <% } %> + + solr6: + build: + context: ./search + args: + SEARCH_TAG: ${SEARCH_TAG} + SOLR_HOSTNAME: solr6 + ALFRESCO_HOSTNAME: alfresco + ALFRESCO_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + KEYSTORE_TYPE: JCEKS + PASSWORDS_AS_ENV_VARS: "true" <% } %> <% if (replication) { %> + ENABLE_MASTER: "true" + ENABLE_SLAVE: "false" <% } %> <% if (sharding == 'true') { %> + ENABLE_SHARDING: "true" + NUM_SHARDS: "2" + SHARD_ID: "0" <% if (shardingMethod == 'DB_ID_RANGE') { %> + SHARD_RANGE: "0-800" <% } %> <% if (shardingMethod == 'DATE') { %> + SHARD_KEY: "cm:created" + SHARD_DATE_GROUPING: "2" <% } %> <% if (shardingMethod == 'PROPERTY') { %> + SHARD_KEY: "shard:shardId" <% } %> <% if (shardingMethod == 'EXPLICIT_ID' || shardingMethod == 'EXPLICIT_ID_FALLBACK_LRIS') { %> + SHARD_KEY: "shard:shardId" <% } %> + SHARDING_METHOD: <%=shardingMethod%> <% } %> + COMPRESS_CONTENT: "<%=gzip%>" + mem_limit: 1200m + environment: + #Solr needs to know how to register itself with Alfresco + SOLR_ALFRESCO_HOST: "alfresco" + SOLR_ALFRESCO_PORT: "<%=alfrescoPort%>" + ALFRESCO_SECURE_COMMS: <%=secureComms%> + #Alfresco needs to know how to call solr + SOLR_SOLR_HOST: "solr6" + SOLR_SOLR_PORT: "8983" + #Create the default alfresco and archive cores + SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" + SOLR_JAVA_MEM: "-Xms1g -Xmx1g" <% if (httpMode == 'https') { %> + SOLR_SSL_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.truststore" + SOLR_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_TRUST_STORE_TYPE: "JCEKS" + SOLR_SSL_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.keystore" + SOLR_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_NEED_CLIENT_AUTH: "true" <% if (sharding == 'true') { %> + SOLR_SSL_CLIENT_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.keystore" + SOLR_SSL_CLIENT_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_CLIENT_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_CLIENT_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.keystore" + SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_CLIENT_TRUST_STORE_TYPE: "JCEKS" <% } %> + SOLR_OPTS: " + -Dsolr.ssl.checkPeerName=false + -Dsolr.allow.unsafe.resourceloading=true + -Dssl-keystore.password=kT9X6oe68t + -Dssl-keystore.aliases=ssl-alfresco-ca,ssl-repo-client + -Dssl-keystore.ssl-alfresco-ca.password=kT9X6oe68t + -Dssl-keystore.ssl-repo-client.password=kT9X6oe68t + -Dssl-truststore.password=kT9X6oe68t + -Dssl-truststore.aliases=ssl-alfresco-ca,ssl-repo,ssl-repo-client + -Dssl-truststore.ssl-alfresco-ca.password=kT9X6oe68t + -Dssl-truststore.ssl-repo.password=kT9X6oe68t + -Dssl-truststore.ssl-repo-client.password=kT9X6oe68t + " <% } %> + ports: + - 8083:8983 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/solr:/opt/<%=searchPath%>/keystore <% } %> + + <% if (sharding == 'true' || replication) { %> + solr6secondary: + build: + context: ./search + args: + SEARCH_TAG: ${SEARCH_TAG} + SOLR_HOSTNAME: solr6secondary + ALFRESCO_HOSTNAME: alfresco + ALFRESCO_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + KEYSTORE_TYPE: JCEKS + PASSWORDS_AS_ENV_VARS: "true" <% } %> <% if (replication) { %> + ENABLE_MASTER: <% if (replication == 'master-master') { %>"true"<% } else { %>"false"<% } %> + ENABLE_SLAVE: <% if (replication == 'master-master') { %>"false"<% } else { %>"true"<% } %> + MASTER_HOST: solr6 <% } %> <% if (sharding == 'true') { %> + ENABLE_SHARDING: "true" + NUM_SHARDS: "2" + SHARD_ID: "1" <% if (shardingMethod == 'DB_ID_RANGE') { %> + SHARD_RANGE: "801-40000" <% } %> <% if (shardingMethod == 'DATE') { %> + SHARD_KEY: "cm:created" + SHARD_DATE_GROUPING: "2" <% } %> <% if (shardingMethod == 'PROPERTY') { %> + SHARD_KEY: "shard:shardId" <% } %> <% if (shardingMethod == 'EXPLICIT_ID' || shardingMethod == 'EXPLICIT_ID_FALLBACK_LRIS') { %> + SHARD_KEY: "shard:shardId" <% } %> + SHARDING_METHOD: <%=shardingMethod%> <% } %> + COMPRESS_CONTENT: "<%=gzip%>" + mem_limit: 1200m + environment: + #Solr needs to know how to register itself with Alfresco + SOLR_ALFRESCO_HOST: "alfresco" + SOLR_ALFRESCO_PORT: "<%=alfrescoPort%>" + ALFRESCO_SECURE_COMMS: <%=secureComms%> + #Alfresco needs to know how to call solr + SOLR_SOLR_HOST: "solr6secondary" + SOLR_SOLR_PORT: "8983" + #Create the default alfresco and archive cores + SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" + SOLR_JAVA_MEM: "-Xms1g -Xmx1g" <% if (httpMode == 'https') { %> + SOLR_SSL_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.truststore" + SOLR_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_TRUST_STORE_TYPE: "JCEKS" + SOLR_SSL_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.keystore" + SOLR_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_NEED_CLIENT_AUTH: "true" <% if (sharding == 'true') { %> + SOLR_SSL_CLIENT_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.keystore" + SOLR_SSL_CLIENT_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_CLIENT_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_CLIENT_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.keystore" + SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_CLIENT_TRUST_STORE_TYPE: "JCEKS" <% } %> + SOLR_OPTS: " + -Dsolr.ssl.checkPeerName=false + -Dsolr.allow.unsafe.resourceloading=true + -Dssl-keystore.password=kT9X6oe68t + -Dssl-keystore.aliases=ssl-alfresco-ca,ssl-repo-client + -Dssl-keystore.ssl-alfresco-ca.password=kT9X6oe68t + -Dssl-keystore.ssl-repo-client.password=kT9X6oe68t + -Dssl-truststore.password=kT9X6oe68t + -Dssl-truststore.aliases=ssl-alfresco-ca,ssl-repo,ssl-repo-client + -Dssl-truststore.ssl-alfresco-ca.password=kT9X6oe68t + -Dssl-truststore.ssl-repo.password=kT9X6oe68t + -Dssl-truststore.ssl-repo-client.password=kT9X6oe68t + " <% } %> + ports: + - 8084:8983 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/solr:/opt/<%=searchPath%>/keystore <% } %> + <% } %> + + <% if (zeppelin == 'true') { %> + zeppelin: + build: + context: ./zeppelin + args: + ZEPPELIN_TAG: ${ZEPPELIN_TAG} + ALFRESCO_COMMS: <%=secureComms%> + mem_limit: 768m + environment: <% if (httpMode == 'https') { %> + REPO_PROTOCOL: "https" <% } %> + REPO_HOST: "alfresco" + REPO_PORT: "<%=alfrescoPort%>" <% if (httpMode == 'https') { %> + JAVA_OPTS: " + -Dalfresco.enable.ssl=true + -Dsolr.ssl.checkPeerName=false + -Djavax.net.ssl.keyStore=/zeppelin/keystore/ssl.repo.client.keystore + -Djavax.net.ssl.keyStorePassword=kT9X6oe68t + -Djavax.net.ssl.keyStoreType=JCEKS + -Djavax.net.ssl.trustStore=/zeppelin/keystore/ssl.repo.client.truststore + -Djavax.net.ssl.trustStorePassword=kT9X6oe68t + -Djavax.net.ssl.trustStoreType=JCEKS + " <% } %> + ports: + - 9090:9090 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/zeppelin:/zeppelin/keystore <% } %> + <% } %> + + transform-router: + mem_limit: 512m + image: quay.io/alfresco/alfresco-transform-router:${TRANSFORM_ROUTER_TAG} + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ACTIVEMQ_URL: "nio://activemq:61616" + CORE_AIO_URL : "http://transform-core-aio:8090" + FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + ports: + - 8095:8095 + links: + - activemq + + transform-core-aio: + image: alfresco/alfresco-transform-core-aio:${TRANSFORM_CORE_AIO_TAG} + mem_limit: 1536m + environment: + JAVA_OPTS: " -Xms256m -Xmx1536m" + ACTIVEMQ_URL: "nio://activemq:61616" + FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + ports: + - 8090:8090 + links: + - activemq + + shared-file-store: + image: alfresco/alfresco-shared-file-store:${SHARED_FILE_STORE_TAG} + mem_limit: 512m + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + scheduler.content.age.millis: 86400000 + scheduler.cleanup.interval: 86400000 + ports: + - 8099:8099 + volumes: + - shared-file-store-volume:/tmp/Alfresco/sfs + + share: + build: + context: ./share + args: + SHARE_TAG: ${SHARE_TAG} + mem_limit: 1g + environment: + REPO_HOST: "alfresco" + REPO_PORT: "8080" + JAVA_OPTS: " + -Xms500m + -Xmx500m + -Dalfresco.host=localhost + -Dalfresco.port=8080 + -Dalfresco.context=alfresco + -Dalfresco.protocol=http + " + + postgres: + image: postgres:${POSTGRES_TAG} + mem_limit: 512m + environment: + - POSTGRES_PASSWORD=alfresco + - POSTGRES_USER=alfresco + - POSTGRES_DB=alfresco + command: postgres -c max_connections=300 -c log_min_messages=LOG + ports: + - 5432:5432 + + activemq: + image: alfresco/alfresco-activemq:${ACTIVE_MQ_TAG} + mem_limit: 1g + ports: + - 8161:8161 # Web Console + - 5672:5672 # AMQP + - 61616:61616 # OpenWire + - 61613:61613 # STOMP + + content-app: + image: quay.io/alfresco/alfresco-digital-workspace:${DIGITAL_WORKSPACE_TAG} + mem_limit: 128m + environment: + BASEPATH: ./ + + # HTTP proxy to provide HTTP Default port access to services + # SOLR API and SOLR Web Console are protected to avoid unauthenticated access + proxy: + image: nginx:stable-alpine + mem_limit: 128m + depends_on: + - alfresco + volumes: + - ./config/nginx.conf:/etc/nginx/nginx.conf + - ./config/nginx.htpasswd:/etc/nginx/conf.d/nginx.htpasswd <% if (httpWebMode == 'https') { %> + - ./config/cert/localhost.cer:/etc/nginx/localhost.cer + - ./config/cert/localhost.key:/etc/nginx/localhost.key <% } %> + ports: + - <%=port%>:<%=port%> + links: + - alfresco + - share + - solr6 + - content-app + +volumes: + shared-file-store-volume: + driver_opts: + type: tmpfs + device: tmpfs From b530ef731cb095a245d025bef46020b2a5690a7f Mon Sep 17 00:00:00 2001 From: Elia Porciani Date: Wed, 3 Jun 2020 12:29:08 +0100 Subject: [PATCH 32/65] [SEARCH-2278] Modified DistributedAlfrescoSolrTrackerRace in order to test an hole of more than an hour between transactions --- .../solr/AlfrescoCoreAdminHandler.java | 4 +- .../alfresco/solr/HandlerReportHelper.java | 4 +- .../org/alfresco/solr/tracker/AclTracker.java | 226 ++++++----- .../alfresco/solr/tracker/CascadeTracker.java | 4 +- .../alfresco/solr/tracker/ContentTracker.java | 2 +- .../solr/tracker/MetadataTracker.java | 355 ++++++++---------- .../org/alfresco/solr/AlfrescoSolrUtils.java | 27 +- .../org/alfresco/solr/SolrITInitializer.java | 12 +- .../DistributedAlfrescoSolrTrackerRaceIT.java | 56 +-- ...rescoTrackerWithDelayedTransactionsIT.java | 169 +++++++++ .../tracker/DistributedCascadeTrackerIT.java | 6 +- 11 files changed, 506 insertions(+), 359 deletions(-) create mode 100644 search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoTrackerWithDelayedTransactionsIT.java diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java index 846b364ca..18ccb6d6f 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java @@ -1621,7 +1621,7 @@ public class AlfrescoCoreAdminHandler extends CoreAdminHandler { // Gets Metadata health and fixes any problems MetadataTracker metadataTracker = trackerRegistry.getTrackerForCore(coreName, MetadataTracker.class); - IndexHealthReport indexHealthReport = metadataTracker.checkIndex(null, null, null, null); + IndexHealthReport indexHealthReport = metadataTracker.checkIndex(null, null, null); IOpenBitSet toReindex = indexHealthReport.getTxInIndexButNotInDb(); toReindex.or(indexHealthReport.getDuplicatedTxInIndex()); toReindex.or(indexHealthReport.getMissingTxFromIndex()); @@ -1636,7 +1636,7 @@ public class AlfrescoCoreAdminHandler extends CoreAdminHandler // Gets the Acl health and fixes any problems AclTracker aclTracker = trackerRegistry.getTrackerForCore(coreName, AclTracker.class); - indexHealthReport = aclTracker.checkIndex(null, null, null, null); + indexHealthReport = aclTracker.checkIndex(null, null, null); toReindex = indexHealthReport.getAclTxInIndexButNotInDb(); toReindex.or(indexHealthReport.getDuplicatedAclTxInIndex()); toReindex.or(indexHealthReport.getMissingAclTxFromIndex()); diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerReportHelper.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerReportHelper.java index a6738ba79..43d402de5 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerReportHelper.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerReportHelper.java @@ -157,7 +157,7 @@ class HandlerReportHelper { // ACL AclTracker aclTracker = trackerRegistry.getTrackerForCore(coreName, AclTracker.class); - IndexHealthReport aclReport = aclTracker.checkIndex(toTx, toAclTx, fromTime, toTime); + IndexHealthReport aclReport = aclTracker.checkIndex(toAclTx, fromTime, toTime); NamedList ihr = new SimpleOrderedMap<>(); ihr.add("DB acl transaction count", aclReport.getDbAclTransactionCount()); ihr.add("Count of duplicated acl transactions in the index", aclReport.getDuplicatedAclTxInIndex() @@ -187,7 +187,7 @@ class HandlerReportHelper // Metadata MetadataTracker metadataTracker = trackerRegistry.getTrackerForCore(coreName, MetadataTracker.class); - IndexHealthReport metaReport = metadataTracker.checkIndex(toTx, toAclTx, fromTime, toTime); + IndexHealthReport metaReport = metadataTracker.checkIndex(toTx, fromTime, toTime); ihr.add("DB transaction count", metaReport.getDbTransactionCount()); ihr.add("Count of duplicated transactions in the index", metaReport.getDuplicatedTxInIndex() .cardinality()); diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AclTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AclTracker.java index e039893b6..bb40da9e0 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AclTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AclTracker.java @@ -56,8 +56,6 @@ import org.alfresco.solr.client.Acl; import org.alfresco.solr.client.AclChangeSet; import org.alfresco.solr.client.AclChangeSets; import org.alfresco.solr.client.AclReaders; -import org.alfresco.solr.client.GetNodesParameters; -import org.alfresco.solr.client.Node; import org.alfresco.solr.client.SOLRAPIClient; import org.json.JSONException; import org.slf4j.Logger; @@ -73,21 +71,30 @@ public class AclTracker extends AbstractTracker { protected final static Logger LOGGER = LoggerFactory.getLogger(AclTracker.class); + private static final int ACL_CHANGE_SETS_FOUND_QUEUE_SIZE = 100; private static final int DEFAULT_CHANGE_SET_ACLS_BATCH_SIZE = 2000; private static final int DEFAULT_ACL_BATCH_SIZE = 100; private static final int DEFAULT_ACL_TRACKER_MAX_PARALLELISM = 32; + private static final long DEFAULT_ACL_TRACKER_TIMESTEP = TIME_STEP_1_HR_IN_MS; + + private static final long INITIAL_MAX_ACL_CHANGE_SET_ID = 2000L; + private static final int MAX_NUMBER_OF_ACL_CHANGE_SETS = 2000; + + private static final long MAX_TIME_STEP = TIME_STEP_32_DAYS_IN_MS; private int aclTrackerParallelism; - private int changeSetAclsBatchSize = DEFAULT_CHANGE_SET_ACLS_BATCH_SIZE; - private int aclBatchSize = DEFAULT_ACL_BATCH_SIZE; + private int changeSetAclsBatchSize; + private int aclBatchSize; + private long timeStep; + private int maxNumberOfAclChangeSets; - private ConcurrentLinkedQueue aclChangeSetsToReindex = new ConcurrentLinkedQueue(); - private ConcurrentLinkedQueue aclChangeSetsToIndex = new ConcurrentLinkedQueue(); - private ConcurrentLinkedQueue aclChangeSetsToPurge = new ConcurrentLinkedQueue(); - private ConcurrentLinkedQueue aclsToReindex = new ConcurrentLinkedQueue(); - private ConcurrentLinkedQueue aclsToIndex = new ConcurrentLinkedQueue(); - private ConcurrentLinkedQueue aclsToPurge = new ConcurrentLinkedQueue(); + private ConcurrentLinkedQueue aclChangeSetsToReindex = new ConcurrentLinkedQueue<>(); + private ConcurrentLinkedQueue aclChangeSetsToIndex = new ConcurrentLinkedQueue<>(); + private ConcurrentLinkedQueue aclChangeSetsToPurge = new ConcurrentLinkedQueue<>(); + private ConcurrentLinkedQueue aclsToReindex = new ConcurrentLinkedQueue<>(); + private ConcurrentLinkedQueue aclsToIndex = new ConcurrentLinkedQueue<>(); + private ConcurrentLinkedQueue aclsToPurge = new ConcurrentLinkedQueue<>(); private DocRouter docRouter; private ForkJoinPool forkJoinPool; @@ -121,14 +128,21 @@ public class AclTracker extends AbstractTracker super(p, client, coreName, informationServer, Tracker.Type.ACL); changeSetAclsBatchSize = Integer.parseInt(p.getProperty("alfresco.changeSetAclsBatchSize", String.valueOf(DEFAULT_CHANGE_SET_ACLS_BATCH_SIZE))); - aclBatchSize = Integer.parseInt(p.getProperty("alfresco.aclBatchSize", String.valueOf(DEFAULT_ACL_BATCH_SIZE))); + aclBatchSize = Integer.parseInt(p.getProperty("alfresco.aclBatchSize", + String.valueOf(DEFAULT_ACL_BATCH_SIZE))); shardMethod = p.getProperty("shard.method", SHARD_METHOD_DBID); docRouter = DocRouterFactory.getRouter(p, ShardMethodEnum.getShardMethod(shardMethod)); - aclTrackerParallelism = Integer.parseInt(p.getProperty("alfresco.aclTrackerMaxParallelism", + aclTrackerParallelism = Integer.parseInt(p.getProperty("alfresco.acl.tracker.maxParallelism", String.valueOf(DEFAULT_ACL_TRACKER_MAX_PARALLELISM))); forkJoinPool = new ForkJoinPool(aclTrackerParallelism); + timeStep = Long.parseLong(p.getProperty("alfresco.acl.tracker.timestep", + String.valueOf(DEFAULT_ACL_TRACKER_TIMESTEP))); + + maxNumberOfAclChangeSets = Integer.parseInt(p.getProperty("alfresco.acl.tracker.maxNumberOfAclChangeSets", + String.valueOf(MAX_NUMBER_OF_ACL_CHANGE_SETS))); + RUN_LOCK_BY_CORE.put(coreName, new Semaphore(1, true)); WRITE_LOCK_BY_CORE.put(coreName, new Semaphore(1, true)); } @@ -168,8 +182,10 @@ public class AclTracker extends AbstractTracker Long aclChangeSetId = aclChangeSetsToIndex.poll(); if (aclChangeSetId != null) { - AclChangeSets aclChangeSets = client.getAclChangeSets(null, aclChangeSetId, null, aclChangeSetId+1, 1); - if ((aclChangeSets.getAclChangeSets().size() > 0) && aclChangeSetId.equals(aclChangeSets.getAclChangeSets().get(0).getId())) + AclChangeSets aclChangeSets = client.getAclChangeSets(null, aclChangeSetId, + null, aclChangeSetId+1, 1); + if ((aclChangeSets.getAclChangeSets().size() > 0) && + aclChangeSetId.equals(aclChangeSets.getAclChangeSets().get(0).getId())) { AclChangeSet changeSet = aclChangeSets.getAclChangeSets().get(0); List acls = client.getAcls(Collections.singletonList(changeSet), null, Integer.MAX_VALUE); @@ -184,9 +200,8 @@ public class AclTracker extends AbstractTracker } else { - LOGGER.info( - "[CORE {}] - INDEX ACTION - AclChangeSetId {} was not found in database, it has NOT been reindexed", - coreName, aclChangeSetId); + LOGGER.info("[CORE {}] - INDEX ACTION - AclChangeSetId {} was not found in database, " + + "it has NOT been reindexed", coreName, aclChangeSetId); } } checkShutdown(); @@ -227,11 +242,14 @@ public class AclTracker extends AbstractTracker { this.infoSrv.deleteByAclChangeSetId(aclChangeSetId); - AclChangeSets aclChangeSets = client.getAclChangeSets(null, aclChangeSetId, null, aclChangeSetId+1, 1); - if ((aclChangeSets.getAclChangeSets().size() > 0) && aclChangeSetId.equals(aclChangeSets.getAclChangeSets().get(0).getId())) + AclChangeSets aclChangeSets = client.getAclChangeSets(null, aclChangeSetId, + null, aclChangeSetId+1, 1); + if ((aclChangeSets.getAclChangeSets().size() > 0) && + aclChangeSetId.equals(aclChangeSets.getAclChangeSets().get(0).getId())) { AclChangeSet changeSet = aclChangeSets.getAclChangeSets().get(0); - List acls = client.getAcls(Collections.singletonList(changeSet), null, Integer.MAX_VALUE); + List acls = client.getAcls(Collections.singletonList(changeSet), + null, Integer.MAX_VALUE); for (Acl acl : acls) { List readers = client.getAclReaders(Collections.singletonList(acl)); @@ -239,14 +257,14 @@ public class AclTracker extends AbstractTracker } this.infoSrv.indexAclTransaction(changeSet, true); - LOGGER.info("[CORE {}] - REINDEX ACTION - AclChangeSetId {} has been reindexed", coreName, aclChangeSetId); + LOGGER.info("[CORE {}] - REINDEX ACTION - AclChangeSetId {} has been reindexed", + coreName, aclChangeSetId); requiresCommit = true; } else { - LOGGER.info( - "[CORE {}] - REINDEX ACTION - AclChangeSetId {} was not found in database, it has NOT been reindexed", - coreName, aclChangeSetId); + LOGGER.info("[CORE {}] - REINDEX ACTION - AclChangeSetId {} was not found in database, " + + "it has NOT been reindexed", coreName, aclChangeSetId); } } checkShutdown(); @@ -295,7 +313,6 @@ public class AclTracker extends AbstractTracker } checkShutdown(); } - } protected void purgeAcls() throws IOException, JSONException @@ -376,7 +393,8 @@ public class AclTracker extends AbstractTracker state.setCheckedFirstAclTransactionTime(true); LOGGER.info("[CORE {}] - No acl transactions found - no verification required", coreName); - firstChangeSets = client.getAclChangeSets(null, 0L, null, 2000L, 1); + firstChangeSets = client.getAclChangeSets(null, 0L, + null, INITIAL_MAX_ACL_CHANGE_SET_ID, 1); if (!firstChangeSets.getAclChangeSets().isEmpty()) { AclChangeSet firstChangeSet = firstChangeSets.getAclChangeSets().get(0); @@ -388,19 +406,23 @@ public class AclTracker extends AbstractTracker if (!state.isCheckedFirstAclTransactionTime()) { - firstChangeSets = client.getAclChangeSets(null, 0L, null, 2000L, 1); + firstChangeSets = client.getAclChangeSets(null, 0L, + null, INITIAL_MAX_ACL_CHANGE_SET_ID, 1); if (!firstChangeSets.getAclChangeSets().isEmpty()) { AclChangeSet firstAclChangeSet= firstChangeSets.getAclChangeSets().get(0); long firstAclTxId = firstAclChangeSet.getId(); long firstAclTxCommitTime = firstAclChangeSet.getCommitTimeMs(); - int setSize = this.infoSrv.getAclTxDocsSize(""+firstAclTxId, ""+firstAclTxCommitTime); + int setSize = this.infoSrv.getAclTxDocsSize(Long.toString(firstAclTxId), + Long.toString(firstAclTxCommitTime)); if (setSize == 0) { LOGGER.error("[CORE {}] First acl transaction was not found with the correct timestamp.", coreName); - LOGGER.error("SOLR has successfully connected to your repository however the SOLR indexes and repository database do not match."); - LOGGER.error("If this is a new or rebuilt database your SOLR indexes also need to be re-built to match the database."); + LOGGER.error("SOLR has successfully connected to your repository " + + "however the SOLR indexes and repository database do not match."); + LOGGER.error("If this is a new or rebuilt database your SOLR indexes " + + "also need to be re-built to match the database."); LOGGER.error("You can also check your SOLR connection details in solrcore.properties."); throw new AlfrescoRuntimeException("Initial acl transaction not found with correct timestamp"); } @@ -421,7 +443,8 @@ public class AclTracker extends AbstractTracker { if (firstChangeSets == null) { - firstChangeSets = client.getAclChangeSets(null, 0L, null, 2000L, 1); + firstChangeSets = client.getAclChangeSets(null, 0L, + null, INITIAL_MAX_ACL_CHANGE_SET_ID, 1); } setLastChangeSetIdAndCommitTimeInTrackerState(firstChangeSets.getAclChangeSets(), state); @@ -432,19 +455,23 @@ public class AclTracker extends AbstractTracker AclChangeSet maxAclTxInIndex = this.infoSrv.getMaxAclChangeSetIdAndCommitTimeInIndex(); if (maxAclTxInIndex.getCommitTimeMs() > maxChangeSetCommitTimeInRepo) { - LOGGER.error("[CORE {}] Last acl transaction was found in index with timestamp later than that of repository.", coreName); + LOGGER.error("[CORE {}] Last acl transaction was found in index with " + + "timestamp later than that of repository.", coreName); LOGGER.error("Max Acl Tx In Index: " + maxAclTxInIndex.getId() + ", In Repo: " + maxChangeSetIdInRepo); LOGGER.error("Max Acl Tx Commit Time In Index: " + maxAclTxInIndex.getCommitTimeMs() + ", In Repo: " + maxChangeSetCommitTimeInRepo); - LOGGER.error("SOLR has successfully connected to your repository however the SOLR indexes and repository database do not match."); - LOGGER.error("If this is a new or rebuilt database your SOLR indexes also need to be re-built to match the database."); + LOGGER.error("SOLR has successfully connected to your repository" + + " however the SOLR indexes and repository database do not match."); + LOGGER.error("If this is a new or rebuilt database your SOLR indexes " + + "also need to be re-built to match the database."); LOGGER.error("You can also check your SOLR connection details in solrcore.properties."); throw new AlfrescoRuntimeException("Last acl transaction found in index with incorrect timestamp"); } else { state.setCheckedLastAclTransactionTime(true); - LOGGER.info("[CORE {}] - Verified last acl transaction timestamp in index less than or equal to that of repository.", coreName); + LOGGER.info("[CORE {}] - Verified last acl transaction timestamp in index less" + + " than or equal to that of repository.", coreName); } } } @@ -467,7 +494,9 @@ public class AclTracker extends AbstractTracker } } - protected AclChangeSets getSomeAclChangeSets(BoundedDeque changeSetsFound, Long fromCommitTime, long timeStep, int maxResults, long endTime) throws AuthenticationException, IOException, JSONException + protected AclChangeSets getSomeAclChangeSets(BoundedDeque changeSetsFound, Long fromCommitTime, + long timeStep, int maxResults, long endTime) + throws AuthenticationException, IOException, JSONException { long actualTimeStep = timeStep; @@ -477,15 +506,17 @@ public class AclTracker extends AbstractTracker Long startTime = fromCommitTime == null ? Long.valueOf(0L) : fromCommitTime; do { - aclChangeSets = client.getAclChangeSets(startTime, null, startTime + actualTimeStep, null, maxResults); + aclChangeSets = client.getAclChangeSets(startTime, null, + startTime + actualTimeStep, null, maxResults); startTime += actualTimeStep; actualTimeStep *= 2; - if(actualTimeStep > TIME_STEP_32_DAYS_IN_MS) + if(actualTimeStep > MAX_TIME_STEP) { - actualTimeStep = TIME_STEP_32_DAYS_IN_MS; + actualTimeStep = MAX_TIME_STEP; } } - while( ((aclChangeSets.getAclChangeSets().size() == 0) && (startTime < endTime)) || ((aclChangeSets.getAclChangeSets().size() > 0) && alreadyFoundChangeSets(changeSetsFound, aclChangeSets))); + while( ((aclChangeSets.getAclChangeSets().size() == 0) && (startTime < endTime)) || + ((aclChangeSets.getAclChangeSets().size() > 0) && alreadyFoundChangeSets(changeSetsFound, aclChangeSets))); return aclChangeSets; @@ -526,12 +557,13 @@ public class AclTracker extends AbstractTracker trackerStats.addAclTime(time); } - public IndexHealthReport checkIndex(Long toTx, Long toAclTx, Long fromTime, Long toTime) + public IndexHealthReport checkIndex(Long toAclTx, Long fromTime, Long toTime) throws AuthenticationException, IOException, JSONException { // DB ACL TX Count long firstChangeSetCommitTimex = 0; - AclChangeSets firstChangeSets = client.getAclChangeSets(null, 0L, null, 2000L, 1); + AclChangeSets firstChangeSets = client.getAclChangeSets(null, 0L, + null, INITIAL_MAX_ACL_CHANGE_SET_ID, 1); if(firstChangeSets.getAclChangeSets().size() > 0) { AclChangeSet firstChangeSet = firstChangeSets.getAclChangeSets().get(0); @@ -549,11 +581,11 @@ public class AclTracker extends AbstractTracker Long minAclTxId = null; long endTime = System.currentTimeMillis() + infoSrv.getHoleRetention(); AclChangeSets aclTransactions; - BoundedDeque changeSetsFound = new BoundedDeque<>(100); + BoundedDeque changeSetsFound = new BoundedDeque<>(ACL_CHANGE_SETS_FOUND_QUEUE_SIZE); DO: do { - aclTransactions = getSomeAclChangeSets(changeSetsFound, lastAclTxCommitTime, TIME_STEP_1_HR_IN_MS, 2000, - endTime); + aclTransactions = getSomeAclChangeSets(changeSetsFound, + lastAclTxCommitTime, timeStep, maxNumberOfAclChangeSets, endTime); for (AclChangeSet set : aclTransactions.getAclChangeSets()) { // include @@ -597,7 +629,8 @@ public class AclTracker extends AbstractTracker try { ArrayList answer = new ArrayList<>(); - AclChangeSets changeSet = client.getAclChangeSets(null, acltxid, null, acltxid+1, 1); + AclChangeSets changeSet = client.getAclChangeSets(null, acltxid, null, + acltxid+1, 1); List acls = client.getAcls(changeSet.getAclChangeSets(), null, Integer.MAX_VALUE); for (Acl acl : acls) { @@ -646,10 +679,9 @@ public class AclTracker extends AbstractTracker { long startElapsed = System.nanoTime(); - - boolean upToDate = false; + AclChangeSets aclChangeSets; - BoundedDeque changeSetsFound = new BoundedDeque(100); + BoundedDeque changeSetsFound = new BoundedDeque<>(ACL_CHANGE_SETS_FOUND_QUEUE_SIZE); long totalAclCount = 0; int aclCount; @@ -672,7 +704,7 @@ public class AclTracker extends AbstractTracker Long fromCommitTime = getChangeSetFromCommitTime(changeSetsFound, state.getLastChangeSetCommitTimeOnServer() == 0 ? state.getLastGoodChangeSetCommitTimeInIndex() : state.getLastChangeSetCommitTimeOnServer()); - aclChangeSets = getSomeAclChangeSets(changeSetsFound, fromCommitTime, TIME_STEP_1_HR_IN_MS, 2000, + aclChangeSets = getSomeAclChangeSets(changeSetsFound, fromCommitTime, timeStep, maxNumberOfAclChangeSets, state.getTimeToStopIndexing()); if (aclChangeSets.getAclChangeSets().size() > 0) @@ -690,53 +722,28 @@ public class AclTracker extends AbstractTracker LOGGER.info("{}-[CORE {}] No ACL change set found after lastTxCommitTime {}", Thread.currentThread().getId(), coreName, fromCommitTime); } - - // Ignore indexed ACL Change Sets - aclChangeSets = new AclChangeSets(aclChangeSets.getAclChangeSets().stream() - .filter(changeSet -> { - try - { - boolean isInIndex = (changeSet.getCommitTimeMs() <= state.getLastIndexedChangeSetCommitTime() && - infoSrv.aclChangeSetInIndex(changeSet.getId(), true)); - if (LOGGER.isTraceEnabled()) - { - LOGGER.trace("{}-[CORE {}] Skipping change Set Id {} as it was already indexed", - Thread.currentThread().getId(), coreName, changeSet.getId()); - } - return !isInIndex; - } - catch (IOException e) - { - LOGGER.warn( - "{}-[CORE {}] Error catched while checking if ACL Change Set {} was in index", - Thread.currentThread().getId(), coreName, changeSet.getId(), e); - return true; - } - }) - .collect(Collectors.toList())); - - // Make sure we do not go ahead of where we started - we will check the holes here // correctly next time - if (aclChangeSets.getAclChangeSets().stream().anyMatch(changeSet -> changeSet.getCommitTimeMs() > state.getTimeToStopIndexing())) + if (aclChangeSets.getAclChangeSets() + .stream() + .anyMatch(changeSet -> changeSet.getCommitTimeMs() > state.getTimeToStopIndexing())) { break; } final AtomicInteger counter = new AtomicInteger(); Collection> changeSetBatches = aclChangeSets.getAclChangeSets().stream() - .collect(Collectors.groupingBy(it -> counter.getAndAdd(it.getAclCount()) / changeSetAclsBatchSize)).values(); + .peek(changeSetsFound::add) + .filter(this::isAclChangeSetAlreadyIndexed) + .collect(Collectors.groupingBy(it -> counter.getAndAdd(it.getAclCount()) / changeSetAclsBatchSize)) + .values(); for (List changeSetBatch : changeSetBatches) { aclCount = indexBatchOfChangeSets(changeSetBatch); - for (AclChangeSet indexed : changeSetBatch) - { - changeSetsFound.add(indexed); - } // Update last committed transactions setLastChangeSetIdAndCommitTimeInTrackerState(changeSetBatch, state); indexAclChangeSetAfterWorker(changeSetBatch, state); @@ -757,28 +764,47 @@ public class AclTracker extends AbstractTracker } } - while ((aclChangeSets.getAclChangeSets().size() > 0) && (upToDate == false)); + while ((aclChangeSets.getAclChangeSets().size() > 0)); LOGGER.info("{}-[CORE {}] Tracked {} ACLs", Thread.currentThread().getId(), coreName, totalAclCount); } + private boolean isAclChangeSetAlreadyIndexed(AclChangeSet changeSet) + { + + try + { + boolean isInIndex = (changeSet.getCommitTimeMs() <= state.getLastIndexedChangeSetCommitTime() && + infoSrv.aclChangeSetInIndex(changeSet.getId(), true)); + if (LOGGER.isTraceEnabled()) + { + LOGGER.trace("{}-[CORE {}] Skipping change Set Id {} as it was already indexed", + Thread.currentThread().getId(), coreName, changeSet.getId()); + } + return !isInIndex; + } + catch (IOException e) + { + LOGGER.warn( + "{}-[CORE {}] Error catched while checking if ACL Change Set {} was in index", + Thread.currentThread().getId(), coreName, changeSet.getId(), e); + return true; + } + + } + private void setLastChangeSetIdAndCommitTimeInTrackerState(List aclChangeSets, TrackerState state) { if (!aclChangeSets.isEmpty()) { - Long maxChangeSetCommitTime = aclChangeSets.stream().max(Comparator.comparing(AclChangeSet::getCommitTimeMs)).get().getCommitTimeMs(); - if(maxChangeSetCommitTime != null) - { - state.setLastChangeSetCommitTimeOnServer(maxChangeSetCommitTime); - } - - Long maxChangeSetId = aclChangeSets.stream().max(Comparator.comparing(AclChangeSet::getId)).get().getId(); - if(maxChangeSetId != null) - { - state.setLastChangeSetIdOnServer(maxChangeSetId); - } + long maxChangeSetCommitTime = + aclChangeSets.stream().max(Comparator.comparing(AclChangeSet::getCommitTimeMs)).get().getCommitTimeMs(); + state.setLastChangeSetCommitTimeOnServer(maxChangeSetCommitTime); + + long maxChangeSetId = aclChangeSets.stream().max(Comparator.comparing(AclChangeSet::getId)).get().getId(); + state.setLastChangeSetIdOnServer(maxChangeSetId); } } @@ -804,15 +830,6 @@ public class AclTracker extends AbstractTracker } } - private int getAclCount(List changeSetBatch) - { - int count = 0; - for (AclChangeSet set : changeSetBatch) - { - count += set.getAclCount(); - } - return count; - } /** * Index ACLs from ACL Change Sets contained in changeSetBatch @@ -822,7 +839,8 @@ public class AclTracker extends AbstractTracker * @param changeSetBatch List of ACL Change Sets to be indexed * @return List of ACL Change Set indexed and Count of ACL indexed */ - private int indexBatchOfChangeSets(List changeSetBatch) throws AuthenticationException, IOException, JSONException, ExecutionException, InterruptedException { + private int indexBatchOfChangeSets(List changeSetBatch) + throws AuthenticationException, IOException, JSONException, ExecutionException, InterruptedException { // Exclude ACL Change Set with no ACLs inside List nonEmptyChangeSets = changeSetBatch.stream() .filter(set -> set.getAclCount() > 0) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CascadeTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CascadeTracker.java index 7506cb2c7..96751218b 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CascadeTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CascadeTracker.java @@ -92,10 +92,10 @@ public class CascadeTracker extends AbstractTracker implements Tracker { super(p, client, coreName, informationServer, Tracker.Type.CASCADE); - cascadeTrackerParallelism = Integer.parseInt(p.getProperty("alfresco.cascadeTrackerMaxParallelism", + cascadeTrackerParallelism = Integer.parseInt(p.getProperty("alfresco.cascade.tracker.maxParallelism", String.valueOf(DEFAULT_CASCADE_TRACKER_MAX_PARALLELISM))); - cascadeBatchSize = Integer.parseInt(p.getProperty("alfresco.cascadeNodeBatchSize", + cascadeBatchSize = Integer.parseInt(p.getProperty("alfresco.cascade.tracker.nodeBatchSize", String.valueOf(DEFAULT_CASCADE_NODE_BATCH_SIZE)));; forkJoinPool = new ForkJoinPool(cascadeTrackerParallelism); diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ContentTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ContentTracker.java index ff2c66fd1..b260fa031 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ContentTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/ContentTracker.java @@ -83,7 +83,7 @@ public class ContentTracker extends AbstractTracker implements Tracker contentUpdateBatchSize = Integer.parseInt(p.getProperty("alfresco.contentUpdateBatchSize", String.valueOf(DEFAULT_CONTENT_UPDATE_BATCH_SIZE))); - contentTrackerParallelism = Integer.parseInt(p.getProperty("alfresco.contentTrackerMaxParallelism", + contentTrackerParallelism = Integer.parseInt(p.getProperty("alfresco.content.tracker.maxParallelism", String.valueOf(DEFAULT_CONTENT_TRACKER_MAX_PARALLELISM))); forkJoinPool = new ForkJoinPool(contentTrackerParallelism); diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java index 439b1c981..1067fdfe2 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java @@ -49,7 +49,8 @@ import org.slf4j.LoggerFactory; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -59,6 +60,7 @@ import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ExecutionException; import java.util.concurrent.ForkJoinPool; import java.util.concurrent.Semaphore; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; import static org.alfresco.repo.index.shard.ShardMethodEnum.DB_ID_RANGE; @@ -71,26 +73,31 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker { protected final static Logger LOGGER = LoggerFactory.getLogger(MetadataTracker.class); + private static final int METADATA_TRANSACTIONS_FOUND_QUEUE_SIZE = 100; private static final int DEFAULT_METADATA_TRACKER_MAX_PARALLELISM = 32; private static final int DEFAULT_TRANSACTION_DOCS_BATCH_SIZE = 2000; private static final int DEFAULT_MAX_NUMBER_OF_TRANSACTIONS = 2000; private static final int DEFAULT_NODE_BATCH_SIZE = 50; private static final String DEFAULT_INITIAL_TRANSACTION_RANGE = "0-2000"; + private static final long DEFAULT_METADATA_TRACKER_TIMESTEP = TIME_STEP_1_HR_IN_MS; + private static final long INITIAL_MAX_TXN_ID = 2000L; private int matadataTrackerParallelism; private int transactionDocsBatchSize; private int nodeBatchSize; private int maxNumberOfTransactions; + private long timeStep; - private ConcurrentLinkedQueue transactionsToReindex = new ConcurrentLinkedQueue<>(); - private ConcurrentLinkedQueue transactionsToIndex = new ConcurrentLinkedQueue<>(); - private ConcurrentLinkedQueue transactionsToPurge = new ConcurrentLinkedQueue<>(); - private ConcurrentLinkedQueue nodesToReindex = new ConcurrentLinkedQueue<>(); - private ConcurrentLinkedQueue nodesToIndex = new ConcurrentLinkedQueue<>(); - private ConcurrentLinkedQueue nodesToPurge = new ConcurrentLinkedQueue<>(); - private ConcurrentLinkedQueue queriesToReindex = new ConcurrentLinkedQueue<>(); + private final ConcurrentLinkedQueue transactionsToReindex = new ConcurrentLinkedQueue<>(); + private final ConcurrentLinkedQueue transactionsToIndex = new ConcurrentLinkedQueue<>(); + private final ConcurrentLinkedQueue transactionsToPurge = new ConcurrentLinkedQueue<>(); + private final ConcurrentLinkedQueue nodesToReindex = new ConcurrentLinkedQueue<>(); + private final ConcurrentLinkedQueue nodesToIndex = new ConcurrentLinkedQueue<>(); + private final ConcurrentLinkedQueue nodesToPurge = new ConcurrentLinkedQueue<>(); + private final ConcurrentLinkedQueue queriesToReindex = new ConcurrentLinkedQueue<>(); - private final boolean isRunningInProduction = !Boolean.parseBoolean(System.getProperty("alfresco.test", "false")); + private final boolean isRunningInProduction = + !Boolean.parseBoolean(System.getProperty("alfresco.test", "false")); private ForkJoinPool forkJoinPool; @@ -160,11 +167,18 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker String.valueOf(DEFAULT_TRANSACTION_DOCS_BATCH_SIZE))); nodeBatchSize = Integer.parseInt(p.getProperty("alfresco.nodeBatchSize", String.valueOf(DEFAULT_NODE_BATCH_SIZE))); - maxNumberOfTransactions = Integer.parseInt(p.getProperty("alfresco.maxNumberOfTransactions", String.valueOf(DEFAULT_MAX_NUMBER_OF_TRANSACTIONS))); - matadataTrackerParallelism = Integer.parseInt(p.getProperty("alfresco.metadataTrackerMaxParallelism", + maxNumberOfTransactions = Integer.parseInt(p.getProperty("alfresco.metadata.tracker.maxNumberOfTransactions", + String.valueOf(DEFAULT_MAX_NUMBER_OF_TRANSACTIONS))); + matadataTrackerParallelism = Integer.parseInt(p.getProperty("alfresco.metadata.tracker.maxParallelism", String.valueOf(DEFAULT_METADATA_TRACKER_MAX_PARALLELISM))); - String[] minTxninitialRangeString = p.getProperty("solr.initial.transaction.range", DEFAULT_INITIAL_TRANSACTION_RANGE).split("-"); + timeStep = Long.parseLong(p.getProperty("alfresco.metadata.tracker.timestep", + String.valueOf(DEFAULT_METADATA_TRACKER_TIMESTEP))); + + String[] minTxninitialRangeString = + p.getProperty("solr.initial.transaction.range", DEFAULT_INITIAL_TRANSACTION_RANGE) + .split("-"); + cascadeTrackerEnabled = informationServer.cascadeTrackingEnabled(); minTxnIdRange = new Pair<>(Long.valueOf(minTxninitialRangeString[0]), Long.valueOf(minTxninitialRangeString[1])); forkJoinPool = new ForkJoinPool(matadataTrackerParallelism); @@ -179,12 +193,13 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker // Try invoking getNextTxCommitTime service try { - client.getNextTxCommitTime(coreName, 0l); + client.getNextTxCommitTime(coreName, 0L); nextTxCommitTimeServiceAvailable = true; } catch (NoSuchMethodException e) { - LOGGER.warn("nextTxCommitTimeService is not available. Upgrade your ACS Repository version in order to use this feature: {} ", e.getMessage()); + LOGGER.warn("nextTxCommitTimeService is not available. " + + "Upgrade your ACS Repository version in order to use this feature: {} ", e.getMessage()); } catch (Exception e) { @@ -196,12 +211,13 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker { try { - client.getTxIntervalCommitTime(coreName, 0l, 0l); + client.getTxIntervalCommitTime(coreName, 0L, 0L); txIntervalCommitTimeServiceAvailable = true; } catch (NoSuchMethodException e) { - LOGGER.warn("txIntervalCommitTimeServiceAvailable is not available. Upgrade your ACS Repository version " + + LOGGER.warn("txIntervalCommitTimeServiceAvailable is not available. " + + "Upgrade your ACS Repository version " + "to use this feature with DB_ID_RANGE sharding: {} ", e.getMessage()); } catch (Exception e) @@ -219,8 +235,8 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker } @Override - protected void doTrack(String iterationId) throws AuthenticationException, IOException, JSONException, EncoderException - { + protected void doTrack(String iterationId) + throws AuthenticationException, IOException, JSONException { // MetadataTracker must wait until ModelTracker has run ModelTracker modelTracker = this.infoSrv.getAdminHandler().getTrackerRegistry().getModelTracker(); if (modelTracker != null && modelTracker.hasModels()) @@ -255,7 +271,7 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker queriesToReindex.size() > 0; } - private void trackRepository() throws IOException, AuthenticationException, JSONException, EncoderException + private void trackRepository() throws IOException, AuthenticationException, JSONException { checkShutdown(); @@ -303,7 +319,8 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker state.setCheckedFirstTransactionTime(true); LOGGER.info("No transactions found - no verification required"); - firstTransactions = client.getTransactions(null, minTxnIdRange.getFirst(), null, minTxnIdRange.getSecond(), 1); + firstTransactions = client.getTransactions(null, minTxnIdRange.getFirst(), + null, minTxnIdRange.getSecond(), 1); if (!firstTransactions.getTransactions().isEmpty()) { Transaction firstTransaction = firstTransactions.getTransactions().get(0); @@ -321,7 +338,7 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker // are skipped if they are not related with the range of the Shard. // Getting the minCommitTime for the Shard is enough in order to check // that the first transaction is present. - long minCommitTime = 0l; + long minCommitTime = 0L; if (docRouter instanceof DBIDRangeRouter && txIntervalCommitTimeServiceAvailable) { try @@ -333,28 +350,34 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker } catch (NoSuchMethodException e) { - LOGGER.warn("txIntervalCommitTimeServiceAvailable is not available. If you are using DB_ID_RANGE shard method, " - + "upgrade your ACS Repository version in order to use the skip transactions feature: {} ", e.getMessage()); + LOGGER.warn("txIntervalCommitTimeServiceAvailable is not available." + + " If you are using DB_ID_RANGE shard method, " + + "upgrade your ACS Repository version in order to use the skip transactions feature: {} ", + e.getMessage()); } } // When a Shard with DB_ID_RANGE method is empty, minCommitTime is -1. // No firstTransaction checking is required for this case. - if (minCommitTime != -1l) { + if (minCommitTime != -1L) { - firstTransactions = client.getTransactions(minCommitTime, 0L, null, 2000l, 1); + firstTransactions = client.getTransactions(minCommitTime, 0L, + null, INITIAL_MAX_TXN_ID, 1); if (!firstTransactions.getTransactions().isEmpty()) { Transaction firstTransaction = firstTransactions.getTransactions().get(0); long firstTxId = firstTransaction.getId(); long firstTransactionCommitTime = firstTransaction.getCommitTimeMs(); - int setSize = this.infoSrv.getTxDocsSize(""+firstTxId, ""+firstTransactionCommitTime); + int setSize = this.infoSrv.getTxDocsSize(Long.toString(firstTxId), + Long.toString(firstTransactionCommitTime)); if (setSize == 0) { LOGGER.error("First transaction was not found with the correct timestamp."); - LOGGER.error("SOLR has successfully connected to your repository however the SOLR indexes and repository database do not match."); - LOGGER.error("If this is a new or rebuilt database your SOLR indexes also need to be re-built to match the database."); + LOGGER.error("SOLR has successfully connected to your repository however the SOLR indexes" + + " and repository database do not match."); + LOGGER.error("If this is a new or rebuilt database your SOLR indexes also need to be " + + "re-built to match the database."); LOGGER.error("You can also check your SOLR connection details in solrcore.properties."); throw new AlfrescoRuntimeException("Initial transaction not found with correct timestamp"); } @@ -376,7 +399,8 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker { if (firstTransactions == null) { - firstTransactions = client.getTransactions(null, minTxnIdRange.getFirst(), null, minTxnIdRange.getSecond(), 1); + firstTransactions = client.getTransactions(null, minTxnIdRange.getFirst(), + null, minTxnIdRange.getSecond(), 1); } setLastTxCommitTimeAndTxIdInTrackerState(firstTransactions); @@ -391,8 +415,10 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker LOGGER.error("Max Tx In Index: " + maxTxInIndex.getId() + ", In Repo: " + maxTxnIdInRepo); LOGGER.error("Max Tx Commit Time In Index: " + maxTxInIndex.getCommitTimeMs() + ", In Repo: " + maxTxnCommitTimeInRepo); - LOGGER.error("SOLR has successfully connected to your repository however the SOLR indexes and repository database do not match."); - LOGGER.error("If this is a new or rebuilt database your SOLR indexes also need to be re-built to match the database."); + LOGGER.error("SOLR has successfully connected to your repository however the SOLR indexes" + + " and repository database do not match."); + LOGGER.error("If this is a new or rebuilt database your SOLR indexes also need to " + + "be re-built to match the database."); LOGGER.error("You can also check your SOLR connection details in solrcore.properties."); throw new AlfrescoRuntimeException("Last transaction found in index with incorrect timestamp"); } @@ -416,20 +442,22 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker Long transactionId = transactionsToIndex.poll(); if (transactionId != null) { - Transactions transactions = client.getTransactions(null, transactionId, null, transactionId+1, 1); - if ((transactions.getTransactions().size() > 0) && (transactionId.equals(transactions.getTransactions().get(0).getId()))) + Transactions transactions = client.getTransactions(null, transactionId, + null, transactionId + 1, 1); + if ((transactions.getTransactions().size() > 0) && + (transactionId.equals(transactions.getTransactions().get(0).getId()))) { Transaction info = transactions.getTransactions().get(0); GetNodesParameters gnp = new GetNodesParameters(); - ArrayList txs = new ArrayList(); + ArrayList txs = new ArrayList<>(); txs.add(info.getId()); gnp.setTransactionIds(txs); gnp.setStoreProtocol(storeRef.getProtocol()); gnp.setStoreIdentifier(storeRef.getIdentifier()); updateShardProperty(); - shardProperty.ifPresent(p -> gnp.setShardProperty(p)); + shardProperty.ifPresent(gnp::setShardProperty); gnp.setCoreName(coreName); @@ -455,27 +483,14 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker } else { - LOGGER.info("INDEX ACTION - Transaction {} was not found in database, it has NOT been reindexed", transactionId); - } - } - - if (docCount > batchCount) - { - if(this.infoSrv.getRegisteredSearcherCount() < getMaxLiveSearchers()) - { - checkShutdown(); - long endElapsed = System.nanoTime(); - trackerStats.addElapsedNodeTime(docCount, endElapsed-startElapsed); - startElapsed = endElapsed; - docCount = 0; - requiresCommit = false; + LOGGER.info("INDEX ACTION - Transaction {} was not found in database, it has NOT been reindexed", + transactionId); } } } - if (requiresCommit || (docCount > 0)) + if (requiresCommit) { checkShutdown(); - //this.infoSrv.commit(); long endElapsed = System.nanoTime(); trackerStats.addElapsedNodeTime(docCount, endElapsed - startElapsed); } @@ -520,13 +535,15 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker // make sure it is cleaned out so we do not miss deletes this.infoSrv.deleteByTransactionId(transactionId); - Transactions transactions = client.getTransactions(null, transactionId, null, transactionId+1, 1); - if ((transactions.getTransactions().size() > 0) && (transactionId.equals(transactions.getTransactions().get(0).getId()))) + Transactions transactions = client.getTransactions(null, transactionId, + null, transactionId+1, 1); + if ((transactions.getTransactions().size() > 0) && + (transactionId.equals(transactions.getTransactions().get(0).getId()))) { Transaction info = transactions.getTransactions().get(0); this.infoSrv.dirtyTransaction(info.getId()); GetNodesParameters gnp = new GetNodesParameters(); - ArrayList txs = new ArrayList(); + ArrayList txs = new ArrayList<>(); txs.add(info.getId()); gnp.setTransactionIds(txs); gnp.setStoreProtocol(storeRef.getProtocol()); @@ -550,7 +567,8 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker } else { - LOGGER.info("REINDEX ACTION - Transaction {} was not found in database, it has NOT been reindexed", transactionId); + LOGGER.info("REINDEX ACTION - Transaction {} was not found in database, it has NOT been reindexed", + transactionId); } } @@ -629,7 +647,7 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker } - private void purgeTransactions() throws IOException, AuthenticationException, JSONException + private void purgeTransactions() throws IOException, JSONException { boolean requiresCommit = false; while (transactionsToPurge.peek() != null) @@ -651,7 +669,7 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker } } - private void purgeNodes() throws IOException, AuthenticationException, JSONException + private void purgeNodes() throws IOException, JSONException { while (nodesToPurge.peek() != null) { @@ -715,22 +733,21 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker } protected Transactions getSomeTransactions(BoundedDeque txnsFound, Long fromCommitTime, long timeStep, - int maxResults, long endTime) throws AuthenticationException, IOException, JSONException, EncoderException, NoSuchMethodException + int maxResults, long endTime) + throws AuthenticationException, IOException, JSONException, EncoderException, NoSuchMethodException { - long actualTimeStep = timeStep; - ShardState shardstate = getShardState(); Transactions transactions; // step forward in time until we find something or hit the time bound // max id unbounded - Long startTime = fromCommitTime == null ? 0L : fromCommitTime; + long startTime = fromCommitTime == null ? 0L : fromCommitTime; if(startTime == 0) { return client.getTransactions(startTime, null, - startTime + actualTimeStep, + startTime + timeStep, null, maxResults, shardstate); @@ -738,8 +755,9 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker do { - transactions = client.getTransactions(startTime, null, startTime + actualTimeStep, null, maxResults, shardstate); - startTime += actualTimeStep; + transactions = client.getTransactions(startTime, null, startTime + timeStep, + null, maxResults, shardstate); + startTime += timeStep; // If no transactions are found, advance the time window to the next available transaction commit time if (nextTxCommitTimeServiceAvailable && transactions.getTransactions().size() == 0) @@ -749,7 +767,8 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker { LOGGER.info("{}-[CORE {}] Advancing transactions from {} to {}", Thread.currentThread().getId(), coreName, startTime, nextTxCommitTime); - transactions = client.getTransactions(nextTxCommitTime, null, nextTxCommitTime + actualTimeStep, null, maxResults, shardstate); + transactions = client.getTransactions(nextTxCommitTime, null, + nextTxCommitTime + timeStep, null, maxResults, shardstate); } } @@ -807,7 +826,7 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker fromCommitTime = shardMinCommitTime; } - Transactions transactions = getSomeTransactions(txnsFound, fromCommitTime, TIME_STEP_1_HR_IN_MS, maxNumberOfTransactions, + Transactions transactions = getSomeTransactions(txnsFound, fromCommitTime, timeStep, maxNumberOfTransactions, state.getTimeToStopIndexing()); @@ -819,7 +838,7 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker latestTransaction.setCommitTimeMs(transactions.getMaxTxnCommitTime()); latestTransaction.setId(transactions.getMaxTxnId()); transactions = new Transactions( - Arrays.asList(latestTransaction), + Collections.singletonList(latestTransaction), transactions.getMaxTxnCommitTime(), transactions.getMaxTxnId()); } @@ -827,81 +846,49 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker return transactions; } - /** - * Remove transactions already present in SOLR index - * - * @param transactions List of transactions to be indexed - * @return List of transactions not indexed in SOLR index - */ - private Transactions removeIndexedTransactions(Transactions transactions) + private boolean isTransactionIndexed(Transaction transaction) { - return new Transactions(transactions.getTransactions().stream() - .filter(transaction -> { - try - { - boolean isInIndex = (transaction.getCommitTimeMs() <= state.getLastIndexedTxCommitTime() && - infoSrv.txnInIndex(transaction.getId(), true)); - if (LOGGER.isTraceEnabled()) - { - LOGGER.trace("{}-[CORE {}] Skipping Transaction Id {} as it was already indexed", - Thread.currentThread().getId(), coreName, transaction.getId()); - } - return !isInIndex; - } - catch (IOException e) - { - LOGGER.warn( - "{}-[CORE {}] Error catched while checking if Transaction Id {} was in index", - Thread.currentThread().getId(), coreName, transaction.getId(), e); - return true; - } - }) - .collect(Collectors.toList())); - + try + { + boolean isInIndex = (transaction.getCommitTimeMs() <= state.getLastIndexedTxCommitTime() && + infoSrv.txnInIndex(transaction.getId(), true)); + if (LOGGER.isTraceEnabled()) + { + LOGGER.trace("{}-[CORE {}] Skipping Transaction Id {} as it was already indexed", + Thread.currentThread().getId(), coreName, transaction.getId()); + } + return !isInIndex; + } + catch (IOException e) + { + LOGGER.warn( + "{}-[CORE {}] Error catched while checking if Transaction Id {} was in index", + Thread.currentThread().getId(), coreName, transaction.getId(), e); + return true; + } } - //fixme remove - /** - * Keep only transactions previous to node transaction Id - * - * @param transactions List of transactions from Repository - * @param node Last Node indexed in the cycle - * @return Filtered list of transactions - */ - private Transactions filterTransactionsByNode(Transactions transactions, Node node) - { - return new Transactions(transactions.getTransactions().stream() - .filter(transaction -> { - return transaction.getId() < node.getTxnId(); - }) - .collect(Collectors.toList())); - } - /** * Indexing new transactions from repository in batches of "transactionDocsBatchSize" size. * * Additionally, the nodes inside a transaction batch are indexed in batches of "nodeBatchSize" size. * - * @throws AuthenticationException * @throws IOException * @throws JSONException - * @throws EncoderException */ - protected void trackTransactions() throws AuthenticationException, IOException, JSONException, EncoderException + protected void trackTransactions() throws IOException, JSONException { long startElapsed = System.nanoTime(); - boolean upToDate = false; Transactions transactions; - BoundedDeque txnsFound = new BoundedDeque(100); + BoundedDeque txnsFound = new BoundedDeque<>(METADATA_TRANSACTIONS_FOUND_QUEUE_SIZE); int totalUpdatedDocs = 0; LOGGER.info("{}-[CORE {}] Starting metadata tracker execution", Thread.currentThread().getId(), coreName); do { - try { /* @@ -918,7 +905,8 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker this.state = getTrackerState(); Long fromCommitTime = getTxFromCommitTime(txnsFound, - state.getLastIndexedTxCommitTime() == 0 ? state.getLastGoodTxCommitTimeInIndex() : state.getLastIndexedTxCommitTime()); + state.getLastIndexedTxCommitTime() == 0 ? state.getLastGoodTxCommitTimeInIndex() + : state.getLastIndexedTxCommitTime()); // Get transaction list to be indexed if (docRouter instanceof DBIDRangeRouter && txIntervalCommitTimeServiceAvailable) @@ -927,12 +915,10 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker } else { - transactions = getSomeTransactions(txnsFound, fromCommitTime, TIME_STEP_1_HR_IN_MS, maxNumberOfTransactions, + transactions = getSomeTransactions(txnsFound, fromCommitTime, timeStep, maxNumberOfTransactions, state.getTimeToStopIndexing()); } - // Remove transactions already indexed - transactions = removeIndexedTransactions(transactions); if (transactions.getTransactions().size() > 0) { @@ -949,48 +935,45 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker LOGGER.info("{}-[CORE {}] No transaction found after lastTxCommitTime {}", Thread.currentThread().getId(), coreName, - ((txnsFound.size() > 0) ? txnsFound.getLast().getCommitTimeMs() : state.getLastIndexedTxCommitTime())); + ((txnsFound.size() > 0) ? txnsFound.getLast().getCommitTimeMs() + : state.getLastIndexedTxCommitTime())); } - // Group the transactions in batches of transactionDocsBatchSize (or less) - List> txBatches = new ArrayList<>(); - List txBatch = new ArrayList<>(); - for (Transaction info : transactions.getTransactions()) { - - if (LOGGER.isTraceEnabled()) - { - LOGGER.trace("{}-[CORE {}] Tracking {} Transactions. Current Transaction Id to be indexed: {}", - Thread.currentThread().getId(), coreName, transactions.getTransactions().size(), info.getId()); - } - - // Make sure we do not go ahead of where we started - we will check the holes here - // correctly next time - if (info.getCommitTimeMs() > state.getTimeToStopIndexing()) { - upToDate = true; - break; - } - - txBatch.add(info); - if (getUpdateAndDeleteCount(txBatch) > transactionDocsBatchSize) { - txBatches.add(txBatch); - txBatch = new ArrayList<>(); - } - } - if (!txBatch.isEmpty()) + // Make sure we do not go ahead of where we started - we will check the holes here + // correctly next time + if (transactions.getTransactions() + .stream() + .anyMatch(transaction -> transaction.getCommitTimeMs() > state.getTimeToStopIndexing())) { - txBatches.add(txBatch); + break; } + long transaction_number = transactions.getTransactions().size(); + final AtomicInteger counter = new AtomicInteger(); + Collection> txBatches = transactions.getTransactions().stream() + .peek(txnsFound::add) + .filter(this::isTransactionIndexed) + .peek(transaction -> { + if (LOGGER.isTraceEnabled()) + { + LOGGER.trace("{}-[CORE {}] Tracking {} Transactions. Current Transaction Id to be indexed: {}", + Thread.currentThread().getId(), coreName, transaction_number, transaction.getId()); + } + }) + .collect(Collectors.groupingBy(transaction -> counter.getAndAdd( + (int) (transaction.getDeletes() + transaction.getUpdates())) / transactionDocsBatchSize)) + .values(); + // Index batches of transactions and the nodes updated or deleted within the transaction for (List batch : txBatches) { // Index nodes contained in the transactions - int docCount = indexBatchOfTransactions(batch, totalUpdatedDocs); + int docCount = indexBatchOfTransactions(batch); totalUpdatedDocs += docCount; // Add the transactions as found to avoid processing them again in the next iteration - batch.forEach(transaction -> txnsFound.add(transaction)); + batch.forEach(txnsFound::add); // Index the transactions indexTransactionsAfterWorker(batch); @@ -999,10 +982,7 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker startElapsed = endElapsed; } - - setLastTxCommitTimeAndTxIdInTrackerState(transactions); - } catch(Exception e) { @@ -1014,7 +994,7 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker } } - while ((transactions.getTransactions().size() > 0) && (upToDate == false)); + while ((transactions.getTransactions().size() > 0)); LOGGER.info("{}-[CORE {}] Tracked {} DOCs", Thread.currentThread().getId(), coreName, totalUpdatedDocs); } @@ -1062,20 +1042,6 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker txsIndexed.clear(); } - /** - * Return the number of updated and deleted nodes in a list of transactions - * @param txs List of transactions - * @return Number of updated and deleted nodes - */ - private long getUpdateAndDeleteCount(List txs) - { - long count = 0; - for (Transaction tx : txs) - { - count += (tx.getUpdates() + tx.getDeletes()); - } - return count; - } /** * Index a batch of transactions. @@ -1084,23 +1050,20 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker * the metadata of the nodes in smaller invocations to Repository * * @param txBatch Batch of transactions to be indexed - * @param indexedNodes Number of nodes indexed in this Tracker execution - * * @return Number of nodes indexed and last node indexed * * @throws AuthenticationException * @throws IOException * @throws JSONException */ - private int indexBatchOfTransactions(List txBatch, int indexedNodes) throws AuthenticationException, IOException, JSONException, ExecutionException, InterruptedException { + private int indexBatchOfTransactions(List txBatch) + throws AuthenticationException, IOException, JSONException, ExecutionException, InterruptedException { // Skip transactions without modifications (updates, deletes) - ArrayList nonEmptyTxs = new ArrayList<>(txBatch.size()); ArrayList txIds = new ArrayList<>(); for (Transaction tx : txBatch) { if (tx.getUpdates() > 0 || tx.getDeletes() > 0) { - nonEmptyTxs.add(tx); txIds.add(tx.getId()); } } @@ -1118,22 +1081,18 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker if (LOGGER.isDebugEnabled()) { - LOGGER.debug("{}-[CORE {}] Found {} Nodes to be indexed from Transactions: {}", Thread.currentThread().getId(), - coreName, nodes.size(), txIds); + LOGGER.debug("{}-[CORE {}] Found {} Nodes to be indexed from Transactions: {}", + Thread.currentThread().getId(), coreName, nodes.size(), txIds); } // Group the nodes in batches of nodeBatchSize (or less) List> nodeBatches = Lists.partition(nodes, nodeBatchSize); - Integer processedNodes = forkJoinPool.submit(() -> + return forkJoinPool.submit(() -> nodeBatches.parallelStream().map(batch -> { new NodeIndexWorker(batch, infoSrv).run(); return batch.size(); }).reduce(0, Integer::sum)).get(); - - - - return processedNodes; } @@ -1260,7 +1219,7 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker try { GetNodesParameters gnp = new GetNodesParameters(); - ArrayList txs = new ArrayList(); + ArrayList txs = new ArrayList<>(); txs.add(txid); gnp.setTransactionIds(txs); gnp.setStoreProtocol(storeRef.getProtocol()); @@ -1268,26 +1227,19 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker gnp.setCoreName(coreName); return client.getNodes(gnp, Integer.MAX_VALUE); } - catch (IOException e) - { - throw new AlfrescoRuntimeException("Failed to get nodes", e); - } - catch (JSONException e) - { - throw new AlfrescoRuntimeException("Failed to get nodes", e); - } - catch (AuthenticationException e) + catch (IOException | AuthenticationException | JSONException e) { throw new AlfrescoRuntimeException("Failed to get nodes", e); } } - public IndexHealthReport checkIndex(Long toTx, Long toAclTx, Long fromTime, Long toTime) + public IndexHealthReport checkIndex(Long toTx, Long fromTime, Long toTime) throws IOException, AuthenticationException, JSONException, EncoderException, NoSuchMethodException { // DB TX Count long firstTransactionCommitTime = 0; - Transactions firstTransactions = client.getTransactions(null, 0L, null, 2000l, 1); + Transactions firstTransactions = client.getTransactions(null, 0L, + null, INITIAL_MAX_TXN_ID, 1); if(firstTransactions.getTransactions().size() > 0) { Transaction firstTransaction = firstTransactions.getTransactions().get(0); @@ -1295,7 +1247,7 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker } IOpenBitSet txIdsInDb = infoSrv.getOpenBitSetInstance(); - Long lastTxCommitTime = Long.valueOf(firstTransactionCommitTime); + long lastTxCommitTime = firstTransactionCommitTime; if (fromTime != null) { lastTxCommitTime = fromTime; @@ -1304,24 +1256,24 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker Long minTxId = null; Transactions transactions; - BoundedDeque txnsFound = new BoundedDeque(100); + BoundedDeque txnsFound = new BoundedDeque<>(METADATA_TRANSACTIONS_FOUND_QUEUE_SIZE); long endTime = System.currentTimeMillis() + infoSrv.getHoleRetention(); DO: do { - transactions = getSomeTransactions(txnsFound, lastTxCommitTime, TIME_STEP_1_HR_IN_MS, maxNumberOfTransactions, endTime); + transactions = getSomeTransactions(txnsFound, lastTxCommitTime, timeStep, maxNumberOfTransactions, endTime); for (Transaction info : transactions.getTransactions()) { // include if (toTime != null) { - if (info.getCommitTimeMs() > toTime.longValue()) + if (info.getCommitTimeMs() > toTime) { break DO; } } if (toTx != null) { - if (info.getId() > toTx.longValue()) + if (info.getId() > toTx) { break DO; } @@ -1382,9 +1334,6 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker infoSrv.clearProcessedTransactions(); } - /** - * @param query - */ public void addQueryToReindex(String query) { this.queriesToReindex.offer(query); diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrUtils.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrUtils.java index 17d0166eb..c910878ab 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrUtils.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoSolrUtils.java @@ -135,18 +135,17 @@ public class AlfrescoSolrUtils */ public static Transaction getTransaction(int deletes, int updates) { - long txnCommitTime = System.currentTimeMillis(); - Transaction transaction = new Transaction(); - transaction.setCommitTimeMs(txnCommitTime); - transaction.setId(generateId()); - transaction.setDeletes(deletes); - transaction.setUpdates(updates); - return transaction; + return getTransaction(deletes, updates, generateId()); } public static Transaction getTransaction(int deletes, int updates, long id) { - long txnCommitTime = System.currentTimeMillis(); + return getTransaction(deletes, updates, id, System.currentTimeMillis()); + } + + public static Transaction getTransaction(int deletes, int updates, long id, long timestamp) + { + long txnCommitTime = timestamp; Transaction transaction = new Transaction(); transaction.setCommitTimeMs(txnCommitTime); transaction.setId(id); @@ -309,6 +308,7 @@ public class AlfrescoSolrUtils Acl acl = new Acl(aclChangeSet.getId(), aclId); return acl; } + /** * Get an AclChangeSet * @param aclCount @@ -316,14 +316,17 @@ public class AlfrescoSolrUtils */ public static AclChangeSet getAclChangeSet(int aclCount) { - AclChangeSet aclChangeSet = new AclChangeSet(generateId(), System.currentTimeMillis(), aclCount); - return aclChangeSet; + return new AclChangeSet(generateId(), System.currentTimeMillis(), aclCount); } public static AclChangeSet getAclChangeSet(int aclCount, long id) { - AclChangeSet aclChangeSet = new AclChangeSet(id, System.currentTimeMillis(), aclCount); - return aclChangeSet; + return new AclChangeSet(id, System.currentTimeMillis(), aclCount); + } + + public static AclChangeSet getAclChangeSet(int aclCount, long id, long timestamp) + { + return new AclChangeSet(id, timestamp, aclCount); } private static AtomicLong id = new AtomicLong(System.currentTimeMillis()); diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrITInitializer.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrITInitializer.java index bb3b1fa52..24d744f00 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrITInitializer.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrITInitializer.java @@ -29,7 +29,6 @@ package org.alfresco.solr; import static org.alfresco.solr.AlfrescoSolrUtils.createCoreUsingTemplate; import com.carrotsearch.randomizedtesting.annotations.ThreadLeakScope; -import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering; import org.alfresco.solr.basics.RandomSupplier; import org.alfresco.solr.client.SOLRAPIQueueClient; import org.apache.commons.io.FileUtils; @@ -98,7 +97,10 @@ import java.util.concurrent.atomic.AtomicInteger; public abstract class SolrITInitializer extends SolrTestCaseJ4 { private static final Logger LOGGER = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - + protected static final int DEFAULT_CONNECTION_TIMEOUT1 = DEFAULT_CONNECTION_TIMEOUT; + protected static final int CLIENT_SO_TIMEOUT = 90000; + protected final static int INDEX_TIMEOUT = 100000; + private static AtomicInteger nodeCnt; protected static boolean useExplicitNodeNames; @@ -115,8 +117,6 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 //Standalone Tests protected static SolrCore defaultCore; - protected static final int clientConnectionTimeout = DEFAULT_CONNECTION_TIMEOUT; - protected static final int clientSoTimeout = 90000; protected static final String id = "id"; @@ -501,8 +501,8 @@ public abstract class SolrITInitializer extends SolrTestCaseJ4 try { HttpSolrClient client = new HttpSolrClient(url); - client.setConnectionTimeout(clientConnectionTimeout); - client.setSoTimeout(clientSoTimeout); + client.setConnectionTimeout(DEFAULT_CONNECTION_TIMEOUT1); + client.setSoTimeout(CLIENT_SO_TIMEOUT); client.setDefaultMaxConnectionsPerHost(100); client.setMaxTotalConnections(100); return client; diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerRaceIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerRaceIT.java index 631cd7363..bc2cec9d2 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerRaceIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoSolrTrackerRaceIT.java @@ -66,7 +66,7 @@ public class DistributedAlfrescoSolrTrackerRaceIT extends AbstractAlfrescoDistri @BeforeClass public static void initData() throws Throwable { - initSolrServers(2, "DistributedAlfrescoSolrTrackerRaceTest", null); + initSolrServers(2, "DistributedAlfrescoSolrTrackerRaceIT", null); } @AfterClass @@ -76,25 +76,23 @@ public class DistributedAlfrescoSolrTrackerRaceIT extends AbstractAlfrescoDistri } @Test - public void testTracker() throws Exception - { + public void testTracker() throws Exception { putHandleDefaults(); - AclChangeSet aclChangeSet = getAclChangeSet(1); + AclChangeSet aclChangeSet = getAclChangeSet(2, 1, System.currentTimeMillis() - + AbstractTracker.TIME_STEP_32_DAYS_IN_MS); Acl acl = getAcl(aclChangeSet); Acl acl2 = getAcl(aclChangeSet); - AclReaders aclReaders = getAclReaders(aclChangeSet, acl, singletonList("joel"), singletonList("phil"), null); - AclReaders aclReaders2 = getAclReaders(aclChangeSet, acl2, singletonList("jim"), singletonList("phil"), null); + AclReaders aclReaders = + getAclReaders(aclChangeSet, acl, singletonList("joel"), singletonList("phil"), null); + AclReaders aclReaders2 = + getAclReaders(aclChangeSet, acl2, singletonList("jim"), singletonList("phil"), null); // Transaction between [1-2000] is required, when greater value checking the core will fail - Transaction txn = getTransaction(0, 2, 1); - long txnCommitTimeMs = txn.getCommitTimeMs(); - - // Subtract from the commit time to go beyond hole retention - long backdatedCommitTimeMs = txnCommitTimeMs - 4600000; - txn.setCommitTimeMs(backdatedCommitTimeMs); + Transaction txn = getTransaction(0, 2, 1, + System.currentTimeMillis() - AbstractTracker.TIME_STEP_32_DAYS_IN_MS); //Next create two nodes to update for the transaction Node folderNode = getNode(txn, acl, Node.SolrApiNodeStatus.UPDATED); @@ -103,9 +101,12 @@ public class DistributedAlfrescoSolrTrackerRaceIT extends AbstractAlfrescoDistri // Next, create the node metadata for each node. // Note: the error node metadata will cause an exception. - NodeMetaData folderMetaData = getNodeMetaData(folderNode, txn, acl, "mike", null, false); - NodeMetaData fileMetaData = getNodeMetaData(fileNode, txn, acl, "mike", ancestors(folderMetaData.getNodeRef()), false); - NodeMetaData errorMetaData = getNodeMetaData(errorNode, txn, acl, "lisa", ancestors(folderMetaData.getNodeRef()), true); + NodeMetaData folderMetaData = + getNodeMetaData(folderNode, txn, acl, "mike", null, false); + NodeMetaData fileMetaData = getNodeMetaData(fileNode, txn, acl, "mike", + ancestors(folderMetaData.getNodeRef()), false); + NodeMetaData errorMetaData = getNodeMetaData(errorNode, txn, acl, "lisa", + ancestors(folderMetaData.getNodeRef()), true); // Index the transaction, nodes, and nodeMetaDatas. // Note that the content is automatically created by the test framework. @@ -113,25 +114,34 @@ public class DistributedAlfrescoSolrTrackerRaceIT extends AbstractAlfrescoDistri indexAclChangeSet(aclChangeSet, asList(acl, acl2), asList(aclReaders, aclReaders2)); BooleanQuery.Builder builder = new BooleanQuery.Builder(); - builder.add(new BooleanClause(new TermQuery(new Term(QueryConstants.FIELD_SOLR4_ID, "TRACKER!STATE!ACLTX")), BooleanClause.Occur.MUST)); - builder.add(new BooleanClause(LegacyNumericRangeQuery.newLongRange(QueryConstants.FIELD_S_ACLTXID, aclChangeSet.getId(), aclChangeSet.getId() + 1, true, false), BooleanClause.Occur.MUST)); + builder.add(new BooleanClause(new TermQuery(new Term(QueryConstants.FIELD_SOLR4_ID, "TRACKER!STATE!ACLTX")), + BooleanClause.Occur.MUST)); + + builder.add(new BooleanClause(LegacyNumericRangeQuery.newLongRange(QueryConstants.FIELD_S_ACLTXID, + aclChangeSet.getId(), aclChangeSet.getId() + 1, true, false), + BooleanClause.Occur.MUST)); + BooleanQuery waitForQuery = builder.build(); - waitForDocCountAllCores(waitForQuery, 1, 80000); + waitForDocCountAllCores(waitForQuery, 1, INDEX_TIMEOUT); // This ACL should have one record in each core with DBID sharding - waitForDocCountAllCores(new TermQuery(new Term(QueryConstants.FIELD_READER, "jim")), 1, 80000); + waitForDocCountAllCores(new TermQuery(new Term(QueryConstants.FIELD_READER, "jim")), 1, INDEX_TIMEOUT); // We should have 2 document in totals (1 folder and 1 file) - waitForDocCount(new TermQuery(new Term("content@s___t@{http://www.alfresco.org/model/content/1.0}content", "world")), 2, 100000); + waitForDocCount(new TermQuery(new Term("content@s___t@{http://www.alfresco.org/model/content/1.0}content", + "world")), 2, INDEX_TIMEOUT); // There should be 1 with the folder node identifier. - waitForDocCount(new TermQuery(new Term("content@s___t@{http://www.alfresco.org/model/content/1.0}content", Long.toString(folderNode.getId()))), 1, 80000); + waitForDocCount(new TermQuery(new Term("content@s___t@{http://www.alfresco.org/model/content/1.0}content", + Long.toString(folderNode.getId()))), 1, INDEX_TIMEOUT); // There should be 1 with the file node identifier. - waitForDocCount(new TermQuery(new Term("content@s___t@{http://www.alfresco.org/model/content/1.0}content", Long.toString(fileNode.getId()))), 1, 80000); + waitForDocCount(new TermQuery(new Term("content@s___t@{http://www.alfresco.org/model/content/1.0}content", + Long.toString(fileNode.getId()))), 1, INDEX_TIMEOUT); // and last but not least, the error node shouldn't be in the index. - waitForDocCount(new TermQuery(new Term("content@s___t@{http://www.alfresco.org/model/content/1.0}content", Long.toString(errorNode.getId()))), 0, 80000); + waitForDocCount(new TermQuery(new Term("content@s___t@{http://www.alfresco.org/model/content/1.0}content", + Long.toString(errorNode.getId()))), 0, INDEX_TIMEOUT); // This will run the same query on the control client and the cluster and compare the result. query(getDefaultTestClient(), diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoTrackerWithDelayedTransactionsIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoTrackerWithDelayedTransactionsIT.java new file mode 100644 index 000000000..60258626c --- /dev/null +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedAlfrescoTrackerWithDelayedTransactionsIT.java @@ -0,0 +1,169 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + +package org.alfresco.solr.tracker; + +import org.alfresco.repo.search.adaptor.lucene.QueryConstants; +import org.alfresco.solr.AbstractAlfrescoDistributedIT; +import org.alfresco.solr.client.Acl; +import org.alfresco.solr.client.AclChangeSet; +import org.alfresco.solr.client.AclReaders; +import org.alfresco.solr.client.Node; +import org.alfresco.solr.client.NodeMetaData; +import org.alfresco.solr.client.Transaction; +import org.apache.lucene.index.Term; +import org.apache.lucene.search.BooleanClause; +import org.apache.lucene.search.BooleanQuery; +import org.apache.lucene.search.LegacyNumericRangeQuery; +import org.apache.lucene.search.TermQuery; +import org.apache.solr.SolrTestCaseJ4; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import java.util.List; + +import static java.util.Arrays.asList; +import static java.util.Collections.singletonList; +import static org.alfresco.solr.AlfrescoSolrUtils.ancestors; +import static org.alfresco.solr.AlfrescoSolrUtils.getAcl; +import static org.alfresco.solr.AlfrescoSolrUtils.getAclChangeSet; +import static org.alfresco.solr.AlfrescoSolrUtils.getAclReaders; +import static org.alfresco.solr.AlfrescoSolrUtils.getNode; +import static org.alfresco.solr.AlfrescoSolrUtils.getNodeMetaData; +import static org.alfresco.solr.AlfrescoSolrUtils.getTransaction; +import static org.alfresco.solr.AlfrescoSolrUtils.indexAclChangeSet; + +@SolrTestCaseJ4.SuppressSSL +public class DistributedAlfrescoTrackerWithDelayedTransactionsIT extends AbstractAlfrescoDistributedIT { + + private static NodeMetaData folderMetaData; + private static AclChangeSet aclChangeSet; + + @BeforeClass + public static void initData() throws Throwable + { + initializeDataBeforeServerCreation(); + initSolrServers(2, "DistributedAlfrescoTrackerWithDelayedTransactionsIT", + null); + } + + + @AfterClass + public static void destroyData() + { + dismissSolrServers(); + } + + private static void initializeDataBeforeServerCreation() + { + putHandleDefaults(); + + aclChangeSet = getAclChangeSet(2, 1, + System.currentTimeMillis() - AbstractTracker.TIME_STEP_32_DAYS_IN_MS); + + Acl acl = getAcl(aclChangeSet); + Acl acl2 = getAcl(aclChangeSet); + + AclReaders aclReaders = + getAclReaders(aclChangeSet, acl, singletonList("joel"), singletonList("phil"), null); + AclReaders aclReaders2 = + getAclReaders(aclChangeSet, acl2, singletonList("jim"), singletonList("phil"), null); + + // Transaction between [1-2000] is required, when greater value checking the core will fail + Transaction txn = getTransaction(0, 2, 1, + System.currentTimeMillis() - AbstractTracker.TIME_STEP_32_DAYS_IN_MS); + + //Next create two nodes to update for the transaction + Node folderNode = getNode(txn, acl, Node.SolrApiNodeStatus.UPDATED); + Node fileNode = getNode(txn, acl, Node.SolrApiNodeStatus.UPDATED); + + folderMetaData = getNodeMetaData(folderNode, txn, acl, "mike", null, false); + NodeMetaData fileMetaData = getNodeMetaData(fileNode, txn, acl, "mike", + ancestors(folderMetaData.getNodeRef()), false); + + indexAclChangeSet(aclChangeSet, asList(acl, acl2), asList(aclReaders, aclReaders2)); + indexTransaction(txn, List.of(folderNode, fileNode), List.of(folderMetaData, fileMetaData)); + } + + @Test + public void testTracker() throws Exception { + + BooleanQuery.Builder builder = new BooleanQuery.Builder(); + builder.add(new BooleanClause(new TermQuery(new Term(QueryConstants.FIELD_SOLR4_ID, "TRACKER!STATE!ACLTX")), + BooleanClause.Occur.MUST)); + builder.add(new BooleanClause(LegacyNumericRangeQuery.newLongRange(QueryConstants.FIELD_S_ACLTXID, + aclChangeSet.getId(), aclChangeSet.getId() + 1, true, false), + BooleanClause.Occur.MUST)); + + BooleanQuery waitForQuery = builder.build(); + waitForDocCountAllCores(waitForQuery, 1, INDEX_TIMEOUT); + + // This ACL should have one record in each core with DBID sharding + waitForDocCountAllCores(new TermQuery(new Term(QueryConstants.FIELD_READER, "jim")), + 1, INDEX_TIMEOUT); + + // We should have 2 document in totals (1 folder and 1 file) + waitForDocCount(new TermQuery(new Term("content@s___t@{http://www.alfresco.org/model/content/1.0}content", + "world")), 2, INDEX_TIMEOUT); + + + // This will run the same query on the control client and the cluster and compare the result. + query(getDefaultTestClient(), + true, + "{\"locales\":[\"en\"], \"templates\": [{\"name\":\"t1\", \"template\":\"%cm:content\"}]}", + params("q", "t1:world", "qt", "/afts", "shards.qt", "/afts", "start", "0", "rows", "6", "sort", "id asc")); + + + // Index new ACL after 32 days + AclChangeSet lateAclChangeSet = getAclChangeSet(1, 2); + Acl lateAcl = getAcl(lateAclChangeSet); + AclReaders lateAclReaders = + getAclReaders(lateAclChangeSet, lateAcl, singletonList("elia"), singletonList("phil"), null); + indexAclChangeSet(lateAclChangeSet, asList(lateAcl), asList(lateAclReaders)); + + // Index new transaction after 32 days + Transaction lateTransaction = getTransaction(0, 1); + Node lateNode = getNode(lateTransaction, lateAcl, Node.SolrApiNodeStatus.UPDATED); + NodeMetaData lateNodeMetaData = getNodeMetaData(lateNode, lateTransaction, lateAcl, "elia", + ancestors(folderMetaData.getNodeRef()), false); + + // Check new Acl has been indexed + builder = new BooleanQuery.Builder(); + builder.add(new BooleanClause(new TermQuery(new Term(QueryConstants.FIELD_SOLR4_ID, "TRACKER!STATE!ACLTX")), + BooleanClause.Occur.MUST)); + builder.add(new BooleanClause(LegacyNumericRangeQuery.newLongRange(QueryConstants.FIELD_S_ACLTXID, + lateAclChangeSet.getId(), lateAclChangeSet.getId() + 1, true, false), + BooleanClause.Occur.MUST)); + waitForQuery = builder.build(); + waitForDocCountAllCores(waitForQuery, 1, INDEX_TIMEOUT); + + // Check the new node has been indexed + indexTransaction(lateTransaction, List.of(lateNode), List.of(lateNodeMetaData)); + waitForDocCount(new TermQuery(new Term("content@s___t@{http://www.alfresco.org/model/content/1.0}content", + "world")), 3, INDEX_TIMEOUT); + } +} diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedCascadeTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedCascadeTrackerIT.java index 980053dfb..ad9ba2474 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedCascadeTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedCascadeTrackerIT.java @@ -77,8 +77,6 @@ public class DistributedCascadeTrackerIT extends AbstractAlfrescoDistributedIT private final String pathChild1 = "pathChild2"; - private final int timeout = 100000; - @Before public void initData() throws Throwable { @@ -139,7 +137,7 @@ public class DistributedCascadeTrackerIT extends AbstractAlfrescoDistributedIT */ indexParentFolderWithCascade(); - waitForDocCount(params("qt", "/afts", "q", "PATH:" + cascadingFirstChild), 1, timeout); + waitForDocCount(params("qt", "/afts", "q", "PATH:" + cascadingFirstChild), 1, INDEX_TIMEOUT); // Check if the path is updated for both the nodes assertShardCount(0, params("qt", "/afts", "q", "PATH:" + cascadingFirstChild), 1); @@ -184,7 +182,7 @@ public class DistributedCascadeTrackerIT extends AbstractAlfrescoDistributedIT /* * Get sure the nodes are indexed correctly in the shards */ - waitForDocCount(new TermQuery(new Term("content@s___t@{http://www.alfresco.org/model/content/1.0}content", "world")), 3, timeout); + waitForDocCount(new TermQuery(new Term("content@s___t@{http://www.alfresco.org/model/content/1.0}content", "world")), 3, INDEX_TIMEOUT); assertShardCount(0, new TermQuery(new Term("content@s___t@{http://www.alfresco.org/model/content/1.0}content", "world")), 2); assertShardCount(1, new TermQuery(new Term("content@s___t@{http://www.alfresco.org/model/content/1.0}content", "world")), 1); } From e1cb52b6aa7d2c5b331e0a9d51b86403e1254c8f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2020 21:12:42 +0000 Subject: [PATCH 33/65] Bump restapi from 1.38 to 1.42 in /e2e-test Bumps [restapi](https://github.com/Alfresco/alfresco-tas-restapi) from 1.38 to 1.42. - [Release notes](https://github.com/Alfresco/alfresco-tas-restapi/releases) - [Commits](https://github.com/Alfresco/alfresco-tas-restapi/compare/v1.38...v1.42) Signed-off-by: dependabot-preview[bot] --- e2e-test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index e80a0558e..589ffa7a5 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -10,7 +10,7 @@ Search Analytics E2E Tests Test Project to test Search Service and Analytics Features on a complete setup of Alfresco, Share - 1.38 + 1.42 1.13 3.0.20 3.3.0.1 From 87bcffb6deb2710d7700ae38f06d6375e2c9f713 Mon Sep 17 00:00:00 2001 From: Alessandro Benedetti Date: Fri, 5 Jun 2020 16:31:37 +0100 Subject: [PATCH 34/65] Feature/search 2228 --- .../alfresco/solr/AlfrescoSolrDataModel.java | 37 +- .../alfresco/solr/query/Solr4QueryParser.java | 410 +++++++++-------- .../AFTSDefaultTextQueryIT.java | 413 +++++++++++++++++- .../AbstractRequestHandlerIT.java | 13 + 4 files changed, 669 insertions(+), 204 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java index 9a676addd..99da978d0 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java @@ -138,8 +138,9 @@ public class AlfrescoSolrDataModel implements QueryConstants public enum FieldUse { - FTS, // Term/Phrase/Range/Fuzzy/Prefix/Proximity/Wild - ID, // Exact/ExactRange - Comparison, In, Upper, Lower + FTS, // Term/Phrase/Range/Fuzzy/Prefix/Proximity + ID, // ExactRange - Comparison, In, Upper, Lower, Wildcard + EXACT, // Exact FACET, // Field, Range, Query MULTI_FACET, // Text fields will require cross language support to avoid tokenisation for facets STATS, // Stats @@ -701,6 +702,9 @@ public class AlfrescoSolrDataModel implements QueryConstants case ID: addIdentifierSearchFields(propertyDefinition, indexedField); break; + case EXACT: + addExactSearchFields(propertyDefinition, indexedField); + break; case MULTI_FACET: addMultiSearchFields(propertyDefinition, indexedField); break; @@ -808,9 +812,10 @@ public class AlfrescoSolrDataModel implements QueryConstants } /* - * Adds best identifier fields in order of preference + * If the untokenised version is available, go for it. + * If not it takes the tokenised versions available. */ - private void addIdentifierSearchFields(PropertyDefinition propertyDefinition, IndexedField indexedField) + private void addIdentifierSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) { if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) @@ -829,6 +834,30 @@ public class AlfrescoSolrDataModel implements QueryConstants } } + /* + * If only the untokenised version is available, go for it. + * If not it takes the tokenised cross locale version. + */ + private void addExactSearchFields(PropertyDefinition propertyDefinition, IndexedField indexedField) + { + if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) + || !(propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) + { + + indexedField.addField(getFieldForText(true, false, false, propertyDefinition), true, false); + indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); + } + else + { + if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) + { + indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); + } else{ + throw new UnsupportedOperationException("Exact Term search is not supported unless you configure the field <"+propertyDefinition.getName()+"> for cross locale search"); + } + } + } + /* * Adds best identifier fields in order of preference */ diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java index 13d13003c..02810e9be 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java @@ -150,12 +150,17 @@ import java.util.concurrent.Future; import java.util.stream.Collectors; import java.util.stream.Stream; +import static org.apache.solr.search.QueryParsing.DEFTYPE; + /** * @author Andy * */ public class Solr4QueryParser extends QueryParser implements QueryConstants { + + private static final String CMIS_REQUEST_HANDLER = "cmis"; + public Solr4QueryParser(SolrQueryRequest req, Version matchVersion, String f, Analyzer a, FTSQueryParser.RerankPhase rerankPhase) { @@ -1480,13 +1485,18 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants BooleanQuery.Builder query = new BooleanQuery.Builder(); for (String fieldName : text) { - Query part = getQuery.apply(fieldName); - if (part != null) - { - query.add(part, Occur.SHOULD); - } else - { - query.add(createNoMatchQuery(), Occur.SHOULD); + Query part; + try { + part = getQuery.apply(fieldName); + if (part != null) + { + query.add(part, Occur.SHOULD); + } else + { + query.add(createNoMatchQuery(), Occur.SHOULD); + } + } catch (UnsupportedOperationException e) { + logger.warn(e); } } return query.build(); @@ -4820,46 +4830,52 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants AnalysisMode analysisMode, LuceneFunction luceneFunction, String expandedFieldName, List expandedLocales) throws ParseException { - BooleanQuery.Builder booleanQuery = new BooleanQuery.Builder(); - for (Locale locale : expandedLocales) + BooleanQuery.Builder booleanQueryBuilder = new BooleanQuery.Builder(); + IndexedField indexedField = AlfrescoSolrDataModel.getInstance().getQueryableFields(pDef.getName(), null, + FieldUse.FTS); + if (isExactTermSearch(analysisMode)) { - if (locale.toString().length() == 0) + for (FieldInstance field : indexedField.getFields()) { - IndexedField indexedField = AlfrescoSolrDataModel.getInstance().getQueryableFields(pDef.getName(), null, - FieldUse.FTS); + if (!field.isLocalised()) + { + Query subQuery = subQueryBuilder.getQuery(field.getField(), queryText, analysisMode, + luceneFunction); + if (subQuery != null) + { + booleanQueryBuilder.add(subQuery, Occur.SHOULD); + } + } + } + if (booleanQueryBuilder.build().clauses().size() == 0) + { + throw new UnsupportedOperationException("Exact Term search is not supported unless you configure the field <"+pDef.getName()+"> for cross locale search"); + } + } else + { + for (Locale locale : expandedLocales) + { + boolean localisedSearch = locale.toString().length() != 0; + if (localisedSearch) + { + StringBuilder builder = new StringBuilder(queryText.length() + 10); + builder.append("\u0000").append(locale.toString()).append("\u0000").append(queryText); + } for (FieldInstance field : indexedField.getFields()) { - if (!field.isLocalised()) + if ((!localisedSearch && !field.isLocalised()) || (localisedSearch && field.isLocalised())) { Query subQuery = subQueryBuilder.getQuery(field.getField(), queryText, analysisMode, luceneFunction); if (subQuery != null) { - booleanQuery.add(subQuery, Occur.SHOULD); - } - } - } - } else - { - StringBuilder builder = new StringBuilder(queryText.length() + 10); - builder.append("\u0000").append(locale.toString()).append("\u0000").append(queryText); - IndexedField indexedField = AlfrescoSolrDataModel.getInstance().getQueryableFields(pDef.getName(), null, - FieldUse.FTS); - for (FieldInstance field : indexedField.getFields()) - { - if (field.isLocalised()) - { - Query subQuery = subQueryBuilder.getQuery(field.getField(), builder.toString(), analysisMode, - luceneFunction); - if (subQuery != null) - { - booleanQuery.add(subQuery, Occur.SHOULD); + booleanQueryBuilder.add(subQuery, Occur.SHOULD); } } } } } - return getNonEmptyBooleanQuery(booleanQuery.build()); + return getNonEmptyBooleanQuery(booleanQueryBuilder.build()); } protected void addLocaleSpecificUntokenisedMLOrTextFunction(String expandedFieldName, PropertyDefinition pDef, @@ -4880,67 +4896,74 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants } private FieldInstance getFieldInstance(String baseFieldName, PropertyDefinition pDef, Locale locale, - IndexTokenisationMode preferredIndexTokenisationMode) + IndexTokenisationMode preferredIndexTokenisationMode, AnalysisMode analysisMode) { if (pDef != null) { - switch (preferredIndexTokenisationMode) { - case BOTH: - throw new IllegalStateException("Preferred mode can not be BOTH"); - case FALSE: - if (locale.toString().length() == 0) - { - IndexedField indexedField = AlfrescoSolrDataModel.getInstance().getQueryableFields(pDef.getName(), - null, FieldUse.ID); - for (FieldInstance field : indexedField.getFields()) + case BOTH: + throw new IllegalStateException("Preferred mode can not be BOTH"); + case FALSE: + if (locale.toString().length() == 0) { - if (!field.isLocalised()) + IndexedField indexedField = AlfrescoSolrDataModel.getInstance().getQueryableFields(pDef.getName(), + null, FieldUse.ID); + for (FieldInstance field : indexedField.getFields()) { - return field; + if (!field.isLocalised()) + { + return field; + } + } + } else + { + IndexedField indexedField = AlfrescoSolrDataModel.getInstance().getQueryableFields(pDef.getName(), + null, FieldUse.ID); + for (FieldInstance field : indexedField.getFields()) + { + if (field.isLocalised()) + { + return field; + } } } - } else + break; + case TRUE: { - IndexedField indexedField = AlfrescoSolrDataModel.getInstance().getQueryableFields(pDef.getName(), - null, FieldUse.ID); - for (FieldInstance field : indexedField.getFields()) + IndexedField indexedField; + if (isExactTermSearch(analysisMode)) { - if (field.isLocalised()) + indexedField = AlfrescoSolrDataModel.getInstance().getQueryableFields(pDef.getName(), + null, FieldUse.EXACT); + } else + { + indexedField = AlfrescoSolrDataModel.getInstance().getQueryableFields(pDef.getName(), + null, FieldUse.FTS); + } + if (locale.toString().length() == 0) + { + for (FieldInstance field : indexedField.getFields()) { - return field; + if (!field.isLocalised()) + { + return field; + } + } + } else + { + for (FieldInstance field : indexedField.getFields()) + { + if (field.isLocalised()) + { + return field; + } } } + break; } - break; - case TRUE: - if (locale.toString().length() == 0) - { - IndexedField indexedField = AlfrescoSolrDataModel.getInstance().getQueryableFields(pDef.getName(), - null, FieldUse.FTS); - for (FieldInstance field : indexedField.getFields()) - { - if (!field.isLocalised()) - { - return field; - } - } - } else - { - IndexedField indexedField = AlfrescoSolrDataModel.getInstance().getQueryableFields(pDef.getName(), - null, FieldUse.FTS); - for (FieldInstance field : indexedField.getFields()) - { - if (field.isLocalised()) - { - return field; - } - } - } - break; } - return new FieldInstance("_dummy_", false, false); + return null; } @@ -4948,6 +4971,10 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants } + private boolean isExactTermSearch(AnalysisMode analysisMode) { + return analysisMode==AnalysisMode.IDENTIFIER && !this.solrParams.get(DEFTYPE).equals(CMIS_REQUEST_HANDLER); + } + protected void addLocaleSpecificUntokenisedTextRangeFunction(String expandedFieldName, PropertyDefinition pDef, String lower, String upper, boolean includeLower, boolean includeUpper, LuceneFunction luceneFunction, Builder booleanQuery, Locale locale, IndexTokenisationMode tokenisationMode) throws ParseException @@ -4984,9 +5011,9 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants } private void addMLTextOrTextAttributeQuery(String field, PropertyDefinition pDef, String queryText, - SubQuery subQueryBuilder, AnalysisMode analysisMode, LuceneFunction luceneFunction, - String expandedFieldName, IndexTokenisationMode tokenisationMode, Builder booleanQuery, Locale locale) - throws ParseException + SubQuery subQueryBuilder, AnalysisMode analysisMode, LuceneFunction luceneFunction, + String expandedFieldName, IndexTokenisationMode tokenisationMode, Builder booleanQuery, Locale locale) + throws ParseException { boolean lowercaseExpandedTerms = getLowercaseExpandedTerms(); @@ -4994,48 +5021,59 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants { switch (tokenisationMode) { - case BOTH: - switch (analysisMode) - { - default: - case DEFAULT: - addLocaleSpecificMLOrTextAttribute(pDef, queryText, subQueryBuilder, analysisMode, luceneFunction, - booleanQuery, locale, expandedFieldName, tokenisationMode, IndexTokenisationMode.TRUE); - - if (ContentModel.PROP_NAME.equals(pDef.getName())) + case BOTH: + switch (analysisMode) { - setLowercaseExpandedTerms(false); - addLocaleSpecificMLOrTextAttribute(pDef, queryText, subQueryBuilder, analysisMode, luceneFunction, - booleanQuery, locale, expandedFieldName, tokenisationMode, IndexTokenisationMode.FALSE); - } + default: + case DEFAULT: + addLocaleSpecificMLOrTextAttribute(pDef, queryText, subQueryBuilder, analysisMode, luceneFunction, + booleanQuery, locale, expandedFieldName, tokenisationMode, IndexTokenisationMode.TRUE); + if (ContentModel.PROP_NAME.equals(pDef.getName())) + { + setLowercaseExpandedTerms(false); + addLocaleSpecificMLOrTextAttribute(pDef, queryText, subQueryBuilder, analysisMode, luceneFunction, + booleanQuery, locale, expandedFieldName, tokenisationMode, IndexTokenisationMode.FALSE); + } + + break; + case TOKENISE: + addLocaleSpecificMLOrTextAttribute(pDef, queryText, subQueryBuilder, analysisMode, luceneFunction, + booleanQuery, locale, expandedFieldName, tokenisationMode, IndexTokenisationMode.TRUE); + break; + case IDENTIFIER: + setLowercaseExpandedTerms(false); + if (isExactTermSearch(analysisMode)) + {//with exact search we favour tokenization, specifically cross locale tokenization + addLocaleSpecificMLOrTextAttribute(pDef, queryText, subQueryBuilder, analysisMode, luceneFunction, + booleanQuery, locale, expandedFieldName, tokenisationMode, IndexTokenisationMode.TRUE); + } else + { + addLocaleSpecificMLOrTextAttribute(pDef, queryText, subQueryBuilder, analysisMode, luceneFunction, + booleanQuery, locale, expandedFieldName, tokenisationMode, IndexTokenisationMode.FALSE); + } + break; + case FUZZY: + case PREFIX: + case WILD: + case LIKE: + setLowercaseExpandedTerms(false); + addLocaleSpecificMLOrTextAttribute(pDef, queryText, subQueryBuilder, analysisMode, luceneFunction, + booleanQuery, locale, expandedFieldName, tokenisationMode, IndexTokenisationMode.FALSE); + + break; + } break; - case TOKENISE: - addLocaleSpecificMLOrTextAttribute(pDef, queryText, subQueryBuilder, analysisMode, luceneFunction, - booleanQuery, locale, expandedFieldName, tokenisationMode, IndexTokenisationMode.TRUE); - break; - case IDENTIFIER: - case FUZZY: - case PREFIX: - case WILD: - case LIKE: + case FALSE: setLowercaseExpandedTerms(false); addLocaleSpecificMLOrTextAttribute(pDef, queryText, subQueryBuilder, analysisMode, luceneFunction, booleanQuery, locale, expandedFieldName, tokenisationMode, IndexTokenisationMode.FALSE); - break; - } - break; - case FALSE: - setLowercaseExpandedTerms(false); - addLocaleSpecificMLOrTextAttribute(pDef, queryText, subQueryBuilder, analysisMode, luceneFunction, - booleanQuery, locale, expandedFieldName, tokenisationMode, IndexTokenisationMode.FALSE); - break; - case TRUE: - default: - addLocaleSpecificMLOrTextAttribute(pDef, queryText, subQueryBuilder, analysisMode, luceneFunction, - booleanQuery, locale, expandedFieldName, tokenisationMode, IndexTokenisationMode.TRUE); - break; + case TRUE: + default: + addLocaleSpecificMLOrTextAttribute(pDef, queryText, subQueryBuilder, analysisMode, luceneFunction, + booleanQuery, locale, expandedFieldName, tokenisationMode, IndexTokenisationMode.TRUE); + break; } } finally { @@ -5055,22 +5093,26 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants } private void addLocaleSpecificMLOrTextAttribute(PropertyDefinition pDef, String queryText, SubQuery subQueryBuilder, - AnalysisMode analysisMode, LuceneFunction luceneFunction, Builder booleanQuery, Locale locale, - String textFieldName, IndexTokenisationMode tokenisationMode, - IndexTokenisationMode preferredTokenisationMode) throws ParseException { + AnalysisMode analysisMode, LuceneFunction luceneFunction, Builder booleanQuery, Locale locale, + String textFieldName, IndexTokenisationMode tokenisationMode, + IndexTokenisationMode preferredTokenisationMode) throws ParseException + { - FieldInstance fieldInstance = getFieldInstance(textFieldName, pDef, locale, preferredTokenisationMode); - StringBuilder builder = new StringBuilder(queryText.length() + 10); - if (fieldInstance.isLocalised()) + FieldInstance fieldInstance = getFieldInstance(textFieldName, pDef, locale, preferredTokenisationMode, analysisMode); + if (fieldInstance != null) { - builder.append("\u0000").append(locale.toString()).append("\u0000"); - } - builder.append(queryText); - Query subQuery = subQueryBuilder.getQuery(fieldInstance.getField(), builder.toString(), analysisMode, - luceneFunction); - if (subQuery != null) - { - booleanQuery.add(subQuery, Occur.SHOULD); + StringBuilder builder = new StringBuilder(queryText.length() + 10); + if (fieldInstance.isLocalised()) + { + builder.append("\u0000").append(locale.toString()).append("\u0000"); + } + builder.append(queryText); + Query subQuery = subQueryBuilder.getQuery(fieldInstance.getField(), builder.toString(), analysisMode, + luceneFunction); + if (subQuery != null) + { + booleanQuery.add(subQuery, Occur.SHOULD); + } } } @@ -5115,76 +5157,80 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants } private void addLocaleSpecificTextRange(String expandedFieldName, PropertyDefinition pDef, String part1, - String part2, boolean includeLower, boolean includeUpper, Builder booleanQuery, Locale locale, - AnalysisMode analysisMode, IndexTokenisationMode tokenisationMode, - IndexTokenisationMode preferredTokenisationMode) throws ParseException, IOException + String part2, boolean includeLower, boolean includeUpper, Builder booleanQuery, Locale locale, + AnalysisMode analysisMode, IndexTokenisationMode tokenisationMode, + IndexTokenisationMode preferredTokenisationMode) throws ParseException, IOException { - FieldInstance fieldInstance = getFieldInstance(expandedFieldName, pDef, locale, preferredTokenisationMode); - - String firstString = null; - if ((part1 != null) && !part1.equals("\u0000")) + FieldInstance fieldInstance = getFieldInstance(expandedFieldName, pDef, locale, preferredTokenisationMode, analysisMode); + if (fieldInstance != null) { - if (fieldInstance.isLocalised()) + String firstString = null; + if ((part1 != null) && !part1.equals("\u0000")) { - firstString = getFirstTokenForRange(getLocalePrefixedText(part1, locale), fieldInstance); - if (firstString == null) + if (fieldInstance.isLocalised()) { - firstString = "{" + locale.getLanguage() + "}"; + firstString = getFirstTokenForRange(getLocalePrefixedText(part1, locale), fieldInstance); + if (firstString == null) + { + firstString = "{" + locale.getLanguage() + "}"; + } + } else + { + firstString = getFirstTokenForRange(part1, fieldInstance); } } else { - firstString = getFirstTokenForRange(part1, fieldInstance); + if (fieldInstance.isLocalised()) + { + firstString = "{" + locale.getLanguage() + "}"; + } else + { + firstString = null; + } } - } else - { - if (fieldInstance.isLocalised()) + + String lastString = null; + if ((part2 != null) && !part2.equals("\uffff")) { - firstString = "{" + locale.getLanguage() + "}"; + if (fieldInstance.isLocalised()) + { + lastString = getFirstTokenForRange(getLocalePrefixedText(part2, locale), fieldInstance); + if (lastString == null) + { + lastString = "{" + locale.getLanguage() + "}\uffff"; + } + } else + { + lastString = getFirstTokenForRange(part2, fieldInstance); + } } else + { + if (fieldInstance.isLocalised()) + { + lastString = "{" + locale.getLanguage() + "}\uffff"; + } else + { + lastString = null; + } + } + + + // * is returned by stringField but it is not correct in case of range queries. + if (firstString != null && firstString.equals("*")) { firstString = null; } - } - String lastString = null; - if ((part2 != null) && !part2.equals("\uffff")) - { - if (fieldInstance.isLocalised()) - { - lastString = getFirstTokenForRange(getLocalePrefixedText(part2, locale), fieldInstance); - if (lastString == null) - { - lastString = "{" + locale.getLanguage() + "}\uffff"; - } - } else - { - lastString = getFirstTokenForRange(part2, fieldInstance); - } - } else - { - if (fieldInstance.isLocalised()) - { - lastString = "{" + locale.getLanguage() + "}\uffff"; - } else + if (lastString != null && lastString.equals("*")) { lastString = null; } + + TermRangeQuery query = new TermRangeQuery(fieldInstance.getField(), + firstString == null ? null : new BytesRef(firstString), + lastString == null ? null : new BytesRef(lastString), includeLower, includeUpper); + booleanQuery.add(query, Occur.SHOULD); } - - - // * is returned by stringField but it is not correct in case of range queries. - if (firstString != null && firstString.equals("*")){ - firstString = null; - } - - if (lastString != null && lastString.equals("*")){ - lastString = null; - } - - TermRangeQuery query = new TermRangeQuery(fieldInstance.getField(), - firstString == null ? null : new BytesRef(firstString), - lastString == null ? null : new BytesRef(lastString), includeLower, includeUpper); - booleanQuery.add(query, Occur.SHOULD); } private String getFirstTokenForRange(String string, FieldInstance field) throws IOException diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSDefaultTextQueryIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSDefaultTextQueryIT.java index 0994626ec..8bdd3ca17 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSDefaultTextQueryIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AFTSDefaultTextQueryIT.java @@ -28,16 +28,19 @@ package org.alfresco.solr.query.afts.requestHandler; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; -import org.alfresco.solr.client.ContentPropertyValue; +import org.alfresco.solr.AlfrescoSolrDataModel; import org.alfresco.solr.client.MLTextPropertyValue; import org.alfresco.solr.client.PropertyValue; import org.alfresco.solr.client.StringPropertyValue; import org.alfresco.solr.dataload.TestDataProvider; import org.apache.solr.SolrTestCaseJ4; +import org.junit.After; import org.junit.BeforeClass; import org.junit.Test; +import java.lang.reflect.Field; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -64,10 +67,17 @@ import static com.google.common.collect.ImmutableMap.of; @SolrTestCaseJ4.SuppressSSL public class AFTSDefaultTextQueryIT extends AbstractRequestHandlerIT { + // Following data is used for restoring alfrescoSolrDataModel after text execution + private HashSet oldCrossLocaleProperties; + private HashSet oldCrossLocaleTypes; + + static TestDataProvider dataProvider; + + @BeforeClass public static void beforeClass() throws Exception { - TestDataProvider dataProvider = new TestDataProvider(h); + dataProvider = new TestDataProvider(h); List> data = asList( of("name", "test1", @@ -93,7 +103,6 @@ public class AFTSDefaultTextQueryIT extends AbstractRequestHandlerIT TEST_ROOT_NODEREF = dataProvider.getRootNode(); - range(0, data.size()) .forEach(dbId -> { @@ -124,34 +133,402 @@ public class AFTSDefaultTextQueryIT extends AbstractRequestHandlerIT }); } + private void prepareExactSearchData() throws Exception { + TestDataProvider dataProvider = AFTSDefaultTextQueryIT.dataProvider; + + List> exactSearchData = asList( + of("name", "Running", + "description", "Running is a sport is a nice activity", + "content", "when you are running you are doing an amazing sport", + "title", "Running jumping", + "creator", "Alex"), + of("name", "Run", + "description", "you are supposed to run jump", + "content", "after many runs you are tired and if you jump it happens the same", + "title", "Run : a philosophy", + "creator", "Alex"), + of("name", "Poetry", + "description", "a document about poetry and jumpers", + "content", "poetry is unrelated to sport", + "title", "Running jumping twice jumpers", + "creator", "Alex"), + of("name", "Jump", + "description", "a document about jumps", + "content", "runnings jumpings", + "title", "Running", + "creator", "Alex"), + of("name", "Running jumping", + "description", "runners jumpers runs everywhere", + "content", "run is Good as jump", + "title", "Running the art of jumping", + "creator", "Alex")); + + range(0, exactSearchData.size()) + .forEach(dbId -> { + + Map record = exactSearchData.get(dbId); + + String name = record.get("name"); + String description = record.get("description"); + String content = record.get("content"); + String title = record.get("title"); + String creator = record.get("creator"); + + Map properties = new HashMap<>(); + properties.put(PROP_NAME, new StringPropertyValue(name)); + properties.put(PROP_DESCRIPTION, new MLTextPropertyValue(Map.of(Locale.getDefault(), description))); + properties.put(PROP_TITLE, new MLTextPropertyValue(Map.of(Locale.getDefault(), title))); + properties.put(PROP_CREATOR, new StringPropertyValue(creator)); + properties.put(PROP_RATING_SCHEME, new StringPropertyValue(title)); + + Map contents = Map.of(PROP_CONTENT, content); + + addNode(getCore(), + dataModel, 2, dbId+10, 1, + TYPE_CONTENT, null, properties, contents, + "the_owner_of_this_node_is" + name, + null, + new NodeRef[]{ TEST_ROOT_NODEREF }, + new String[]{ "/" + dataProvider.qName("a_qname_for_node_" + name) }, + dataProvider.newNodeRef(), true); + }); + } + + private void changeCrossLocaleEnabledFields() throws NoSuchFieldException, IllegalAccessException { + Field crossLocalePropertiesField = AlfrescoSolrDataModel + .getInstance() + .getClass() + .getDeclaredField("crossLocaleSearchProperties"); + + crossLocalePropertiesField.setAccessible(true); + + Field crossLocaleTypesField = AlfrescoSolrDataModel + .getInstance() + .getClass() + .getDeclaredField("crossLocaleSearchDataTypes"); + + crossLocaleTypesField.setAccessible(true); + + HashSet crossLocaleProperties = (HashSet) crossLocalePropertiesField.get(AlfrescoSolrDataModel.getInstance()); + HashSet crossLocaleTypes = (HashSet) crossLocaleTypesField.get(AlfrescoSolrDataModel.getInstance()); + + oldCrossLocaleTypes = (HashSet) crossLocaleTypes.clone(); + oldCrossLocaleProperties = (HashSet) crossLocaleProperties.clone(); + + crossLocaleTypes.clear(); + crossLocaleProperties.clear(); + crossLocaleProperties.add(PROP_TITLE); + } + + @After + public void restoreAlfrescoSolrDataModel() throws NoSuchFieldException, IllegalAccessException { + if (oldCrossLocaleTypes != null) { + Field crossLocaleTypesField = AlfrescoSolrDataModel + .getInstance() + .getClass() + .getDeclaredField("crossLocaleSearchDataTypes"); + + crossLocaleTypesField.setAccessible(true); + crossLocaleTypesField.set(AlfrescoSolrDataModel.getInstance(), oldCrossLocaleTypes); + } + if (oldCrossLocaleProperties != null) { + Field crossLocalePropertiesField = AlfrescoSolrDataModel + .getInstance() + .getClass() + .getDeclaredField("crossLocaleSearchProperties"); + crossLocalePropertiesField.setAccessible(true); + crossLocalePropertiesField.set(AlfrescoSolrDataModel.getInstance(), oldCrossLocaleProperties); + } + } + + /** + * Test exact search is working. + */ + @Test + public void exactSearch_singleTerm_shouldReturnResultsContainingExactTerm() throws Exception { + prepareExactSearchData(); + /* + * Out of the 5 'run corpus' documents + * 2 results are expected: + * + * - "name", "Run", + * "description", "you are supposed to run jump" + * + * - "name", "Running jumping", + * "content", "run is Good as jump", + */ + assertResponseCardinality("=run", 2); + + /* + * No result for runner, one record has runners, + * you can see the difference between exact search and not + */ + assertResponseCardinality("=runner", 0); + assertResponseCardinality("runner", 1); + + /* + * Out of the 5 'run corpus' documents + * 4 results are expected, only one doc is no fit for the query + * + * "name", "Run", + * "description", "you are supposed to run jump", + * "content", "after many runs you are tired and if you jump it happens the same", + * "title", "Run : a philosophy", + * "creator", "Alex" + */ + assertResponseCardinality("=running", 4); + } + + @Test + public void exactSearch_singleTermInFieldWithNoCrossLocaleEnabled_shouldReturnException() throws Exception { + /* + * Cross Locale is Disabled for: content, cm_description, name + * Cross Locale is Enabled for : cm_title + */ + changeCrossLocaleEnabledFields(); + prepareExactSearchData(); + + assertResponseCardinality("=cm_title:run", 1); + assertResponseException("=content:run", "Exact Term search is not supported unless you configure the field <{http://www.alfresco.org/model/content/1.0}content> for cross locale search"); + assertResponseException("=cm_description:run", "Exact Term search is not supported unless you configure the field <{http://www.alfresco.org/model/content/1.0}description> for cross locale search"); + assertResponseCardinality("=run", 1); + + restoreAlfrescoSolrDataModel(); + } + + @Test + public void exactSearch_singleTermInFieldWithOnlyUnTokenizedAnalysis_shouldReturnFullFieldValueMatch() throws Exception { + /** + * cm_ratingScheme is a copy field un-tokenized of Title, so it has the exact same content but not analysed. + * This means we produce just a token in the index, exactly as the full content. + * We can't expect any search to work except full exact value search + */ + prepareExactSearchData(); + /* + * Out of the 5 'run corpus' documents + * 0 results are expected: + * there is no result that have cm_ratingScheme:"running" + * + */ + assertResponseCardinality("=cm_ratingScheme:running", 0); + assertResponseCardinality("=cm_title:running", 4); + + /* + * Out of the 5 'run corpus' documents + * 1 result is expected: + * + * - "name", "Jump", + * ... + * "title", "Running" + * + */ + assertResponseCardinality("=cm_ratingScheme:Running", 1); + assertResponseCardinality("=cm_title:Running", 4); + + /* + * Out of the 5 'run corpus' documents + * 0 results are expected: + * there is no result that have exactly cm_ratingScheme:"Run" + * The closest we have is record Run (cm_ratingScheme:"Run : a philosophy") + * As you can see we don't have a full match, so it's not in the results. + * + */ + assertResponseCardinality("=cm_ratingScheme:Run", 0); + assertResponseCardinality("=cm_title:Run", 1); + + + } /** * Test exact search is working. */ @Test - public void defaultExactQueryTest() - { + public void exactSearch_multiTerm_shouldReturnResultsContainingExactTerm() throws Exception { + prepareExactSearchData(); + /* + * Out of the 5 'run corpus' documents + * 3 results are expected: + * + * - "name", "Run", + * "description", "you are supposed to run jump", + * + * - "name", "Running jumping", + * "description", "runners jumpers runs everywhere", + * "content", "run is Good as jump", + * + * - "name", "Jump", + * "description", "a document about jumps", + * + */ + assertResponseCardinality("=run =jump", 3); /* - * 3 results expected: - * record 1 ("test" in name, description and content) - * record 2 ("test" in name, and content) - * record 3 ("test" in description) + * No result for runner or jumper, one record has runners, + * and another record has jumpers + * + * - "name", "Poetry", + * "description", "a document about poetry and jumpers", + * - "name", "Running jumping", + * "description", "runners jumpers run everywhere", + * + * you can see the difference between exact search and not */ - assertResponseCardinality("test", 3); + assertResponseCardinality("=runner =jumper", 0); + assertResponseCardinality("runner jumper", 2); /* - * 3 results expected: - * record 2 ("Other" in title ) - * record 3 ("other" in content) - * record 4 ("other" in description) + * Out of the 5 'run corpus' documents + * 4 results are expected: + * Only one doc does't fit: + * - "name", "Run", + * "description", "you are supposed to run jump", + * "content", "after many runs you are tired and if you jump it happens the same", + * "title", "Run : a philosophy", + * "creator", "Alex"), + * + * */ - assertResponseCardinality("Other", 3); + assertResponseCardinality("=running =jumping", 4); + } + + + + @Test + public void exactSearch_multiTermInFieldWithNoCrossLocaleEnabled_shouldReturnException() throws Exception { + /* + * Cross Locale is Disabled for: content, cm_description, name + * Cross Locale is Enabled for : cm_title + */ + changeCrossLocaleEnabledFields(); + prepareExactSearchData(); + + assertResponseCardinality("=cm_title:run =cm_title:jump", 1); + assertResponseException("=content:run =content:jump", "Exact Term search is not supported unless you configure the field <{http://www.alfresco.org/model/content/1.0}content> for cross locale search"); + assertResponseException("=cm_description:run =cm_description:jump", "Exact Term search is not supported unless you configure the field <{http://www.alfresco.org/model/content/1.0}description> for cross locale search"); + assertResponseCardinality("=run =jump", 1); + + restoreAlfrescoSolrDataModel(); + } + + @Test + public void exactSearch_multiTermInFieldWithOnlyUnTokenizedAnalysis_shouldReturnFullFieldValueMatch() throws Exception { + /** + * cm_ratingScheme is a copy field un-tokenized of Title, so it has the exact same content but not analysed. + * This means we produce just a token in the index, exactly as the full content. + * We can't expect any search to work except full exact value search + */ + prepareExactSearchData(); + /* + * Out of the 5 'run corpus' documents + * 0 results are expected: + * there is no result that have cm_ratingScheme:"running" or "jumpers" + * + */ + assertResponseCardinality("=cm_ratingScheme:running =cm_ratingScheme:jumpers", 0); + assertResponseCardinality("=cm_title:running =cm_title:jumpers", 4); + } + + /** + * Test exact search is working. + */ + @Test + public void exactSearch_exactPhrase_shouldReturnResultsContainingExactPhrase() throws Exception { + prepareExactSearchData(); + /* + * Out of the 5 'run corpus' documents + * 1 results are expected: + * + * - "name", "Run", + * "description", "you are supposed to run jump", + * + */ + assertResponseCardinality("=\"run jump\"", 1); /* - * No results expected because creator should not be considered in default text search. + * No result for runner jumper, one record has runners jumpers, + * you can see the difference between exact search and not + * + * "name", "Running jumping", + * "description", "runners jumpers run everywhere", */ - assertResponseCardinality("Giovanni", 0); + assertResponseCardinality("=\"runner jumper\"", 0); + assertResponseCardinality("\"runner jumper\"", 1); + + /* + * Out of the 5 'run corpus' documents + * 3 results are expected: + * + * - "name", "Running", + * ... + * "title", "Running jumping", + * + * - "name", "Poetry", + * "title", "Running jumping twice jumpers" + * + * - "name", "Running jumping", + */ + assertResponseCardinality("=\"running jumping\"", 3); + assertResponseCardinality("\"running jumping\"", 5); + } + + + + @Test + public void exactSearch_phraseInFieldWithNoCrossLocaleEnabled_shouldReturnException() throws Exception { + /* + * Cross Locale is Disabled for: content, cm_description, name + * Cross Locale is Enabled for : cm_title + */ + changeCrossLocaleEnabledFields(); + prepareExactSearchData(); + + assertResponseCardinality("=cm_title:\"running jumping\"", 2); + assertResponseException("=content:\"running jumping\"", "Exact Term search is not supported unless you configure the field <{http://www.alfresco.org/model/content/1.0}content> for cross locale search"); + assertResponseException("=cm_description:\"running jumping\"", "Exact Term search is not supported unless you configure the field <{http://www.alfresco.org/model/content/1.0}description> for cross locale search"); + assertResponseCardinality("=\"running jumping\"", 2); + + restoreAlfrescoSolrDataModel(); + } + + @Test + public void exactSearch_phraseInFieldWithOnlyUnTokenizedAnalysis_shouldReturnFullFieldValueMatch() throws Exception { + /** + * cm_ratingScheme is a copy field un-tokenized of Title, so it has the exact same content but not analysed. + * This means we produce just a token in the index, exactly as the full content. + * We can't expect any search to work except full exact value search + */ + prepareExactSearchData(); + /* + * Out of the 5 'run corpus' documents + * 0 results are expected: + * the closest we got was this one, but it is uppercase + * - "name", "Running", + * "title", "Running jumping", + * + */ + assertResponseCardinality("=cm_ratingScheme:\"running jumping\"", 0); + assertResponseCardinality("=cm_title:\"running jumping\"", 2); + + /* + * Out of the 5 'run corpus' documents + * 1 results are expected: + * - "name", "Running", + * "title", "Running jumping", + * + */ + assertResponseCardinality("=cm_ratingScheme:\"Running jumping\"", 1); + assertResponseCardinality("=cm_title:\"Running jumping\"", 2); + + /* + * Out of the 5 'run corpus' documents + * 0 results are expected: + * the closest we got was this one, but it is uppercase + * - "name", "Poetry", + * "title", "Running jumping twice jumpers", + * + */ + assertResponseCardinality("=cm_ratingScheme:\"Running jumping twice\"", 0); + assertResponseCardinality("=cm_title:\"Running jumping twice\"", 1); } @@ -175,7 +552,7 @@ public class AFTSDefaultTextQueryIT extends AbstractRequestHandlerIT * record 3 ("other" in content) * record 4 ("other" in description) */ - assertResponseCardinality("other to otherz ", 3); + assertResponseCardinality("[other to otherz]", 3); } diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AbstractRequestHandlerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AbstractRequestHandlerIT.java index 8b3cac72e..ac44c1b71 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AbstractRequestHandlerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/query/afts/requestHandler/AbstractRequestHandlerIT.java @@ -37,6 +37,9 @@ import java.util.stream.Stream; import static java.util.Arrays.asList; import static java.util.stream.IntStream.range; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.fail; public abstract class AbstractRequestHandlerIT extends AbstractAlfrescoSolrIT { @@ -52,6 +55,16 @@ public abstract class AbstractRequestHandlerIT extends AbstractAlfrescoSolrIT assertQ(areq(params("rows", "20", "qt", "/afts", "fq", "{!afts}AUTHORITY_FILTER_FROM_JSON", "q", query), json), "*[count(//doc)="+num+"]"); } + void assertResponseException(String query, String exceptionMessage) { + try { + h.query(areq(params("rows", "20", "qt", "/afts", "q", query), null)); + fail("No Exception Thrown"); + } catch (Exception e) { + assertThat(e.getMessage(), is(exceptionMessage)); + } + + } + void assertResponseCardinality(String query, int num) { assertQ(areq(params("rows", "20", "qt", "/afts", "q", query), null), "*[count(//doc)="+num+"]"); From b83bcb334bf8c0f353711a6e9226797047fef8f2 Mon Sep 17 00:00:00 2001 From: Andrea Gazzarini Date: Mon, 8 Jun 2020 09:05:01 +0100 Subject: [PATCH 35/65] [ SEARCH-2223 ] First implementation on FIX report (always goes through repo for asking nodes count) --- .../solr/admin/SolrE2eAdminTest.java | 57 +- .../solr/AlfrescoCoreAdminHandler.java | 352 ++++++++++-- .../alfresco/solr/SolrInformationServer.java | 2 +- .../templates/rerank/conf/solrcore.properties | 5 + .../solr/AlfrescoCoreAdminHandlerTest.java | 512 ++++++++++++++++++ 5 files changed, 846 insertions(+), 82 deletions(-) create mode 100644 search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerTest.java diff --git a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/admin/SolrE2eAdminTest.java b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/admin/SolrE2eAdminTest.java index b82f25b0e..2e59a6bc5 100644 --- a/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/admin/SolrE2eAdminTest.java +++ b/e2e-test/src/test/java/org/alfresco/test/search/functional/searchServices/solr/admin/SolrE2eAdminTest.java @@ -29,6 +29,7 @@ package org.alfresco.test.search.functional.searchServices.solr.admin; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; import org.alfresco.rest.core.RestResponse; import org.alfresco.search.TestGroup; @@ -603,56 +604,48 @@ public class SolrE2eAdminTest extends AbstractE2EFunctionalTest Assert.assertEquals(actionStatus, "scheduled"); } - /** - * FIX for every core. - * @throws Exception - */ - @Test(priority = 27, dependsOnMethods = "testPurge") - public void testFix() throws Exception - { - RestResponse response = restClient.withSolrAdminAPI().getAction("fix"); - - checkResponseStatusOk(response); - - DEFAULT_CORE_NAMES.forEach(core -> { - List txToReindex = response.getResponse().body().jsonPath().get("action." + core +".txToReindex"); - Assert.assertTrue(txToReindex.size() >= 0, "Expected a list of transactions (or empty list) to be reindexed,"); - List aclToReindex = response.getResponse().body().jsonPath().get("action." + core + ".aclChangeSetToReindex"); - Assert.assertTrue(aclToReindex.size() >= 0, "Expected a list of ACLs (or empty list) to be reindexed,"); - }); - - String actionStatus = response.getResponse().body().jsonPath().get("action.status"); - Assert.assertEquals(actionStatus, "scheduled"); - } - /** * FIX for specific core. - * @throws Exception + * The test checks the response structure in order to make sure the expected sections are present. + * + * We are not testing the content of each section because due to the underlying E2E infrastructure, we cannot know + * in advance the transactions that will be scheduled for reindexing. */ @Test(priority = 28) - public void testFixCore() throws Exception + public void testFixCore() { DEFAULT_CORE_NAMES.forEach(core -> { - try { RestResponse response = restClient.withParams("core=" + core).withSolrAdminAPI().getAction("fix"); checkResponseStatusOk(response); - List txToReindex = response.getResponse().body().jsonPath().get("action." + core +".txToReindex"); - Assert.assertTrue(txToReindex.size() >= 0, "Expected a list of transactions (or empty list) to be reindexed,"); - List aclToReindex = response.getResponse().body().jsonPath().get("action." + core + ".aclChangeSetToReindex"); - Assert.assertTrue(aclToReindex.size() >= 0, "Expected a list of ACLs (or empty list) to be reindexed,"); - + Map txInIndexNotInDb = response.getResponse().body().jsonPath().get("action." + core +".txToReindex.txInIndexNotInDb"); + Assert.assertNotNull(txInIndexNotInDb, "Expected a list of transactions (even empty) that are in index but not in the database to be reindexed,"); + + Map duplicatedTx = response.getResponse().body().jsonPath().get("action." + core +".txToReindex.duplicatedTxInIndex"); + Assert.assertNotNull(duplicatedTx, "Expected a list of duplicated transactions (even empty) to be reindexed,"); + + Map missingTx = response.getResponse().body().jsonPath().get("action." + core +".txToReindex.missingTxInIndex"); + Assert.assertNotNull(missingTx, "Expected a list of missing transactions (or empty list) to be reindexed,"); + + Map aclTxInIndexNotInDb = response.getResponse().body().jsonPath().get("action." + core + ".aclChangeSetToReindex.aclTxInIndexNotInDb"); + Assert.assertNotNull(aclTxInIndexNotInDb, "Expected a list of ACLs (or empty list) to be reindexed,"); + + Map duplicatedAclTxInIndex = response.getResponse().body().jsonPath().get("action." + core + ".aclChangeSetToReindex.duplicatedAclTxInIndex"); + Assert.assertNotNull(duplicatedAclTxInIndex, "Expected a list of ACLs (or empty list) to be reindexed,"); + + Map missingAclTxInIndex = response.getResponse().body().jsonPath().get("action." + core + ".aclChangeSetToReindex.missingAclTxInIndex"); + Assert.assertNotNull(missingAclTxInIndex, "Expected a list of ACLs (or empty list) to be reindexed,"); + String actionStatus = response.getResponse().body().jsonPath().get("action.status"); - Assert.assertEquals(actionStatus, "scheduled"); + Assert.assertEquals(actionStatus, "notScheduled"); } catch (Exception e) { throw new RuntimeException(e); } - }); } diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java index 18ccb6d6f..0f19165e0 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java @@ -54,6 +54,7 @@ import org.apache.solr.common.util.NamedList; import org.apache.solr.common.util.SimpleOrderedMap; import org.apache.solr.core.CoreContainer; import org.apache.solr.core.SolrCore; +import org.apache.solr.core.SolrResourceLoader; import org.apache.solr.handler.admin.CoreAdminHandler; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; @@ -76,16 +77,19 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Properties; -import java.util.Set; -import java.util.TreeSet; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; +import java.util.function.LongToIntFunction; import java.util.stream.Collectors; import static java.util.Arrays.asList; import static java.util.Arrays.stream; +import static java.util.Optional.of; import static java.util.Optional.ofNullable; +import static org.alfresco.repo.search.adaptor.lucene.QueryConstants.FIELD_INACLTXID; +import static org.alfresco.repo.search.adaptor.lucene.QueryConstants.FIELD_INTXID; import static org.alfresco.solr.HandlerOfResources.extractCustomProperties; import static org.alfresco.solr.HandlerOfResources.getSafeBoolean; import static org.alfresco.solr.HandlerOfResources.getSafeLong; @@ -99,6 +103,7 @@ import static org.alfresco.solr.HandlerReportHelper.buildAclTxReport; import static org.alfresco.solr.HandlerReportHelper.buildNodeReport; import static org.alfresco.solr.HandlerReportHelper.buildTrackerReport; import static org.alfresco.solr.HandlerReportHelper.buildTxReport; +import static org.alfresco.solr.utils.Utils.isNullOrEmpty; import static org.alfresco.solr.utils.Utils.notNullOrEmpty; /** @@ -160,22 +165,39 @@ public class AlfrescoCoreAdminHandler extends CoreAdminHandler */ private static final String ACTION_STATUS_SUCCESS = "success"; private static final String ACTION_STATUS_ERROR = "error"; - private static final String ACTION_STATUS_SCHEDULED = "scheduled"; + static final String ACTION_STATUS_SCHEDULED = "scheduled"; + static final String ACTION_STATUS_NOT_SCHEDULED = "notScheduled"; + + static final String DRY_RUN_PARAMETER_NAME = "dryRun"; + static final String FROM_TX_COMMIT_TIME_PARAMETER_NAME = "fromTxCommitTime"; + static final String TO_TX_COMMIT_TIME_PARAMETER_NAME = "toTxCommitTime"; + static final String MAX_TRANSACTIONS_TO_SCHEDULE_PARAMETER_NAME = "maxScheduledTransactions"; + static final String MAX_TRANSACTIONS_TO_SCHEDULE_CONF_PROPERTY_NAME = "alfresco.admin.fix.maxScheduledTransactions"; + static final String TX_IN_INDEX_NOT_IN_DB = "txInIndexNotInDb"; + static final String DUPLICATED_TX_IN_INDEX = "duplicatedTxInIndex"; + static final String MISSING_TX_IN_INDEX = "missingTxInIndex"; + static final String ACL_TX_IN_INDEX_NOT_IN_DB = "aclTxInIndexNotInDb"; + static final String DUPLICATED_ACL_TX_IN_INDEX = "duplicatedAclTxInIndex"; + static final String MISSING_ACL_TX_IN_INDEX = "missingAclTxInIndex"; /** * JSON/XML labels for the Action response */ private static final String ACTION_LABEL = "action"; - private static final String ACTION_STATUS_LABEL = "status"; - private static final String ACTION_ERROR_MESSAGE_LABEL = "errorMessage"; + static final String ACTION_STATUS_LABEL = "status"; + + static final String ACTION_ERROR_MESSAGE_LABEL = "errorMessage"; + static final String UNKNOWN_CORE_MESSAGE = "Unknown core:"; + static final String UNPROCESSABLE_REQUEST_ON_SLAVE_NODES = "Requested action cannot be performed on slave nodes."; + private static final String ACTION_TX_TO_REINDEX = "txToReindex"; private static final String ACTION_ACL_CHANGE_SET_TO_REINDEX = "aclChangeSetToReindex"; private SolrTrackerScheduler scheduler; - private TrackerRegistry trackerRegistry; - private ConcurrentHashMap informationServers; + TrackerRegistry trackerRegistry; + ConcurrentHashMap informationServers; - private static List CORE_PARAMETER_NAMES = asList(CoreAdminParams.CORE, "coreName", "index"); + private final static List CORE_PARAMETER_NAMES = asList(CoreAdminParams.CORE, "coreName", "index"); public AlfrescoCoreAdminHandler() { @@ -938,8 +960,7 @@ public class AlfrescoCoreAdminHandler extends CoreAdminHandler * * Synchronous execution * - * @param req Query Request without parameters - * - coreName, optional, the name of the core to be checked + * @param cname, optional, the name of the core to be checked * * @return Response including the action result: * - status: success, when the core has been created @@ -1366,7 +1387,6 @@ public class AlfrescoCoreAdminHandler extends CoreAdminHandler * - fromAclTx, optional: from ACL transaction Id to filter report results * - toCalTx, optional: to ACL transaction Id to filter report results * - * @param Response including the action result: * - report.core: multiple Objects with the details of the report ("core" is the name of the Core) * * @throws JSONException @@ -1497,7 +1517,6 @@ public class AlfrescoCoreAdminHandler extends CoreAdminHandler * * @param params Query Request with following parameters: * - core, optional: The name of the SOLR Core - * @param rsp Query Response including the action result: * - action.status: scheduled, as it will be executed by Trackers on the next maintenance operation * - core: list of Document Ids with error that are going to reindexed */ @@ -1594,66 +1613,140 @@ public class AlfrescoCoreAdminHandler extends CoreAdminHandler * - action.status: scheduled, as it will be executed by Trackers on the next maintenance operation * - txToReindex: list of Transaction Ids that are going to be reindexed * - aclChangeSetToReindex: list of ACL Change Set Ids that are going to be reindexed - * @throws JSONException */ - private NamedList actionFIX(SolrParams params) throws JSONException + NamedList actionFIX(SolrParams params) throws JSONException { String requestedCoreName = coreName(params); + var wrapper = new Object() { - NamedList response = new SimpleOrderedMap<>();; + final NamedList response = new SimpleOrderedMap<>(); }; + if (isNullOrEmpty(requestedCoreName)) + { + return wrapper.response; + } + + if (!coreNames().contains(requestedCoreName)) + { + wrapper.response.add(ACTION_ERROR_MESSAGE_LABEL, UNKNOWN_CORE_MESSAGE + requestedCoreName); + return wrapper.response; + } + + if (!isMasterOrStandalone(requestedCoreName)) { + wrapper.response.add(ACTION_ERROR_MESSAGE_LABEL, UNPROCESSABLE_REQUEST_ON_SLAVE_NODES); + return wrapper.response; + } + + Long fromTxCommitTime = params.getLong(FROM_TX_COMMIT_TIME_PARAMETER_NAME); + Long toTxCommitTime = params.getLong(TO_TX_COMMIT_TIME_PARAMETER_NAME); + boolean dryRun = params.getBool(DRY_RUN_PARAMETER_NAME, true); + int maxTransactionsToSchedule = getMaxTransactionToSchedule(params); + + LOGGER.debug("FIX Admin request on core {}, parameters: " + + FROM_TX_COMMIT_TIME_PARAMETER_NAME + " = {}, " + + TO_TX_COMMIT_TIME_PARAMETER_NAME + " = {}, " + + DRY_RUN_PARAMETER_NAME + " = {}, " + + MAX_TRANSACTIONS_TO_SCHEDULE_PARAMETER_NAME + " = {}", + requestedCoreName, + ofNullable(fromTxCommitTime).map(Object::toString).orElse("N.A."), + ofNullable(toTxCommitTime).map(Object::toString).orElse("N.A."), + dryRun, + maxTransactionsToSchedule); + coreNames().stream() .filter(coreName -> requestedCoreName == null || coreName.equals(requestedCoreName)) .filter(this::isMasterOrStandalone) - .forEach(coreName -> { - wrapper.response.add(coreName, fixOnSpecificCore(coreName)); - }); + .forEach(coreName -> + wrapper.response.add( + coreName, + fixOnSpecificCore(coreName, fromTxCommitTime, toTxCommitTime, dryRun, maxTransactionsToSchedule))); + + if (wrapper.response.size() > 0) + { + wrapper.response.add(DRY_RUN_PARAMETER_NAME, dryRun); + + ofNullable(fromTxCommitTime).ifPresent(value -> wrapper.response.add(FROM_TX_COMMIT_TIME_PARAMETER_NAME, value)); + ofNullable(toTxCommitTime).ifPresent(value -> wrapper.response.add(TO_TX_COMMIT_TIME_PARAMETER_NAME, value)); + + wrapper.response.add(MAX_TRANSACTIONS_TO_SCHEDULE_PARAMETER_NAME, maxTransactionsToSchedule); + wrapper.response.add(ACTION_STATUS_LABEL, dryRun ? ACTION_STATUS_NOT_SCHEDULED : ACTION_STATUS_SCHEDULED); + } - wrapper.response.add(ACTION_STATUS_LABEL, ACTION_STATUS_SCHEDULED); return wrapper.response; } - private NamedList fixOnSpecificCore(String coreName) + /** + * Detects the transactions that need a FIX (i.e. reindexing) because the following reasons: + * + *
    + *
  • A transaction is in the index but not in repository
  • + *
  • A transaction is duplicated in the index
  • + *
  • A transaction is missing in the index
  • + *
+ * + * Depending on the dryRun parameter, other than collecting, this method could also schedule the transactions for + * reindexing. + * + * @param coreName the target core name. + * @param fromTxCommitTime the start commit time we consider for collecting transaction. + * @param toTxCommitTime the end commit time we consider for collecting transaction. + * @param dryRun a flag indicating if the collected transactions must be actually scheduled for reindexing. + * @param maxTransactionsToSchedule the maximum number of transactions to be scheduled for reindexing. + * @return a report about transactions that need to be fixed. + */ + NamedList fixOnSpecificCore(String coreName, Long fromTxCommitTime, Long toTxCommitTime, boolean dryRun, int maxTransactionsToSchedule) { try { - // Gets Metadata health and fixes any problems MetadataTracker metadataTracker = trackerRegistry.getTrackerForCore(coreName, MetadataTracker.class); - IndexHealthReport indexHealthReport = metadataTracker.checkIndex(null, null, null); - IOpenBitSet toReindex = indexHealthReport.getTxInIndexButNotInDb(); - toReindex.or(indexHealthReport.getDuplicatedTxInIndex()); - toReindex.or(indexHealthReport.getMissingTxFromIndex()); - long current = -1; - // Goes through problems in the index - Set txToReindex = new TreeSet<>(); - while ((current = toReindex.nextSetBit(current + 1)) != -1) - { - metadataTracker.addTransactionToReindex(current); - txToReindex.add(current); - } + final IndexHealthReport metadataTrackerIndexHealthReport = + metadataTracker.checkIndex(null, fromTxCommitTime, toTxCommitTime); + + LOGGER.debug("FIX Admin action built the MetadataTracker Index Health Report on core {}, parameters: " + + FROM_TX_COMMIT_TIME_PARAMETER_NAME + " = {}, " + + TO_TX_COMMIT_TIME_PARAMETER_NAME + " = {}, " + + DRY_RUN_PARAMETER_NAME + " = {}, " + + MAX_TRANSACTIONS_TO_SCHEDULE_PARAMETER_NAME + " = {}", + coreName, + ofNullable(fromTxCommitTime).map(Object::toString).orElse("N.A."), + ofNullable(toTxCommitTime).map(Object::toString).orElse("N.A."), + dryRun, + maxTransactionsToSchedule); - // Gets the Acl health and fixes any problems AclTracker aclTracker = trackerRegistry.getTrackerForCore(coreName, AclTracker.class); - indexHealthReport = aclTracker.checkIndex(null, null, null); - toReindex = indexHealthReport.getAclTxInIndexButNotInDb(); - toReindex.or(indexHealthReport.getDuplicatedAclTxInIndex()); - toReindex.or(indexHealthReport.getMissingAclTxFromIndex()); - current = -1; - // Goes through the problems in the index - Set aclChangeSetToReindex = new TreeSet<>(); - while ((current = toReindex.nextSetBit(current + 1)) != -1) - { - aclTracker.addAclChangeSetToReindex(current); - aclChangeSetToReindex.add(current); - } + final IndexHealthReport aclTrackerIndexHealthReport = + aclTracker.checkIndex(null, fromTxCommitTime, toTxCommitTime); + + LOGGER.debug("FIX Admin action built the AclTracker Index Health Report on core {}, parameters: " + + FROM_TX_COMMIT_TIME_PARAMETER_NAME + " = {}, " + + TO_TX_COMMIT_TIME_PARAMETER_NAME + " = {}, " + + DRY_RUN_PARAMETER_NAME + " = {}, " + + MAX_TRANSACTIONS_TO_SCHEDULE_PARAMETER_NAME + " = {}", + coreName, + ofNullable(fromTxCommitTime).map(Object::toString).orElse("N.A."), + ofNullable(toTxCommitTime).map(Object::toString).orElse("N.A."), + dryRun, + maxTransactionsToSchedule); NamedList response = new SimpleOrderedMap<>(); - response.add(ACTION_TX_TO_REINDEX, txToReindex); - response.add(ACTION_ACL_CHANGE_SET_TO_REINDEX, aclChangeSetToReindex); - return response; + response.add(ACTION_TX_TO_REINDEX, + txToReindex( + coreName, + metadataTracker, + metadataTrackerIndexHealthReport, + dryRun ? txid -> {} : metadataTracker::addTransactionToReindex, + maxTransactionsToSchedule)); + response.add(ACTION_ACL_CHANGE_SET_TO_REINDEX, + aclTxToReindex( + coreName, + aclTracker, + aclTrackerIndexHealthReport, + dryRun ? txid -> {} : aclTracker::addAclChangeSetToReindex, + maxTransactionsToSchedule)); + return response; } catch(Exception exception) { @@ -1661,6 +1754,153 @@ public class AlfrescoCoreAdminHandler extends CoreAdminHandler } } + /** + * Detects the transactions that need a FIX (i.e. reindexing) because the following reasons: + * + *
    + *
  • A transaction is in the index but not in repository
  • + *
  • A transaction is duplicated in the index
  • + *
  • A transaction is missing in the index
  • + *
+ * + * Note: the method, as a side effect, could also schedule the detected transactions for reindexing. + * That is controlled by the scheduler input param (which is directly connected with the FIX tool "dryRun" parameter). + * + * @param coreName the target core name. + * @param tracker the {@link MetadataTracker} instance associated with the target core. + * @param report the index healt report produced by the tracker. + * @param scheduler the controller which manages the actual transaction scheduling. + * @param maxTransactionsToSchedule the maximum number of transactions to schedule for reindexing. + * @return a report which includes the transactions that need a reindexing. + * @see SEARCH-2233 + * @see SEARCH-2248 + */ + NamedList txToReindex( + String coreName, + MetadataTracker tracker, + final IndexHealthReport report, + Consumer scheduler, + int maxTransactionsToSchedule) + { + final AtomicInteger globalLimit = new AtomicInteger(maxTransactionsToSchedule); + + final LongToIntFunction retrieveTransactionRelatedNodesCountFromRepository = + txid -> notNullOrEmpty(tracker.getFullNodesForDbTransaction(txid)).size(); + + final LongToIntFunction retrieveTransactionRelatedNodesCountFromIndex = + txid -> of(getInformationServers().get(coreName)) + .map(SolrInformationServer.class::cast) + .map(server -> server.getDocListSize(FIELD_INTXID + ":" + txid)) + .orElse(0); + + NamedList txToReindex = new SimpleOrderedMap<>(); + txToReindex.add(TX_IN_INDEX_NOT_IN_DB, + manageTransactionsToBeFixed( + report.getTxInIndexButNotInDb(), + retrieveTransactionRelatedNodesCountFromIndex, + scheduler, + globalLimit)); + + txToReindex.add(DUPLICATED_TX_IN_INDEX, + manageTransactionsToBeFixed( + report.getDuplicatedTxInIndex(), + retrieveTransactionRelatedNodesCountFromIndex, + scheduler, + globalLimit)); + + txToReindex.add(MISSING_TX_IN_INDEX, + manageTransactionsToBeFixed( + report.getMissingTxFromIndex(), + retrieveTransactionRelatedNodesCountFromRepository, + scheduler, + globalLimit)); + return txToReindex; + } + + /** + * Detects the ACL transactions that need a FIX (i.e. reindexing) because the following reasons: + * + *
    + *
  • A transaction is in the index but not in repository
  • + *
  • A transaction is duplicated in the index
  • + *
  • A transaction is missing in the index
  • + *
+ * + * This method is almost the same as {@link #txToReindex(String, MetadataTracker, IndexHealthReport, Consumer, int)}. + * The main difference is the target tracker ({@link AclTracker} in this case, instead of {@link MetadataTracker}). + * + * Note: the method, as a side effect, could also schedule the detected transactions for reindexing. + * That is controlled by the scheduler input param (which is directly connected with the FIX tool "dryRun" parameter). + * + * @param coreName the target core name. + * @param tracker the {@link AclTracker} instance associated with the target core. + * @param report the index healt report produced by the tracker. + * @param scheduler the controller which manages the actual transaction scheduling. + * @return a report which includes the transactions that need a reindexing. + * @see SEARCH-2233 + * @see SEARCH-2248 + */ + NamedList aclTxToReindex( + String coreName, + AclTracker tracker, + final IndexHealthReport report, + Consumer scheduler, + int maxTransactionsToSchedule) + { + final AtomicInteger globalLimit = new AtomicInteger(maxTransactionsToSchedule); + + final LongToIntFunction retrieveAclTransactionRelatedNodesCountFromRepository = + txid -> notNullOrEmpty(tracker.getAclsForDbAclTransaction(txid)).size(); + + final LongToIntFunction retrieveAclTransactionRelatedNodesCountFromIndex = + txid -> of(getInformationServers().get(coreName)) + .map(SolrInformationServer.class::cast) + .map(server -> server.getDocListSize(FIELD_INACLTXID + ":" + txid)) + .orElse(0); + + NamedList aclTxToReindex = new SimpleOrderedMap<>(); + aclTxToReindex.add(ACL_TX_IN_INDEX_NOT_IN_DB, + manageTransactionsToBeFixed( + report.getAclTxInIndexButNotInDb(), + retrieveAclTransactionRelatedNodesCountFromIndex, + scheduler, + globalLimit)); + + aclTxToReindex.add(DUPLICATED_ACL_TX_IN_INDEX, + manageTransactionsToBeFixed( + report.getDuplicatedAclTxInIndex(), + retrieveAclTransactionRelatedNodesCountFromIndex, + scheduler, + globalLimit)); + + aclTxToReindex.add(MISSING_ACL_TX_IN_INDEX, + manageTransactionsToBeFixed( + report.getMissingAclTxFromIndex(), + retrieveAclTransactionRelatedNodesCountFromRepository, + scheduler, + globalLimit)); + + return aclTxToReindex; + } + + NamedList manageTransactionsToBeFixed( + IOpenBitSet transactions, + LongToIntFunction nodesCounter, + Consumer scheduler, + AtomicInteger limit) + { + final NamedList transactionsList = new SimpleOrderedMap<>(); + + long txid = -1; + while ((txid = transactions.nextSetBit(txid + 1)) != -1 && limit.decrementAndGet() >= 0) + { + transactionsList.add(String.valueOf(txid), nodesCounter.applyAsInt(txid)); + scheduler.accept(txid); + } + + return transactionsList; + } + /** * Get detailed report for a core or for every core including information * related with handlers and trackers. @@ -1830,4 +2070,18 @@ public class AlfrescoCoreAdminHandler extends CoreAdminHandler .findFirst() .orElse(null); } + + int getMaxTransactionToSchedule(SolrParams params) + { + String requestedCoreName = coreName(params); + return ofNullable(params.getInt(MAX_TRANSACTIONS_TO_SCHEDULE_PARAMETER_NAME)) + .orElseGet(() -> + ofNullable(coreContainer) + .map(container -> container.getCore(requestedCoreName)) + .map(SolrCore::getResourceLoader) + .map(SolrResourceLoader::getCoreProperties) + .map(conf -> conf.getProperty(MAX_TRANSACTIONS_TO_SCHEDULE_CONF_PROPERTY_NAME)) + .map(Integer::parseInt) + .orElse(Integer.MAX_VALUE)); // Last fallback if we don't have a request param and a value in configuration + } } \ No newline at end of file diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java index fbed07f15..8e61a7962 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java @@ -3632,7 +3632,7 @@ public class SolrInformationServer implements InformationServer return (NamedList) facetFields.get(field); } - private int getDocListSize(String query) + public int getDocListSize(String query) { try (SolrQueryRequest request = this.newSolrQueryRequest()) { diff --git a/search-services/alfresco-search/src/main/resources/solr/instance/templates/rerank/conf/solrcore.properties b/search-services/alfresco-search/src/main/resources/solr/instance/templates/rerank/conf/solrcore.properties index 8cebb969b..af5186f84 100644 --- a/search-services/alfresco-search/src/main/resources/solr/instance/templates/rerank/conf/solrcore.properties +++ b/search-services/alfresco-search/src/main/resources/solr/instance/templates/rerank/conf/solrcore.properties @@ -11,6 +11,11 @@ enable.alfresco.tracking=true #data.dir.store=workspace/SpacesStore #alfresco.stores=workspace://SpacesStore +# Max transaction to schedule for reindexing in the admin FIX tool. +# If the admin fix action is called with a "maxScheduledTransactions" request parameter +# then that is used (i.e. the value configured in this file is ignored). +alfresco.admin.fix.maxScheduledTransactions=500 + # # Properties loaded during alfresco tracking # diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerTest.java new file mode 100644 index 000000000..3a8c7ef8f --- /dev/null +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerTest.java @@ -0,0 +1,512 @@ +/* + * #%L + * Alfresco Search Services + * %% + * Copyright (C) 2005 - 2020 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ + +package org.alfresco.solr; + +import org.alfresco.solr.adapters.IOpenBitSet; +import org.alfresco.solr.adapters.SolrOpenBitSetAdapter; +import org.alfresco.solr.tracker.AclTracker; +import org.alfresco.solr.tracker.IndexHealthReport; +import org.alfresco.solr.tracker.MetadataTracker; +import org.alfresco.solr.tracker.TrackerRegistry; +import org.apache.solr.common.params.ModifiableSolrParams; +import org.apache.solr.common.util.NamedList; +import org.apache.solr.core.CoreContainer; +import org.apache.solr.core.SolrCore; +import org.apache.solr.core.SolrResourceLoader; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +import java.util.Properties; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Consumer; + +import static java.util.Optional.of; +import static java.util.stream.IntStream.range; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.ACL_TX_IN_INDEX_NOT_IN_DB; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.ACTION_ERROR_MESSAGE_LABEL; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.ACTION_STATUS_LABEL; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.ACTION_STATUS_NOT_SCHEDULED; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.ALFRESCO_CORE_NAME; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.ARCHIVE_CORE_NAME; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.DRY_RUN_PARAMETER_NAME; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.DUPLICATED_ACL_TX_IN_INDEX; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.DUPLICATED_TX_IN_INDEX; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.FROM_TX_COMMIT_TIME_PARAMETER_NAME; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.MAX_TRANSACTIONS_TO_SCHEDULE_PARAMETER_NAME; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.MAX_TRANSACTIONS_TO_SCHEDULE_CONF_PROPERTY_NAME; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.MISSING_ACL_TX_IN_INDEX; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.MISSING_TX_IN_INDEX; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.TO_TX_COMMIT_TIME_PARAMETER_NAME; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.TX_IN_INDEX_NOT_IN_DB; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.UNKNOWN_CORE_MESSAGE; +import static org.alfresco.solr.AlfrescoCoreAdminHandler.UNPROCESSABLE_REQUEST_ON_SLAVE_NODES; +import static org.apache.solr.common.params.CoreAdminParams.CORE; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class AlfrescoCoreAdminHandlerTest +{ + private AlfrescoCoreAdminHandler admin; + + @Mock + TrackerRegistry registry; + + private ModifiableSolrParams params; + + @Before + public void setUp() + { + admin = new AlfrescoCoreAdminHandler(); + admin.trackerRegistry = registry; + when(registry.getCoreNames()).thenReturn(Set.of(ALFRESCO_CORE_NAME, ARCHIVE_CORE_NAME)); + + params = new ModifiableSolrParams(); + } + + @Test + public void noTargetCoreInParams() + { + assertEquals(0, params.size()); + + NamedList actionResponse = admin.actionFIX(params); + assertEquals(0, actionResponse.size()); + } + + @Test + public void unknownTargetCoreInParams() + { + String invalidCoreName = "thisIsAnInvalidOrAtLeastUnknownCoreName"; + params.set(CORE, invalidCoreName); + + NamedList actionResponse = admin.actionFIX(params); + assertEquals( 1, actionResponse.size()); + assertEquals(UNKNOWN_CORE_MESSAGE + invalidCoreName, actionResponse.get(ACTION_ERROR_MESSAGE_LABEL)); + } + + @Test + public void fixOnSlaveNodeHasNoEffect() + { + params.set(CORE, ALFRESCO_CORE_NAME); + + assertFalse(admin.isMasterOrStandalone(ALFRESCO_CORE_NAME)); + + NamedList actionResponse = admin.actionFIX(params); + assertEquals( 1, actionResponse.size()); + assertEquals(UNPROCESSABLE_REQUEST_ON_SLAVE_NODES, actionResponse.get(ACTION_ERROR_MESSAGE_LABEL)); + } + + @Test + public void maxTransactionScheduledParameterIsNotNull() + { + int expectedMaxTransactionToSchedule = 12876; + + params.set(CORE, ALFRESCO_CORE_NAME); + params.set(MAX_TRANSACTIONS_TO_SCHEDULE_PARAMETER_NAME, expectedMaxTransactionToSchedule); + + admin = new AlfrescoCoreAdminHandler(); + + assertEquals(expectedMaxTransactionToSchedule, admin.getMaxTransactionToSchedule(params)); + } + + @Test + public void maxTransactionScheduledIsNull_shouldBeGatheredFromCoreProperties() + { + params.set(CORE, ALFRESCO_CORE_NAME); + + int expectedMaxTransactionToSchedule = 17892; + Properties coreProperties = new Properties(); + coreProperties.setProperty( + MAX_TRANSACTIONS_TO_SCHEDULE_CONF_PROPERTY_NAME, + String.valueOf(expectedMaxTransactionToSchedule)); + + CoreContainer coreContainer = mock(CoreContainer.class); + SolrCore core = mock(SolrCore.class); + SolrResourceLoader resourceLoader = mock(SolrResourceLoader.class); + when(coreContainer.getCore(ALFRESCO_CORE_NAME)).thenReturn(core); + when(core.getResourceLoader()).thenReturn(resourceLoader); + when(resourceLoader.getCoreProperties()).thenReturn(coreProperties); + + admin = new AlfrescoCoreAdminHandler(coreContainer); + + assertEquals(expectedMaxTransactionToSchedule, admin.getMaxTransactionToSchedule(params)); + } + + @Test + public void maxTransactionScheduledParameterAndConfigurationIsNull_shouldGetTheHardCodedDefault() + { + params.set(CORE, ALFRESCO_CORE_NAME); + + Properties coreProperties = new Properties(); + + CoreContainer coreContainer = mock(CoreContainer.class); + SolrCore core = mock(SolrCore.class); + SolrResourceLoader resourceLoader = mock(SolrResourceLoader.class); + when(coreContainer.getCore(ALFRESCO_CORE_NAME)).thenReturn(core); + when(core.getResourceLoader()).thenReturn(resourceLoader); + when(resourceLoader.getCoreProperties()).thenReturn(coreProperties); + + admin = new AlfrescoCoreAdminHandler(coreContainer); + + assertEquals(Integer.MAX_VALUE, admin.getMaxTransactionToSchedule(params)); + } + + @Test + public void masterOrStandaloneNode_implicitDryRunParameterIsEchoed() + { + admin = new AlfrescoCoreAdminHandler() { + @Override + NamedList fixOnSpecificCore( + String coreName, + Long fromTxCommitTime, + Long toTxCommitTime, + boolean dryRun, + int maxTransactionsToSchedule) { + return new NamedList<>(); // dummy entry + } + + @Override + boolean isMasterOrStandalone(String coreName) + { + return true; + } + }; + + admin.trackerRegistry = registry; + + params.set(CORE, ALFRESCO_CORE_NAME); + + NamedList actionResponse = admin.actionFIX(params); + assertEquals(true, actionResponse.get(DRY_RUN_PARAMETER_NAME)); + assertEquals(ACTION_STATUS_NOT_SCHEDULED, actionResponse.get(ACTION_STATUS_LABEL)); + } + + @Test + public void masterOrStandaloneNode_explicitDryRunParameterIsEchoed() + { + assertThatExplicitParameterIsEchoed( + DRY_RUN_PARAMETER_NAME, + true); + + assertThatExplicitParameterIsEchoed( + DRY_RUN_PARAMETER_NAME, + false); + } + + @Test + public void masterOrStandaloneNode_explicitFromCommitTimeParameterIsEchoed() + { + assertThatExplicitParameterIsEchoed( + FROM_TX_COMMIT_TIME_PARAMETER_NAME, + System.currentTimeMillis()); + } + + @Test + public void masterOrStandaloneNode_explicitToCommitTimeParameterIsEchoed() + { + assertThatExplicitParameterIsEchoed( + TO_TX_COMMIT_TIME_PARAMETER_NAME, + System.currentTimeMillis()); + } + + @Test + public void masterOrStandaloneNode_explicitMaxTransactionsToScheduleParameterIsEchoed() + { + assertThatExplicitParameterIsEchoed( + MAX_TRANSACTIONS_TO_SCHEDULE_PARAMETER_NAME, + Integer.MAX_VALUE); + } + + @Test + public void manageTransactionsToBeFixed_shouldRespectTheInputGlobalLimit() + { + AtomicInteger limit = new AtomicInteger(4); + AtomicInteger transactionCount = new AtomicInteger(); + + IOpenBitSet transactions = new SolrOpenBitSetAdapter(); + range(1, 7).forEach(transactions::set); + + Consumer counter = tx -> transactionCount.incrementAndGet(); + admin.manageTransactionsToBeFixed(transactions, tx -> 0, counter, limit); + + assertEquals(-1, limit.get()); + assertEquals(4, transactionCount.get()); + } + + @Test + public void subsequentInvocationsToManageTransactionsToBeFixed_shouldRespectTheInputGlobalLimit() + { + // Limit is set to max 13 transactions + AtomicInteger limit = new AtomicInteger(13); + AtomicInteger transactionCount = new AtomicInteger(); + + // First transaction set contains 6 transactions + IOpenBitSet firstTransactionSet = new SolrOpenBitSetAdapter(); + range(1, 7).forEach(firstTransactionSet::set); + + Consumer counter = tx -> transactionCount.incrementAndGet(); + admin.manageTransactionsToBeFixed(firstTransactionSet, tx -> 0, counter, limit); + + assertEquals(7, limit.get()); + assertEquals(6, transactionCount.get()); + + // Second transaction set contains 9 transactions (more than the remaining transactions to process) + IOpenBitSet secondTransactionSet = new SolrOpenBitSetAdapter(); + range(10, 21).forEach(secondTransactionSet::set); + + admin.manageTransactionsToBeFixed(secondTransactionSet, tx -> 0, counter, limit); + + assertEquals("Global transaction limit should have been exceeded", -1, limit.get()); + assertEquals(13, transactionCount.get()); + + // Third transaction set contains 10 transactions, it should be completely ignored as we already exceeded the + // global limit above + IOpenBitSet thirdTransactionSet = new SolrOpenBitSetAdapter(); + range(31, 42).forEach(thirdTransactionSet::set); + + Consumer thisShoulndtBeInvoked = tx -> { throw new RuntimeException("We should never be here, as the global limit has been already exceeded."); }; + + admin.manageTransactionsToBeFixed(thirdTransactionSet, tx -> 0, thisShoulndtBeInvoked, limit); + + assertEquals( -2, limit.get()); + assertEquals(13, transactionCount.get()); + } + + @Test + public void noAclTransactionToReindex_shouldReturnAnEmptyResponse() + { + IndexHealthReport emptyReport = mock(IndexHealthReport.class); + when(emptyReport.getAclTxInIndexButNotInDb()).thenReturn(new SolrOpenBitSetAdapter()); + when(emptyReport.getDuplicatedAclTxInIndex()).thenReturn(new SolrOpenBitSetAdapter()); + when(emptyReport.getMissingAclTxFromIndex()).thenReturn(new SolrOpenBitSetAdapter()); + + NamedList subReport = admin.aclTxToReindex(ALFRESCO_CORE_NAME, mock(AclTracker.class), emptyReport, tx -> {}, Integer.MAX_VALUE); + + assertEquals( + Long.valueOf(0L), + of(subReport.get(ACL_TX_IN_INDEX_NOT_IN_DB)) + .map(NamedList.class::cast) + .map(NamedList::size) + .map(Number::longValue) + .orElseThrow(() -> new RuntimeException(ACL_TX_IN_INDEX_NOT_IN_DB + " section not found in response."))); + + assertEquals( + Long.valueOf(0L), + of(subReport.get(DUPLICATED_ACL_TX_IN_INDEX)) + .map(NamedList.class::cast) + .map(NamedList::size) + .map(Number::longValue) + .orElseThrow(() -> new RuntimeException(DUPLICATED_ACL_TX_IN_INDEX + " section not found in response."))); + + assertEquals( + Long.valueOf(0L), + of(subReport.get(MISSING_ACL_TX_IN_INDEX)) + .map(NamedList.class::cast) + .map(NamedList::size) + .map(Number::longValue) + .orElseThrow(() -> new RuntimeException(MISSING_ACL_TX_IN_INDEX + " section not found in response."))); + } + + @Test + public void noTransactionToReindex_shouldReturnAnEmptyResponse() + { + IndexHealthReport emptyReport = mock(IndexHealthReport.class); + when(emptyReport.getTxInIndexButNotInDb()).thenReturn(new SolrOpenBitSetAdapter()); + when(emptyReport.getDuplicatedTxInIndex()).thenReturn(new SolrOpenBitSetAdapter()); + when(emptyReport.getMissingTxFromIndex()).thenReturn(new SolrOpenBitSetAdapter()); + + NamedList subReport = admin.txToReindex(ALFRESCO_CORE_NAME, mock(MetadataTracker.class), emptyReport, tx -> {}, Integer.MAX_VALUE); + + assertEquals( + Long.valueOf(0L), + of(subReport.get(TX_IN_INDEX_NOT_IN_DB)) + .map(NamedList.class::cast) + .map(NamedList::size) + .map(Number::longValue) + .orElseThrow(() -> new RuntimeException(TX_IN_INDEX_NOT_IN_DB + " section not found in response."))); + + assertEquals( + Long.valueOf(0L), + of(subReport.get(DUPLICATED_TX_IN_INDEX)) + .map(NamedList.class::cast) + .map(NamedList::size) + .map(Number::longValue) + .orElseThrow(() -> new RuntimeException(DUPLICATED_TX_IN_INDEX + " section not found in response."))); + + assertEquals( + Long.valueOf(0L), + of(subReport.get(MISSING_TX_IN_INDEX)) + .map(NamedList.class::cast) + .map(NamedList::size) + .map(Number::longValue) + .orElseThrow(() -> new RuntimeException(MISSING_TX_IN_INDEX + " section not found in response."))); + } + + @Test + public void maxTransactionsGlobalLimitShouldBeAppliedInCascade() + { + SolrInformationServer server = mock(SolrInformationServer.class); + when(server.getDocListSize(anyString())).thenReturn(0); + + ConcurrentHashMap informationServers = new ConcurrentHashMap<>(); + informationServers.put(ALFRESCO_CORE_NAME, server); + admin.informationServers = informationServers; + + IOpenBitSet txInIndexButNotInDb = new SolrOpenBitSetAdapter(); + IOpenBitSet duplicatedTxInIndex = new SolrOpenBitSetAdapter(); + IOpenBitSet missingTxFromIndex = new SolrOpenBitSetAdapter(); + range(1, 10).forEach(txInIndexButNotInDb::set); + range(21, 32).forEach(duplicatedTxInIndex::set); + range(50, 61).forEach(missingTxFromIndex::set); + + int maxTransactionToSchedule = (int) (txInIndexButNotInDb.cardinality() + + duplicatedTxInIndex.cardinality() + + missingTxFromIndex.cardinality() - + 5); + + IndexHealthReport emptyReport = mock(IndexHealthReport.class); + when(emptyReport.getTxInIndexButNotInDb()).thenReturn(txInIndexButNotInDb); + when(emptyReport.getDuplicatedTxInIndex()).thenReturn(duplicatedTxInIndex); + when(emptyReport.getMissingTxFromIndex()).thenReturn(missingTxFromIndex); + + NamedList subReport = admin.txToReindex(ALFRESCO_CORE_NAME, mock(MetadataTracker.class), emptyReport, tx -> {}, maxTransactionToSchedule); + + assertEquals( + Long.valueOf(txInIndexButNotInDb.cardinality()), + of(subReport.get(TX_IN_INDEX_NOT_IN_DB)) + .map(NamedList.class::cast) + .map(NamedList::size) + .map(Number::longValue) + .orElseThrow(() -> new RuntimeException(TX_IN_INDEX_NOT_IN_DB + " section not found in response."))); + + assertEquals( + Long.valueOf(duplicatedTxInIndex.cardinality()), + of(subReport.get(DUPLICATED_TX_IN_INDEX)) + .map(NamedList.class::cast) + .map(NamedList::size) + .map(Number::longValue) + .orElseThrow(() -> new RuntimeException(DUPLICATED_TX_IN_INDEX + " section not found in response."))); + + assertEquals( + Long.valueOf(missingTxFromIndex.cardinality() - 5), + of(subReport.get(MISSING_TX_IN_INDEX)) + .map(NamedList.class::cast) + .map(NamedList::size) + .map(Number::longValue) + .orElseThrow(() -> new RuntimeException(MISSING_TX_IN_INDEX + " section not found in response."))); + } + + @Test + public void maxAclTransactionsGlobalLimitShouldBeAppliedInCascade() + { + SolrInformationServer server = mock(SolrInformationServer.class); + when(server.getDocListSize(anyString())).thenReturn(0); + + ConcurrentHashMap informationServers = new ConcurrentHashMap<>(); + informationServers.put(ALFRESCO_CORE_NAME, server); + admin.informationServers = informationServers; + + IOpenBitSet txInIndexButNotInDb = new SolrOpenBitSetAdapter(); + IOpenBitSet duplicatedTxInIndex = new SolrOpenBitSetAdapter(); + IOpenBitSet missingTxFromIndex = new SolrOpenBitSetAdapter(); + range(1, 10).forEach(txInIndexButNotInDb::set); + range(21, 32).forEach(duplicatedTxInIndex::set); + range(50, 61).forEach(missingTxFromIndex::set); + + int maxTransactionToSchedule = (int) (txInIndexButNotInDb.cardinality() + + duplicatedTxInIndex.cardinality() + + missingTxFromIndex.cardinality() - + 5); + + IndexHealthReport emptyReport = mock(IndexHealthReport.class); + when(emptyReport.getAclTxInIndexButNotInDb()).thenReturn(txInIndexButNotInDb); + when(emptyReport.getDuplicatedAclTxInIndex()).thenReturn(duplicatedTxInIndex); + when(emptyReport.getMissingAclTxFromIndex()).thenReturn(missingTxFromIndex); + + NamedList subReport = admin.aclTxToReindex(ALFRESCO_CORE_NAME, mock(AclTracker.class), emptyReport, tx -> {}, maxTransactionToSchedule); + + assertEquals( + Long.valueOf(txInIndexButNotInDb.cardinality()), + of(subReport.get(ACL_TX_IN_INDEX_NOT_IN_DB)) + .map(NamedList.class::cast) + .map(NamedList::size) + .map(Number::longValue) + .orElseThrow(() -> new RuntimeException(ACL_TX_IN_INDEX_NOT_IN_DB + " section not found in response."))); + + assertEquals( + Long.valueOf(duplicatedTxInIndex.cardinality()), + of(subReport.get(DUPLICATED_ACL_TX_IN_INDEX)) + .map(NamedList.class::cast) + .map(NamedList::size) + .map(Number::longValue) + .orElseThrow(() -> new RuntimeException(DUPLICATED_ACL_TX_IN_INDEX + " section not found in response."))); + + assertEquals( + Long.valueOf(missingTxFromIndex.cardinality() - 5), + of(subReport.get(MISSING_ACL_TX_IN_INDEX)) + .map(NamedList.class::cast) + .map(NamedList::size) + .map(Number::longValue) + .orElseThrow(() -> new RuntimeException(MISSING_ACL_TX_IN_INDEX + " section not found in response."))); + } + + private void assertThatExplicitParameterIsEchoed(String parameterName, T parameterValue) + { + admin = new AlfrescoCoreAdminHandler() { + @Override + NamedList fixOnSpecificCore( + String coreName, + Long fromTxCommitTime, + Long toTxCommitTime, + boolean dryRun, + int maxTransactionsToSchedule) { + return new NamedList<>(); // dummy entry + } + + @Override + boolean isMasterOrStandalone(String coreName) { + return true; + } + }; + + admin.trackerRegistry = registry; + + params.set(CORE, ALFRESCO_CORE_NAME); + params.set(parameterName, parameterValue.toString()); + + NamedList actionResponse = admin.actionFIX(params); + assertEquals(parameterValue, actionResponse.get(parameterName)); + } +} \ No newline at end of file From cdd90e0c37a51e7eef2c36111c4ffc8ce56f8613 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Mon, 8 Jun 2020 10:36:23 +0200 Subject: [PATCH 36/65] SEARCH-2238: Avoid setting the core name in Floc properties, as this provokes the Flocs belonging a group being different and, hence, not being grouped by ShardRegistry logic. --- .../org/alfresco/solr/tracker/CoreStatePublisher.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CoreStatePublisher.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CoreStatePublisher.java index dda43d880..0b6f32c66 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CoreStatePublisher.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CoreStatePublisher.java @@ -41,7 +41,6 @@ import org.alfresco.service.cmr.dictionary.PropertyDefinition; import org.alfresco.service.namespace.QName; import org.alfresco.solr.AlfrescoCoreAdminHandler; import org.alfresco.solr.AlfrescoSolrDataModel; -import org.alfresco.solr.BoundedDeque; import org.alfresco.solr.InformationServer; import org.alfresco.solr.NodeReport; import org.alfresco.solr.TrackerState; @@ -203,11 +202,9 @@ public abstract class CoreStatePublisher extends AbstractTracker HashMap propertyBag = new HashMap<>(); propertyBag.put("coreName", coreName); - - HashMap extendedPropertyBag = new HashMap<>(propertyBag); updateShardProperty(); - extendedPropertyBag.putAll(docRouter.getProperties(shardProperty)); + propertyBag.putAll(docRouter.getProperties(shardProperty)); return ShardStateBuilder.shardState() .withMaster(isMaster) @@ -216,7 +213,7 @@ public abstract class CoreStatePublisher extends AbstractTracker .withLastIndexedChangeSetId(changeSetsTrackerState.getLastIndexedChangeSetId()) .withLastIndexedTxCommitTime(transactionsTrackerState.getLastIndexedTxCommitTime()) .withLastIndexedTxId(transactionsTrackerState.getLastIndexedTxId()) - .withPropertyBag(extendedPropertyBag) + .withPropertyBag(propertyBag) .withShardInstance() .withBaseUrl(infoSrv.getBaseUrl()) .withPort(infoSrv.getPort()) @@ -229,11 +226,11 @@ public abstract class CoreStatePublisher extends AbstractTracker .withTemplate(shardTemplate) .withHasContent(transformContent) .withShardMethod(ShardMethodEnum.getShardMethod(shardMethod)) - .withPropertyBag(propertyBag) .endFloc() .endShard() .endShardInstance() .build(); + } /** From f62dee499e9c5c5f1c4fc09d36b8fd7704b1a26d Mon Sep 17 00:00:00 2001 From: agazzarini Date: Mon, 8 Jun 2020 11:14:22 +0200 Subject: [PATCH 37/65] [ SEARCH-2166 ] Conflicts with master fixed --- .../alfresco/solr/AlfrescoSolrDataModel.java | 219 ------------------ 1 file changed, 219 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java index a95a2d148..97f50d702 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java @@ -1904,223 +1904,4 @@ public class AlfrescoSolrDataModel implements QueryConstants diff.getElementName())) .collect(Collectors.toSet()); } - - /* - * Adds best completion fields in order of preference - */ - private void addCompletionFields(PropertyDefinition propertyDefinition, IndexedField indexedField) - { - if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) - { - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - else - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); - } - } - else if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.TRUE)) - { - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - else - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); - } - } - else if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE)) - { - indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); - } - } - - /* - * Adds best fts fields in order of preference - */ - - private void addFullTextSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) - { - if (((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.TRUE) - || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) - && !isIdentifierTextProperty(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), true, false); - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - } - else - { - indexedField.addField(getFieldForText(true, false, false, propertyDefinition), true, false); - indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); - } - } - - private void addHighlightSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) - { - QName propertyName = propertyDefinition.getName(); - QName propertyDataTypeQName = propertyDefinition.getDataType().getName(); - String fieldName; - - if(propertyDataTypeQName.equals(DataTypeDefinition.MLTEXT)) - { - fieldName = getStoredMLTextField(propertyName); - } - else if(propertyDataTypeQName.equals(DataTypeDefinition.CONTENT)) - { - fieldName = getStoredContentField(propertyName); - } - else - { - fieldName = getStoredTextField(propertyName); - } - - indexedField.addField(fieldName, false, false); - } - - /* - * Adds best identifier fields in order of preference - */ - private void addIdentifierSearchFields(PropertyDefinition propertyDefinition, IndexedField indexedField) - { - if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) - || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) - { - - indexedField.addField(getFieldForText(true, false, false, propertyDefinition), true, false); - indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); - } - else - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), true, false); - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - } - } - - /* - * Adds best identifier fields in order of preference - */ - private void addFacetSearchFields(PropertyDefinition propertyDefinition, IndexedField indexedField) - { - if(propertyDefinition.getDataType().getName().equals(DataTypeDefinition.TEXT)) - { - if (!isIdentifierTextProperty(propertyDefinition.getName())) - { - if(propertyDefinition.getFacetable() == Facetable.TRUE) - { - indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); - } - } - } - - - if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) - || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH) - || isIdentifierTextProperty(propertyDefinition.getName())) - { - - indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); - } - else - { - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - else - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); - } - } - } - - private void addMultiSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) - { - if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) - || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH) - || isIdentifierTextProperty(propertyDefinition.getName())) - { - - indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); - } - else - { - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - else - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); - } - } - } - - private void addStatsSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) - { - addFacetSearchFields(propertyDefinition, indexedField); - } - - private void addSortSearchFields( PropertyDefinition propertyDefinition , IndexedField indexedField) - { - // Can only order on single valued fields - DataTypeDefinition dataTypeDefinition = propertyDefinition.getDataType(); - if(dataTypeDefinition.getName().equals(DataTypeDefinition.TEXT)) - { - if(!propertyDefinition.isMultiValued()) - { - if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) - || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) - { - indexedField.addField(getFieldForText(false, false, true, propertyDefinition), false, true); - } - else if (isIdentifierTextProperty(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, false, false, propertyDefinition), false, false); - } - else - { - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - else - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); - } - } - } - } - - if(dataTypeDefinition.getName().equals(DataTypeDefinition.MLTEXT)) - { - if(!propertyDefinition.isMultiValued()) - { - if ((propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.FALSE) - || (propertyDefinition.getIndexTokenisationMode() == IndexTokenisationMode.BOTH)) - { - indexedField.addField(getFieldForText(false, false, true, propertyDefinition), false, true); - } - else - { - if(crossLocaleSearchDataTypes.contains(propertyDefinition.getDataType().getName()) || crossLocaleSearchProperties.contains(propertyDefinition.getName())) - { - indexedField.addField(getFieldForText(false, true, false, propertyDefinition), false, false); - } - else - { - indexedField.addField(getFieldForText(true, true, false, propertyDefinition), false, false); - } - } - } - } - } } \ No newline at end of file From e6d35111019d3c94a3e4deea38b91cfe7931bad6 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Wed, 10 Jun 2020 11:24:36 +0200 Subject: [PATCH 38/65] SEARCH-1915: Cherry-picking selected changes from https://git.alfresco.com/search_discovery/insightengine/tree/fix/search-1915 --- .../noRerank/conf/solrcore.properties | 4 +- .../templates/rerank/conf/solrcore.properties | 4 +- .../collection1/conf/solrcore.properties | 4 +- .../master/conf/solrcore.properties | 4 +- .../alfresco-solrclient-lib/pom.xml | 2 +- .../solr/client/SOLRAPIClientFactory.java | 72 +++++++++---------- 6 files changed, 44 insertions(+), 46 deletions(-) diff --git a/search-services/alfresco-search/src/main/resources/solr/instance/templates/noRerank/conf/solrcore.properties b/search-services/alfresco-search/src/main/resources/solr/instance/templates/noRerank/conf/solrcore.properties index 15058b2e1..23b1f8408 100644 --- a/search-services/alfresco-search/src/main/resources/solr/instance/templates/noRerank/conf/solrcore.properties +++ b/search-services/alfresco-search/src/main/resources/solr/instance/templates/noRerank/conf/solrcore.properties @@ -43,11 +43,11 @@ alfresco.secureComms=https alfresco.encryption.ssl.keystore.type=JCEKS alfresco.encryption.ssl.keystore.provider= alfresco.encryption.ssl.keystore.location=ssl.repo.client.keystore -alfresco.encryption.ssl.keystore.passwordFileLocation=ssl-keystore-passwords.properties +alfresco.encryption.ssl.keystore.passwordFileLocation= alfresco.encryption.ssl.truststore.type=JCEKS alfresco.encryption.ssl.truststore.provider= alfresco.encryption.ssl.truststore.location=ssl.repo.client.truststore -alfresco.encryption.ssl.truststore.passwordFileLocation=ssl-truststore-passwords.properties +alfresco.encryption.ssl.truststore.passwordFileLocation= # Default Tracker alfresco.cron=0/10 * * * * ? * diff --git a/search-services/alfresco-search/src/main/resources/solr/instance/templates/rerank/conf/solrcore.properties b/search-services/alfresco-search/src/main/resources/solr/instance/templates/rerank/conf/solrcore.properties index 8cebb969b..447c4eec2 100644 --- a/search-services/alfresco-search/src/main/resources/solr/instance/templates/rerank/conf/solrcore.properties +++ b/search-services/alfresco-search/src/main/resources/solr/instance/templates/rerank/conf/solrcore.properties @@ -43,11 +43,11 @@ alfresco.secureComms=https alfresco.encryption.ssl.keystore.type=JCEKS alfresco.encryption.ssl.keystore.provider= alfresco.encryption.ssl.keystore.location=ssl.repo.client.keystore -alfresco.encryption.ssl.keystore.passwordFileLocation=ssl-keystore-passwords.properties +alfresco.encryption.ssl.keystore.passwordFileLocation= alfresco.encryption.ssl.truststore.type=JCEKS alfresco.encryption.ssl.truststore.provider= alfresco.encryption.ssl.truststore.location=ssl.repo.client.truststore -alfresco.encryption.ssl.truststore.passwordFileLocation=ssl-truststore-passwords.properties +alfresco.encryption.ssl.truststore.passwordFileLocation= # Default Tracker alfresco.cron=0/10 * * * * ? * diff --git a/search-services/alfresco-search/src/test/resources/test-files/collection1/conf/solrcore.properties b/search-services/alfresco-search/src/test/resources/test-files/collection1/conf/solrcore.properties index aa07843d0..bedcbe554 100644 --- a/search-services/alfresco-search/src/test/resources/test-files/collection1/conf/solrcore.properties +++ b/search-services/alfresco-search/src/test/resources/test-files/collection1/conf/solrcore.properties @@ -39,11 +39,11 @@ alfresco.secureComms=none alfresco.encryption.ssl.keystore.type=JCEKS alfresco.encryption.ssl.keystore.provider= alfresco.encryption.ssl.keystore.location=ssl.repo.client.keystore -alfresco.encryption.ssl.keystore.passwordFileLocation=ssl-keystore-passwords.properties +alfresco.encryption.ssl.keystore.passwordFileLocation= alfresco.encryption.ssl.truststore.type=JCEKS alfresco.encryption.ssl.truststore.provider= alfresco.encryption.ssl.truststore.location=ssl.repo.client.truststore -alfresco.encryption.ssl.truststore.passwordFileLocation=ssl-truststore-passwords.properties +alfresco.encryption.ssl.truststore.passwordFileLocation= # Tracking diff --git a/search-services/alfresco-search/src/test/resources/test-files/master/conf/solrcore.properties b/search-services/alfresco-search/src/test/resources/test-files/master/conf/solrcore.properties index aa07843d0..bedcbe554 100644 --- a/search-services/alfresco-search/src/test/resources/test-files/master/conf/solrcore.properties +++ b/search-services/alfresco-search/src/test/resources/test-files/master/conf/solrcore.properties @@ -39,11 +39,11 @@ alfresco.secureComms=none alfresco.encryption.ssl.keystore.type=JCEKS alfresco.encryption.ssl.keystore.provider= alfresco.encryption.ssl.keystore.location=ssl.repo.client.keystore -alfresco.encryption.ssl.keystore.passwordFileLocation=ssl-keystore-passwords.properties +alfresco.encryption.ssl.keystore.passwordFileLocation= alfresco.encryption.ssl.truststore.type=JCEKS alfresco.encryption.ssl.truststore.provider= alfresco.encryption.ssl.truststore.location=ssl.repo.client.truststore -alfresco.encryption.ssl.truststore.passwordFileLocation=ssl-truststore-passwords.properties +alfresco.encryption.ssl.truststore.passwordFileLocation= # Tracking diff --git a/search-services/alfresco-solrclient-lib/pom.xml b/search-services/alfresco-solrclient-lib/pom.xml index 93e7d0695..241d24720 100644 --- a/search-services/alfresco-solrclient-lib/pom.xml +++ b/search-services/alfresco-solrclient-lib/pom.xml @@ -22,7 +22,7 @@ - 8.112 + 8.117 2.10.3 diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClientFactory.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClientFactory.java index 122c01c53..4db063ae4 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClientFactory.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClientFactory.java @@ -131,11 +131,10 @@ public class SOLRAPIClientFactory * @param namespaceDAO allows retrieving and creating Namespace definitions * @return an instance of SOLRAPIClient */ - public SOLRAPIClient getSOLRAPIClient(Properties props, KeyResourceLoader keyResourceLoader, - DictionaryService dictionaryService, NamespaceDAO namespaceDAO) + public SOLRAPIClient getSOLRAPIClient(Properties props, KeyResourceLoader keyResourceLoader, DictionaryService dictionaryService, NamespaceDAO namespaceDAO) { - if(Boolean.parseBoolean(System.getProperty("alfresco.test", "false"))) + if (Boolean.parseBoolean(System.getProperty("alfresco.test", "false"))) { return new SOLRAPIQueueClient(namespaceDAO); } @@ -153,20 +152,18 @@ public class SOLRAPIClientFactory secureCommsType = props.getProperty("alfresco.secureComms", "none"); if (secureCommsType.equals("https")) { - sslKeyStoreType = getProperty(props, "alfresco.encryption.ssl.keystore.type", "JCEKS"); - sslKeyStoreProvider = getProperty(props, "alfresco.encryption.ssl.keystore.provider", ""); - sslKeyStoreLocation = getProperty(props, "alfresco.encryption.ssl.keystore.location", - "ssl.repo.client.keystore"); - sslKeyStorePasswordFileLocation = getProperty(props, - "alfresco.encryption.ssl.keystore.passwordFileLocation", - "ssl-keystore-passwords.properties"); - sslTrustStoreType = getProperty(props, "alfresco.encryption.ssl.truststore.type", "JCEKS"); - sslTrustStoreProvider = getProperty(props, "alfresco.encryption.ssl.truststore.provider", ""); - sslTrustStoreLocation = getProperty(props, "alfresco.encryption.ssl.truststore.location", - "ssl.repo.client.truststore"); - sslTrustStorePasswordFileLocation = getProperty(props, - "alfresco.encryption.ssl.truststore.passwordFileLocation", - "ssl-truststore-passwords.properties"); + sslKeyStoreType = getProperty(props, "alfresco.encryption.ssl.keystore.type", "JCEKS"); + sslKeyStoreProvider = getProperty(props, "alfresco.encryption.ssl.keystore.provider", ""); + sslKeyStoreLocation = getProperty(props, "alfresco.encryption.ssl.keystore.location", + "ssl.repo.client.keystore"); + sslKeyStorePasswordFileLocation = getProperty(props, + "alfresco.encryption.ssl.keystore.passwordFileLocation", ""); + sslTrustStoreType = getProperty(props, "alfresco.encryption.ssl.truststore.type", "JCEKS"); + sslTrustStoreProvider = getProperty(props, "alfresco.encryption.ssl.truststore.provider", ""); + sslTrustStoreLocation = getProperty(props, "alfresco.encryption.ssl.truststore.location", + "ssl.repo.client.truststore"); + sslTrustStorePasswordFileLocation = getProperty(props, + "alfresco.encryption.ssl.truststore.passwordFileLocation", ""); } maxTotalConnections = Integer.parseInt(props.getProperty("alfresco.maxTotalConnections", "40")); maxHostConnections = Integer.parseInt(props.getProperty("alfresco.maxHostConnections", "40")); @@ -178,28 +175,29 @@ public class SOLRAPIClientFactory return client; } - + protected AlfrescoHttpClient getRepoClient(KeyResourceLoader keyResourceLoader) { - HttpClientFactory httpClientFactory = null; - - if (secureCommsType.equals("https")) - { - KeyStoreParameters keyStoreParameters = new KeyStoreParameters("SSL Key Store", sslKeyStoreType, - sslKeyStoreProvider, sslKeyStorePasswordFileLocation, sslKeyStoreLocation); - KeyStoreParameters trustStoreParameters = new KeyStoreParameters("SSL Trust Store", sslTrustStoreType, - sslTrustStoreProvider, sslTrustStorePasswordFileLocation, sslTrustStoreLocation); - SSLEncryptionParameters sslEncryptionParameters = new SSLEncryptionParameters(keyStoreParameters, - trustStoreParameters); - httpClientFactory = new HttpClientFactory(SecureCommsType.getType(secureCommsType), - sslEncryptionParameters, keyResourceLoader, null, null, alfrescoHost, alfrescoPort, - alfrescoPortSSL, maxTotalConnections, maxHostConnections, socketTimeout); - } - else - { - httpClientFactory = new PlainHttpClientFactory(alfrescoHost, alfrescoPort, maxTotalConnections, maxHostConnections); - } - + HttpClientFactory httpClientFactory = null; + + if (secureCommsType.equals("https")) + { + KeyStoreParameters keyStoreParameters = new KeyStoreParameters("ssl-keystore", "SSL Key Store", + sslKeyStoreType, sslKeyStoreProvider, sslKeyStorePasswordFileLocation, sslKeyStoreLocation); + KeyStoreParameters trustStoreParameters = new KeyStoreParameters("ssl-truststore", "SSL Trust Store", + sslTrustStoreType, sslTrustStoreProvider, sslTrustStorePasswordFileLocation, sslTrustStoreLocation); + SSLEncryptionParameters sslEncryptionParameters = new SSLEncryptionParameters(keyStoreParameters, + trustStoreParameters); + httpClientFactory = new HttpClientFactory(SecureCommsType.getType(secureCommsType), sslEncryptionParameters, + keyResourceLoader, null, null, alfrescoHost, alfrescoPort, alfrescoPortSSL, maxTotalConnections, + maxHostConnections, socketTimeout); + } + else + { + httpClientFactory = new PlainHttpClientFactory(alfrescoHost, alfrescoPort, maxTotalConnections, + maxHostConnections); + } + AlfrescoHttpClient repoClient = httpClientFactory.getRepoClient(alfrescoHost, alfrescoPortSSL); repoClient.setBaseUrl(baseUrl); return repoClient; From 494bd461e9d465ecf97b3123486ce97419d79e67 Mon Sep 17 00:00:00 2001 From: Alessandro Benedetti Date: Wed, 10 Jun 2020 11:34:58 +0100 Subject: [PATCH 39/65] Merge remote-tracking branch 'origin/master' into feature/SEARCH-2228-phrase # Conflicts: # search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java --- .../main/java/org/alfresco/solr/query/Solr4QueryParser.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java index 8507e9f59..e7dd53349 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/query/Solr4QueryParser.java @@ -2348,8 +2348,7 @@ public class Solr4QueryParser extends QueryParser implements QueryConstants isShingled = true; } - boolean forceConjuncion = rerankPhase == RerankPhase.QUERY_PHASE; - + boolean forceConjuncion = (rerankPhase == RerankPhase.QUERY_PHASE && !isExactTermSearch(analysisMode)); if (list.size() == 0) { return null; From c246bbb2b5e2d40224da58b1c3d413f22c9f9673 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 11 Jun 2020 21:12:41 +0000 Subject: [PATCH 40/65] Bump alfresco-data-model from 8.117 to 8.119 in /search-services Bumps [alfresco-data-model](https://github.com/Alfresco/alfresco-data-model) from 8.117 to 8.119. - [Release notes](https://github.com/Alfresco/alfresco-data-model/releases) - [Commits](https://github.com/Alfresco/alfresco-data-model/compare/8.117...8.119) Signed-off-by: dependabot-preview[bot] --- search-services/alfresco-solrclient-lib/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/search-services/alfresco-solrclient-lib/pom.xml b/search-services/alfresco-solrclient-lib/pom.xml index 241d24720..38d2d0576 100644 --- a/search-services/alfresco-solrclient-lib/pom.xml +++ b/search-services/alfresco-solrclient-lib/pom.xml @@ -22,7 +22,7 @@ - 8.117 + 8.119 2.10.3 From 3d45956f140a8a79ee6c65bec17fec88d2c7bd7e Mon Sep 17 00:00:00 2001 From: Elia Porciani Date: Mon, 15 Jun 2020 08:26:24 +0100 Subject: [PATCH 41/65] [SEARCH-2279] Registration to ACS is handled by a specific tracker --- .../solr/AlfrescoCoreAdminHandler.java | 10 +++---- .../alfresco/solr/HandlerReportHelper.java | 4 +-- .../solr/lifecycle/SolrCoreLoadListener.java | 19 ++++++++---- ...=> AbstractShardInformationPublisher.java} | 30 +++++++------------ .../solr/tracker/MetadataTracker.java | 23 ++++++-------- ...Publisher.java => NodeStatePublisher.java} | 13 ++------ .../solr/AlfrescoCoreAdminHandlerIT.java | 8 ++--- .../lifecycle/SolrCoreLoadListenerTest.java | 5 ++-- .../tracker/DistributedCascadeTrackerIT.java | 1 + .../solr/tracker/MetadataTrackerTest.java | 2 +- .../tracker/SolrTrackerSchedulerTest.java | 2 +- .../alfresco/solr/client/SOLRAPIClient.java | 16 +++++----- 12 files changed, 62 insertions(+), 71 deletions(-) rename search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/{CoreStatePublisher.java => AbstractShardInformationPublisher.java} (92%) rename search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/{SlaveCoreStatePublisher.java => NodeStatePublisher.java} (95%) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java index 0f19165e0..19f0df1f0 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoCoreAdminHandler.java @@ -33,12 +33,12 @@ import org.alfresco.solr.adapters.IOpenBitSet; import org.alfresco.solr.client.SOLRAPIClientFactory; import org.alfresco.solr.config.ConfigUtil; import org.alfresco.solr.tracker.AclTracker; -import org.alfresco.solr.tracker.CoreStatePublisher; +import org.alfresco.solr.tracker.AbstractShardInformationPublisher; import org.alfresco.solr.tracker.DBIDRangeRouter; import org.alfresco.solr.tracker.DocRouter; import org.alfresco.solr.tracker.IndexHealthReport; import org.alfresco.solr.tracker.MetadataTracker; -import org.alfresco.solr.tracker.SlaveCoreStatePublisher; +import org.alfresco.solr.tracker.NodeStatePublisher; import org.alfresco.solr.tracker.SolrTrackerScheduler; import org.alfresco.solr.tracker.Tracker; import org.alfresco.solr.tracker.TrackerRegistry; @@ -2009,11 +2009,11 @@ public class AlfrescoCoreAdminHandler extends CoreAdminHandler * @param coreName the owning core name. * @return the component which is in charge to publish the core state. */ - CoreStatePublisher coreStatePublisher(String coreName) + AbstractShardInformationPublisher coreStatePublisher(String coreName) { return ofNullable(trackerRegistry.getTrackerForCore(coreName, MetadataTracker.class)) - .map(CoreStatePublisher.class::cast) - .orElse(trackerRegistry.getTrackerForCore(coreName, SlaveCoreStatePublisher.class)); + .map(AbstractShardInformationPublisher.class::cast) + .orElse(trackerRegistry.getTrackerForCore(coreName, NodeStatePublisher.class)); } /** diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerReportHelper.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerReportHelper.java index 43d402de5..ebcf4ef26 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerReportHelper.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/HandlerReportHelper.java @@ -125,7 +125,7 @@ class HandlerReportHelper return nr; } - static NamedList buildNodeReport(CoreStatePublisher publisher, Long dbid) throws JSONException + static NamedList buildNodeReport(AbstractShardInformationPublisher publisher, Long dbid) throws JSONException { NodeReport nodeReport = publisher.checkNode(dbid); @@ -248,7 +248,7 @@ class HandlerReportHelper NamedList coreSummary = new SimpleOrderedMap<>(); coreSummary.addAll((SimpleOrderedMap) srv.getCoreStats()); - SlaveCoreStatePublisher statePublisher = trackerRegistry.getTrackerForCore(cname, SlaveCoreStatePublisher.class); + NodeStatePublisher statePublisher = trackerRegistry.getTrackerForCore(cname, NodeStatePublisher.class); TrackerState trackerState = statePublisher.getTrackerState(); long lastIndexTxCommitTime = trackerState.getLastIndexedTxCommitTime(); diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/lifecycle/SolrCoreLoadListener.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/lifecycle/SolrCoreLoadListener.java index bd8225c57..00cb220d4 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/lifecycle/SolrCoreLoadListener.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/lifecycle/SolrCoreLoadListener.java @@ -51,7 +51,7 @@ import org.alfresco.solr.tracker.CommitTracker; import org.alfresco.solr.tracker.ContentTracker; import org.alfresco.solr.tracker.MetadataTracker; import org.alfresco.solr.tracker.ModelTracker; -import org.alfresco.solr.tracker.SlaveCoreStatePublisher; +import org.alfresco.solr.tracker.NodeStatePublisher; import org.alfresco.solr.tracker.SolrTrackerScheduler; import org.alfresco.solr.tracker.Tracker; import org.alfresco.solr.tracker.TrackerRegistry; @@ -190,7 +190,7 @@ public class SolrCoreLoadListener extends AbstractSolrEventListener { LOGGER.info("SearchServices Core Trackers have been explicitly disabled on core \"{}\" through \"enable.alfresco.tracking\" configuration property.", core.getName()); - SlaveCoreStatePublisher statePublisher = new SlaveCoreStatePublisher(false, coreProperties, repositoryClient, core.getName(), informationServer); + NodeStatePublisher statePublisher = new NodeStatePublisher(false, coreProperties, repositoryClient, core.getName(), informationServer); trackerRegistry.register(core.getName(), statePublisher); scheduler.schedule(statePublisher, core.getName(), coreProperties); trackers.add(statePublisher); @@ -205,7 +205,7 @@ public class SolrCoreLoadListener extends AbstractSolrEventListener { LOGGER.info("SearchServices Core Trackers have been disabled on core \"{}\" because it is a slave core.", core.getName()); - SlaveCoreStatePublisher statePublisher = new SlaveCoreStatePublisher(false, coreProperties, repositoryClient, core.getName(), informationServer); + NodeStatePublisher statePublisher = new NodeStatePublisher(false, coreProperties, repositoryClient, core.getName(), informationServer); trackerRegistry.register(core.getName(), statePublisher); scheduler.schedule(statePublisher, core.getName(), coreProperties); trackers.add(statePublisher); @@ -258,12 +258,21 @@ public class SolrCoreLoadListener extends AbstractSolrEventListener MetadataTracker metadataTracker = registerAndSchedule( - new MetadataTracker(true, props, repositoryClient, core.getName(), srv, true), + new MetadataTracker(props, repositoryClient, core.getName(), srv, true), core, props, trackerRegistry, scheduler); + NodeStatePublisher coreStateTracker = + registerAndSchedule( + new NodeStatePublisher(true, props, repositoryClient, core.getName(), srv), + core, + props, + trackerRegistry, + scheduler + ); + List trackers = new ArrayList<>(); String cascadeTrackerEnabledProp = ofNullable((String) props.get(CASCADE_TRACKER_ENABLED)).orElse("true"); @@ -283,7 +292,7 @@ public class SolrCoreLoadListener extends AbstractSolrEventListener //The ContentTracker will likely have the longest runs so put it first to ensure the MetadataTracker is not paused while //waiting for the ContentTracker to release it's lock. //The aclTracker will likely have the shortest runs so put it last. - trackers.addAll(asList(contentTracker, metadataTracker, aclTracker)); + trackers.addAll(asList(contentTracker, metadataTracker, aclTracker, coreStateTracker)); return trackers; } diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CoreStatePublisher.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractShardInformationPublisher.java similarity index 92% rename from search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CoreStatePublisher.java rename to search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractShardInformationPublisher.java index 0b6f32c66..b71bd8286 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/CoreStatePublisher.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractShardInformationPublisher.java @@ -26,10 +26,6 @@ package org.alfresco.solr.tracker; -import static java.util.Optional.of; -import static java.util.Optional.ofNullable; -import static org.alfresco.solr.tracker.DocRouterFactory.SHARD_KEY_KEY; - import org.alfresco.opencmis.dictionary.CMISStrictDictionaryService; import org.alfresco.repo.dictionary.NamespaceDAO; import org.alfresco.repo.index.shard.ShardMethodEnum; @@ -53,6 +49,10 @@ import java.util.HashMap; import java.util.Optional; import java.util.Properties; +import static java.util.Optional.of; +import static java.util.Optional.ofNullable; +import static org.alfresco.solr.tracker.DocRouterFactory.SHARD_KEY_KEY; + /** * Superclass for all components which are able to inform Alfresco about the hosting node state. * This has been introduced in SEARCH-1752 for splitting the dual responsibility of the {@link org.alfresco.solr.tracker.MetadataTracker}. @@ -63,9 +63,9 @@ import java.util.Properties; * @since 1.5 * @see SEARCH-1752 */ -public abstract class CoreStatePublisher extends AbstractTracker +public abstract class AbstractShardInformationPublisher extends AbstractTracker { - private static final Logger LOGGER = LoggerFactory.getLogger(CoreStatePublisher.class); + private static final Logger LOGGER = LoggerFactory.getLogger(AbstractShardInformationPublisher.class); DocRouter docRouter; private final boolean isMaster; @@ -75,7 +75,7 @@ public abstract class CoreStatePublisher extends AbstractTracker /** The property to use for determining the shard. */ protected Optional shardProperty = Optional.empty(); - CoreStatePublisher( + AbstractShardInformationPublisher( boolean isMaster, Properties p, SOLRAPIClient client, @@ -93,7 +93,7 @@ public abstract class CoreStatePublisher extends AbstractTracker docRouter = DocRouterFactory.getRouter(p, ShardMethodEnum.getShardMethod(shardMethod)); } - CoreStatePublisher(Type type) + AbstractShardInformationPublisher(Type type) { super(type); this.isMaster = false; @@ -177,18 +177,8 @@ public abstract class CoreStatePublisher extends AbstractTracker * The {@link ShardState}, as the name suggests, encapsulates/stores the state of the shard which hosts this * {@link MetadataTracker} instance. * - * The {@link ShardState} is primarily used in two places: - * - *
    - *
  • Transaction tracking: (see {@link MetadataTracker#getSomeTransactions(BoundedDeque, Long, long, int, long}): for pulling/tracking transactions from Alfresco
  • - *
  • - * DynamicSharding: the {@link MetadataTracker} is not running on a slave instances; in those cases a special - * "tracker" ({@link SlaveCoreStatePublisher}) will be in charge to send the correspondin shard state to Alfresco. - *
  • - *
- * * @return the {@link ShardState} instance which stores the current state of the hosting shard. - * @see SlaveCoreStatePublisher + * @see NodeStatePublisher */ ShardState getShardState() { @@ -230,7 +220,7 @@ public abstract class CoreStatePublisher extends AbstractTracker .endShard() .endShardInstance() .build(); - + } /** diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java index 1067fdfe2..383992ab5 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/MetadataTracker.java @@ -29,7 +29,6 @@ package org.alfresco.solr.tracker; import com.google.common.collect.Lists; import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.httpclient.AuthenticationException; -import org.alfresco.repo.index.shard.ShardState; import org.alfresco.solr.BoundedDeque; import org.alfresco.solr.InformationServer; import org.alfresco.solr.NodeReport; @@ -69,7 +68,7 @@ import static org.alfresco.repo.index.shard.ShardMethodEnum.DB_ID_RANGE; * This tracks two things: transactions and metadata nodes * @author Ahmed Owian */ -public class MetadataTracker extends CoreStatePublisher implements Tracker +public class MetadataTracker extends AbstractShardInformationPublisher implements Tracker { protected final static Logger LOGGER = LoggerFactory.getLogger(MetadataTracker.class); @@ -142,26 +141,25 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker */ private Pair minTxnIdRange; - public MetadataTracker(final boolean isMaster, Properties p, SOLRAPIClient client, String coreName, + public MetadataTracker(Properties p, SOLRAPIClient client, String coreName, InformationServer informationServer) { - this(isMaster, p, client, coreName, informationServer, false); + this(p, client, coreName, informationServer, false); } /** * MetadataTracker constructor - * - * @param isMaster is true if SOLR instance is master, false otherwise + * * @param p includes SOLR core properties (from environment variables and properties file) * @param client Alfresco Repository http client * @param coreName Name of the SOLR Core (alfresco, archive) * @param informationServer SOLR Information Server * @param checkRepoServicesAvailability is true if Repo Services availability needs to be checked */ - public MetadataTracker(final boolean isMaster, Properties p, SOLRAPIClient client, String coreName, + public MetadataTracker( Properties p, SOLRAPIClient client, String coreName, InformationServer informationServer, boolean checkRepoServicesAvailability) { - super(isMaster, p, client, coreName, informationServer, Tracker.Type.METADATA); + super(true, p, client, coreName, informationServer, Tracker.Type.METADATA); transactionDocsBatchSize = Integer.parseInt(p.getProperty("alfresco.transactionDocsBatchSize", String.valueOf(DEFAULT_TRANSACTION_DOCS_BATCH_SIZE))); @@ -736,8 +734,6 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker int maxResults, long endTime) throws AuthenticationException, IOException, JSONException, EncoderException, NoSuchMethodException { - - ShardState shardstate = getShardState(); Transactions transactions; // step forward in time until we find something or hit the time bound @@ -749,14 +745,13 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker null, startTime + timeStep, null, - maxResults, - shardstate); + maxResults); } do { transactions = client.getTransactions(startTime, null, startTime + timeStep, - null, maxResults, shardstate); + null, maxResults); startTime += timeStep; // If no transactions are found, advance the time window to the next available transaction commit time @@ -768,7 +763,7 @@ public class MetadataTracker extends CoreStatePublisher implements Tracker LOGGER.info("{}-[CORE {}] Advancing transactions from {} to {}", Thread.currentThread().getId(), coreName, startTime, nextTxCommitTime); transactions = client.getTransactions(nextTxCommitTime, null, - nextTxCommitTime + timeStep, null, maxResults, shardstate); + nextTxCommitTime + timeStep, null, maxResults); } } diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/SlaveCoreStatePublisher.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/NodeStatePublisher.java similarity index 95% rename from search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/SlaveCoreStatePublisher.java rename to search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/NodeStatePublisher.java index b8c04634f..822106fe1 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/SlaveCoreStatePublisher.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/NodeStatePublisher.java @@ -58,9 +58,9 @@ import java.util.concurrent.Semaphore; * @author Andrea Gazzarini * @since 1.5 */ -public class SlaveCoreStatePublisher extends CoreStatePublisher +public class NodeStatePublisher extends AbstractShardInformationPublisher { - private static final Logger LOGGER = LoggerFactory.getLogger(SlaveCoreStatePublisher.class); + private static final Logger LOGGER = LoggerFactory.getLogger(NodeStatePublisher.class); // Share run and write locks across all SlaveCoreStatePublisher threads @@ -79,7 +79,7 @@ public class SlaveCoreStatePublisher extends CoreStatePublisher return RUN_LOCK_BY_CORE.get(coreName); } - public SlaveCoreStatePublisher( + public NodeStatePublisher( boolean isMaster, Properties coreProperties, SOLRAPIClient repositoryClient, @@ -87,7 +87,6 @@ public class SlaveCoreStatePublisher extends CoreStatePublisher SolrInformationServer informationServer) { super(isMaster, coreProperties, repositoryClient, name, informationServer, NODE_STATE_PUBLISHER); - RUN_LOCK_BY_CORE.put(coreName, new Semaphore(1, true)); WRITE_LOCK_BY_CORE.put(coreName, new Semaphore(1, true)); } @@ -114,12 +113,6 @@ public class SlaveCoreStatePublisher extends CoreStatePublisher // Do nothing here } - @Override - public boolean isOnMasterOrStandalone() - { - return false; - } - @Override public boolean hasMaintenance() { diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerIT.java index 227212ce2..33587101c 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/AlfrescoCoreAdminHandlerIT.java @@ -62,7 +62,7 @@ import org.alfresco.solr.tracker.DocRouter; import org.alfresco.solr.tracker.IndexHealthReport; import org.alfresco.solr.tracker.MetadataTracker; import org.alfresco.solr.tracker.PropertyRouter; -import org.alfresco.solr.tracker.SlaveCoreStatePublisher; +import org.alfresco.solr.tracker.NodeStatePublisher; import org.alfresco.solr.tracker.TrackerRegistry; import org.apache.solr.common.SolrException; import org.apache.solr.common.params.CoreAdminParams; @@ -232,12 +232,12 @@ public class AlfrescoCoreAdminHandlerIT @Test public void coreIsSlave_thenCoreStatePublisherInstanceCorrespondsToSlaveCoreStatePublisher() { - SlaveCoreStatePublisher coreStatePublisher = mock(SlaveCoreStatePublisher.class); + NodeStatePublisher coreStateTracker = mock(NodeStatePublisher.class); when(trackerRegistry.getTrackerForCore(anyString(), eq(MetadataTracker.class))).thenReturn(null); - when(trackerRegistry.getTrackerForCore(anyString(), eq(SlaveCoreStatePublisher.class))).thenReturn(coreStatePublisher); + when(trackerRegistry.getTrackerForCore(anyString(), eq(NodeStatePublisher.class))).thenReturn(coreStateTracker); - assertSame(coreStatePublisher, alfrescoCoreAdminHandler.coreStatePublisher("ThisIsTheCoreName")); + assertSame(coreStateTracker, alfrescoCoreAdminHandler.coreStatePublisher("ThisIsTheCoreName")); } @Test diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/lifecycle/SolrCoreLoadListenerTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/lifecycle/SolrCoreLoadListenerTest.java index 9f4217478..bc46468dc 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/lifecycle/SolrCoreLoadListenerTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/lifecycle/SolrCoreLoadListenerTest.java @@ -33,6 +33,7 @@ import static org.alfresco.solr.tracker.Tracker.Type.ACL; import static org.alfresco.solr.tracker.Tracker.Type.CASCADE; import static org.alfresco.solr.tracker.Tracker.Type.CONTENT; import static org.alfresco.solr.tracker.Tracker.Type.METADATA; +import static org.alfresco.solr.tracker.Tracker.Type.NODE_STATE_PUBLISHER; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -126,7 +127,7 @@ public class SolrCoreLoadListenerTest verify(scheduler).schedule(any(CascadeTracker.class), eq(coreName), same(coreProperties)); Set trackerTypes = coreTrackers.stream().map(Tracker::getType).collect(Collectors.toSet()); - assertEquals("Unexpected trackers found.", Set.of(ACL, CONTENT, METADATA, CASCADE), trackerTypes); + assertEquals("Unexpected trackers found.", Set.of(ACL, CONTENT, METADATA, NODE_STATE_PUBLISHER, CASCADE), trackerTypes); } @Test @@ -147,7 +148,7 @@ public class SolrCoreLoadListenerTest verify(scheduler, never()).schedule(any(CascadeTracker.class), eq(coreName), same(coreProperties)); Set trackerTypes = coreTrackers.stream().map(Tracker::getType).collect(Collectors.toSet()); - assertEquals("Unexpected trackers found.", Set.of(ACL, CONTENT, METADATA), trackerTypes); + assertEquals("Unexpected trackers found.", Set.of(ACL, CONTENT, METADATA, NODE_STATE_PUBLISHER), trackerTypes); } @Test diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedCascadeTrackerIT.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedCascadeTrackerIT.java index ad9ba2474..c572dd368 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedCascadeTrackerIT.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/DistributedCascadeTrackerIT.java @@ -138,6 +138,7 @@ public class DistributedCascadeTrackerIT extends AbstractAlfrescoDistributedIT indexParentFolderWithCascade(); waitForDocCount(params("qt", "/afts", "q", "PATH:" + cascadingFirstChild), 1, INDEX_TIMEOUT); + waitForDocCount(params("qt", "/afts", "q", "PATH:" + cascadingSecondChild), 1, INDEX_TIMEOUT); // Check if the path is updated for both the nodes assertShardCount(0, params("qt", "/afts", "q", "PATH:" + cascadingFirstChild), 1); diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/MetadataTrackerTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/MetadataTrackerTest.java index 2a7e1ec79..163e30bad 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/MetadataTrackerTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/MetadataTrackerTest.java @@ -81,7 +81,7 @@ public class MetadataTrackerTest doReturn("workspace://SpacesStore").when(props).getProperty("alfresco.stores"); when(srv.getTrackerStats()).thenReturn(trackerStats); String coreName = "theCoreName"; - this.metadataTracker = spy(new MetadataTracker(true, props, repositoryClient, coreName, srv)); + this.metadataTracker = spy(new MetadataTracker(props, repositoryClient, coreName, srv)); ModelTracker modelTracker = mock(ModelTracker.class); when(modelTracker.hasModels()).thenReturn(true); diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/SolrTrackerSchedulerTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/SolrTrackerSchedulerTest.java index bd276d116..9aa8ab969 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/SolrTrackerSchedulerTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/tracker/SolrTrackerSchedulerTest.java @@ -133,7 +133,7 @@ public class SolrTrackerSchedulerTest { String exp = "0/4 * * * * ? *"; props.put("alfresco.metadata.tracker.cron", exp); - MetadataTracker metadataTracker = new MetadataTracker(true, props, client, exp, informationServer); + MetadataTracker metadataTracker = new MetadataTracker(props, client, exp, informationServer); this.trackerScheduler.schedule(metadataTracker, CORE_NAME, props); verify(spiedQuartzScheduler).scheduleJob(any(JobDetail.class), any(Trigger.class)); checkCronExpression(exp); diff --git a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClient.java b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClient.java index 5d7247d38..233905369 100644 --- a/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClient.java +++ b/search-services/alfresco-solrclient-lib/src/main/java/org/alfresco/solr/client/SOLRAPIClient.java @@ -346,10 +346,12 @@ public class SOLRAPIClient } } - public Transactions getTransactions(Long fromCommitTime, Long minTxnId, Long toCommitTime, Long maxTxnId, int maxResults, ShardState shardState) throws AuthenticationException, IOException, JSONException, EncoderException + public Transactions getTransactions(Long fromCommitTime, Long minTxnId, Long toCommitTime, + Long maxTxnId, int maxResults, ShardState shardState) + throws AuthenticationException, IOException, JSONException, EncoderException { URLCodec encoder = new URLCodec(); - + StringBuilder url = new StringBuilder(GET_TRANSACTIONS_URL); StringBuilder args = new StringBuilder(); if (fromCommitTime != null) @@ -379,7 +381,7 @@ public class SOLRAPIClient args.append(encoder.encode("baseUrl")).append("=").append(encoder.encode(shardState.getShardInstance().getBaseUrl())); args.append("&").append(encoder.encode("hostName")).append("=").append(encoder.encode(shardState.getShardInstance().getHostName())); args.append("&").append(encoder.encode("template")).append("=").append(encoder.encode(shardState.getShardInstance().getShard().getFloc().getTemplate())); - + for(String key : shardState.getShardInstance().getShard().getFloc().getPropertyBag().keySet()) { String value = shardState.getShardInstance().getShard().getFloc().getPropertyBag().get(key); @@ -388,7 +390,7 @@ public class SOLRAPIClient args.append("&").append(encoder.encode("floc.property."+key)).append("=").append(encoder.encode(value)); } } - + for(String key : shardState.getPropertyBag().keySet()) { String value = shardState.getPropertyBag().get(key); @@ -397,7 +399,7 @@ public class SOLRAPIClient args.append("&").append(encoder.encode("state.property."+key)).append("=").append(encoder.encode(value)); } } - + args.append("&").append(encoder.encode("instance")).append("=").append(encoder.encode("" + shardState.getShardInstance().getShard().getInstance())); args.append("&").append(encoder.encode("numberOfShards")).append("=").append(encoder.encode("" + shardState.getShardInstance().getShard().getFloc().getNumberOfShards())); args.append("&").append(encoder.encode("port")).append("=").append(encoder.encode("" + shardState.getShardInstance().getPort())); @@ -413,13 +415,13 @@ public class SOLRAPIClient args.append("&").append(encoder.encode("isMaster")).append("=").append(encoder.encode("" + shardState.isMaster())); args.append("&").append(encoder.encode("hasContent")).append("=").append(encoder.encode("" + shardState.getShardInstance().getShard().getFloc().hasContent())); args.append("&").append(encoder.encode("shardMethod")).append("=").append(encoder.encode(shardState.getShardInstance().getShard().getFloc().getShardMethod().toString())); - + args.append("&").append(encoder.encode("lastUpdated")).append("=").append(encoder.encode("" + shardState.getLastUpdated())); args.append("&").append(encoder.encode("lastIndexedChangeSetCommitTime")).append("=").append(encoder.encode("" + shardState.getLastIndexedChangeSetCommitTime())); args.append("&").append(encoder.encode("lastIndexedChangeSetId")).append("=").append(encoder.encode("" + shardState.getLastIndexedChangeSetId())); args.append("&").append(encoder.encode("lastIndexedTxCommitTime")).append("=").append(encoder.encode("" + shardState.getLastIndexedTxCommitTime())); args.append("&").append(encoder.encode("lastIndexedTxId")).append("=").append(encoder.encode("" + shardState.getLastIndexedTxId())); - + } url.append(args); From 78a801fea7f5e5688722b4f1d67803f8b3c39acc Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Mon, 15 Jun 2020 11:04:57 +0200 Subject: [PATCH 42/65] SEARCH-2118: Removing OpenSSL program from SS/IE Docker Images. --- search-services/packaging/src/docker/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/search-services/packaging/src/docker/Dockerfile b/search-services/packaging/src/docker/Dockerfile index 453f1fcc8..7fe9249f7 100644 --- a/search-services/packaging/src/docker/Dockerfile +++ b/search-services/packaging/src/docker/Dockerfile @@ -6,7 +6,6 @@ LABEL creator="Gethin James" maintainer="Alfresco Search Services Team" ENV DIST_DIR /opt/alfresco-search-services ENV SOLR_ZIP ${project.build.finalName}.zip ENV LANG C.UTF-8 -ENV OPENSSL_VERSION 1.0.2k-8.el7 ARG USERNAME=solr ARG USERID=33007 @@ -26,7 +25,7 @@ RUN set -x \ "${USERNAME}" \ && yum update -y \ && yum install -y unzip \ - && yum install -y lsof ca-certificates openssl-$OPENSSL_VERSION \ + && yum install -y lsof ca-certificates \ && yum install -y wget \ && yum clean all \ && unzip "$SOLR_ZIP" -d /opt/ && rm "$SOLR_ZIP" \ From 07cc6af3f33e0eec38c526d93fc005633dc5f3a3 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Mon, 15 Jun 2020 16:21:53 +0200 Subject: [PATCH 43/65] SEARCH-2296: Add new "_unit_of_time_quarter" date part field. --- .../java/org/alfresco/solr/AlfrescoSolrDataModel.java | 7 +++++++ .../java/org/alfresco/solr/SolrInformationServer.java | 8 +++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java index 97f50d702..70ceb8f5a 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/AlfrescoSolrDataModel.java @@ -121,6 +121,7 @@ import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_HOUR_FIELD_SU import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_MINUTE_FIELD_SUFFIX; import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_MONTH_FIELD_SUFFIX; import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_SECOND_FIELD_SUFFIX; +import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_QUARTER_FIELD_SUFFIX; import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_YEAR_FIELD_SUFFIX; /** @@ -171,6 +172,7 @@ public class AlfrescoSolrDataModel implements QueryConstants UNIT_OF_TIME_HOUR, UNIT_OF_TIME_DAY, UNIT_OF_TIME_MONTH, + UNIT_OF_TIME_QUARTER, UNIT_OF_TIME_YEAR } @@ -179,6 +181,7 @@ public class AlfrescoSolrDataModel implements QueryConstants static final String PART_FIELDNAME_PREFIX = "part@sd@"; static final Set DATE_PART_SUFFIXES = Set.of(UNIT_OF_TIME_YEAR_FIELD_SUFFIX, + UNIT_OF_TIME_QUARTER_FIELD_SUFFIX, UNIT_OF_TIME_MONTH_FIELD_SUFFIX, UNIT_OF_TIME_DAY_FIELD_SUFFIX, UNIT_OF_TIME_HOUR_FIELD_SUFFIX, @@ -1132,6 +1135,8 @@ public class AlfrescoSolrDataModel implements QueryConstants return UNIT_OF_TIME_DAY_FIELD_SUFFIX; case UNIT_OF_TIME_MONTH: return UNIT_OF_TIME_MONTH_FIELD_SUFFIX; + case UNIT_OF_TIME_QUARTER: + return UNIT_OF_TIME_QUARTER_FIELD_SUFFIX; case UNIT_OF_TIME_YEAR: return UNIT_OF_TIME_YEAR_FIELD_SUFFIX; default: @@ -1792,6 +1797,8 @@ public class AlfrescoSolrDataModel implements QueryConstants return SpecializedFieldType.UNIT_OF_TIME_DAY; case UNIT_OF_TIME_MONTH_FIELD_SUFFIX: return SpecializedFieldType.UNIT_OF_TIME_MONTH; + case UNIT_OF_TIME_QUARTER_FIELD_SUFFIX: + return SpecializedFieldType.UNIT_OF_TIME_QUARTER; case UNIT_OF_TIME_YEAR_FIELD_SUFFIX: return SpecializedFieldType.UNIT_OF_TIME_YEAR; case FIELD_TRANSFORMATION_STATUS_SUFFIX: diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java index 9c8aa0e78..561200331 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java @@ -95,6 +95,7 @@ import java.nio.charset.StandardCharsets; import java.text.DecimalFormat; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import java.time.temporal.IsoFields; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -381,6 +382,7 @@ public class SolrInformationServer implements InformationServer private static final String UNIT_OF_TIME_FIELD_INFIX = "_unit_of_time"; public static final String UNIT_OF_TIME_YEAR_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_year"; + public static final String UNIT_OF_TIME_QUARTER_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_quarter"; public static final String UNIT_OF_TIME_MONTH_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_month"; public static final String UNIT_OF_TIME_DAY_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_day"; public static final String UNIT_OF_TIME_HOUR_FIELD_SUFFIX = UNIT_OF_TIME_FIELD_INFIX + "_hour"; @@ -2264,7 +2266,8 @@ public class SolrInformationServer implements InformationServer .stream() .filter(field -> field.getField().startsWith("text@sd___@")) .forEach(field -> addStringProperty(valueHolder, field, value, locale)); - } else + } + else { dataModel.getIndexedFieldNamesForProperty(propertyQName).getFields() .forEach(field -> { @@ -3806,6 +3809,7 @@ public class SolrInformationServer implements InformationServer * *
    *
  • YEAR
  • + *
  • QUARTER (1-4)
  • *
  • MONTH (1-12)
  • *
  • DAY (OF THE MONTH)
  • *
@@ -3828,7 +3832,9 @@ public class SolrInformationServer implements InformationServer { String fieldNamePrefix = dataModel.destructuredDateTimePartFieldNamePrefix(sourceFieldName); ZonedDateTime dateTime = ZonedDateTime.parse(value, DateTimeFormatter.ISO_ZONED_DATE_TIME); + consumer.accept(fieldNamePrefix + UNIT_OF_TIME_YEAR_FIELD_SUFFIX, dateTime.getYear()); + consumer.accept(fieldNamePrefix + UNIT_OF_TIME_QUARTER_FIELD_SUFFIX, dateTime.get(IsoFields.QUARTER_OF_YEAR)); consumer.accept(fieldNamePrefix + UNIT_OF_TIME_MONTH_FIELD_SUFFIX, dateTime.getMonth().getValue()); consumer.accept(fieldNamePrefix + UNIT_OF_TIME_DAY_FIELD_SUFFIX, dateTime.getDayOfMonth()); From dc494362eacb281253ececc2840efc22b94dff76 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Mon, 15 Jun 2020 16:22:24 +0200 Subject: [PATCH 44/65] SEARCH-2296: Testing for the new "_unit_of_time_quarter" date part field. --- .../java/org/alfresco/solr/SolrInformationServerTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrInformationServerTest.java b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrInformationServerTest.java index 2ee5c6cf7..6f9480da0 100644 --- a/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrInformationServerTest.java +++ b/search-services/alfresco-search/src/test/java/org/alfresco/solr/SolrInformationServerTest.java @@ -72,6 +72,7 @@ import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_HOUR_FIELD_SU import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_MINUTE_FIELD_SUFFIX; import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_MONTH_FIELD_SUFFIX; import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_SECOND_FIELD_SUFFIX; +import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_QUARTER_FIELD_SUFFIX; import static org.alfresco.solr.SolrInformationServer.UNIT_OF_TIME_YEAR_FIELD_SUFFIX; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -168,6 +169,8 @@ public class SolrInformationServerTest assertEquals(1972, unitOfTimeFieldValue(document, AlfrescoSolrDataModel.PART_FIELDNAME_PREFIX + fieldSuffix + UNIT_OF_TIME_YEAR_FIELD_SUFFIX)); + assertEquals(3, + unitOfTimeFieldValue(document, AlfrescoSolrDataModel.PART_FIELDNAME_PREFIX + fieldSuffix + UNIT_OF_TIME_QUARTER_FIELD_SUFFIX)); assertEquals(9, unitOfTimeFieldValue(document, AlfrescoSolrDataModel.PART_FIELDNAME_PREFIX + fieldSuffix + UNIT_OF_TIME_MONTH_FIELD_SUFFIX)); assertEquals(16, @@ -196,6 +199,8 @@ public class SolrInformationServerTest assertEquals(1972, unitOfTimeFieldValue(document, AlfrescoSolrDataModel.PART_FIELDNAME_PREFIX + fieldSuffix + UNIT_OF_TIME_YEAR_FIELD_SUFFIX)); + assertEquals(3, + unitOfTimeFieldValue(document, AlfrescoSolrDataModel.PART_FIELDNAME_PREFIX + fieldSuffix + UNIT_OF_TIME_QUARTER_FIELD_SUFFIX)); assertEquals(9, unitOfTimeFieldValue(document, AlfrescoSolrDataModel.PART_FIELDNAME_PREFIX + fieldSuffix + UNIT_OF_TIME_MONTH_FIELD_SUFFIX)); assertEquals(16, From ab27acbecb1a83af4f607a2226508003ce58648f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2020 21:12:41 +0000 Subject: [PATCH 45/65] Bump utility from 3.0.20 to 3.0.21 in /e2e-test Bumps [utility](https://github.com/Alfresco/alfresco-tas-utility) from 3.0.20 to 3.0.21. - [Release notes](https://github.com/Alfresco/alfresco-tas-utility/releases) - [Changelog](https://github.com/Alfresco/alfresco-tas-utility/blob/master/docs/CHANGELOG.md) - [Commits](https://github.com/Alfresco/alfresco-tas-utility/compare/utility-3.0.20...utility-3.0.21) Signed-off-by: dependabot-preview[bot] --- e2e-test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index 589ffa7a5..e6f71d099 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -12,7 +12,7 @@ 1.42 1.13 - 3.0.20 + 3.0.21 3.3.0.1 src/test/resources/SearchSuite.xml From c3641bf91b1dabe41f3db3fdc2d6a8bc7a5328b6 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Tue, 16 Jun 2020 10:35:18 +0200 Subject: [PATCH 46/65] SEARCH-2296: Bump alfresco-data-model version --- search-services/alfresco-solrclient-lib/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/search-services/alfresco-solrclient-lib/pom.xml b/search-services/alfresco-solrclient-lib/pom.xml index 38d2d0576..be8043b36 100644 --- a/search-services/alfresco-solrclient-lib/pom.xml +++ b/search-services/alfresco-solrclient-lib/pom.xml @@ -22,7 +22,7 @@ - 8.119 + 8.123 2.10.3 From 8dc8dbf01079101cd5eba357323e39accceb2a5d Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Tue, 16 Jun 2020 12:11:58 +0200 Subject: [PATCH 47/65] Bump Spring Libraries version for notice.txt --- .../src/main/resources/licenses/notice.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/search-services/packaging/src/main/resources/licenses/notice.txt b/search-services/packaging/src/main/resources/licenses/notice.txt index a76b0032d..12ee0c11c 100644 --- a/search-services/packaging/src/main/resources/licenses/notice.txt +++ b/search-services/packaging/src/main/resources/licenses/notice.txt @@ -59,14 +59,14 @@ jackson-core-2.10.3.jar https://github.com/FasterXML/jackson jackson-annotations-2.10.3.jar https://github.com/FasterXML/jackson jackson-databind-2.10.3.jar https://github.com/FasterXML/jackson commons-httpclient-3.1-HTTPCLIENT-1265.jar http://jakarta.apache.org/commons/ -spring-aop-5.2.6.RELEASE.jar http://projects.spring.io/spring-framework/ -spring-beans-5.2.6.RELEASE.jar http://projects.spring.io/spring-framework/ -spring-context-5.2.6.RELEASE.jar http://projects.spring.io/spring-framework/ -spring-core-5.2.6.RELEASE.jar http://projects.spring.io/spring-framework/ -spring-expression-5.2.6.RELEASE.jar http://projects.spring.io/spring-framework/ -spring-jdbc-5.2.6.RELEASE.jar http://projects.spring.io/spring-framework/ -spring-orm-5.2.6.RELEASE.jar http://projects.spring.io/spring-framework/ -spring-tx-5.2.6.RELEASE.jar http://projects.spring.io/spring-framework/ +spring-aop-5.2.7.RELEASE.jar http://projects.spring.io/spring-framework/ +spring-beans-5.2.7.RELEASE.jar http://projects.spring.io/spring-framework/ +spring-context-5.2.7.RELEASE.jar http://projects.spring.io/spring-framework/ +spring-core-5.2.7.RELEASE.jar http://projects.spring.io/spring-framework/ +spring-expression-5.2.7.RELEASE.jar http://projects.spring.io/spring-framework/ +spring-jdbc-5.2.7.RELEASE.jar http://projects.spring.io/spring-framework/ +spring-orm-5.2.7.RELEASE.jar http://projects.spring.io/spring-framework/ +spring-tx-5.2.7.RELEASE.jar http://projects.spring.io/spring-framework/ xercesImpl-2.12.0-alfresco-patched-20191004.jar http://xerces.apache.org/xerces2-j guessencoding-1.4.jar http://docs.codehaus.org/display/GUESSENC/ xml-apis-1.4.01.jar https://github.com/FasterXML/jackson From 41fba16dae163bf2f2e72bfba97e1aa46321c5b0 Mon Sep 17 00:00:00 2001 From: Andrea Gazzarini Date: Wed, 17 Jun 2020 08:11:30 +0100 Subject: [PATCH 48/65] [ SEARCH-2303 ] Turn off / reset the tracker state silently --- .../solr/tracker/AbstractTracker.java | 34 ++++++++++++++++--- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java index 85f3299a1..f671c84eb 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java @@ -32,6 +32,7 @@ import java.net.ConnectException; import java.net.SocketTimeoutException; import java.util.Properties; import java.util.concurrent.Semaphore; +import java.util.function.Consumer; import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.solr.IndexTrackingShutdownException; @@ -231,15 +232,38 @@ public abstract class AbstractTracker implements Tracker finally { infoSrv.unregisterTrackerThread(); - ofNullable(state).ifPresent(tstate -> { - // During a rollback state is set to null. - state.setRunning(false); - state.setCheck(false); - }); + + ofNullable(state).ifPresent(this::turnOff); + getRunLock().release(); } } + /** + * At the end of the tracking method, the {@link TrackerState} should be turned off. + * However, during a rollback (that could be started by another tracker) the {@link TrackerState} instance + * could be set to null, even after passing a null check we could get a NPE. + * For that reason, this method turns off the tracker state and ignore any {@link NullPointerException} (actually + * any exception) that could be thrown. + */ + private void turnOff(TrackerState state) { + try + { + state.setRunning(false); + } catch (Exception ignore) + { + // Nothing to be done here. + } + + try + { + state.setCheck(false); + } catch (Exception ignore) + { + // Nothing to be done here. + } + } + public boolean getRollback() { return this.rollback; From 70a9570e1d1fd4ffc305e48bb5c1af435674ef04 Mon Sep 17 00:00:00 2001 From: Andrea Gazzarini Date: Wed, 17 Jun 2020 15:50:08 +0100 Subject: [PATCH 49/65] Merge branches 'fix/SEARCH-2303_npe_on_tracker_state' and 'master' of https://git.alfresco.com/search_discovery/insightengine into fix/SEARCH-2303_npe_on_tracker_state  Conflicts:  search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java --- .../alfresco/solr/tracker/AbstractTracker.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java index f671c84eb..8f2d36cd1 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java @@ -225,9 +225,10 @@ public abstract class AbstractTracker implements Tracker } } } - catch (InterruptedException e) + catch (Exception exception) { - LOGGER.error("[{} / {} / {}] Semaphore interruption. See the stacktrace below for further details.", coreName, trackerId, iterationId, e); + LOGGER.error("[{} / {} / {}] Some problem was detected while resetting the Tracker State. See the stracktrace below for further details." + , coreName, trackerId, iterationId, exception); } finally { @@ -250,17 +251,10 @@ public abstract class AbstractTracker implements Tracker try { state.setRunning(false); - } catch (Exception ignore) - { - // Nothing to be done here. - } - - try - { state.setCheck(false); - } catch (Exception ignore) + } catch (Exception exception) { - // Nothing to be done here. + LOGGER.error("Unable to properly turn off the TrackerState instance. See the stacktrace below for further details.", exception); } } From da6566b4a8aa577cf6ab1166498315b2d8268a6b Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Thu, 18 Jun 2020 12:43:52 +0200 Subject: [PATCH 50/65] SEARCH-1915: Hide Java Environment values from external process like 'ps' When using the JAVA_TOOL_OPTIONS environment variable, values are not passed as arguments to the Java Process --- .../generators/app/index.js | 3 +- .../app/templates/images/search/Dockerfile | 2 + .../7.x/zeppelin/ssl-repo-client.keystore | Bin 0 -> 3298 bytes .../7.x/zeppelin/ssl-repo-client.truststore | Bin 0 -> 2883 bytes .../7.x/zeppelin/ssl.repo.client.keystore | Bin 3265 -> 0 bytes .../7.x/zeppelin/ssl.repo.client.truststore | Bin 2850 -> 0 bytes .../generators/app/templates/latest/.env | 2 +- .../templates/latest/docker-compose-ee.yml | 67 ++++++++++-------- 8 files changed, 42 insertions(+), 32 deletions(-) create mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl-repo-client.keystore create mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl-repo-client.truststore delete mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl.repo.client.keystore delete mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl.repo.client.truststore diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/index.js b/e2e-test/generator-alfresco-docker-compose/generators/app/index.js index a53d3d5c0..568bcffbd 100644 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/index.js +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/index.js @@ -295,7 +295,8 @@ module.exports = class extends Generator { // Add resources for SSL configuration if (this.props.httpMode == 'https') { - var subfolder = this.props.acsVersion == 'latest' ? '7.x' : '6.x' + // Currently Community 'latest' only supports OLD keystores and trustores format + var subfolder = (this.props.acsVersion == 'latest' && this.props.alfrescoVersion == 'enterprise') ? '7.x' : '6.x' this.fs.copy( this.templatePath('keystores/' + subfolder + '/alfresco'), this.destinationPath('keystores/alfresco') diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile index 6c13bf1ed..cac554a1c 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile @@ -41,8 +41,10 @@ RUN if [ "$ALFRESCO_COMMS" == "https" ] ; then \ if [ "$PASSWORDS_AS_ENV_VARS" == "true" ]; then \ sed -i '/^bash.*/i \ sed -i "'"s/alfresco.encryption.ssl.keystore.location=.*/alfresco.encryption.ssl.keystore.location=\\\/opt\\\/<%=searchPath%>\\\/keystore\\\/ssl-repo-client.keystore/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ + sed -i "'"s/alfresco.encryption.ssl.keystore.passwordFileLocation=.*/alfresco.encryption.ssl.keystore.passwordFileLocation=/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ sed -i "'"s/alfresco.encryption.ssl.keystore.type=.*/alfresco.encryption.ssl.keystore.type=${KEYSTORE_TYPE}/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ sed -i "'"s/alfresco.encryption.ssl.truststore.location=.*/alfresco.encryption.ssl.truststore.location=\\\/opt\\\/<%=searchPath%>\\\/keystore\\\/ssl-repo-client.truststore/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ + sed -i "'"s/alfresco.encryption.ssl.truststore.passwordFileLocation=.*/alfresco.encryption.ssl.truststore.passwordFileLocation=/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties && \ sed -i "'"s/alfresco.encryption.ssl.truststore.type=.*/alfresco.encryption.ssl.truststore.type=${TRUSTSTORE_TYPE}/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties' \ ${DIST_DIR}/solr/bin/search_config_setup.sh; \ else \ diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl-repo-client.keystore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl-repo-client.keystore new file mode 100644 index 0000000000000000000000000000000000000000..f1474dd04f3cbe8fed7fe9e6f68daf658e75e181 GIT binary patch literal 3298 zcmeH}do+~$8pr3I8^g>nrbfhZOWPs#J4P;vjoBp`F2t(2z;g{ba zH~-@^0}v1xHyHwQ&qKLf$V{kd{d1>|h8byta^m+ev9HFj{E8K+K(&`FpINjDmD^m+ zx48cxy)-jx;WyG8%??-GmL{2XyD(aRil$7DRJgzTB1xSf<(81i#vonii*7I1cR7dt zv@(fDC^c+hP-Qz^4G6!~HJ8*p_o{7e!C)!a9;sQ&f5rY2Rgn)6xKJ1X0g609kL{+& zW8nn&4wUHA`z?2#yu4xG_)SiFqW!AY@ljAg&;WTA_%4tT^Z5d_umBH7fG_~q+U}sd zgy0Dd7hI+Ij}Jg_X<&jsk7->ggQ1($Onx4k3?7`!ew`>1P9p@g8aB6H(sbzaKaO9B z@P8y~aHXTnBL`HYU*8)ZAEDxIQnS`lFgzO z?hjCXF4f?7B~A-YnSnTN0m;9Q=vG*ZpC4jntIDpG52v{{RlNZd1d;$C5^Oe8lf?)Y z$bsq02;>NIAujE0V*)Ld3Up8i${|r2NB|C~L-7D80T*3&pVRLQ)Xjs!U>FlP4;o_( zfWzTGsMwJ;$;H-a%l&nx2XfsElbmrEBNA#{u?2%!=0B$PR#98D-5tb{+`=H^bI!&E znL}FAeRra&v!gWX59LKu>aYiTtIhJ%L!1&a%!B*vUf|FAMi$Mb+O9A!+B9_Kcww(K z@UoeSmNsMGCLiQwWV)z?cTAeK4)*fHY)?n+nm^8j{%{iYMtLNriGN|CBuM?x!oyhU`_!Ep?NLTU1{kB<~rP z^ot;m`dN*6dncJ05Rc$D?Q1vkI@}ya<|7WaJlv-}@$=Hm8De`J;@f9phljN9N` z@BM?1VeNSfvwm(%Ut3HPD_0ARJWH|}(&@DmS6zqpnI^AQP*wZF>c;yLzY6O~U%zqt z3IFX>_0fbVf08r>lA5aUb=%473Es)8=BjQD-qvzA^gCgjR);*BmmR{y-BYP8T?gyz zM=j1@R(V>C44Bzxs6bCNYD}J8rBCIh8I8ZfE68rtP~7hB7+FpnP|Hl&TB45bT$3Jb zt9S6;gSE^A(ERBE&nA_aIvmbD1%n+wAdy02_RmS$=``CvdpSCfrWH0{5UVDM1zIHiPRB4n^ZgwfFq%0p6W|pFNIUsB6iAKN*({WPjLUZ1fi(b-l zu0{K`l9R_8?|2ig?j|>wQ66rS{XM{80(iqF1dH+x;80266Xkt*8vZw~wFS5)3308v zjcaXJF!H^He8x}y2kTG=)!tc$(x=v8Cy+hcmlMQ_R3vYUAN(^=_no_CHiO|k%BVCX z4fHmq_#s_v4R%*XC+##!I(zDAR{QVknTrk8y$=Sf__k#bkqS@eS*y2;3X(;4U-ETj zA`#a^UV+NF#?BhnucHS-(#hpZ|YjwMOc zt43~1tcBe~Z1VbbT;7422e3dM5V&o)0@y-9h`?b{p7BS3_*F9i5W*H|0+Rld!oc?u z_Sgh70`2W7isp^*ZoJk#2Kfyo`LU9>*8^z zZ+YTr?jV={&H%WzAoteiE#NBmY%!Pn#cvqz^J9x}rug7UhyoBVj8)-iPz)(5Ks*8= z0t3Ju!Xyrk0mXSJW)O|a^a)~fK9P{ny!PMIsMLxL8TL6q79ZbQMqPjG+mvx8*_w zuJUr(-Yg=q5mxq-ayp@=X?VFu#K!Q%L_AI>FYpA#3HyqcG~LZC+rYv7H-3?j`D9f#yiwCM`2_QILf6({|3{#rV#)D literal 0 HcmV?d00001 diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl-repo-client.truststore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl-repo-client.truststore new file mode 100644 index 0000000000000000000000000000000000000000..c09e6891a0e5e89969690e53b91828140b6e4e16 GIT binary patch literal 2883 zcmX?i?%X*B1_mY|W(L#z#l<Q3<2haEeAeR-9cuwd2Z1mWaZgT{TpV3bv6 zY20SexVb@uljHuOBU|si*$}+Pe)i<9;2(P7cNaFcENN^U@D$c0lBBSW|F>81_op1c zcFAfPPq7Jz3<4)oS$;;w|DZr(U0@&#@{cMDj{z4Ohc+7{D=RxQqk#xWP>_Y!fV+t^ zCqFqcCnLYO1UXRvvk)^dHJBdIUZdAscss+&nfuZIubk^{WbU21_3y4bjHkaGHrsbW z<3-rCVuq9UmlbDm1?_*_{dIvN+s^;Zm25c|jxau)82HTf1xI^Uit%~Flg9u2eFfLd zT%k6@&~Oj)ii=8<#WwD}{q;P%zjgHEHbIkldC@*$d>@m$U!2QX@kfv)`_DCgNknmw z2+fqb$%&BS;AkqmIAD5h(8L5R5|{!Y#R2w!8QcYgA+Ufj0TmF&-~z%hYQWPM-eTf) zspGDfVJCOL7Pnk!xPzHX{n6Y9eC(?@Pb~df|H-#h=I@XBo`()kUN(KkhbPAGl7j@7 z9GfUGW6Ppii|5HoDV6eve!S||5)+E)m|o1w7WIDdman_cM3i3q{!Exvarb{-&K06j zmSWd-?q9m`Wzx2zM|k;s_|6Nx^*-12k1V+Twzc5T-R6lWt*aZ)1n&7Cx5vbg zVe07vZlO}MuI8$~6xy9Nw^fhD=QTsHP^(5z%15difhoU;x>cjHfg&)Dfz`AW z?y3=QV!zwGb=6l&=8Y(r!_AZ!qSNZe9#k*#h zOIxhF9VhO&ZrX0oACDMR_^%rm?N+l+F3eiwBYe=RT&``gbH?W@ehe*#msKonm^p97 zzVBH-961gJ&uVONi1tzWP~Ojc?(ChbGK^-&zJ+|rb1FT2nT~a$ulmf^jBSeE(^5-! z7{5QmDO6;tIa(*eo0XtC(e*vUoi%=OX>5g0_qwq!40G0By<~THd4){sKJJrKHd?az zL{zNY$?h>Hutu;=nB$YHQB?iH!WrSGciuIOT`~7jz_idbjTQg?c}?a|JJ0B$b?oc| z1|D|P(uP;T{dNCpci7rlIJ`CV^vs)aM6kI$H#_g%fxITZ3+I#1@n~LQS^4{?#e~B$ UK6_e{>&hArKW8|-kn?aG0D2FY!vFvP literal 0 HcmV?d00001 diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl.repo.client.keystore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl.repo.client.keystore deleted file mode 100644 index b0dc4ef08f20f8e319befa4f5c61f3599c135152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3265 zcmX?i?%X*B1_mZL=1$B>D@rX+&euy$WME*-o*|~4%)lCpt}rciG~ zVFN*s3_A~(Z(?RjYFfhHvk{{Irtt#G+IMpOO?kLjeOmkOFQV z_RzfSy!`S!Lums^kO(u6kaKBqNq(*ZT&J_6ft)z6p{0SDk-33|v4yc&lsK<3h-(Dp z4!i>!=Oc$1BP#=QV=se2V<%H%Bf~c907es!s9w(ED5hD6m0FYjA7-%jzSU)dzBzY`yP;d)~*FL}r8IN1|DK6@?nyqiD1EM5Ek{%Of4 zDN_v7_lqn}e#Xkhkrnau?d6%z1LX|grA&U=WmBQFhf9ZtqovGKsPtX->y=w>xtzZG zkcpX*fpKwyK^!cW=6*U;24zU2eMdLfa#|VIRJo(h8gJdV4IBQNoz|#J~+Hud}FghHkZ)3 z#*Ze2(^kLD6F={|C0X$CIT`D&w=--{h6wwf=9rsu)xSIF@lNgMq0`>@N;cT5wU?)C zYCkFzw{U^yLiWEqYyuMRTYf*fG+?LQ|78y~(^F0uCe7Gz=;y3uaue6<*~HjRN=bf` zeMot)(HpKSyUs-b^8q6Re{pe+UQucRFc0KprskDE@`2_)Uh*%(Bm?*~;bK%GGVYXOm`s z7YaUeVe)$}OVO?KL!Xvx+W&sNhSA(pwceLs9+ToXobok3N&mds+_@jNd_TOrVV6VT zdFji?Y7V!44hfKn(KA}VXr*g(WPa#uj*Im@k{@5@wcXFU{9R2xKqDq#!u~TB@u^&w z*4|A>@6Yp|?cZ#_OR&tlxh~~ymwhZl?A|$Fu18*b(a`OD%c*OF#arWjW%W;INlsPC zw7IkYaQQ*0SNED0M=#S;I3&A2B41`JYmMH<>7QlW?z#Vbw>n9`r!}v0A@jot(#yWR zShvjZfJ8=*-0DWP>C)RmbndB?N*q+lxXX}WxvcP?NQ2(AYr@rf+m~L^O$nZBskwyB zf4#tyck@b)H{NM4n>;0=>&1FChPQW{AJ$ofZGE)b_Xkt{MD>3iX3_WGa_;%GssC`? zcFl-wvEt3o7PEgj+;D+?;yi!ZnJ%Sbu0JxR1=j5?KE*S^r$6Jvd$uP_`{sZ2(ddp% z6YZb!PS?O8vF6t52cHy+vi$bET)9x(@5#K(rT>rJov~zZU~z6{IPcQ-;yN~M-~Fpw zmxpmgO$b-^-4wfR-Qw*&-XB~-i-HWQPHZTS>WH%4dZtBmoBc)~{r($G1%Y!!IhgJg zRfi-<{BK@7mot7?sb#i&#y9TxqI1KE~rpqdGfVa8~4n5?){m=?oz;>Wn~*b z{f-Sdc*k)nyUgYcw`k*}OPq!2Wt-NSgNt)msm%;5v6*iGu_L6^W)fgT%XtG|8e$gL zMxf%_1Xf&E!m1D~^$8hOhn9f`r0P&auR4N&*}gclB)_Oq!5N(S4e%Azt1le7%2E8X z>xO})zpma3%P`?vnZMQO08iEpE&3B#V!3&u8d}JZ~q5)_xMWGi@kSNWxehA z@1fbOx&zPMSH7GXE6K3ocr#nN#W~aEkb=62G2NhvF&SLp0t;Iv0|sCX%bC#T!Pxf0 ziIEXh*s?ho7$byuS=7W-{0ma^f`fe&+*9*XixNvxQxt+zi^@`q6r59wN;1e>|sjhi7AK;vqI#ueDBfQ5}MOBx#oJcTtOwN*e3 z33xTcy1+mf#8+kEG2mk30G8{ltnAE;1|lFqK^9&E?k3Kh{N%)(jQrvfw0r}qu`;f) zwA_DJ&ETVN>X6!y@!8eset5m={+if#%9UTw=jy0Tvu$Qj=UM-bW68-$MxSPXH(LI1 z{9ja4(np^KNnFsxgabe5dpRw}vR2`Wm0mgp< zIM{vWx*uby;@kV?V&2=8_EVOhcqevivFe;zqm45fv>x&0`O(JNKsC;;JZjwkwWCsp R^IlGP`#I&4U%Td=1_1Dfk68c! diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl.repo.client.truststore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl.repo.client.truststore deleted file mode 100644 index 2feb2d8270a13046c97c5fade08f3b3eaad25749..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2850 zcmX?i?%X*B1_mY|W(Lz7#l<;#MX3e(3=E9fGsM(87+53pObsl7@>dO-m@fjc)dFTF zMkXdE0R{tJHcqWJkGAi;jEvl@3eG0uz?^*hMkAY zH!(9MH7_GIF~v~cKo%s(#UtjJlU9^koSd%^oS#-wo>-Ks;8T*KXDDF62U5Vz!ycNK zotIypXDDqT2@+xE5ppgqF3HbTfa`R2G>{YLHMBG^Gcq@@Ft#u@ixTHG0&z{CT!SK* zo3J>L47Vs7C_>yKh3=LhUsBt#LURRxVVWi-Jppv860)8!YoV%48XYJOlb39 zZ2RHF$jHLN%*5tkV2lvrWlCa8J!kElMm&O;HF=Eh>+I2lf#^ILZ);btv3Ny_pwGX4jJ4C?{| zVUQM;Zk+06mv!J=&kxG=iO?*lmz)U6{AzpPnV;!_K@-y* zAa;dhex%SC{AGYKs0=WIl>q}@NZ~6Gwpj--ns`L@au!E1ZIk?eZU3@t-+#q93XUdi zC;CHQMB_-@5sBiZ}hrCTabh_}~lI8-sbtJ7&kpp6Kz}YoX`e{PAV!+VA&I zOFl`NVwk>PWO4E{RxXaLh^KEa&wL&zXZS8<^2;up3Z*?KbjOyTm3dq{JiUyWWmShWURa1&agchBJ6vbV{Xb-|L&m2JGGyO zPJ81k*#mp#->PdQM6Jt9mCHYPEA?3YBZ@8}PIv0V+2cX(dFF7YOHLnDc4>Zc)`G6Ui2bgaFu_LS! zWJL4JfR|JRE5S+FDD?tTkaB$+S3s+w_bd{s{W!V$%Q}cp!qeRbF z&E?-2GX0$N4Y?ju^_zN^4=hzrH>vuzdc(TwYBj6+x6gffZvDp7i(a!I+}3>kpZU7O zbJl&W>t<0h^Oah|6h3jz>x*0Zqg)xy;@*^F)BW&z)%`WG@02UQp3l`$nP%I}pw6@Y9mkTBlZ-yi{%*AV;l^1_*79Bd zW;d^Nd45?YHT$T*x)aalggR8G`ZTxRV=@o=7vsW~yFX*)>8Uz0O9G7l1aPqX%ymD; uQpLCT&BeU8EA6K&Kk-iN)?(E;vvh9q&lF|Oip`nJIy=km^B=8aOZ5TmUxfGo diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env index 405062f6a..05f939870 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env @@ -1,4 +1,4 @@ -ALFRESCO_TAG=latest +ALFRESCO_TAG=6.3.0-A10 ALFRESCO_CE_TAG=latest SHARE_TAG=latest POSTGRES_TAG=11.4 diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml index 5b3ebb509..e31850d90 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml @@ -15,6 +15,24 @@ services: COMPRESS_CONTENT: "<%=gzip%>" mem_limit: 1800m environment: + JAVA_TOOL_OPTIONS: " + -Dmetadata-keystore.password=mp6yc0UD9e + -Dmetadata-keystore.aliases=metadata + -Dmetadata-keystore.metadata.password=mp6yc0UD9e + -Dmetadata-keystore.metadata.algorithm=AES + <% if (httpMode == 'https') { %> + -Dencryption.keystore.type=pkcs12 + -Dencryption.cipherAlgorithm=AES/CBC/PKCS5Padding + -Dencryption.keyAlgorithm=AES + -Dssl-keystore.password=kT9X6oe68t + -Dssl-keystore.aliases=ssl-alfresco-ca,ssl-repo + -Dssl-keystore.ssl-alfresco-ca.password=kT9X6oe68t + -Dssl-keystore.ssl-repo.password=kT9X6oe68t + -Dssl-truststore.password=kT9X6oe68t + -Dssl-truststore.aliases=alfresco-ca,ssl-repo-client + -Dssl-truststore.alfresco-ca.password=kT9X6oe68t + -Dssl-truststore.ssl-repo-client.password=kT9X6oe68t <% } %> + " JAVA_OPTS: " -Ddb.driver=org.postgresql.Driver -Ddb.username=alfresco @@ -31,14 +49,6 @@ services: -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" -Ddeployment.method=DOCKER_COMPOSE - -Dmetadata-keystore.password=mp6yc0UD9e - -Dmetadata-keystore.aliases=metadata - -Dmetadata-keystore.metadata.password=mp6yc0UD9e - -Dmetadata-keystore.metadata.algorithm=AES <% if (httpMode == 'https') { %> - -Dencryption.keystore.type=pkcs12 - -Dencryption.cipherAlgorithm=AES/CBC/PKCS5Padding - -Dencryption.keyAlgorithm=AES <% } %> - -Dtransform.service.enabled=true -Dtransform.service.url=http://transform-router:8095 -Dsfs.url=http://shared-file-store:8099/ @@ -52,15 +62,6 @@ services: -Dcsrf.filter.enabled=false -Dalfresco.restApi.basicAuthScheme=true -Xms1500m -Xmx1500m - <% if (httpMode == 'https') { %> - -Dssl-keystore.password=kT9X6oe68t - -Dssl-keystore.aliases=ssl-alfresco-ca,ssl-repo - -Dssl-keystore.ssl-alfresco-ca.password=kT9X6oe68t - -Dssl-keystore.ssl-repo.password=kT9X6oe68t - -Dssl-truststore.password=kT9X6oe68t - -Dssl-truststore.aliases=alfresco-ca,ssl-repo-client - -Dssl-truststore.alfresco-ca.password=kT9X6oe68t - -Dssl-truststore.ssl-repo-client.password=kT9X6oe68t <% } %> " <% if (httpMode == 'https') { %> ports: - 8443:8443 @@ -115,9 +116,7 @@ services: SOLR_SSL_CLIENT_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.keystore" SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD: "kT9X6oe68t" SOLR_SSL_CLIENT_TRUST_STORE_TYPE: "JCEKS" <% } %> - SOLR_OPTS: " - -Dsolr.ssl.checkPeerName=false - -Dsolr.allow.unsafe.resourceloading=true + JAVA_TOOL_OPTIONS: " -Dssl-keystore.password=kT9X6oe68t -Dssl-keystore.aliases=ssl-alfresco-ca,ssl-repo-client -Dssl-keystore.ssl-alfresco-ca.password=kT9X6oe68t @@ -127,6 +126,10 @@ services: -Dssl-truststore.ssl-alfresco-ca.password=kT9X6oe68t -Dssl-truststore.ssl-repo.password=kT9X6oe68t -Dssl-truststore.ssl-repo-client.password=kT9X6oe68t + " + SOLR_OPTS: " + -Dsolr.ssl.checkPeerName=false + -Dsolr.allow.unsafe.resourceloading=true " <% } %> ports: - 8083:8983 <% if (httpMode == 'https') { %> @@ -183,9 +186,7 @@ services: SOLR_SSL_CLIENT_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.keystore" SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD: "kT9X6oe68t" SOLR_SSL_CLIENT_TRUST_STORE_TYPE: "JCEKS" <% } %> - SOLR_OPTS: " - -Dsolr.ssl.checkPeerName=false - -Dsolr.allow.unsafe.resourceloading=true + JAVA_TOOL_OPTIONS: " -Dssl-keystore.password=kT9X6oe68t -Dssl-keystore.aliases=ssl-alfresco-ca,ssl-repo-client -Dssl-keystore.ssl-alfresco-ca.password=kT9X6oe68t @@ -194,7 +195,11 @@ services: -Dssl-truststore.aliases=ssl-alfresco-ca,ssl-repo,ssl-repo-client -Dssl-truststore.ssl-alfresco-ca.password=kT9X6oe68t -Dssl-truststore.ssl-repo.password=kT9X6oe68t - -Dssl-truststore.ssl-repo-client.password=kT9X6oe68t + -Dssl-truststore.ssl-repo-client.password=kT9X6oe68t + " + SOLR_OPTS: " + -Dsolr.ssl.checkPeerName=false + -Dsolr.allow.unsafe.resourceloading=true " <% } %> ports: - 8084:8983 <% if (httpMode == 'https') { %> @@ -214,15 +219,17 @@ services: REPO_PROTOCOL: "https" <% } %> REPO_HOST: "alfresco" REPO_PORT: "<%=alfrescoPort%>" <% if (httpMode == 'https') { %> + JAVA_TOOL_OPTIONS: " + -Djavax.net.ssl.keyStore=/zeppelin/keystore/ssl-repo-client.keystore + -Djavax.net.ssl.keyStorePassword=kT9X6oe68t + -Djavax.net.ssl.keyStoreType=JCEKS + -Djavax.net.ssl.trustStore=/zeppelin/keystore/ssl-repo-client.truststore + -Djavax.net.ssl.trustStorePassword=kT9X6oe68t + -Djavax.net.ssl.trustStoreType=JCEKS + " JAVA_OPTS: " -Dalfresco.enable.ssl=true -Dsolr.ssl.checkPeerName=false - -Djavax.net.ssl.keyStore=/zeppelin/keystore/ssl.repo.client.keystore - -Djavax.net.ssl.keyStorePassword=kT9X6oe68t - -Djavax.net.ssl.keyStoreType=JCEKS - -Djavax.net.ssl.trustStore=/zeppelin/keystore/ssl.repo.client.truststore - -Djavax.net.ssl.trustStorePassword=kT9X6oe68t - -Djavax.net.ssl.trustStoreType=JCEKS " <% } %> ports: - 9090:9090 <% if (httpMode == 'https') { %> From 4b723d5da1cd81cebd306fbfe47bbc3e4251e2fb Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Thu, 18 Jun 2020 15:03:03 +0200 Subject: [PATCH 51/65] SEARCH-2277: Restore Apache License header to source code modified from Lucene Solr project. --- pom.xml | 29 ++++++++++++++- .../component/AsyncBuildSuggestComponent.java | 37 +++++++------------ 2 files changed, 42 insertions(+), 24 deletions(-) diff --git a/pom.xml b/pom.xml index ac7e92625..e1939db95 100644 --- a/pom.xml +++ b/pom.xml @@ -89,8 +89,35 @@ **/*.java - **/*.jsp + **/*.jsp + + + **/org/alfresco/solr/component/AsyncBuildSuggestComponent.java + **/org/apache/solr/client/solrj/io/sql/ConnectionImpl.java + **/org/apache/solr/client/solrj/io/sql/DatabaseMetaDataImpl.java + **/org/apache/solr/client/solrj/io/sql/ResultSetImpl.java + **/org/apache/solr/client/solrj/io/sql/StatementImpl.java + **/org/alfresco/solr/sql/SolrAggregate.java + **/org/alfresco/solr/sql/SolrEnumerator.java + **/org/alfresco/solr/sql/SolrFilter.java + **/org/alfresco/solr/sql/SolrMethod.java + **/org/alfresco/solr/sql/SolrProject.java + **/org/alfresco/solr/sql/SolrRel.java + **/org/alfresco/solr/sql/SolrRules.java + **/org/alfresco/solr/sql/SolrSort.java + **/org/alfresco/solr/sql/SolrTable.java + **/org/alfresco/solr/sql/SolrTableScan.java + **/org/alfresco/solr/sql/SolrToEnumerableConverter.java + **/org/alfresco/solr/sql/SolrToEnumerableConverterRule.java + **/org/alfresco/solr/stream/FacetStream.java + **/org/alfresco/solr/stream/JDBCStream.java + **/org/alfresco/solr/stream/JSONTupleStream.java + **/org/alfresco/solr/stream/LimitStream.java + **/org/alfresco/solr/stream/StatsStream.java + **/org/alfresco/solr/stream/StreamHandler.java + **/org/alfresco/solr/stream/TimeSeriesStream.java + diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/AsyncBuildSuggestComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/AsyncBuildSuggestComponent.java index 64c556140..9a1aadaf8 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/AsyncBuildSuggestComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/AsyncBuildSuggestComponent.java @@ -1,27 +1,18 @@ /* - * #%L - * Alfresco Search Services - * %% - * Copyright (C) 2005 - 2020 Alfresco Software Limited - * %% - * This file is part of the Alfresco software. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is - * provided under the following open source license terms: - * - * Alfresco is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Alfresco is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - * #L% + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.alfresco.solr.component; From 9b1f2407d10efdf5e378bc48bdf4ff8823e126e1 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Thu, 18 Jun 2020 15:19:41 +0200 Subject: [PATCH 52/65] SEARCH-2277: Restore Apache License header: modifications copyright. --- .../org/alfresco/solr/component/AsyncBuildSuggestComponent.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/AsyncBuildSuggestComponent.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/AsyncBuildSuggestComponent.java index 9a1aadaf8..e28efee81 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/AsyncBuildSuggestComponent.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/component/AsyncBuildSuggestComponent.java @@ -13,6 +13,8 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. + * + * Modifications copyright (C) 2005 - 2020 Alfresco Software Limited */ package org.alfresco.solr.component; From 4798e558848aa5d8e1586697a6a46b508770d696 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Fri, 19 Jun 2020 16:27:30 +0200 Subject: [PATCH 53/65] SEARCH-1915: Use JAVA_TOOL_OPTIONS to pass SOLR SSL password values. SOLR_SSL_TRUST_STORE_PASSWORD >> solr.jetty.truststore.password SOLR_SSL_KEY_STORE_PASSWORD >> solr.jetty.keystore.password SOLR_SSL_CLIENT_KEY_STORE_PASSWORD >> javax.net.ssl.keyStorePassword SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD >> javax.net.ssl.trustStorePassword --- .../app/templates/latest/docker-compose-ee.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml index e31850d90..0157513d3 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml @@ -104,19 +104,19 @@ services: SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" SOLR_JAVA_MEM: "-Xms1g -Xmx1g" <% if (httpMode == 'https') { %> SOLR_SSL_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.truststore" - SOLR_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" SOLR_SSL_TRUST_STORE_TYPE: "JCEKS" SOLR_SSL_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.keystore" - SOLR_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" SOLR_SSL_KEY_STORE_TYPE: "JCEKS" SOLR_SSL_NEED_CLIENT_AUTH: "true" <% if (sharding == 'true') { %> SOLR_SSL_CLIENT_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.keystore" - SOLR_SSL_CLIENT_KEY_STORE_PASSWORD: "kT9X6oe68t" SOLR_SSL_CLIENT_KEY_STORE_TYPE: "JCEKS" SOLR_SSL_CLIENT_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.keystore" - SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD: "kT9X6oe68t" SOLR_SSL_CLIENT_TRUST_STORE_TYPE: "JCEKS" <% } %> JAVA_TOOL_OPTIONS: " + -Dsolr.jetty.truststore.password=kT9X6oe68t + -Dsolr.jetty.keystore.password=kT9X6oe68t <% if (sharding == 'true') { %> + -Djavax.net.ssl.keyStorePassword=kT9X6oe68t + -Djavax.net.ssl.trustStorePassword=kT9X6oe68t <% } %> -Dssl-keystore.password=kT9X6oe68t -Dssl-keystore.aliases=ssl-alfresco-ca,ssl-repo-client -Dssl-keystore.ssl-alfresco-ca.password=kT9X6oe68t @@ -174,19 +174,19 @@ services: SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" SOLR_JAVA_MEM: "-Xms1g -Xmx1g" <% if (httpMode == 'https') { %> SOLR_SSL_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.truststore" - SOLR_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" SOLR_SSL_TRUST_STORE_TYPE: "JCEKS" SOLR_SSL_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.keystore" - SOLR_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" SOLR_SSL_KEY_STORE_TYPE: "JCEKS" SOLR_SSL_NEED_CLIENT_AUTH: "true" <% if (sharding == 'true') { %> SOLR_SSL_CLIENT_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.keystore" - SOLR_SSL_CLIENT_KEY_STORE_PASSWORD: "kT9X6oe68t" SOLR_SSL_CLIENT_KEY_STORE_TYPE: "JCEKS" SOLR_SSL_CLIENT_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl-repo-client.keystore" - SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD: "kT9X6oe68t" SOLR_SSL_CLIENT_TRUST_STORE_TYPE: "JCEKS" <% } %> JAVA_TOOL_OPTIONS: " + -Dsolr.jetty.truststore.password=kT9X6oe68t + -Dsolr.jetty.keystore.password=kT9X6oe68t <% if (sharding == 'true') { %> + -Djavax.net.ssl.keyStorePassword=kT9X6oe68t + -Djavax.net.ssl.trustStorePassword=kT9X6oe68t <% } %> -Dssl-keystore.password=kT9X6oe68t -Dssl-keystore.aliases=ssl-alfresco-ca,ssl-repo-client -Dssl-keystore.ssl-alfresco-ca.password=kT9X6oe68t From b5c128bd46094fcff1a3a3a3fa842b440ad89511 Mon Sep 17 00:00:00 2001 From: Tom Page Date: Mon, 22 Jun 2020 11:04:43 +0100 Subject: [PATCH 54/65] SEARCH-2271 Refactor shardMethod to use enum. This fixes a type-mismatch issue with equality testing. --- .../solr/tracker/AbstractShardInformationPublisher.java | 5 ++--- .../java/org/alfresco/solr/tracker/AbstractTracker.java | 8 +++++--- .../main/java/org/alfresco/solr/tracker/AclTracker.java | 7 +++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractShardInformationPublisher.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractShardInformationPublisher.java index b71bd8286..ff47cdf7e 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractShardInformationPublisher.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractShardInformationPublisher.java @@ -85,12 +85,11 @@ public abstract class AbstractShardInformationPublisher extends AbstractTracker { super(p, client, coreName, informationServer, type); this.isMaster = isMaster; - shardMethod = p.getProperty("shard.method", SHARD_METHOD_DBID); shardKey = ofNullable(p.getProperty(SHARD_KEY_KEY)); firstUpdateShardProperty(); - docRouter = DocRouterFactory.getRouter(p, ShardMethodEnum.getShardMethod(shardMethod)); + docRouter = DocRouterFactory.getRouter(p, shardMethod); } AbstractShardInformationPublisher(Type type) @@ -215,7 +214,7 @@ public abstract class AbstractShardInformationPublisher extends AbstractTracker .withAddedStoreRef(storeRef) .withTemplate(shardTemplate) .withHasContent(transformContent) - .withShardMethod(ShardMethodEnum.getShardMethod(shardMethod)) + .withShardMethod(shardMethod) .endFloc() .endShard() .endShardInstance() diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java index 8f2d36cd1..671c14b4a 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AbstractTracker.java @@ -28,12 +28,15 @@ package org.alfresco.solr.tracker; import static java.util.Optional.ofNullable; +import static org.alfresco.repo.index.shard.ShardMethodEnum.DB_ID; + import java.net.ConnectException; import java.net.SocketTimeoutException; import java.util.Properties; import java.util.concurrent.Semaphore; import java.util.function.Consumer; +import org.alfresco.repo.index.shard.ShardMethodEnum; import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.solr.IndexTrackingShutdownException; import org.alfresco.solr.InformationServer; @@ -51,7 +54,6 @@ public abstract class AbstractTracker implements Tracker { static final long TIME_STEP_32_DAYS_IN_MS = 1000 * 60 * 60 * 24 * 32L; static final long TIME_STEP_1_HR_IN_MS = 60 * 60 * 1000L; - static final String SHARD_METHOD_DBID = "DB_ID"; private static final Logger LOGGER = LoggerFactory.getLogger(AbstractTracker.class); protected Properties props; @@ -68,7 +70,7 @@ public abstract class AbstractTracker implements Tracker protected volatile TrackerState state; protected int shardCount; protected int shardInstance; - String shardMethod; + ShardMethodEnum shardMethod; protected boolean transformContent; String shardTemplate; protected volatile boolean rollback; @@ -101,7 +103,7 @@ public abstract class AbstractTracker implements Tracker shardCount = Integer.parseInt(p.getProperty("shard.count", "1")); shardInstance = Integer.parseInt(p.getProperty("shard.instance", "0")); - shardMethod = p.getProperty("shard.method", SHARD_METHOD_DBID); + shardMethod = ShardMethodEnum.getShardMethod(p.getProperty("shard.method", DB_ID.name())); shardTemplate = p.getProperty("alfresco.template", ""); diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AclTracker.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AclTracker.java index bb40da9e0..1d0d72c62 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AclTracker.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/tracker/AclTracker.java @@ -130,8 +130,7 @@ public class AclTracker extends AbstractTracker String.valueOf(DEFAULT_CHANGE_SET_ACLS_BATCH_SIZE))); aclBatchSize = Integer.parseInt(p.getProperty("alfresco.aclBatchSize", String.valueOf(DEFAULT_ACL_BATCH_SIZE))); - shardMethod = p.getProperty("shard.method", SHARD_METHOD_DBID); - docRouter = DocRouterFactory.getRouter(p, ShardMethodEnum.getShardMethod(shardMethod)); + docRouter = DocRouterFactory.getRouter(p, shardMethod); aclTrackerParallelism = Integer.parseInt(p.getProperty("alfresco.acl.tracker.maxParallelism", String.valueOf(DEFAULT_ACL_TRACKER_MAX_PARALLELISM))); @@ -800,10 +799,10 @@ public class AclTracker extends AbstractTracker if (!aclChangeSets.isEmpty()) { long maxChangeSetCommitTime = - aclChangeSets.stream().max(Comparator.comparing(AclChangeSet::getCommitTimeMs)).get().getCommitTimeMs(); + aclChangeSets.stream().max(Comparator.comparing(AclChangeSet::getCommitTimeMs)).orElseThrow().getCommitTimeMs(); state.setLastChangeSetCommitTimeOnServer(maxChangeSetCommitTime); - long maxChangeSetId = aclChangeSets.stream().max(Comparator.comparing(AclChangeSet::getId)).get().getId(); + long maxChangeSetId = aclChangeSets.stream().max(Comparator.comparing(AclChangeSet::getId)).orElseThrow().getId(); state.setLastChangeSetIdOnServer(maxChangeSetId); } From 41b0d226b12505b2137c2d94184203b5d543cfe9 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Tue, 23 Jun 2020 08:44:50 +0100 Subject: [PATCH 55/65] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index b973c9523..f5fd2fdbe 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ +# WARNING +This project is *read-only* now, as it has been moved to GitHub. + +The new project is avaialable in https://github.com/Alfresco/InsightEngine + ## Alfresco Search Services and Insight Engine This repository includes the source code for Alfresco Search Services and Insight Engine products. From d9258017687bcbc4da4d2fa34531f61e6d34d514 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Tue, 23 Jun 2020 10:11:39 +0200 Subject: [PATCH 56/65] SEARCH-2041: Move project from Git to GitHub --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index e1939db95..f438c4a0d 100644 --- a/pom.xml +++ b/pom.xml @@ -21,9 +21,9 @@ - scm:git:https://git.alfresco.com/search_discovery/insightengine.git - scm:git:https://git.alfresco.com/search_discovery/insightengine.git - https://git.alfresco.com/search_discovery/insightengine.git + scm:git:https://github.com/Alfresco/InsightEngine.git + scm:git:https://github.com/Alfresco/InsightEngine.git + https://github.com/Alfresco/InsightEngine.git HEAD From cf6ad2b8e622497e9c40c6638bf9d4fcd9b02dc2 Mon Sep 17 00:00:00 2001 From: Angel Borroy <48685308+aborroy@users.noreply.github.com> Date: Wed, 24 Jun 2020 09:51:12 +0200 Subject: [PATCH 57/65] Update README.md --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index f5fd2fdbe..b973c9523 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,3 @@ -# WARNING -This project is *read-only* now, as it has been moved to GitHub. - -The new project is avaialable in https://github.com/Alfresco/InsightEngine - ## Alfresco Search Services and Insight Engine This repository includes the source code for Alfresco Search Services and Insight Engine products. From 4ec595c29d94e699ab569aa9111141df43a9f91a Mon Sep 17 00:00:00 2001 From: Alex Mukha Date: Wed, 24 Jun 2020 11:37:36 +0100 Subject: [PATCH 58/65] SEARCH-2034 Add CODEOWNERS --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 CODEOWNERS diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 000000000..f7de0da5b --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1 @@ +* alex.mukha@alfresco.com \ No newline at end of file From 0c17b81d6ffdbce3ef3b3dc21a96951d9d90327a Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Thu, 25 Jun 2020 13:18:53 +0200 Subject: [PATCH 59/65] SEARCH-2041: Move project from Git to GitHub Change Maven Git protocol from https to ssh --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index f438c4a0d..9bb3bdfd7 100644 --- a/pom.xml +++ b/pom.xml @@ -21,9 +21,9 @@ - scm:git:https://github.com/Alfresco/InsightEngine.git - scm:git:https://github.com/Alfresco/InsightEngine.git - https://github.com/Alfresco/InsightEngine.git + scm:git:ssh://git@github.com/Alfresco/InsightEngine.git + scm:git:ssh://git@github.com/Alfresco/InsightEngine.git + scm:git:ssh://git@github.com/Alfresco/InsightEngine.git HEAD From 1e52cb4758f618b0251ad61a37fb37fac443ec70 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Tue, 30 Jun 2020 11:38:23 +0200 Subject: [PATCH 60/65] SEARCH-1915: Generating again crypto stores with the new way of working. --- .../templates/keystores/7.x/alfresco/keystore | Bin 327 -> 327 bytes .../keystores/7.x/alfresco/ssl.keystore | Bin 3288 -> 3255 bytes .../keystores/7.x/alfresco/ssl.truststore | Bin 1854 -> 1832 bytes .../keystores/7.x/client/browser.p12 | Bin 3033 -> 3033 bytes .../7.x/solr/ssl-repo-client.keystore | Bin 3298 -> 3265 bytes .../7.x/solr/ssl-repo-client.truststore | Bin 2883 -> 2850 bytes .../7.x/zeppelin/ssl-repo-client.keystore | Bin 3298 -> 3265 bytes .../7.x/zeppelin/ssl-repo-client.truststore | Bin 2883 -> 2850 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/alfresco/keystore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/alfresco/keystore index 439bc1f861272ed97542fa9242f42ffd04e16988..680c281b2b40984b16ab562545ad9106210ea4ba 100644 GIT binary patch delta 169 zcmV;a09OCU0>=W7Zd2zX_+wyc)sifqT)TRyIKsXoOF1(& zFgY+aF*7tYFg`FLFbM_)D-Ht!8U+9Z6rMWl)P#_b6}YpA(5}g8(=7q4Gz1iR88Gw% XIK1_S6}EO-{v>VY6BT{}0|ADhy9Gwv delta 169 zcmV;a09OCU0>=W7Zd1nGih`pACYa&F!h_#F0wzadmFxlo0K-rOIH>(hAI&Wz&xNh# z+d`KR=)oa*h?);TaxE}wR{Uz;qi7fIYxz$m&Tp;}(5wtd^n7(kUzqtz3z5M)OE@(+ zHZV3YF*GqTFg`FLFbM_)D-Ht!8U+9Z6i~>~Z&#*iCv9h15g`h)<(dXfkOUM&#Df7W*BxSzkp00|ADhw#Y#G diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/alfresco/ssl.keystore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/alfresco/ssl.keystore index c0cff56f8b1b130dd2ce09fdfbf9175e17aedae3..8e9732d80079bbd0a999ae3efbabec94be5ba0fb 100644 GIT binary patch literal 3255 zcmX?i?%X*B1_mZ5W@O+fF3!;_N-fA|U|=j}>8kVxN-i^KVp?P%!^Wx2#>m2`#U#vV zz|X=_<+i<{`-7w+6Eicf14|QAL!{}}w~r^y|5APAJg4e?%Up?PDa>uP0bh3h7AsEb z%Rj9Y^YO+SpG6(U$(uKZ`FykbWO3@UXyNA@EF4X9v~GWyv+A!%lxEgbI#8&|&0jGH}IS1dd>v+Mxx{F5rTY!AeGCfEpatP`)f+M?6o zrJJW-GhuQJTVYn*k-j66VV2Eye@?KSx;6R5%ILYP{#*(!INp(T|Jtm#0aNc4YV$s> zdM(LNbZye7J5|SKM7czHTg|DA$ldJj8z+<@6YacKa@JEPfijC1Yzj-og^sJR6?(q* zk++tdmGLHFN4VS?BefR3FLfe|L~dK|uK23ZZCta&soU&ufxP9-S21h z`d@E6aW-?y)XQado_%|yo$hS1+q_3ljz2aKNTL+gnF{V|ya9{6b_DHL~W}~Uu zaHZpO?)?WT;yk|sCO6a;+U{navi$rk`Se>GRkzGe6N#THazZ9MZ(*e7;{z&Q^VgTR zF$IQpEAaYXUu@kL)cF4cpYyUi7Mn$H)~)*&eCC!@;kV<~VZY7Vl{P*IE8VlnaFM~D zCv!J1-je(Dr=Z{D$MTnrrngO7#i-+-w7Vtfic9GHRSb)^iB{AIM#?=o%Xz4EUdNR9 zqj!5NK8K}UR80QX?--)V{j8%&@6(g1em6z!avUZL9de!)YV|tplC<8m*=)D6I%*{( zjZU;I|MT2-Yy3TlaQ?eTc7xL}YlNPufh7Y2^HqZ;=8HgVwSbw4k%@^(fWd&5jZ>@5 zqwPB{BO^B}gF(F^w*e;`b0`a&Fq69zjKjgh6zXj#Y#<1dVdvrUP0UP5&C5tlOfi%< zkOc{H@rXI*q!pzWC+8~!=ckpFCl;kD_>`pR844KiffR7_u!rVl=jE5@8A=;Sf<%~k zgq%x@OY(CS;5wZh4dldmjSLLTj13GdjZ6$IqQrTDOfw@3DA%9}<|Zr-B*QJr28s~3 zNTItW2$BD+6<5FM~m2CsSi1!?`Vn{c8&&ep+~aG*3!oX_+QD zCCBsFpYs{=n`Q`2-tuI66kF0>Hqq;+xQ>Me8qQ|$@m>1&$0_Xxk9W0M+Rc5XSzNOD z1hd4?%VvwD7z1O}KE6Ku_aEbV3rVZyQ~`yEoAJ_?3q@qia_0X?6kXnYO)WCr#E$iC z*5?0Qm&|<4N(wJBF*7nSE^cB>H)vu^21lK&Fbk6b12C>Q6WTl&+kQAPGP1BRGqE`s z7$byuS=7W-{0ma^f`fe&+*9*XixNvxQxt+zi^@`q6r59wN;1L=g6+9cy zpU+;>uxDXo%aX>%0Z&>@oD5Scj8y!VvTK8rq%1!p<9|@dur4qV26;l2g~x!4jRRPq zv$C=?Ga8711O-`m4Y->)bMliDb29RaOOR6nFvBndlYsf_PYHjlO>(cEzGQBu)0+JL z`BY^SH~(ZEi|$g(a~m!&OkyavsWgA6daZBOch|V2`qnl{%{_DXaq`@L$+DOKOtIm5 zmbsf}FZ|rVrumDT*O4{U1J_&Mph zZZi&HqXa7-0FE=>f1(x&y?nko=A0;lZEHO+eWkSWJO){eUMHym@|$^zMJh z4tJdBi=Eb|>l|^YYO?bs(|?!l@#wTnFc!RLHDwXM#G>Fw`Dl+fuou;PCGD&Lp{$CB-vU-b3 zVKra|<^|MT!Ptf+sVlv1)PMJP$C`+96P5X`g;=)eruUt5n}u$Jxd*~eA9*-S2p{k%bK!WI+J>D z{{J5a_ZlaBXJ@qBGL6HdC}>`OC%8J}2Q|kM zp|y=(aw4QvR&`-CAJCva##i@^=7WLC2Ud^S+Z4Fjr#tUDzw?T?-Sb20^X~!xiY941 literal 3288 zcmeH}do+~$8pr3Icdll}Z5ZW#t7NbAPJ>Kp8>vtdhQu!0#K>)CG(&Ec88U~YLTqtd z3Po-0lx&v>gR&LbF4cAy*>0OfWvYWSlU=9PY3)DGT4(jo{^PgS`#kUSuJwC=&+q&B zKCP{-tuPo2{&C6ic!3)jfj(R&&x^CcivfcHN8KL$VhuwcFfxItlF~^i8a^gj4!Iy4 zfWwszYnREr+s#`T#k{T5Fr-}A>fq)C5l~n|p^b2X001~742mM-AS?=WL7<3m>+K%` z3?A;XhfIVNq;Jr8nY|1@ZzkK9$?zs?K^oGe44!29=U%kw9G~D&2A8RA7wm0BmWO1e z1vos~g&n}=gtEzM&}wN0#4B2b@Pauk?T=qtSwfmBgiR1+44IKPQH(c{-Bk$2(vb3J z`1Lm^$ocfl03-|)B*Gv;JX|1vO@>%jj_+@-npB|{k;_4ub;DVMvgm8r2L-R9=JtlD zFN$+)>qRM7en_7kq5R?Hq>$f~B%fY-`Gnb+m#%lXR=s#4!H}eQFzyE)0p&iESNf{* z;en9$g%?DmPSr92Td3?#C3RQaD<~O1T-Mk?khPO-Q=HyY7jqtaEe9Y8;2;14@;o7r z_f64|MUW6mSj<3u!=3)AoAkRDnJK5~Vk6f+NK4WH4L!svh{XSL0bW`_L?9s$0G8i( zP(x1ggg{8HlJL_5kX#y2^5^`R-^g7#~ZnGaWmGazA5TSa<49a3&lxf0l+X)NpP7# zoE0rJdrL%cMIwO9kU9$c4GKU2hHxSP$ssT?V$W`Uk^j$d5G2qL(QrQ8Db`y*apH)- z#cb(dZ%|b~+LFgg%E#9xx2cl(sojZuP>g)6>q1LRw@d0w{_ah$(dnDzI{S>bF0nc} z>A1?+B8xGH{rC5u#Vz-8Ot+N-3UnWvE#!Q+G+cyE?LXGI&ZI;QxJ~^;j(>9Sj=Jpd z<^1H;P5yPK2QYEC4q)_o=5)tZvctup$0A*&{IH~U>JjCz|28-(k6J(-p#nrWN@92{3Pd zbMlnnrGc?W5%C6w_FymjEO})7`L=y;f7W*g4$l=OHpOjrWzhpvj+4%3)}Lu{5tQHY zCxR9&O>Qm+e4fN~nfExI5MQrTs3+dF+O^>HG^jsyWNB;E*{*R#BZTK9Rkk1tslw&sG+Gr7XuB^B@zvVU-%n6Kew-5M5*r4H9`>2!zCH&3o6{62r%gX_n)|^!zF;K( zgJ!aQ-b-=Xgwew5%_7G9W3Ywz< zE))&0-&?E%uW$$^@l>p*&;}5Sw*!C_uP7Qs`A>>~SWD917sO=K>2})IOg59t2xfX~ z)0y03Os=*SlN;>kn_Inmg($CV}_JdW*%Y{xhCr&LCp&C1!a)n_Lrf5 zNpLD(Ao%K6EBecWigb$j=t0O_h$xNMAn=e33L{}V5{U)@NJ*MhKoB5YG&Ydq#R&A} z@Pa?nj?}Jp&cJ$qwD<5q9UZOSg}$`kYUB0%s)W!mb!H8&`9cX5Wp^N~r~+;CPsig5 zLLz2v=O*{4OGndPTPpg^Rw*d4YtPv4Mf5k%@stlsGStX=Y>r;Z9~|nOVQ6^Zfr_?r-j8f77DBZo8p2 zKXRjOgypYVi#V>txR|?70}jdX&b+O5?~}Efd(6eIZx5HUys1gB){1#tH(f2#>g{!} z%mee>qZcrz6lHSILcWcjr=Bwi>y=1r-E&;(TIp&c!yRF;V!@J6L1w#hUd*oZ5p8b^Tk_n3 zSNQ4Yi^}mIHEvwLmcQbp;+s|TYyB$QMYdnPIWZj)_dsDwrqNbmRKbkgW#0#Tg#9#m5}~cT31L-#GM?prkD)IM%ombJB`Zi<9&9 zk`p1ZRqhUtEv5$sO-#TTV{%=<%*4pVgye$|=IN5iv1bB`Jzx}rBXjam*2c*#jI#Ax zq<8;2cDUn2U+lC#UFV2HRg;}Bnf|+Uk4L9vg0bK|t0{~4B^Cug+Q;0UTG)TpUgr8! zJ%6=*6{py}xZcz_od0~F_^gq7+$PbqtS&dZx`stnH}8cQtV>(Mb)x0)8uq5EYt-0H zo-UuWbk{o>9<>&g*p|vI1&4RHcP7c5EGeF;!uWo&B9n+Iwiq#xheVo$ff$Y`%VILD zS9;y3|L*UOH4*0~D)UY6klV08RoyRbmtfSR?<=NB1Ww<7@mIq4y3-eq?|CA!%w?+4 zff=s9wjRA;E!`*lth@eQh0Mih7X8-vrVTf)Z1zc)HD$SUCiUL@|33`wHBR`>&S<%1 z8iz+w(7aw5NtyW>_f~AZe*1%X(dwRBAt`-XA;ucf&NC|~c`I?xUC{8k+`XMq`+?9y G?gaof$99nb delta 909 zcmZ3%w~sIQ91t)tFfhR}cVbRjQEG8=zHV|N0|R4GN%EBk46G4)rUsTkWv>mIn4SZ1 zzyf9_MkXeaB!zAKzrBjTKjrwfOIFKxicLUd&}1K$=@KRe7KTQ~CPs!);=CpX1||l^ z5bosPEc5GMmpblx8Fq5_YjMk!hC7(K)E~`#z{kFd^Tg7x^`Cr8W&Zw{?|JC(b4&Pk6FK`6|`>KS9x4!>A$qOvr{$`(?SpwQTB~I;@9c7Dm7#F3?7-~r&m=3bc?5~y|ab?XW1s! zzfD(7_#z>3(!^L~(8QQGS&Avn!mREDe|^}o^VgSGnF$M4ZB7tQjx}i92Z@r#Z3c~- zaYV`nrVdf;Nz;khuio^4_8PtB!rK{E&fJgwf8|_vBXjT6t$%mjVLbiiu-U!~8ZW}8 z6*HW)zpOZmD`@}Y?yn0J*>?VKu4K!(aD?&U#K32+FF4w>QjE_Vo;3dF?<=@w<_fhL zhK75XS6oz@EVgm)?XTzA{jH-Pw+Wie%Zv62kZxT UN>I{ScIBI+MN8}+?yZUf06=w(6aWAK diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/client/browser.p12 b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/client/browser.p12 index a58b6a736510e39f2e2fed678d4d4dd9bcd77bba..9919cf3e4d8558c9dc85a06df468858bfc1bc73d 100644 GIT binary patch delta 2851 zcmV+;3*7YC7ugq(Xn*Hf)oqeE^w{A$bb~9n8)NGB!h!+=0K-rOf&zf79GiFC;CJ}S zh3~u1%I^pYC6^@OHAL3|2KajIUM$+e!`P)FbhB;-!jU`tby8f!PUFYLp!J?u6c+9X znBHr79@@BMd2eNz=2Bp0>z?jjZc?r;9KP9kAgrU$U{)Ph5`PZy#*L%yuL~3Jv{8Y{ zE6ZZ6mvRKuV)jys7n<@gxXriiy|;7zyDp96;%3Fq94fgIpbqF_e8kQJIwtxDr&kqZ zYSvrYst(-hQu!_)4o+B@6d(7;6KctCAN4t2uLBAxV??RpA*QQcbt(P8iGxKbIGkXA z3BuGlQ>-SBp?`~Q6SJdieKM@Y)T92YW)u!;fuMmPVt>DR+gE|Zi|S0=*_{x$5YL@+ zZTK%vbUo1d-XHnxCfV%Pp&87(aFFm^T?Q`sQ^f}cliI#RkRL@E_Ba((A2^9G^ZbXec*2vyJga47?ti3#-m63&@Em0Rly}h{O=O)i zy9#J^TL)8lkdyx6l%Rq(YQlT{%K&G#ssMsc5Au@(`>}!SbSx1Jp&J%{j?V*cYHIV` zplm(RVw&nEhQGCNiA^&KiJm5?BW>QzCNM=zrd41`34?RXlJ>vJVX$h-v*jz&Kav60 zywD$2T7O*J!K4~4%Z+O`TVGGJk{7+_Fq_OV3|W$)4}kznSVxz%(|;TvvIfp zdIGv29vpv_CDDcE6lA$w)aE<>h2S^o=&`nq2Ek+PGzewayKjB0|K)DCnv<;k*r5mH zHs-Kdjt;X5Fv~;;Q4Ne08=knwq5V{vFbNcfV0jdGY)}qL6jO zBCEbI5njgu)p_LNlLZ4g3pq12FgY+aF*q_flSuN2l#!ky<(Y-Hn^J5i1GZ?T=Yz~o7Dra^Ia;@@&GA zhrtd#>c$mu4!V?bIWT?l{k|rTLItv8)+jF;%|Ge;iN+h(~l;O(X;Ar9|yvbGvbFqx?zkO2_mtV^_)q3%if`8 zP^lr7z7$$huq<%is7Twx46g5J3>Q%(jn%NZ9cyO9wAW8>y_s79q144ky1>eA9zo(X zCxkn2tD%BukRkg-gOO*IVKYhGok+B$dOjZ&f2ws5hbFc2d8ks#C|^aegZ7Jui;Z1&(+=@gvR-wi&a(El$tqenip_ z6D=AYY0$32tENVh&Sl^>a3c-dQxbADpJd9V*JQuglcyKm40Ql08^#eoyJ@@Gam{t@9mnOPsupgke{2TQxPwTkZ7|Bmx2Tc&=kqe~gi6N34NTE& zK0eZz_-%K3k0KL!|`^ZGbno?mot7PM6g1%|Lk^kD(J2RZ?pf z6Hjpf!0{1@Lvp1}bV#XRn4edRnPQ;{N>YZ`NV~7_T^3|$WUoaIkMb!uF-5frfAlE_ zp!2j-KosR+yu%2)LbmFaxurrn0xXYMR36UluKX{AH4}ISJq6QsCs_g0 z?(_l=5%U%w$%7{wVhWRXn4OTgYRe0{s3NP9;0K#Hw`;It2#B-y9T{d8pQzTfll3|0 z#M_7rPIJojtzS?Cdtd7B`&AFYxZ70Ro7y!DXnh+@Rq|2^&cDoM>B4-lW!T9D(W#S8m73UBDd)Vg%E3_fu*)4<$o`6za-rLhzRUr z<4-rDIp!oI7?K?FWoyWHscY?LVR90$*G>lhN$+P`^Si;#I%fm|f6~Q}mr> z7WSzY3bisTUrh^OZ|DuRN*3xpxUvAsZP{a{8+<%pTQYDHynJv_=r9kQNVVR$`e_!G zOBvrw;kG>eTlfZ6JV|^VHE=T;rwT@tvCz9)xhm1rO}?hXO-<@*VM$3me#1(ec<@#u z{G^UauC;7j?>3lqe?`o}*diazf1W~uaGd8jIp&SkW_^O3{agP?B*q3j1%-3VQ`T(J zogh+Bh73DcvcM$O0y@`Q(w=F*_q)xT;E|I;r0p5XVQ*A=( z9XPpK8y&r_05I-?jhG6&q&$A%i{&g&Jorb5vGjSMUaGFBe+YA=FVKco{;d9&03nNF zT>gUQJ9K!mrFyYkOd{u_d~nrFZUi_X`D2>VNs=E(_4pqXWFSr7N^Ie_1CffwxuNRt8ur(1TgW;Lu!hzb_ZcQOu2_lrO)1A@U&^w45n3CRR#Vf373O5FjYbxehbTptyiC7x57{ z8}+|ydG1qtFVu!IZBIG1=5S-d4QXqcw8QT_lzk~ZcvRoa1b`z>bC$+`$puaQZn8^D z_`;%!{b7XxWEZ{wa7M$}ulu~iI%3jw8_&Yc`CR>&=mFAl=1%Ju4C%y29dT>R(BTpb zRfC5|e}>(V(oEkST+V8+%&5XO4AsKfVN^XsAfs5_frs%to3}hzbVF77a?#Rnn2u|y zJyu%;x&=J#iZ+`RKN_A}QC0VnBPx`ZYJi&sS-Su}a)8CXXpBFxAZNf7Sj?#p+d1KS@)Q2NuGP1TZcI$F{9+ z&Iz8WMFw$}qeB;l)M-FLMpf=`3dQZGpA|Xe#~bthk@wm|&|N#n4(R8uVSUM+&$hT@W{0*ql*O#lX(`+*4(l1&VCOjzTa#Fd;Ar1_dh)0|FWa z00a~hVm^!yW(Ey)i}tz#w{fi|h1+EW6nbu0KzQz%SqkJB8pCoQLd7?Dy8;6NhM;U& BdD#E} delta 2851 zcmV+;3*7YC7ugq(Xn#}OYeK*+7qW|FN)rf81C%eWOmPAO0K-rOf&zfuva&P^4>VzO zm2Toh-6>f#Cx%n?Rt-_r@8zfu$^?AKOJ#iqKMYqCm8R=-o7kK)06r@7w#MS+a^5-^Yeu6Q?^oieSZ8{J1}9npXa9I)<1Kjz5b>_(2DE`NoD*R>V~rfKAbRk@N^ z1@QCIB!X?!n|6mT$yB1?p1b~xngGIHh*-=55e=AVm+^I}aG9NGbh%K@lb>23fiGbk z`#m{CSK~)hAf|7>24XqM^`eozz9Pu*5?5Zp%jsT{hp^g)WLe8hEA-^pmiaxHTn%z8 zknoH)M`0%lQGb8x(ek*wC;SYC`hRQ$6z3~_ce3Muh9aZ-TlN8t6e^7-W zxiU`_s+V)GT{29ge*vfF@);)`&Rv+>wzW^J{Zv^`*)~#--Z9#M=$)o5>rhJR^UL|o zqAylP^rdW`1bAHt1!Dnd=)V(j%WKSAP<*T_l>opq+tC{Fuam za~>m+9UshM!zcAR_}zrO$SW3$plDLts5Vot9pWYE`o*C3rLWU@WZ$r2%I;{y_h;EnY%yi3BO#KiR>_DG8Q9do+ z8372z*?+M1i%HJuA|H~Nih%_x@{l9HWKui!o;elR?Ci!4-0e~+Twe3r)1F#H#YMSy zp_WfO-%5J7Jj1rS|I(m)F?#6;uV*D5vCMp|PW=5gII(b7Jo>gid%W`{=~X0}8wyRx zLaLd$Un2f0K6h5m%+)|k*5%Eetl4@*6^t7E_9E=Gd_N2#G^|2#S|OzPzmj;E&A(oM zs-SF-l?_?cTi$polLZ4g3pOz}GBh_bFflYalSuN2lyiy?#(g&4B^;~SmvNY|l1}8CVxr;T)5Z~cR4PvN(Aro=F`dW2nK8`zvT(UkA z`QKGVe+d{37gx%6QSJvfPJP!p$hyns5J=a-#m%r%!-Lvq@?5EKx9%`+YaJy0kdH0t zLOfm&s$%{M;YZH`y~6@q^FFh+OK<5V1rUKz_RKh>q%@v1ea?~KbK+Yw3}tjGK@HnB z)uBlMbR-vQ>+^-)HCG+lDNzQA*wnI;V{aHye;=1dZnY6j65K4f+%<;F@UA|^+=v+P zh#0E;t2|R4PTy}MJe?^dkJGVJj%*d#?Z_L5Yu$5l+J;)D5c{C>Ppwv*C4nHBir=s( z`jT;^2x=XM=7a_iHtMsF>fh#*2x%b|IcHD%0QGBPIEdsg09dJ|HQUP$H!-ihhMF{yBG>6TP&137dB|mV;XMH?o58#^BF%uzE+~jQw^w*gbwATn^@uGv00D z^Zzgnlr3=x}4s4CR6mg z`GUGoCy%d}^!~6fitf!7Tv)Lq<+dy+^JJ@4hjBN-!=)YTVgb8#QsJqY#y@1Y8SFmy zZm&_E7m`%kUZh?pKmIV=BDBTwhl+}Uf0UTK z*7PM?L&`w|g{gI&zq(<0pm_&LO~*$t|Xk!=F5m zKkG~bB#Bi)3p&)IiDW4i=47z>f9Y2q=Z9^wR+J82W{Qc?e^IjJcnE8|Uj_6spffH} zm4}<3c1i#ro|iV8K!P$BANUDP3RBdUt>)`axrfbDB5ea(1>%)QQ_4!0w1&Ffnao5$|8lPUm$h^y6Dz`nD(^yCzVc zoyb+$A^e<;Cm;bZ=Dqhn6-W+PAy|`Zm^R4l#$*?8}jP4%@5xP+*dug%Al&P7)ACSj*i*g<44?(6=X(1pVmS% zd3d_G^NjbH^zu5g04pC&oh-vwn_!ra(8ota!0$`$Kq>UH%xc#7JXt7mH}??1N}o1T z3Ci>ms&m<<7T#_=e;qL>sKKtH3o;KS|DIvlwxgY^sjpQ4`H#KZ^>mNXT;|9giV``M zk)7+Rf0wl36tuo76(i^to5vDmi4%UPyH;9;=)D}hRJwJ!UflP;5YXK<8J8xR%u=3x z2S2+yq!+llr5Tr)xowEZo92Xb!okQXOo*>!esrc@ zqoh#bux?Wpz_c7EC@_mZYH`5KCrl;Yn?8x-kgFp}WO)5OZ^!*FqU)$g!dUcr_gW6Vr+e_@QDlfAI9 zWBj66jQr&oA=@;a6jjir&e~$U3RLfH$REC)%C ziZYHC1}}p*665ZxWZ?r#E?jNfE+Uws3bS*>=K&l_msc4f-#Otq4pY)rqguUT#0$}( z#!eXM_a|gQIBdpl7>W`op+t%gppgNmD5Se%e{pA3H~6aT_ex;(=i27h8u4A#oI|MMP2Wde|NQemX02%wok|RIK#$;owVnVTa5;GFsiH- zVK;0k@8hJIH|Y1B_qI&NV@iGgG<{aKh%X4|F@rJGnHw7GTkp5K%h+x1OW!t=w*@w% zWet9=_dP?$ZfzY>9%ieb~edQHwU1NucrLy;GIxc*HP1Fd;Ar1_dh)0|FWa z00b1140DK~$9s`L7hv$~mA#5_xdQ(L6ohM+sV70yj=wP~X7A_VYM5L&>jDD-hM>Yj Bgw+55 diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/solr/ssl-repo-client.keystore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/solr/ssl-repo-client.keystore index f1474dd04f3cbe8fed7fe9e6f68daf658e75e181..667ff43c9cc2d0ce0e4eec3cd341ca785e09ea95 100644 GIT binary patch literal 3265 zcmX?i?%X*B1_mZ5W@O+mF3!;{N-fCOP0qcoK zBMYMzlQ5$JKMM!HZ{G4BbF6kTF*EZzurx6>@Fa4I3pX)pdO2!|?|H?g*cYQOl%ApW zqV$81;=@AgFS~-xmOWF~`aQ$qDO>S^YhtHwoN{3`xwYw*PWMA4wM#X}it^Y0{wL>@ z`b{bJklExjO{OCM0yi7ay!Q1;U%@=@!qc3Q?}|KEGTJlx6g=Fe>q5mHw?;U7Pe%z22nl%FrsE$8>kU?-Rdw51Zyr-Q|~YW4+2N&X&l&h{QI{ zgIpCtlcj^sG(Np>-f(ef@P&k*_Cf0M%XD;rrcjsF7?gLNk&RfLA)HmMk{{P{S z!}~jjAAS|xbIbf-M2uS_b5r8^h$GPW*ng zdGZ%GhrS7SAJpCn+_(E#jm@;}YA4 zraewR^03R5`CQr;yJ_E!XX;Ac3i>|N;PONMm{p}O-fVGdh}6owTDH=t!^q#;y59f( zbl&KH%Edm%i{CGIS+Cidye#{Wr~N$n0==i(?yeVTE_yv7=tShqiyj4%Z>9J=9GXs) z?CJb;Yx3)gTwN~ns9lfe?|;-M8y1lg_$Sry(O-rmufsj>+0P1o8FfE?ezsqt-h(rH zwM(xoC-wSQ?oaSVW2Q0-0t;7ErE1CCp7& z97u*+viAGy&s!tz(GMI2XRT+H340f%IGXWmx3_sLq#J?3K9w}(qv-qa*m zYsEaSo30jV_4c|~=7D+c(F>SUiZx9O3Z6?X*&cOtDM!%k=TnR7c$fHYYi)Uc)Tic8 z=j3}GKabB2l8>Cq(rGnq=d%SbA7A0HYG-0*WMEv}#F%c-#Fz|@L0MrICIbdwlyN4s zc`&y9aAIU+VPR%sb1*PQ2=TJ0iK+M(q~-+&`zW}l=A{-TmZYXA1g932r4}hTrxulD zre!7r#lW#F%f}+dBGU4(`=QOeG=<9kbw}s11t@GV~ zdFWWcVJ2q(^yCVjjpxs2FKO7bu(4%HW8;9QuqIB1DHTR4eoNW4!6{RgpONuDC}da{ z7zl$rp~}Kzz{SP^EZ13C*_jy)L_mUqEW8HXO`JLT$%#1``Nbv3DFK*on1M+^$hXn+ z)N=-5y%K4ydyY$8D_u=wxFZZ!ELid>$ZS{6i`jKPqU~*AOP*Ws3P1gPQ91sj#*ORO z@>iTxe6wnPtzTuk$o8xKFV3XvNw@sH_kQ&u&nNx!mgsrDFReUV{b;4wF_9@+1@q*Z zZd^YavejU>IK#uX_?YAWZV8#@8;70}l;mW9Wpkznz`6;T)tOu&*&NBkgFm;MfO0#q zv;t@T0Z%M=^ZXX+-T#gq?l{pGJFQRGIpR>&Wamq!|1RC*(P^1rEO^gq$|8P=MZu5u zF}J4{_FuJ^x&BnoUu|E-DRwWeH#H9DKOZPQYos2xNi;31%gwH?VNuo1dm#qv(w1NpdGkif5|4hvfMLgE*wji7n$9 z$V2j`gn=0LoN2%VQXtI2YQPN43#hq*u?&S<%18iz+w(7aw5NtyW>_f~AZe*1%X(dwRB zAt`-XA;y|caIMCj2(57Rk`o~fvof{OJV1jg8DG6Ong<3d4@m9w-J-KG_JMQGmQ;Iz L8#!EFD<%K{QF(tC literal 3298 zcmeH}do+~$8pr3I8^g>nrbfhZOWPs#J4P;vjoBp`F2t(2z;g{ba zH~-@^0}v1xHyHwQ&qKLf$V{kd{d1>|h8byta^m+ev9HFj{E8K+K(&`FpINjDmD^m+ zx48cxy)-jx;WyG8%??-GmL{2XyD(aRil$7DRJgzTB1xSf<(81i#vonii*7I1cR7dt zv@(fDC^c+hP-Qz^4G6!~HJ8*p_o{7e!C)!a9;sQ&f5rY2Rgn)6xKJ1X0g609kL{+& zW8nn&4wUHA`z?2#yu4xG_)SiFqW!AY@ljAg&;WTA_%4tT^Z5d_umBH7fG_~q+U}sd zgy0Dd7hI+Ij}Jg_X<&jsk7->ggQ1($Onx4k3?7`!ew`>1P9p@g8aB6H(sbzaKaO9B z@P8y~aHXTnBL`HYU*8)ZAEDxIQnS`lFgzO z?hjCXF4f?7B~A-YnSnTN0m;9Q=vG*ZpC4jntIDpG52v{{RlNZd1d;$C5^Oe8lf?)Y z$bsq02;>NIAujE0V*)Ld3Up8i${|r2NB|C~L-7D80T*3&pVRLQ)Xjs!U>FlP4;o_( zfWzTGsMwJ;$;H-a%l&nx2XfsElbmrEBNA#{u?2%!=0B$PR#98D-5tb{+`=H^bI!&E znL}FAeRra&v!gWX59LKu>aYiTtIhJ%L!1&a%!B*vUf|FAMi$Mb+O9A!+B9_Kcww(K z@UoeSmNsMGCLiQwWV)z?cTAeK4)*fHY)?n+nm^8j{%{iYMtLNriGN|CBuM?x!oyhU`_!Ep?NLTU1{kB<~rP z^ot;m`dN*6dncJ05Rc$D?Q1vkI@}ya<|7WaJlv-}@$=Hm8De`J;@f9phljN9N` z@BM?1VeNSfvwm(%Ut3HPD_0ARJWH|}(&@DmS6zqpnI^AQP*wZF>c;yLzY6O~U%zqt z3IFX>_0fbVf08r>lA5aUb=%473Es)8=BjQD-qvzA^gCgjR);*BmmR{y-BYP8T?gyz zM=j1@R(V>C44Bzxs6bCNYD}J8rBCIh8I8ZfE68rtP~7hB7+FpnP|Hl&TB45bT$3Jb zt9S6;gSE^A(ERBE&nA_aIvmbD1%n+wAdy02_RmS$=``CvdpSCfrWH0{5UVDM1zIHiPRB4n^ZgwfFq%0p6W|pFNIUsB6iAKN*({WPjLUZ1fi(b-l zu0{K`l9R_8?|2ig?j|>wQ66rS{XM{80(iqF1dH+x;80266Xkt*8vZw~wFS5)3308v zjcaXJF!H^He8x}y2kTG=)!tc$(x=v8Cy+hcmlMQ_R3vYUAN(^=_no_CHiO|k%BVCX z4fHmq_#s_v4R%*XC+##!I(zDAR{QVknTrk8y$=Sf__k#bkqS@eS*y2;3X(;4U-ETj zA`#a^UV+NF#?BhnucHS-(#hpZ|YjwMOc zt43~1tcBe~Z1VbbT;7422e3dM5V&o)0@y-9h`?b{p7BS3_*F9i5W*H|0+Rld!oc?u z_Sgh70`2W7isp^*ZoJk#2Kfyo`LU9>*8^z zZ+YTr?jV={&H%WzAoteiE#NBmY%!Pn#cvqz^J9x}rug7UhyoBVj8)-iPz)(5Ks*8= z0t3Ju!Xyrk0mXSJW)O|a^a)~fK9P{ny!PMIsMLxL8TL6q79ZbQMqPjG+mvx8*_w zuJUr(-Yg=q5mxq-ayp@=X?VFu#K!Q%L_AI>FYpA#3HyqcG~LZC+rYv7H-3?j`D9f#yiwCM`2_QILf6({|3{#rV#)D diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/solr/ssl-repo-client.truststore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/solr/ssl-repo-client.truststore index c09e6891a0e5e89969690e53b91828140b6e4e16..fd5a9dd615d9d1edcb2cba91df94d6b995f458d4 100644 GIT binary patch delta 1313 zcmX>swn%J(ibOF>S8+ZAYlNPufh7Y2^BsdG<{LolIMHT-w3)Gifu)g&fkl)!FOX?w zWC7(GR8B5rm!7Q4VLaKD(W8D*=lTD=+~3^G{-#BL-F8E5e&j~m2+Lo!7I9pOaWQwF z1{{*%oq1dB-Y07{_n3=a-ySYyc~g^MtrhdQZn|2e)!XY{nFr>%M=xMbDb_SCD0nWl zWP8-nr5r)CpHD5S<6Yvrt+nO(QJ1V1!Xksl&1}q}vdS!ts|^}g zG>GV~dFWWcVJ2q(^yCVjjpxs2FKO5_c>_}i7bnA%3L_Q2rR>_16S@5Ag?t-5Pd#T4 z)+>?Ly63pmwbIo@hC9Mw#eyZDg3Na1yqI0*Bih~;w&b}5ukh2)7nS2bYTUSfEq}#H z#W$BjY= zAzKZ0i!(fIi;p?}@0O5hzH#U&K}ju61_lNu29Dz59KE8{f_w%BMqs2BRUjhmDloz> z092F9p;e0})u zKgRPGl2*;B0tyi~R)ny1e>nz zZ$G4{FOqZm`u|So!DAogHa3$RRpzfhCH%2A$-R2|lDU~qYx4W&Q}_5 ze|7~WGbi`YZa?y@F<_=r@YWnt*&rL9O!4_wR`b6;u&G_+=cMP37q%;8h3kYh|0{7c z07n%+D5?^3(uz`xlk@eG6Cp8Hm<^9HrUwR1Ou($hFiIIs3DZwSMPnSfFK@(8E z1LjR|Hk_Q#-ZXgzt4#eC>D~X19qu^M7dx#_*E!-))nw;OrvEP8(Z8RooG3{hP~2V}e1P zfh;Ib@v(@pV9iek@{lYiVIYPh!_~4G)+@bk)PMJP$C`+96P5X`g;=)eruUt5n}u$Jxd*~eA9*- zS2p{k%bK!WI+J>D{{J5a_ZlaBXJ@qBGL6HdC}>`$`1ZNZr>3nJIe#HC88+ delta 1346 zcmZ1^c35nJibP@LiDO<2tPy&q29^vA%+C#)m>&bN&qSLA(k2ELhDOFFMn+NMyv7Cw zCI)6uu0iGGb!^g;`B{x8yE1yzUvA&*^qRNn($qE9#@8?G>C0k^478M9Q`;?S+uf3W zf5wS#zo&oNz5c@Cn``$4u3%tal@RgP_unUZfyLY3>@$8c4| zBoi|u1LNW*#v+3z#=OY_Y;hK5btm}i!;YQ5zP!pzSg>kyf^c%ILE}C)=1^H>md0%c zjhh=pI63YgI}OBz3jU!Nes}T)rVde&B!zAKzrBjTKjrwfOIFKxicLUd z&}0jCzk1UH+H3Th3vXvwIdeby|CMvyjm*7MxBlIAhw=26!)E&~XuJrUR?KkH{<7jM zuAu#oyT2|_WZU__xsomC!V$)Y69b>QzTjxjN-;ifc+&Wvzpvn$nJd(07#i+jUU5-r zve?GGx4)ie_qUFI+$Lx;FE83BjPGM|_lt8mEB*+wWdFIw?<2{;z`(@7UtFA{o0yYU zlvbA(8L6cN~VAX%uI|-OxQi-#xY$I7R83ZC^i8_u`xJ` z4WlLpvNTPu;FPI2k1V+Twzc5T-R6lWt*aZ)1n&7C zx5vbgVe07vZlO}MuI8$~6xy9Nw^fhD=QTs-e}1@l*9>!Mi*>i-#68zd+wJ+| z5rYcpJlYSzhxS&Mvx4_cMWwJmne_nHD(d^i_kS}>orHA=0W9B;ncKcGJ>^SHb;t|7v&G+F3Zf zHT3k%n{h<2xjZ*J@7{sDCcX>jlh5&JUSU}&`unHFgu^mEds>p~${G(pXE?o(^Kcsg D?P^A1 diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl-repo-client.keystore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl-repo-client.keystore index f1474dd04f3cbe8fed7fe9e6f68daf658e75e181..667ff43c9cc2d0ce0e4eec3cd341ca785e09ea95 100644 GIT binary patch literal 3265 zcmX?i?%X*B1_mZ5W@O+mF3!;{N-fCOP0qcoK zBMYMzlQ5$JKMM!HZ{G4BbF6kTF*EZzurx6>@Fa4I3pX)pdO2!|?|H?g*cYQOl%ApW zqV$81;=@AgFS~-xmOWF~`aQ$qDO>S^YhtHwoN{3`xwYw*PWMA4wM#X}it^Y0{wL>@ z`b{bJklExjO{OCM0yi7ay!Q1;U%@=@!qc3Q?}|KEGTJlx6g=Fe>q5mHw?;U7Pe%z22nl%FrsE$8>kU?-Rdw51Zyr-Q|~YW4+2N&X&l&h{QI{ zgIpCtlcj^sG(Np>-f(ef@P&k*_Cf0M%XD;rrcjsF7?gLNk&RfLA)HmMk{{P{S z!}~jjAAS|xbIbf-M2uS_b5r8^h$GPW*ng zdGZ%GhrS7SAJpCn+_(E#jm@;}YA4 zraewR^03R5`CQr;yJ_E!XX;Ac3i>|N;PONMm{p}O-fVGdh}6owTDH=t!^q#;y59f( zbl&KH%Edm%i{CGIS+Cidye#{Wr~N$n0==i(?yeVTE_yv7=tShqiyj4%Z>9J=9GXs) z?CJb;Yx3)gTwN~ns9lfe?|;-M8y1lg_$Sry(O-rmufsj>+0P1o8FfE?ezsqt-h(rH zwM(xoC-wSQ?oaSVW2Q0-0t;7ErE1CCp7& z97u*+viAGy&s!tz(GMI2XRT+H340f%IGXWmx3_sLq#J?3K9w}(qv-qa*m zYsEaSo30jV_4c|~=7D+c(F>SUiZx9O3Z6?X*&cOtDM!%k=TnR7c$fHYYi)Uc)Tic8 z=j3}GKabB2l8>Cq(rGnq=d%SbA7A0HYG-0*WMEv}#F%c-#Fz|@L0MrICIbdwlyN4s zc`&y9aAIU+VPR%sb1*PQ2=TJ0iK+M(q~-+&`zW}l=A{-TmZYXA1g932r4}hTrxulD zre!7r#lW#F%f}+dBGU4(`=QOeG=<9kbw}s11t@GV~ zdFWWcVJ2q(^yCVjjpxs2FKO7bu(4%HW8;9QuqIB1DHTR4eoNW4!6{RgpONuDC}da{ z7zl$rp~}Kzz{SP^EZ13C*_jy)L_mUqEW8HXO`JLT$%#1``Nbv3DFK*on1M+^$hXn+ z)N=-5y%K4ydyY$8D_u=wxFZZ!ELid>$ZS{6i`jKPqU~*AOP*Ws3P1gPQ91sj#*ORO z@>iTxe6wnPtzTuk$o8xKFV3XvNw@sH_kQ&u&nNx!mgsrDFReUV{b;4wF_9@+1@q*Z zZd^YavejU>IK#uX_?YAWZV8#@8;70}l;mW9Wpkznz`6;T)tOu&*&NBkgFm;MfO0#q zv;t@T0Z%M=^ZXX+-T#gq?l{pGJFQRGIpR>&Wamq!|1RC*(P^1rEO^gq$|8P=MZu5u zF}J4{_FuJ^x&BnoUu|E-DRwWeH#H9DKOZPQYos2xNi;31%gwH?VNuo1dm#qv(w1NpdGkif5|4hvfMLgE*wji7n$9 z$V2j`gn=0LoN2%VQXtI2YQPN43#hq*u?&S<%18iz+w(7aw5NtyW>_f~AZe*1%X(dwRB zAt`-XA;y|caIMCj2(57Rk`o~fvof{OJV1jg8DG6Ong<3d4@m9w-J-KG_JMQGmQ;Iz L8#!EFD<%K{QF(tC literal 3298 zcmeH}do+~$8pr3I8^g>nrbfhZOWPs#J4P;vjoBp`F2t(2z;g{ba zH~-@^0}v1xHyHwQ&qKLf$V{kd{d1>|h8byta^m+ev9HFj{E8K+K(&`FpINjDmD^m+ zx48cxy)-jx;WyG8%??-GmL{2XyD(aRil$7DRJgzTB1xSf<(81i#vonii*7I1cR7dt zv@(fDC^c+hP-Qz^4G6!~HJ8*p_o{7e!C)!a9;sQ&f5rY2Rgn)6xKJ1X0g609kL{+& zW8nn&4wUHA`z?2#yu4xG_)SiFqW!AY@ljAg&;WTA_%4tT^Z5d_umBH7fG_~q+U}sd zgy0Dd7hI+Ij}Jg_X<&jsk7->ggQ1($Onx4k3?7`!ew`>1P9p@g8aB6H(sbzaKaO9B z@P8y~aHXTnBL`HYU*8)ZAEDxIQnS`lFgzO z?hjCXF4f?7B~A-YnSnTN0m;9Q=vG*ZpC4jntIDpG52v{{RlNZd1d;$C5^Oe8lf?)Y z$bsq02;>NIAujE0V*)Ld3Up8i${|r2NB|C~L-7D80T*3&pVRLQ)Xjs!U>FlP4;o_( zfWzTGsMwJ;$;H-a%l&nx2XfsElbmrEBNA#{u?2%!=0B$PR#98D-5tb{+`=H^bI!&E znL}FAeRra&v!gWX59LKu>aYiTtIhJ%L!1&a%!B*vUf|FAMi$Mb+O9A!+B9_Kcww(K z@UoeSmNsMGCLiQwWV)z?cTAeK4)*fHY)?n+nm^8j{%{iYMtLNriGN|CBuM?x!oyhU`_!Ep?NLTU1{kB<~rP z^ot;m`dN*6dncJ05Rc$D?Q1vkI@}ya<|7WaJlv-}@$=Hm8De`J;@f9phljN9N` z@BM?1VeNSfvwm(%Ut3HPD_0ARJWH|}(&@DmS6zqpnI^AQP*wZF>c;yLzY6O~U%zqt z3IFX>_0fbVf08r>lA5aUb=%473Es)8=BjQD-qvzA^gCgjR);*BmmR{y-BYP8T?gyz zM=j1@R(V>C44Bzxs6bCNYD}J8rBCIh8I8ZfE68rtP~7hB7+FpnP|Hl&TB45bT$3Jb zt9S6;gSE^A(ERBE&nA_aIvmbD1%n+wAdy02_RmS$=``CvdpSCfrWH0{5UVDM1zIHiPRB4n^ZgwfFq%0p6W|pFNIUsB6iAKN*({WPjLUZ1fi(b-l zu0{K`l9R_8?|2ig?j|>wQ66rS{XM{80(iqF1dH+x;80266Xkt*8vZw~wFS5)3308v zjcaXJF!H^He8x}y2kTG=)!tc$(x=v8Cy+hcmlMQ_R3vYUAN(^=_no_CHiO|k%BVCX z4fHmq_#s_v4R%*XC+##!I(zDAR{QVknTrk8y$=Sf__k#bkqS@eS*y2;3X(;4U-ETj zA`#a^UV+NF#?BhnucHS-(#hpZ|YjwMOc zt43~1tcBe~Z1VbbT;7422e3dM5V&o)0@y-9h`?b{p7BS3_*F9i5W*H|0+Rld!oc?u z_Sgh70`2W7isp^*ZoJk#2Kfyo`LU9>*8^z zZ+YTr?jV={&H%WzAoteiE#NBmY%!Pn#cvqz^J9x}rug7UhyoBVj8)-iPz)(5Ks*8= z0t3Ju!Xyrk0mXSJW)O|a^a)~fK9P{ny!PMIsMLxL8TL6q79ZbQMqPjG+mvx8*_w zuJUr(-Yg=q5mxq-ayp@=X?VFu#K!Q%L_AI>FYpA#3HyqcG~LZC+rYv7H-3?j`D9f#yiwCM`2_QILf6({|3{#rV#)D diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl-repo-client.truststore b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/keystores/7.x/zeppelin/ssl-repo-client.truststore index c09e6891a0e5e89969690e53b91828140b6e4e16..fd5a9dd615d9d1edcb2cba91df94d6b995f458d4 100644 GIT binary patch delta 1313 zcmX>swn%J(ibOF>S8+ZAYlNPufh7Y2^BsdG<{LolIMHT-w3)Gifu)g&fkl)!FOX?w zWC7(GR8B5rm!7Q4VLaKD(W8D*=lTD=+~3^G{-#BL-F8E5e&j~m2+Lo!7I9pOaWQwF z1{{*%oq1dB-Y07{_n3=a-ySYyc~g^MtrhdQZn|2e)!XY{nFr>%M=xMbDb_SCD0nWl zWP8-nr5r)CpHD5S<6Yvrt+nO(QJ1V1!Xksl&1}q}vdS!ts|^}g zG>GV~dFWWcVJ2q(^yCVjjpxs2FKO5_c>_}i7bnA%3L_Q2rR>_16S@5Ag?t-5Pd#T4 z)+>?Ly63pmwbIo@hC9Mw#eyZDg3Na1yqI0*Bih~;w&b}5ukh2)7nS2bYTUSfEq}#H z#W$BjY= zAzKZ0i!(fIi;p?}@0O5hzH#U&K}ju61_lNu29Dz59KE8{f_w%BMqs2BRUjhmDloz> z092F9p;e0})u zKgRPGl2*;B0tyi~R)ny1e>nz zZ$G4{FOqZm`u|So!DAogHa3$RRpzfhCH%2A$-R2|lDU~qYx4W&Q}_5 ze|7~WGbi`YZa?y@F<_=r@YWnt*&rL9O!4_wR`b6;u&G_+=cMP37q%;8h3kYh|0{7c z07n%+D5?^3(uz`xlk@eG6Cp8Hm<^9HrUwR1Ou($hFiIIs3DZwSMPnSfFK@(8E z1LjR|Hk_Q#-ZXgzt4#eC>D~X19qu^M7dx#_*E!-))nw;OrvEP8(Z8RooG3{hP~2V}e1P zfh;Ib@v(@pV9iek@{lYiVIYPh!_~4G)+@bk)PMJP$C`+96P5X`g;=)eruUt5n}u$Jxd*~eA9*- zS2p{k%bK!WI+J>D{{J5a_ZlaBXJ@qBGL6HdC}>`$`1ZNZr>3nJIe#HC88+ delta 1346 zcmZ1^c35nJibP@LiDO<2tPy&q29^vA%+C#)m>&bN&qSLA(k2ELhDOFFMn+NMyv7Cw zCI)6uu0iGGb!^g;`B{x8yE1yzUvA&*^qRNn($qE9#@8?G>C0k^478M9Q`;?S+uf3W zf5wS#zo&oNz5c@Cn``$4u3%tal@RgP_unUZfyLY3>@$8c4| zBoi|u1LNW*#v+3z#=OY_Y;hK5btm}i!;YQ5zP!pzSg>kyf^c%ILE}C)=1^H>md0%c zjhh=pI63YgI}OBz3jU!Nes}T)rVde&B!zAKzrBjTKjrwfOIFKxicLUd z&}0jCzk1UH+H3Th3vXvwIdeby|CMvyjm*7MxBlIAhw=26!)E&~XuJrUR?KkH{<7jM zuAu#oyT2|_WZU__xsomC!V$)Y69b>QzTjxjN-;ifc+&Wvzpvn$nJd(07#i+jUU5-r zve?GGx4)ie_qUFI+$Lx;FE83BjPGM|_lt8mEB*+wWdFIw?<2{;z`(@7UtFA{o0yYU zlvbA(8L6cN~VAX%uI|-OxQi-#xY$I7R83ZC^i8_u`xJ` z4WlLpvNTPu;FPI2k1V+Twzc5T-R6lWt*aZ)1n&7C zx5vbgVe07vZlO}MuI8$~6xy9Nw^fhD=QTs-e}1@l*9>!Mi*>i-#68zd+wJ+| z5rYcpJlYSzhxS&Mvx4_cMWwJmne_nHD(d^i_kS}>orHA=0W9B;ncKcGJ>^SHb;t|7v&G+F3Zf zHT3k%n{h<2xjZ*J@7{sDCcX>jlh5&JUSU}&`unHFgu^mEds>p~${G(pXE?o(^Kcsg D?P^A1 From aa7b32e981c5cc403e64368d4b5625c7b57cd767 Mon Sep 17 00:00:00 2001 From: alfresco-build Date: Wed, 15 Jul 2020 10:01:27 +0000 Subject: [PATCH 61/65] [maven-release-plugin] prepare release 2.0.0-A2 --- e2e-test/pom.xml | 2 +- pom.xml | 4 ++-- search-services/alfresco-search/pom.xml | 4 ++-- search-services/alfresco-solrclient-lib/pom.xml | 2 +- search-services/packaging/pom.xml | 2 +- search-services/pom.xml | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index e6f71d099..fce3b3ee8 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -3,7 +3,7 @@ org.alfresco alfresco-search-and-insight-parent - 2.0.0-SNAPSHOT + 2.0.0-A2 search-analytics-e2e-test search-analytics-e2e-test diff --git a/pom.xml b/pom.xml index 9bb3bdfd7..400ca8302 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ 10 alfresco-search-and-insight-parent - 2.0.0-SNAPSHOT + 2.0.0-A2 pom Alfresco Search And Insight Parent @@ -24,7 +24,7 @@ scm:git:ssh://git@github.com/Alfresco/InsightEngine.git scm:git:ssh://git@github.com/Alfresco/InsightEngine.git scm:git:ssh://git@github.com/Alfresco/InsightEngine.git - HEAD + 2.0.0-A2 11 diff --git a/search-services/alfresco-search/pom.xml b/search-services/alfresco-search/pom.xml index 091ce549a..646ba7bad 100644 --- a/search-services/alfresco-search/pom.xml +++ b/search-services/alfresco-search/pom.xml @@ -6,7 +6,7 @@ org.alfresco alfresco-search-parent - 2.0.0-SNAPSHOT + 2.0.0-A2 ../pom.xml @@ -15,7 +15,7 @@ org.alfresco alfresco-solrclient-lib - 2.0.0-SNAPSHOT + 2.0.0-A2 servlet-api diff --git a/search-services/alfresco-solrclient-lib/pom.xml b/search-services/alfresco-solrclient-lib/pom.xml index be8043b36..c89d4c452 100644 --- a/search-services/alfresco-solrclient-lib/pom.xml +++ b/search-services/alfresco-solrclient-lib/pom.xml @@ -7,7 +7,7 @@ org.alfresco alfresco-search-parent - 2.0.0-SNAPSHOT + 2.0.0-A2 diff --git a/search-services/packaging/pom.xml b/search-services/packaging/pom.xml index 7d42ed0b7..291779bed 100644 --- a/search-services/packaging/pom.xml +++ b/search-services/packaging/pom.xml @@ -13,7 +13,7 @@ org.alfresco alfresco-search-parent - 2.0.0-SNAPSHOT + 2.0.0-A2 ../pom.xml diff --git a/search-services/pom.xml b/search-services/pom.xml index 4d2570772..07c4a8778 100644 --- a/search-services/pom.xml +++ b/search-services/pom.xml @@ -4,13 +4,13 @@ org.alfresco alfresco-search-and-insight-parent - 2.0.0-SNAPSHOT + 2.0.0-A2 org.alfresco alfresco-search-parent - 2.0.0-SNAPSHOT + 2.0.0-A2 pom Alfresco Solr Search parent From e5d0c8b61b4a5c2a294f588f3fae7eef8581daff Mon Sep 17 00:00:00 2001 From: alfresco-build Date: Wed, 15 Jul 2020 10:01:36 +0000 Subject: [PATCH 62/65] [maven-release-plugin] prepare for next development iteration --- e2e-test/pom.xml | 2 +- pom.xml | 4 ++-- search-services/alfresco-search/pom.xml | 4 ++-- search-services/alfresco-solrclient-lib/pom.xml | 2 +- search-services/packaging/pom.xml | 2 +- search-services/pom.xml | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml index fce3b3ee8..e6f71d099 100644 --- a/e2e-test/pom.xml +++ b/e2e-test/pom.xml @@ -3,7 +3,7 @@ org.alfresco alfresco-search-and-insight-parent - 2.0.0-A2 + 2.0.0-SNAPSHOT search-analytics-e2e-test search-analytics-e2e-test diff --git a/pom.xml b/pom.xml index 400ca8302..9bb3bdfd7 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ 10 alfresco-search-and-insight-parent - 2.0.0-A2 + 2.0.0-SNAPSHOT pom Alfresco Search And Insight Parent @@ -24,7 +24,7 @@ scm:git:ssh://git@github.com/Alfresco/InsightEngine.git scm:git:ssh://git@github.com/Alfresco/InsightEngine.git scm:git:ssh://git@github.com/Alfresco/InsightEngine.git - 2.0.0-A2 + HEAD 11 diff --git a/search-services/alfresco-search/pom.xml b/search-services/alfresco-search/pom.xml index 646ba7bad..091ce549a 100644 --- a/search-services/alfresco-search/pom.xml +++ b/search-services/alfresco-search/pom.xml @@ -6,7 +6,7 @@ org.alfresco alfresco-search-parent - 2.0.0-A2 + 2.0.0-SNAPSHOT ../pom.xml @@ -15,7 +15,7 @@ org.alfresco alfresco-solrclient-lib - 2.0.0-A2 + 2.0.0-SNAPSHOT servlet-api diff --git a/search-services/alfresco-solrclient-lib/pom.xml b/search-services/alfresco-solrclient-lib/pom.xml index c89d4c452..be8043b36 100644 --- a/search-services/alfresco-solrclient-lib/pom.xml +++ b/search-services/alfresco-solrclient-lib/pom.xml @@ -7,7 +7,7 @@ org.alfresco alfresco-search-parent - 2.0.0-A2 + 2.0.0-SNAPSHOT diff --git a/search-services/packaging/pom.xml b/search-services/packaging/pom.xml index 291779bed..7d42ed0b7 100644 --- a/search-services/packaging/pom.xml +++ b/search-services/packaging/pom.xml @@ -13,7 +13,7 @@ org.alfresco alfresco-search-parent - 2.0.0-A2 + 2.0.0-SNAPSHOT ../pom.xml diff --git a/search-services/pom.xml b/search-services/pom.xml index 07c4a8778..4d2570772 100644 --- a/search-services/pom.xml +++ b/search-services/pom.xml @@ -4,13 +4,13 @@ org.alfresco alfresco-search-and-insight-parent - 2.0.0-A2 + 2.0.0-SNAPSHOT org.alfresco alfresco-search-parent - 2.0.0-A2 + 2.0.0-SNAPSHOT pom Alfresco Solr Search parent From 5a47f748d3cad10e322ebab3bf6f14f1c4df0b3c Mon Sep 17 00:00:00 2001 From: Tom Page Date: Wed, 15 Jul 2020 11:08:42 +0100 Subject: [PATCH 63/65] Allow configuring the search log level. --- .../generators/app/index.js | 16 +- .../app/templates/6.1/docker-compose-ce.yml | 3 +- .../app/templates/6.1/docker-compose-ee.yml | 3 +- .../app/templates/6.2/docker-compose-ce.yml | 3 +- .../app/templates/6.2/docker-compose-ee.yml | 1 + .../app/templates/images/search/Dockerfile | 8 + .../templates/latest/docker-compose-ce.yml | 3 +- .../templates/latest/docker-compose-ee.yml | 1 + .../package-lock.json | 2188 +++++++++++++++++ .../package.json | 3 +- 10 files changed, 2223 insertions(+), 6 deletions(-) diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/index.js b/e2e-test/generator-alfresco-docker-compose/generators/app/index.js index 568bcffbd..fe58f161e 100644 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/index.js +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/index.js @@ -102,6 +102,19 @@ module.exports = class extends Generator { ], default: 'DB_ID' }, + { + type: 'list', + name: 'searchLogLevel', + message: 'What log level do you want to use for search?', + choices: [ + "TRACE", + "DEBUG", + "INFO", + "WARN", + "ERROR" + ], + default: 'WARN' + }, { whenFunction: response => response.alfrescoVersion == 'enterprise', type: 'confirm', @@ -214,7 +227,8 @@ module.exports = class extends Generator { zeppelin: (this.props.zeppelin ? "true" : "false"), sharding: (this.props.sharding ? "true" : "false"), shardingMethod: (this.props.shardingMethod), - gzip: (this.props.gzip ? "true" : "false") + gzip: (this.props.gzip ? "true" : "false"), + searchLogLevel: this.props.searchLogLevel } ); diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ce.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ce.yml index 50a2154f0..91d991f2d 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ce.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ce.yml @@ -50,6 +50,7 @@ services: KEYSTORE_TYPE: JCEKS <% } %> <% if (replication) { %> ENABLE_MASTER: "true" ENABLE_SLAVE: "false" <% } %> + SEARCH_LOG_LEVEL: <%=searchLogLevel%> mem_limit: 1200m environment: #Solr needs to know how to register itself with Alfresco @@ -183,4 +184,4 @@ services: - alfresco - share - solr6 - - content-app \ No newline at end of file + - content-app diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ee.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ee.yml index 583b40507..379e172a1 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ee.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ee.yml @@ -69,6 +69,7 @@ services: SHARD_KEY: "shard:shardId" <% } %> <% if (shardingMethod == 'EXPLICIT_ID' || shardingMethod == 'EXPLICIT_ID_FALLBACK_LRIS') { %> SHARD_KEY: "shard:shardId" <% } %> SHARDING_METHOD: <%=shardingMethod%> <% } %> + SEARCH_LOG_LEVEL: <%=searchLogLevel%> mem_limit: 1200m environment: #Solr needs to know how to register itself with Alfresco @@ -331,4 +332,4 @@ volumes: shared-file-store-volume: driver_opts: type: tmpfs - device: tmpfs \ No newline at end of file + device: tmpfs diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml index 0773340eb..d24da5d3d 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml @@ -68,6 +68,7 @@ services: ENABLE_MASTER: "true" ENABLE_SLAVE: "false" <% } %> COMPRESS_CONTENT: "<%=gzip%>" + SEARCH_LOG_LEVEL: <%=searchLogLevel%> mem_limit: 1200m environment: #Solr needs to know how to register itself with Alfresco @@ -242,4 +243,4 @@ services: - alfresco - share - solr6 - - content-app \ No newline at end of file + - content-app diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml index 1efb7dd31..9a13b34b4 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml @@ -72,6 +72,7 @@ services: SHARD_KEY: "shard:shardId" <% } %> SHARDING_METHOD: <%=shardingMethod%> <% } %> COMPRESS_CONTENT: "<%=gzip%>" + SEARCH_LOG_LEVEL: <%=searchLogLevel%> mem_limit: 1200m environment: #Solr needs to know how to register itself with Alfresco diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile index cac554a1c..eb48a8e69 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile @@ -152,4 +152,12 @@ fi RUN mkdir ${DIST_DIR}/keystore \ && chown -R solr:solr ${DIST_DIR}/keystore +# Set the search log level if requested. +ARG SEARCH_LOG_LEVEL +ENV SEARCH_LOG_LEVEL $SEARCH_LOG_LEVEL +RUN if [ "$SEARCH_LOG_LEVEL" ] ; then \ + sed -i '/^bash.*/i sed -i "'"s/log4j.rootLogger=WARN, file, CONSOLE/log4j.rootLogger=${SEARCH_LOG_LEVEL}, file, CONSOLE/g"'" ${DIST_DIR}/logs/log4j.properties\n' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh; \ +fi + VOLUME ["${DIST_DIR}/keystore"] diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml index fb3ab2c01..2099d0f84 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml @@ -61,6 +61,7 @@ services: ENABLE_MASTER: "true" ENABLE_SLAVE: "false" <% } %> COMPRESS_CONTENT: "<%=gzip%>" + SEARCH_LOG_LEVEL: <%=searchLogLevel%> mem_limit: 1200m environment: #Solr needs to know how to register itself with Alfresco @@ -203,4 +204,4 @@ services: - alfresco - share - solr6 - - content-app \ No newline at end of file + - content-app diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml index 0157513d3..60fe9c25c 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml @@ -91,6 +91,7 @@ services: SHARD_KEY: "shard:shardId" <% } %> SHARDING_METHOD: <%=shardingMethod%> <% } %> COMPRESS_CONTENT: "<%=gzip%>" + SEARCH_LOG_LEVEL: <%=searchLogLevel%> mem_limit: 1200m environment: #Solr needs to know how to register itself with Alfresco diff --git a/e2e-test/generator-alfresco-docker-compose/package-lock.json b/e2e-test/generator-alfresco-docker-compose/package-lock.json index 82f81bdcb..05ee49e10 100644 --- a/e2e-test/generator-alfresco-docker-compose/package-lock.json +++ b/e2e-test/generator-alfresco-docker-compose/package-lock.json @@ -4,6 +4,14 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/runtime": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", + "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -18,6 +26,44 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" }, + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" + }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", + "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=" + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "requires": { + "string-width": "^2.0.0" + } + }, "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", @@ -36,6 +82,15 @@ "color-convert": "^1.9.0" } }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -56,6 +111,11 @@ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=" }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -79,11 +139,29 @@ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" + }, "async": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", @@ -92,11 +170,26 @@ "lodash": "^4.17.14" } }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", + "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -152,11 +245,76 @@ } } }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bin-version": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-2.0.0.tgz", + "integrity": "sha1-LMldg7Uive8umZeOdq61SRyBFP8=", + "requires": { + "execa": "^0.1.1", + "find-versions": "^2.0.0" + }, + "dependencies": { + "execa": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.1.1.tgz", + "integrity": "sha1-sJwqkwm8DvBQFHlHLbMYD41MPt0=", + "requires": { + "cross-spawn-async": "^2.1.1", + "object-assign": "^4.0.1", + "strip-eof": "^1.0.0" + } + } + } + }, + "bin-version-check": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-3.0.0.tgz", + "integrity": "sha1-4k6/prY8sDh8X8F0+G5cyBLKfMk=", + "requires": { + "bin-version": "^2.0.0", + "semver": "^5.1.0", + "semver-truncate": "^1.0.0" + } + }, "binaryextensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.2.0.tgz", "integrity": "sha512-bHhs98rj/7i/RZpCSJ3uk55pLXOItjIrh2sRQZSM6OoktScX+LxJzvlU+FELp9j3TdcddTmmYArLSGptCTwjuw==" }, + "boolean": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz", + "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==" + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -212,6 +370,11 @@ "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -228,11 +391,56 @@ "unset-value": "^1.0.0" } }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" + } + } + }, "call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -248,6 +456,11 @@ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" + }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -269,6 +482,11 @@ } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, "cli-boxes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", @@ -282,6 +500,11 @@ "restore-cursor": "^2.0.0" } }, + "cli-list": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/cli-list/-/cli-list-0.2.0.tgz", + "integrity": "sha1-fmc+4N05phGkhkduU/PGs5QctYI=" + }, "cli-table": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", @@ -305,6 +528,23 @@ "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" }, + "clone-regexp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz", + "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==", + "requires": { + "is-regexp": "^1.0.0", + "is-supported-regexp-flag": "^1.0.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, "clone-stats": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", @@ -352,6 +592,14 @@ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -367,16 +615,74 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "conf": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/conf/-/conf-1.4.0.tgz", + "integrity": "sha512-bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==", + "requires": { + "dot-prop": "^4.1.0", + "env-paths": "^1.0.0", + "make-dir": "^1.0.0", + "pkg-up": "^2.0.0", + "write-file-atomic": "^2.3.0" + } + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -389,11 +695,41 @@ "which": "^1.2.9" } }, + "cross-spawn-async": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz", + "integrity": "sha1-hF/wwINKPe2dFg2sptOQkGuyiMw=", + "requires": { + "lru-cache": "^4.0.0", + "which": "^1.2.8" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "^1.0.1" + } + }, "dargs": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-5.1.0.tgz", "integrity": "sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk=" }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, "dateformat": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", @@ -407,6 +743,11 @@ "ms": "^2.1.1" } }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -425,6 +766,19 @@ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, + "default-uid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-uid/-/default-uid-1.0.0.tgz", + "integrity": "sha1-/O+p359axAyJFtkS3R/hFGqjxZ4=" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -462,11 +816,26 @@ } } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, "detect-conflict": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=" }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" + }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", @@ -480,11 +849,37 @@ "path-type": "^3.0.0" } }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "requires": { + "is-obj": "^1.0.0" + } + }, + "downgrade-root": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/downgrade-root/-/downgrade-root-1.2.2.tgz", + "integrity": "sha1-UxMZcVsOgf/MIusoR4uidkPhLGw=", + "requires": { + "default-uid": "^1.0.0", + "is-root": "^1.0.0" + } + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, "editions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.0.tgz", @@ -506,6 +901,24 @@ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "env-paths": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", + "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=" + }, "errlop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/errlop/-/errlop-2.0.0.tgz", @@ -527,11 +940,58 @@ "is-arrayish": "^0.2.1" } }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "execall": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz", + "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=", + "requires": { + "clone-regexp": "^1.0.0" + } + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=" + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -577,6 +1037,11 @@ } } }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", @@ -665,6 +1130,16 @@ } } }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, "fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", @@ -678,6 +1153,11 @@ "micromatch": "^3.1.10" } }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -707,6 +1187,11 @@ } } }, + "filter-obj": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-2.0.1.tgz", + "integrity": "sha512-yDEp513p7+iLdFHWBVdZFnRiOYwg8ZqmpaAiZCMjzqsbo7tCS4Qm4ulXOht337NGzkukKa9u3W4wqQ9tQPm3Ug==" + }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -715,6 +1200,15 @@ "locate-path": "^2.0.0" } }, + "find-versions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-2.0.0.tgz", + "integrity": "sha1-KtkNSQ9oKMGqQCks9wmsMxghDDw=", + "requires": { + "array-uniq": "^1.0.0", + "semver-regex": "^1.0.0" + } + }, "first-chunk-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", @@ -728,6 +1222,26 @@ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, + "foreachasync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz", + "integrity": "sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -736,11 +1250,45 @@ "map-cache": "^0.2.2" } }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fullname": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/fullname/-/fullname-4.0.1.tgz", + "integrity": "sha512-jVT8q9Ah9JwqfIGKwKzTdbRRthdPpIjEe9kgvxM104Tv+q6SgOAQqJMVP90R0DBRAqejGMHDRWJtl3Ats6BjfQ==", + "requires": { + "execa": "^1.0.0", + "filter-obj": "^2.0.0", + "mem": "^5.1.0", + "p-any": "^2.1.0", + "passwd-user": "^3.0.0", + "rc": "^1.2.8" + } + }, + "gauge": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz", + "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=", + "requires": { + "ansi": "^0.3.0", + "has-unicode": "^2.0.0", + "lodash.pad": "^4.1.0", + "lodash.padend": "^4.1.0", + "lodash.padstart": "^4.1.0" + } + }, "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", @@ -756,6 +1304,14 @@ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, "gh-got": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-6.0.0.tgz", @@ -810,6 +1366,54 @@ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, + "global-agent": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz", + "integrity": "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==", + "requires": { + "boolean": "^3.0.1", + "core-js": "^3.6.5", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + } + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "requires": { + "ini": "^1.3.4" + } + }, + "global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "requires": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + } + }, + "globalthis": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", + "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", + "requires": { + "define-properties": "^1.1.3" + } + }, "globby": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", @@ -857,6 +1461,20 @@ "lodash": "^4.17.15" } }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", @@ -890,6 +1508,11 @@ "has-symbol-support-x": "^1.4.1" } }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -924,6 +1547,29 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "humanize-string": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/humanize-string/-/humanize-string-1.0.2.tgz", + "integrity": "sha512-PH5GBkXqFxw5+4eKaKRIkD23y6vRd/IXSl7IldyJxEXpDH9SEIXRORkBtkGni/ae2P7RVOw6Wxypd2tGXhha1w==", + "requires": { + "decamelize": "^1.0.0" + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -937,6 +1583,21 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -951,6 +1612,11 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, "inquirer": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", @@ -986,11 +1652,48 @@ } } }, + "insight": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/insight/-/insight-0.10.3.tgz", + "integrity": "sha512-YOncxSN6Omh+1Oqxt+OJAvJVMDKw7l6IEG0wT2cTMGxjsTcroOGW4IR926QDzxg/uZHcFZ2cZbckDWdZhc2pZw==", + "requires": { + "async": "^2.6.2", + "chalk": "^2.4.2", + "conf": "^1.4.0", + "inquirer": "^6.3.1", + "lodash.debounce": "^4.0.8", + "os-name": "^3.1.0", + "request": "^2.88.0", + "tough-cookie": "^3.0.1", + "uuid": "^3.3.2" + } + }, "interpret": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "requires": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + }, + "dependencies": { + "p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=" + } + } + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -1019,6 +1722,14 @@ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "requires": { + "ci-info": "^1.5.0" + } + }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -1054,6 +1765,11 @@ } } }, + "is-docker": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-1.1.0.tgz", + "integrity": "sha1-8EN01O7lMQ6ajhE78UlUEeRhdqE=" + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -1064,6 +1780,11 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", @@ -1077,6 +1798,20 @@ "is-extglob": "^2.1.1" } }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -1095,11 +1830,24 @@ } } }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, "is-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", @@ -1118,11 +1866,26 @@ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + }, "is-retry-allowed": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" }, + "is-root": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz", + "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=" + }, "is-scoped": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", @@ -1136,6 +1899,16 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-supported-regexp-flag": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz", + "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -1146,6 +1919,11 @@ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -1169,6 +1947,11 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, "istextorbinary": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.6.0.tgz", @@ -1188,16 +1971,99 @@ "is-object": "^1.0.1" } }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "requires": { + "json-buffer": "3.0.0" + } + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "requires": { + "package-json": "^4.0.0" + }, + "dependencies": { + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + } + } + }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -1218,11 +2084,39 @@ "path-exists": "^3.0.0" } }, + "locutus": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/locutus/-/locutus-2.0.11.tgz", + "integrity": "sha512-C0q1L38lK5q1t+wE0KY21/9szrBHxye6o2z5EJzU+5B79tubNOC+nLAEzTTn1vPUGoUuehKh8kYKqiVUTWRyaQ==", + "requires": { + "es6-promise": "^4.2.5" + } + }, "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.pad": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz", + "integrity": "sha1-QzCUmoM6fI2iLMIPaibE1Z3runA=" + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=" + }, + "lodash.padstart": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", + "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=" + }, "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", @@ -1231,11 +2125,34 @@ "chalk": "^2.0.1" } }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "macos-release": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.4.0.tgz", + "integrity": "sha512-ko6deozZYiAkqa/0gmcsz+p4jSy3gY7/ZsCEokPaYd8k+6/aXGkiTgr61+Owup7Sf+xjqW8u2ElhoM9SEcEfuA==" + }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -1244,11 +2161,24 @@ "pify": "^3.0.0" } }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "requires": { + "p-defer": "^1.0.0" + } + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -1257,6 +2187,38 @@ "object-visit": "^1.0.0" } }, + "matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "requires": { + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + } + } + }, + "mem": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/mem/-/mem-5.1.1.tgz", + "integrity": "sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==", + "requires": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^2.1.0", + "p-is-promise": "^2.1.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + } + } + }, "mem-fs": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", @@ -1312,6 +2274,104 @@ "vinyl": "^2.0.1" } }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, "merge2": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", @@ -1337,6 +2397,19 @@ "to-regex": "^3.0.2" } }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "requires": { + "mime-db": "1.44.0" + } + }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", @@ -1442,11 +2515,74 @@ "validate-npm-package-license": "^3.0.1" } }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + }, + "dependencies": { + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + } + } + }, + "npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "requires": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + } + }, + "npm-keyword": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-keyword/-/npm-keyword-5.0.0.tgz", + "integrity": "sha1-mbha7Cn8s4jS3TUfABO/Umh4fmc=", + "requires": { + "got": "^7.1.0", + "registry-url": "^3.0.3" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.4.tgz", + "integrity": "sha1-mLUlMPJRTKkNCexbIsiEZyI3VpI=", + "requires": { + "ansi": "~0.3.1", + "are-we-there-yet": "~1.1.2", + "gauge": "~1.2.5" + } + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", @@ -1475,6 +2611,11 @@ } } }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -1507,21 +2648,75 @@ "mimic-fn": "^1.0.0" } }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "requires": { + "is-wsl": "^1.1.0" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-name": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", + "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "requires": { + "macos-release": "^2.2.0", + "windows-release": "^3.1.0" + } + }, + "os-shim": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", + "integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=" + }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, + "p-any": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-any/-/p-any-2.1.0.tgz", + "integrity": "sha512-JAERcaMBLYKMq+voYw36+x5Dgh47+/o7yuv2oQYuSSUml4YeqJEFznBrY2UeEkoSHqBua6hz518n/PsowTYLLg==", + "requires": { + "p-cancelable": "^2.0.0", + "p-some": "^4.0.0", + "type-fest": "^0.3.0" + }, + "dependencies": { + "p-cancelable": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz", + "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==" + } + } + }, "p-cancelable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" + }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -1538,6 +2733,22 @@ "p-limit": "^1.1.0" } }, + "p-some": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-some/-/p-some-4.1.0.tgz", + "integrity": "sha512-MF/HIbq6GeBqTrTIl5OJubzkGU+qfFhAFi0gnTAK6rgEIJIknEiABHOTtQu4e6JiXjIwuMPMUFQzyHh5QjCl1g==", + "requires": { + "aggregate-error": "^3.0.0", + "p-cancelable": "^2.0.0" + }, + "dependencies": { + "p-cancelable": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz", + "integrity": "sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==" + } + } + }, "p-timeout": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", @@ -1551,11 +2762,82 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, + "package-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-5.0.0.tgz", + "integrity": "sha512-EeHQFFTlEmLrkIQoxbE9w0FuAWHoc1XpthDqnZ/i9keOt701cteyXwAxQFLpVqVjj3feh2TodkihjLaRUtIgLg==", + "requires": { + "got": "^8.3.1", + "registry-auth-token": "^3.3.2", + "registry-url": "^3.1.0", + "semver": "^5.5.0" + }, + "dependencies": { + "got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "requires": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + } + }, + "p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==" + }, + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "requires": { + "p-finally": "^1.0.0" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + } + } + } + }, "pad-component": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/pad-component/-/pad-component-0.0.1.tgz", "integrity": "sha1-rR8izhvw/cDW3dkIrxfzUaQEuKw=" }, + "parse-help": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-help/-/parse-help-1.0.0.tgz", + "integrity": "sha512-dlOrbBba6Rrw/nrJ+V7/vkGZdiimWJQzMHZZrYsUq03JE8AV3fAv6kOYX7dP/w2h67lIdmRf8ES8mU44xAgE/Q==", + "requires": { + "execall": "^1.0.0" + } + }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -1570,6 +2852,14 @@ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, + "passwd-user": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/passwd-user/-/passwd-user-3.0.0.tgz", + "integrity": "sha512-Iu90rROks+uDK00ppSewoZyqeCwjGR6W8PcY0Phl8YFWju/lRmIogQb98+vSb5RUeYkONL3IC4ZLBFg4FiE0Hg==", + "requires": { + "execa": "^1.0.0" + } + }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", @@ -1585,6 +2875,11 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -1603,6 +2898,11 @@ "pify": "^3.0.0" } }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -1621,6 +2921,14 @@ "pinkie": "^2.0.0" } }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "requires": { + "find-up": "^2.1.0" + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -1641,6 +2949,61 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, "read-chunk": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-2.1.0.tgz", @@ -1698,6 +3061,30 @@ "resolve": "^1.1.6" } }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } + } + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", @@ -1707,6 +3094,23 @@ "safe-regex": "^1.1.0" } }, + "registry-auth-token": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", + "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "requires": { + "rc": "^1.0.1" + } + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -1722,11 +3126,57 @@ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, "replace-ext": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, "resolve": { "version": "1.15.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", @@ -1740,6 +3190,14 @@ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -1762,6 +3220,28 @@ "glob": "^7.1.3" } }, + "roarr": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz", + "integrity": "sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==", + "requires": { + "boolean": "^3.0.0", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + } + }, + "root-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/root-check/-/root-check-1.0.0.tgz", + "integrity": "sha1-xSp5S/Dbn61WdTbkGJjwyeCoZpc=", + "requires": { + "downgrade-root": "^1.0.0", + "sudo-block": "^1.1.0" + } + }, "run-async": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", @@ -1770,6 +3250,11 @@ "is-promise": "^2.1.0" } }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" + }, "rxjs": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", @@ -1806,6 +3291,47 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "requires": { + "semver": "^5.0.3" + } + }, + "semver-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz", + "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=" + }, + "semver-truncate": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", + "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=", + "requires": { + "semver": "^5.3.0" + } + }, + "serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "requires": { + "type-fest": "^0.13.1" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" + } + } + }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -1970,6 +3496,23 @@ } } }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "sort-on": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sort-on/-/sort-on-3.0.0.tgz", + "integrity": "sha512-e2RHeY1iM6dT9od3RoqeJSyz3O7naNFsGy34+EFEcwghjAncuOXC2/Xwq87S4FbypqLVp6PcizYEsGEGsGIDXA==", + "requires": { + "arrify": "^1.0.0", + "dot-prop": "^4.1.1" + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -1992,6 +3535,15 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, + "spawn-sync": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", + "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=", + "requires": { + "concat-stream": "^1.4.7", + "os-shim": "^0.1.2" + } + }, "spdx-correct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", @@ -2028,6 +3580,27 @@ "extend-shallow": "^3.0.0" } }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", @@ -2047,6 +3620,20 @@ } } }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "requires": { + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" + } + }, "string-template": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", @@ -2108,6 +3695,71 @@ } } }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "sudo-block": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/sudo-block/-/sudo-block-1.2.0.tgz", + "integrity": "sha1-zFOb+BkWJNT1B9g+60W0zqJ/NGM=", + "requires": { + "chalk": "^1.0.0", + "is-docker": "^1.0.0", + "is-root": "^1.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -2116,6 +3768,167 @@ "has-flag": "^3.0.0" } }, + "tabtab": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/tabtab/-/tabtab-1.3.2.tgz", + "integrity": "sha1-u5wspjJPZZ/edjTCyvPAluEYfKc=", + "requires": { + "debug": "^2.2.0", + "inquirer": "^1.0.2", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "npmlog": "^2.0.3", + "object-assign": "^4.1.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "external-editor": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz", + "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=", + "requires": { + "extend": "^3.0.0", + "spawn-sync": "^1.0.15", + "tmp": "^0.0.29" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "inquirer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz", + "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=", + "requires": { + "ansi-escapes": "^1.1.0", + "chalk": "^1.0.0", + "cli-cursor": "^1.0.1", + "cli-width": "^2.0.0", + "external-editor": "^1.1.0", + "figures": "^1.3.5", + "lodash": "^4.3.0", + "mute-stream": "0.0.6", + "pinkie-promise": "^2.0.0", + "run-async": "^2.2.0", + "rx": "^4.1.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mute-stream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz", + "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s=" + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "tmp": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", + "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, "taketalk": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/taketalk/-/taketalk-1.0.0.tgz", @@ -2125,6 +3938,40 @@ "minimist": "^1.1.0" } }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "^0.7.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + } + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -2154,6 +4001,11 @@ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, + "titleize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-1.0.1.tgz", + "integrity": "sha512-rUwGDruKq1gX+FFHbTl5qjI7teVO7eOe+C8IcQ7QT+1BK3eEUXJqbZcBOeaRP4FwSC/C1A5jDoIVta0nIQ9yew==" + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -2200,11 +4052,65 @@ "repeat-string": "^1.6.1" } }, + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + }, "tslib": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "twig": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/twig/-/twig-1.15.1.tgz", + "integrity": "sha512-SPGkUM0p7hjgo+y5Dlm/XCSuZe0G3kfcgRPrxkMFln5e8bvQbxDOsia8QEo8xqXfjLR1Emp9FGkVYHya2b8qdA==", + "requires": { + "@babel/runtime": "^7.8.4", + "locutus": "^2.0.11", + "minimatch": "3.0.x", + "walk": "2.3.x" + } + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -2216,6 +4122,14 @@ "set-value": "^2.0.1" } }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "^1.0.0" + } + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -2257,6 +4171,36 @@ "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.3.tgz", "integrity": "sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==" }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + }, + "update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", @@ -2280,11 +4224,24 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, + "user-home": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "requires": { + "os-homedir": "^1.0.0" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -2294,6 +4251,16 @@ "spdx-expression-parse": "^3.0.0" } }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, "vinyl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", @@ -2360,6 +4327,14 @@ } } }, + "walk": { + "version": "2.3.14", + "resolved": "https://registry.npmjs.org/walk/-/walk-2.3.14.tgz", + "integrity": "sha512-5skcWAUmySj6hkBdH6B6+3ddMjVQYH5Qy9QGbPmN8kVmLteXk+yVXg+yfk1nbX30EYakahLrr8iPcCxJQSCBeg==", + "requires": { + "foreachasync": "^3.0.0" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -2368,6 +4343,22 @@ "isexe": "^2.0.0" } }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "requires": { + "string-width": "^2.1.1" + } + }, + "windows-release": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.1.tgz", + "integrity": "sha512-Pngk/RDCaI/DkuHPlGTdIkDiTAnAkyMjoQMZqRsxydNl1qGXNIoZrB7RK8g53F2tEgQBMqQJHQdYZuQEEAu54A==", + "requires": { + "execa": "^1.0.0" + } + }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -2415,11 +4406,71 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yeoman-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/yeoman-character/-/yeoman-character-1.1.0.tgz", + "integrity": "sha1-kNS1vq+SdZCGF3AVsv36LgaE18c=", + "requires": { + "supports-color": "^3.1.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "yeoman-doctor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yeoman-doctor/-/yeoman-doctor-4.0.0.tgz", + "integrity": "sha512-CP0fwGk5Y+jel+A0AQbyqnIFZRRpkKOeYUibiTSmlgV9PcgNFFVwn86VcUIpDLOqVjF+9v+O9FWQMo+IUcV2mA==", + "requires": { + "ansi-styles": "^3.2.0", + "bin-version-check": "^3.0.0", + "chalk": "^2.3.0", + "global-agent": "^2.0.0", + "global-tunnel-ng": "^2.5.3", + "latest-version": "^3.1.0", + "log-symbols": "^2.1.0", + "semver": "^5.0.3", + "twig": "^1.10.5", + "user-home": "^2.0.0" + } + }, "yeoman-environment": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.8.1.tgz", @@ -2499,6 +4550,143 @@ "yeoman-environment": "^2.0.5" } }, + "yo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yo/-/yo-3.1.1.tgz", + "integrity": "sha512-GFg4QC1xi3gkbHGGUFme8/8XPg3kDISu/qJfx56X207yuv1FSevGY/eKuym7kh0bniCB4n3rseWW+QZXPH8LIw==", + "requires": { + "async": "^2.6.1", + "chalk": "^2.4.1", + "cli-list": "^0.2.0", + "configstore": "^3.1.2", + "cross-spawn": "^6.0.5", + "figures": "^2.0.0", + "fullname": "^4.0.1", + "global-agent": "^2.0.0", + "global-tunnel-ng": "^2.7.1", + "got": "^8.3.2", + "humanize-string": "^1.0.2", + "inquirer": "^6.0.0", + "insight": "^0.10.3", + "lodash": "^4.17.15", + "meow": "^3.0.0", + "npm-keyword": "^5.0.0", + "open": "^6.3.0", + "package-json": "^5.0.0", + "parse-help": "^1.0.0", + "read-pkg-up": "^4.0.0", + "root-check": "^1.0.0", + "sort-on": "^3.0.0", + "string-length": "^2.0.0", + "tabtab": "^1.3.2", + "titleize": "^1.0.1", + "update-notifier": "^2.5.0", + "user-home": "^2.0.0", + "yeoman-character": "^1.0.0", + "yeoman-doctor": "^4.0.0", + "yeoman-environment": "^2.4.0", + "yosay": "^2.0.2" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "requires": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, + "read-pkg-up": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", + "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", + "requires": { + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + } + } + } + }, "yosay": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/yosay/-/yosay-2.0.2.tgz", diff --git a/e2e-test/generator-alfresco-docker-compose/package.json b/e2e-test/generator-alfresco-docker-compose/package.json index e4e844c11..4d428ea6b 100644 --- a/e2e-test/generator-alfresco-docker-compose/package.json +++ b/e2e-test/generator-alfresco-docker-compose/package.json @@ -21,8 +21,9 @@ "npm": ">= 4.0.0" }, "dependencies": { - "yeoman-generator": "^2.0.1", "chalk": "^2.1.0", + "yeoman-generator": "^2.0.1", + "yo": "^3.1.1", "yosay": "^2.0.1" }, "jest": { From bce3d9c0fb83543c50c7ddc73d6206db1d445d34 Mon Sep 17 00:00:00 2001 From: Tom Page Date: Wed, 15 Jul 2020 15:25:29 +0100 Subject: [PATCH 64/65] SEARCH-2356 Add support for setting the default log level for search. This can be passed in as an environment variable when starting the container. --- .../packaging/src/docker/search_config_setup.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/search-services/packaging/src/docker/search_config_setup.sh b/search-services/packaging/src/docker/search_config_setup.sh index 35c1360d8..aabcf63bb 100644 --- a/search-services/packaging/src/docker/search_config_setup.sh +++ b/search-services/packaging/src/docker/search_config_setup.sh @@ -10,6 +10,7 @@ SOLR_NORERANK_CONFIG_FILE=$NORERANK_TEMPLATE_PATH/solrconfig.xml SOLR_RERANK_CORE_FILE=$RERANK_TEMPLATE_PATH/solrcore.properties SOLR_NORERANK_CORE_FILE=$NORERANK_TEMPLATE_PATH/solrcore.properties SOLR_CONTEXT_FILE=$PWD/solr/server/contexts/solr-jetty-context.xml +LOG_PROPERTIES=$PWD/logs/log4j.properties if [[ $REPLICATION_TYPE == "master" ]]; then @@ -105,4 +106,8 @@ if [[ true == "$DISABLE_CASCADE_TRACKING" ]]; then sed -i 's/alfresco.cascade.tracker.enabled=true/alfresco.cascade.tracker.enabled=false/' ${PWD}/solrhome/conf/shared.properties fi -bash -c "$@" \ No newline at end of file +if [[ "${SEARCH_LOG_LEVEL}" != "" ]]; then + sed -i "s/log4j.rootLogger=WARN, file, CONSOLE/log4j.rootLogger=${SEARCH_LOG_LEVEL}, file, CONSOLE/" ${LOG_PROPERTIES} +fi + +bash -c "$@" From d35606b3ce180f5123afd940a6a3d931204a65d5 Mon Sep 17 00:00:00 2001 From: Tom Page Date: Wed, 15 Jul 2020 15:57:57 +0100 Subject: [PATCH 65/65] SEARCH-2356 Add documentation to the README about the various environment variables available. --- search-services/README.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/search-services/README.md b/search-services/README.md index 4c218b3be..3e2fc017b 100644 --- a/search-services/README.md +++ b/search-services/README.md @@ -270,7 +270,7 @@ $ docker build -t insightengine:develop . **Configuration** -To pass an environment variable, it can be used the "-e" argument: +The "-e" argument can be used to pass an environment variable: ```bash $ docker run -e SOLR_JAVA_MEM="-Xms4g -Xmx4g" -p 8983:8983 searchservices:develop @@ -282,6 +282,20 @@ To pass several environment variables (e.g. SOLR\_ALFRESCO\_HOST, SOLR\_ALFRESCO $ docker run -e SOLR_ALFRESCO_HOST=localhost -e SOLR_ALFRESCO_PORT=8080 -p 8983:8983 searchservices:develop ``` +The following environment variables are supported: + +| Name | Format | Description | +|------|--------|-------------| +| SOLR_OPTS | "-Dparam=value ..." | Options to pass when starting the Java process. | +| SOLR_HEAP | Memory amount (e.g. 2g) | The Java heap assigned to Solr. | +| SOLR_JAVA_MEM | "-Xms... -Xmx..." | The exact memory settings for Solr. Note that SOLR_HEAP takes precedence over this. | +| MAX_SOLR_RAM_PERCENTAGE | Integer | The percentage of available memory to assign to Solr. Note that SOLR_HEAP and SOLR_JAVA_MEM take precedence over this. | +| SEARCH_LOG_LEVEL | ERROR, WARN, INFO, DEBUG or TRACE | The root logger level. | +| ENABLE_SPELLCHECK | true or false | Whether spellchecking is enabled or not. | +| DISABLE_CASCADE_TRACKING | true or false | Whether cascade tracking is enabled or not. Disabling cascade tracking will improve performance, but result in some feature loss (e.g. path queries). | +| ALFRESCO_SECURE_COMMS | https or none | Whether communication with the repository is secured. See below. | +| SOLR_SSL_... | --- | These variables are also used to configure SSL. See below. | + **Using Mutual Auth TLS (SSL)** This Docker image is exposing as VOLUME the folder `/opt/alfresco-search-services/keystores`, that can be used to mount `keystores` folder from host.