Merge pull request #782 from hapifhir/do-20250212-spotless-check

Add spotless-check
This commit is contained in:
dotasek
2025-02-12 11:51:47 -05:00
committed by GitHub
20 changed files with 826 additions and 763 deletions

32
.github/workflows/spotless-check.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: mvn spotless:check (Formatting)
on:
pull_request:
types: [opened, reopened, synchronize]
jobs:
format-check:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: spotless:check
run: mvn spotless:check
- uses: mshick/add-pr-comment@v2
if: always()
with:
message-success: |
Formatting check succeeded!
message-failure: |
**This Pull Request has failed the formatting check**
Please run `mvn spotless:apply` or `mvn clean install -DskipTests` to fix the formatting issues.
You can automate this auto-formatting process to execute on the git pre-push hook, by installing [pre-commit](https://pre-commit.com/) and then calling `pre-commit install --hook-type pre-push`. This will cause formatting to run automatically whenever you push.

File diff suppressed because it is too large Load Diff

View File

@@ -49,7 +49,6 @@ public class Application extends SpringBootServletInitializer {
// UI is now accessible at http://localhost:8080/
}
@Autowired
AutowireCapableBeanFactory beanFactory;
@@ -64,5 +63,4 @@ public class Application extends SpringBootServletInitializer {
return servletRegistrationBean;
}
}

View File

@@ -10,6 +10,10 @@ import ca.uhn.hapi.fhir.cdshooks.api.json.CdsServicesJson;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonParser;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.http.entity.ContentType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -19,10 +23,6 @@ import org.springframework.beans.factory.annotation.Qualifier;
import java.io.IOException;
import java.util.stream.Collectors;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import static ca.uhn.hapi.fhir.cdshooks.config.CdsHooksConfig.CDS_HOOKS_OBJECT_MAPPER_FACTORY;

View File

@@ -2,12 +2,12 @@ package ca.uhn.fhir.jpa.starter.cdshooks;
import ca.uhn.fhir.jpa.starter.AppProperties;
import ca.uhn.fhir.rest.server.exceptions.BaseServerResponseException;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Arrays;
import jakarta.servlet.http.HttpServletResponse;
public class ErrorHandling {

File diff suppressed because one or more lines are too long

View File

@@ -1,21 +1,17 @@
package ca.uhn.fhir.jpa.starter.cdshooks;
import ca.uhn.fhir.context.FhirVersionEnum;
import ca.uhn.fhir.jpa.starter.cr.CrCommonConfig;
import ca.uhn.fhir.jpa.starter.cr.CrConfigCondition;
import ca.uhn.fhir.jpa.starter.cr.CrProperties;
import ca.uhn.hapi.fhir.cdshooks.api.ICdsHooksDaoAuthorizationSvc;
import ca.uhn.hapi.fhir.cdshooks.config.CdsHooksConfig;
import ca.uhn.hapi.fhir.cdshooks.svc.CdsHooksContextBooter;
import ca.uhn.hapi.fhir.cdshooks.svc.cr.CdsCrSettings;
import ca.uhn.fhir.context.FhirVersionEnum;
import ca.uhn.hapi.fhir.cdshooks.svc.cr.CdsCrServiceRegistry;
import ca.uhn.hapi.fhir.cdshooks.svc.cr.CdsCrSettings;
import ca.uhn.hapi.fhir.cdshooks.svc.cr.ICdsCrServiceRegistry;
import ca.uhn.hapi.fhir.cdshooks.svc.cr.discovery.CdsCrDiscoveryServiceRegistry;
import ca.uhn.hapi.fhir.cdshooks.svc.cr.discovery.ICdsCrDiscoveryServiceRegistry;
import ca.uhn.hapi.fhir.cdshooks.svc.prefetch.CdsPrefetchDaoSvc;
import ca.uhn.hapi.fhir.cdshooks.svc.prefetch.CdsPrefetchFhirClientSvc;
import ca.uhn.hapi.fhir.cdshooks.svc.prefetch.CdsPrefetchSvc;
import ca.uhn.hapi.fhir.cdshooks.svc.prefetch.CdsResolutionStrategySvc;
import org.hl7.fhir.instance.model.api.IBaseResource;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
@@ -29,18 +25,18 @@ import org.springframework.context.annotation.Import;
@Import({CdsHooksConfig.class, CrCommonConfig.class})
public class StarterCdsHooksConfig {
// @Bean
// CdsPrefetchSvc cdsPrefetchSvc(
// CdsResolutionStrategySvc theCdsResolutionStrategySvc,
// CdsPrefetchDaoSvc theResourcePrefetchDao,
// CdsPrefetchFhirClientSvc theResourcePrefetchFhirClient,
// ICdsHooksDaoAuthorizationSvc theCdsHooksDaoAuthorizationSvc) {
// return new ModuleConfigurationPrefetchSvc(
// theCdsResolutionStrategySvc,
// theResourcePrefetchDao,
// theResourcePrefetchFhirClient,
// theCdsHooksDaoAuthorizationSvc);
// }
// @Bean
// CdsPrefetchSvc cdsPrefetchSvc(
// CdsResolutionStrategySvc theCdsResolutionStrategySvc,
// CdsPrefetchDaoSvc theResourcePrefetchDao,
// CdsPrefetchFhirClientSvc theResourcePrefetchFhirClient,
// ICdsHooksDaoAuthorizationSvc theCdsHooksDaoAuthorizationSvc) {
// return new ModuleConfigurationPrefetchSvc(
// theCdsResolutionStrategySvc,
// theResourcePrefetchDao,
// theResourcePrefetchFhirClient,
// theCdsHooksDaoAuthorizationSvc);
// }
@Bean
public ICdsCrDiscoveryServiceRegistry cdsCrDiscoveryServiceRegistry() {

View File

@@ -8,14 +8,12 @@ import org.hl7.fhir.r4.model.BooleanType;
import org.hl7.fhir.r4.model.Parameters;
import org.opencds.cqf.fhir.api.Repository;
import java.util.stream.Collectors;
import static ca.uhn.hapi.fhir.cdshooks.svc.cr.CdsCrConstants.APPLY_PARAMETER_DATA;
import static ca.uhn.hapi.fhir.cdshooks.svc.cr.CdsCrConstants.APPLY_PARAMETER_DATA_ENDPOINT;
import static org.opencds.cqf.fhir.utility.r4.Parameters.part;
public class UpdatedCdsCrServiceR4 extends CdsCrServiceR4 {
public UpdatedCdsCrServiceR4(RequestDetails theRequestDetails, Repository theRepository, ICdsConfigService theCdsConfigService) {
public UpdatedCdsCrServiceR4(
RequestDetails theRequestDetails, Repository theRepository, ICdsConfigService theCdsConfigService) {
super(theRequestDetails, theRepository, theCdsConfigService);
}

View File

@@ -94,31 +94,30 @@ public class FhirServerConfigCommon {
if (appProperties.getSubscription() != null) {
if (appProperties.getSubscription().getEmail() != null)
subscriptionSettings.setEmailFromAddress(
appProperties.getSubscription().getEmail().getFrom());
appProperties.getSubscription().getEmail().getFrom());
// Subscriptions are enabled by channel type
if (appProperties.getSubscription().getResthook_enabled()) {
ourLog.info("Enabling REST-hook subscriptions");
subscriptionSettings.addSupportedSubscriptionType(
org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.RESTHOOK);
org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.RESTHOOK);
}
if (appProperties.getSubscription().getEmail() != null) {
ourLog.info("Enabling email subscriptions");
subscriptionSettings.addSupportedSubscriptionType(
org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.EMAIL);
org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.EMAIL);
}
if (appProperties.getSubscription().getWebsocket_enabled()) {
ourLog.info("Enabling websocket subscriptions");
subscriptionSettings.addSupportedSubscriptionType(
org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.WEBSOCKET);
org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.WEBSOCKET);
}
}
if (appProperties.getMdm_enabled()) {
// MDM requires the subscription of type message
ourLog.info("Enabling message subscriptions");
subscriptionSettings.addSupportedSubscriptionType(
org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.MESSAGE);
org.hl7.fhir.dstu2.model.Subscription.SubscriptionChannelType.MESSAGE);
}
return subscriptionSettings;
}
@@ -135,8 +134,7 @@ public class FhirServerConfigCommon {
: StorageSettings.IndexEnabledEnum.DISABLED);
jpaStorageSettings.setAutoCreatePlaceholderReferenceTargets(
appProperties.getAuto_create_placeholder_reference_targets());
jpaStorageSettings.setMassIngestionMode(
appProperties.getMass_ingestion_mode_enabled());
jpaStorageSettings.setMassIngestionMode(appProperties.getMass_ingestion_mode_enabled());
jpaStorageSettings.setAutoVersionReferenceAtPaths(appProperties.getAuto_version_reference_at_paths());
jpaStorageSettings.setEnforceReferentialIntegrityOnWrite(
appProperties.getEnforce_referential_integrity_on_write());
@@ -149,7 +147,8 @@ public class FhirServerConfigCommon {
jpaStorageSettings.setDeleteExpungeEnabled(appProperties.getDelete_expunge_enabled());
jpaStorageSettings.setExpungeEnabled(appProperties.getExpunge_enabled());
jpaStorageSettings.setLanguageSearchParameterEnabled(appProperties.getLanguage_search_parameter_enabled());
jpaStorageSettings.setValidateResourceStatusForPackageUpload(appProperties.getValidate_resource_status_for_package_upload());
jpaStorageSettings.setValidateResourceStatusForPackageUpload(
appProperties.getValidate_resource_status_for_package_upload());
jpaStorageSettings.setIndexOnUpliftedRefchains(appProperties.getUpliftedRefchains_enabled());
if (!appProperties.getSearch_prefetch_thresholds().isEmpty()) {
@@ -168,8 +167,6 @@ public class FhirServerConfigCommon {
Long retainCachedSearchesMinutes = appProperties.getRetain_cached_searches_mins();
jpaStorageSettings.setExpireSearchResultsAfterMillis(retainCachedSearchesMinutes * 60 * 1000);
jpaStorageSettings.setFilterParameterEnabled(appProperties.getFilter_search_enabled());
jpaStorageSettings.setAdvancedHSearchIndexing(appProperties.getAdvanced_lucene_indexing());
jpaStorageSettings.setTreatBaseUrlsAsLocal(new HashSet<>(appProperties.getLocal_base_urls()));
@@ -216,8 +213,8 @@ public class FhirServerConfigCommon {
jpaStorageSettings.setResourceServerIdStrategy(appProperties.getServer_id_strategy());
ourLog.info("Server configured to use '" + appProperties.getServer_id_strategy() + "' Server ID Strategy");
}
//to Disable the Resource History
// to Disable the Resource History
jpaStorageSettings.setResourceDbHistoryEnabled(appProperties.getResource_dbhistory_enabled());
// Parallel Batch GET execution settings
@@ -248,7 +245,7 @@ public class FhirServerConfigCommon {
retVal.setAllowReferencesAcrossPartitions(CrossPartitionReferenceMode.NOT_ALLOWED);
}
retVal.setConditionalCreateDuplicateIdentifiersEnabled(
appProperties.getPartitioning().getConditional_create_duplicate_identifiers_enabled());
appProperties.getPartitioning().getConditional_create_duplicate_identifiers_enabled());
}
return retVal;

View File

@@ -1,12 +1,9 @@
package ca.uhn.fhir.jpa.starter.common;
import ca.uhn.fhir.batch2.config.Batch2JobRegisterer;
import ca.uhn.fhir.batch2.coordinator.JobDefinitionRegistry;
import ca.uhn.fhir.batch2.jobs.export.BulkDataExportProvider;
import ca.uhn.fhir.batch2.jobs.imprt.BulkDataImportProvider;
import ca.uhn.fhir.batch2.jobs.reindex.ReindexJobParameters;
import ca.uhn.fhir.batch2.jobs.reindex.ReindexProvider;
import ca.uhn.fhir.batch2.model.JobDefinition;
import ca.uhn.fhir.context.ConfigurationException;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.context.FhirVersionEnum;
@@ -137,11 +134,12 @@ public class StarterJpaConfig {
@Primary
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(
DataSource myDataSource,
ConfigurableListableBeanFactory myConfigurableListableBeanFactory,
FhirContext theFhirContext, JpaStorageSettings theStorageSettings) {
LocalContainerEntityManagerFactoryBean retVal =
HapiEntityManagerFactoryUtil.newEntityManagerFactory(myConfigurableListableBeanFactory, theFhirContext, theStorageSettings);
DataSource myDataSource,
ConfigurableListableBeanFactory myConfigurableListableBeanFactory,
FhirContext theFhirContext,
JpaStorageSettings theStorageSettings) {
LocalContainerEntityManagerFactoryBean retVal = HapiEntityManagerFactoryUtil.newEntityManagerFactory(
myConfigurableListableBeanFactory, theFhirContext, theStorageSettings);
retVal.setPersistenceUnitName("HAPI_PU");
try {
@@ -193,9 +191,9 @@ public class StarterJpaConfig {
@Primary
@Conditional(OnImplementationGuidesPresent.class)
public IPackageInstallerSvc packageInstaller(
AppProperties appProperties,
IPackageInstallerSvc packageInstallerSvc,
Batch2JobRegisterer batch2JobRegisterer) {
AppProperties appProperties,
IPackageInstallerSvc packageInstallerSvc,
Batch2JobRegisterer batch2JobRegisterer) {
batch2JobRegisterer.start();
@@ -278,7 +276,8 @@ public class StarterJpaConfig {
IPackageInstallerSvc packageInstallerSvc,
ThreadSafeResourceDeleterSvc theThreadSafeResourceDeleterSvc,
ApplicationContext appContext,
Optional<IpsOperationProvider> theIpsOperationProvider, Optional<IImplementationGuideOperationProvider> implementationGuideOperationProvider) {
Optional<IpsOperationProvider> theIpsOperationProvider,
Optional<IImplementationGuideOperationProvider> implementationGuideOperationProvider) {
RestfulServer fhirServer = new RestfulServer(fhirSystemDao.getContext());
List<String> supportedResourceTypes = appProperties.getSupported_resource_types();
@@ -460,7 +459,7 @@ public class StarterJpaConfig {
fhirServer.registerProvider(theIpsOperationProvider.get());
}
if (appProperties.getUserRequestRetryVersionConflictsInterceptorEnabled() ) {
if (appProperties.getUserRequestRetryVersionConflictsInterceptorEnabled()) {
fhirServer.registerInterceptor(new UserRequestRetryVersionConflictsInterceptor());
}
@@ -516,7 +515,7 @@ public class StarterJpaConfig {
*/
@SuppressWarnings({"unchecked", "rawtypes"})
private void registerCustomProviders(
RestfulServer fhirServer, ApplicationContext theAppContext, List<String> customProviderClasses) {
RestfulServer fhirServer, ApplicationContext theAppContext, List<String> customProviderClasses) {
if (customProviderClasses == null) {
return;

View File

@@ -46,8 +46,9 @@ public class RepositoryValidationInterceptorFactoryDstu3 implements IRepositoryV
public RepositoryValidatingInterceptor buildUsingStoredStructureDefinitions() {
IBundleProvider results = structureDefinitionResourceProvider.search(
new SearchParameterMap().setLoadSynchronous(true).add(StructureDefinition.SP_KIND, new TokenParam("resource")));
IBundleProvider results = structureDefinitionResourceProvider.search(new SearchParameterMap()
.setLoadSynchronous(true)
.add(StructureDefinition.SP_KIND, new TokenParam("resource")));
Map<String, List<StructureDefinition>> structureDefinitions = results.getResources(0, results.size()).stream()
.map(StructureDefinition.class::cast)
.collect(Collectors.groupingBy(StructureDefinition::getType));

View File

@@ -47,8 +47,9 @@ public class RepositoryValidationInterceptorFactoryR4 implements IRepositoryVali
@Override
public RepositoryValidatingInterceptor buildUsingStoredStructureDefinitions() {
IBundleProvider results = structureDefinitionResourceProvider.search(
new SearchParameterMap().setLoadSynchronous(true).add(StructureDefinition.SP_KIND, new TokenParam("resource")));
IBundleProvider results = structureDefinitionResourceProvider.search(new SearchParameterMap()
.setLoadSynchronous(true)
.add(StructureDefinition.SP_KIND, new TokenParam("resource")));
Map<String, List<StructureDefinition>> structureDefintions = results.getResources(0, results.size()).stream()
.map(StructureDefinition.class::cast)
.collect(Collectors.groupingBy(StructureDefinition::getType));

View File

@@ -47,8 +47,9 @@ public class RepositoryValidationInterceptorFactoryR4B implements IRepositoryVal
@Override
public RepositoryValidatingInterceptor buildUsingStoredStructureDefinitions() {
IBundleProvider results = structureDefinitionResourceProvider.search(
new SearchParameterMap().setLoadSynchronous(true).add(StructureDefinition.SP_KIND, new TokenParam("resource")));
IBundleProvider results = structureDefinitionResourceProvider.search(new SearchParameterMap()
.setLoadSynchronous(true)
.add(StructureDefinition.SP_KIND, new TokenParam("resource")));
Map<String, List<StructureDefinition>> structureDefintions = results.getResources(0, results.size()).stream()
.map(StructureDefinition.class::cast)
.collect(Collectors.groupingBy(StructureDefinition::getType));

View File

@@ -46,8 +46,9 @@ public class RepositoryValidationInterceptorFactoryR5 implements IRepositoryVali
public RepositoryValidatingInterceptor buildUsingStoredStructureDefinitions() {
IBundleProvider results = structureDefinitionResourceProvider.search(
new SearchParameterMap().setLoadSynchronous(true).add(StructureDefinition.SP_KIND, new TokenParam("resource")));
IBundleProvider results = structureDefinitionResourceProvider.search(new SearchParameterMap()
.setLoadSynchronous(true)
.add(StructureDefinition.SP_KIND, new TokenParam("resource")));
Map<String, List<StructureDefinition>> structureDefintions = results.getResources(0, results.size()).stream()
.map(StructureDefinition.class::cast)
.collect(Collectors.groupingBy(StructureDefinition::getType));

View File

@@ -9,10 +9,17 @@ import java.io.IOException;
public interface IImplementationGuideOperationProvider {
static PackageInstallationSpec toPackageInstallationSpec(byte[] npmPackageAsByteArray) throws IOException {
NpmPackage npmPackage = NpmPackage.fromPackage(new ByteArrayInputStream(npmPackageAsByteArray));
return new PackageInstallationSpec().setName(npmPackage.name()).setPackageContents(npmPackageAsByteArray).setVersion(npmPackage.version()).setInstallMode(PackageInstallationSpec.InstallModeEnum.STORE_AND_INSTALL).setFetchDependencies(false);
return new PackageInstallationSpec()
.setName(npmPackage.name())
.setPackageContents(npmPackageAsByteArray)
.setVersion(npmPackage.version())
.setInstallMode(PackageInstallationSpec.InstallModeEnum.STORE_AND_INSTALL)
.setFetchDependencies(false);
}
// The following declaration is the one that counts but cannot be used across different versions as stating Base64BinaryType would bind to a separate version
// The following declaration is the one that counts but cannot be used across different versions as stating
// Base64BinaryType would bind to a separate version
// Parameters install(@OperationParam(name = "npmContent",min = 1, max = 1) Base64BinaryType implementationGuide);
// Parameters uninstall(@OperationParam(name = "name", min = 1, max = 1) String name, @OperationParam(name = "version", min = 1, max = 1) String version) ;
// Parameters uninstall(@OperationParam(name = "name", min = 1, max = 1) String name, @OperationParam(name =
// "version", min = 1, max = 1) String version) ;
}

View File

@@ -23,10 +23,12 @@ public class ImplementationGuideR4OperationProvider implements IImplementationGu
}
@Operation(name = "$install", typeName = "ImplementationGuide")
public Parameters install(@OperationParam(name = "npmContent", min = 1, max = 1) Base64BinaryType implementationGuide) {
public Parameters install(
@OperationParam(name = "npmContent", min = 1, max = 1) Base64BinaryType implementationGuide) {
try {
packageInstallerSvc.install(IImplementationGuideOperationProvider.toPackageInstallationSpec(implementationGuide.getValue()));
packageInstallerSvc.install(
IImplementationGuideOperationProvider.toPackageInstallationSpec(implementationGuide.getValue()));
} catch (IOException e) {
throw new RuntimeException(e);
}
@@ -34,10 +36,12 @@ public class ImplementationGuideR4OperationProvider implements IImplementationGu
}
@Operation(name = "$uninstall", typeName = "ImplementationGuide")
public Parameters uninstall(@OperationParam(name = "name", min = 1, max = 1) String name, @OperationParam(name = "version", min = 1, max = 1) String version) {
public Parameters uninstall(
@OperationParam(name = "name", min = 1, max = 1) String name,
@OperationParam(name = "version", min = 1, max = 1) String version) {
packageInstallerSvc.uninstall(new PackageInstallationSpec().setName(name).setVersion(version));
packageInstallerSvc.uninstall(
new PackageInstallationSpec().setName(name).setVersion(version));
return new Parameters();
}
}

View File

@@ -23,21 +23,25 @@ public class ImplementationGuideR5OperationProvider implements IImplementationGu
}
@Operation(name = "$install", typeName = "ImplementationGuide")
public Parameters install(@OperationParam(name = "npmContent", min = 1, max = 1) Base64BinaryType implementationGuide) {
public Parameters install(
@OperationParam(name = "npmContent", min = 1, max = 1) Base64BinaryType implementationGuide) {
try {
packageInstallerSvc.install(IImplementationGuideOperationProvider.toPackageInstallationSpec(implementationGuide.getValue()));
packageInstallerSvc.install(
IImplementationGuideOperationProvider.toPackageInstallationSpec(implementationGuide.getValue()));
} catch (IOException e) {
throw new RuntimeException(e);
}
return new Parameters();
}
@Operation(name = "$uninstall", typeName = "ImplementationGuide")
public Parameters uninstall(@OperationParam(name = "name", min = 1, max = 1) String name, @OperationParam(name = "version", min = 1, max = 1) String version) {
public Parameters uninstall(
@OperationParam(name = "name", min = 1, max = 1) String name,
@OperationParam(name = "version", min = 1, max = 1) String version) {
packageInstallerSvc.uninstall(new PackageInstallationSpec().setName(name).setVersion(version));
packageInstallerSvc.uninstall(
new PackageInstallationSpec().setName(name).setVersion(version));
return new Parameters();
}
}

View File

@@ -17,24 +17,23 @@ public class CustomContentFilesConfigurer implements WebMvcConfigurer {
public static final String CUSTOM_CONTENT = "/content";
private String customContentPath;
public CustomContentFilesConfigurer(AppProperties appProperties) {
customContentPath = appProperties.getCustom_content_path();
if (customContentPath.endsWith("/"))
customContentPath = customContentPath.substring(0, customContentPath.lastIndexOf('/'));
}
@Override
public void addResourceHandlers(@NotNull ResourceHandlerRegistry theRegistry) {
if (!theRegistry.hasMappingForPattern(CUSTOM_CONTENT + "/**")) {
try {
theRegistry.addResourceHandler(CUSTOM_CONTENT + "/**").addResourceLocations(new FileUrlResource(customContentPath));
theRegistry
.addResourceHandler(CUSTOM_CONTENT + "/**")
.addResourceLocations(new FileUrlResource(customContentPath));
} catch (MalformedURLException e) {
throw new RuntimeException(e);
}
}
}
}
}

View File

@@ -22,7 +22,10 @@ public class JobController {
}
@RequestMapping(value = JobController.JOBS, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public List<JobInstance> getAllJobs(@RequestParam(name = "pageStart") @Min(0) int pageStart, @RequestParam(name = "batchSize") int batchSize, @RequestParam(name = "jobStatus", required = false) StatusEnum jobStatus) {
public List<JobInstance> getAllJobs(
@RequestParam(name = "pageStart") @Min(0) int pageStart,
@RequestParam(name = "batchSize") int batchSize,
@RequestParam(name = "jobStatus", required = false) StatusEnum jobStatus) {
JobInstanceFetchRequest jobInstanceFetchRequest = new JobInstanceFetchRequest();
jobInstanceFetchRequest.setPageStart(pageStart);
jobInstanceFetchRequest.setBatchSize(batchSize);
@@ -32,7 +35,10 @@ public class JobController {
return theJobCoordinator.fetchAllJobInstances(jobInstanceFetchRequest).getContent();
}
@RequestMapping(value = JobController.JOBS, method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE)
@RequestMapping(
value = JobController.JOBS,
method = RequestMethod.DELETE,
produces = MediaType.APPLICATION_JSON_VALUE)
public JobOperationResultJson cancelInstance(@RequestParam(name = "instanceId") String instanceId) {
return theJobCoordinator.cancelInstance(instanceId);
}

View File

@@ -20,21 +20,19 @@ public class WebAppFilesConfigurer implements WebMvcConfigurer {
public static final String WEB_CONTENT = "web";
private String appContentPath;
public WebAppFilesConfigurer(AppProperties appProperties) {
appContentPath = appProperties.getApp_content_path();
if (appContentPath.endsWith("/"))
appContentPath = appContentPath.substring(0, appContentPath.lastIndexOf('/'));
if (appContentPath.endsWith("/")) appContentPath = appContentPath.substring(0, appContentPath.lastIndexOf('/'));
}
@Override
public void addResourceHandlers(@NotNull ResourceHandlerRegistry theRegistry) {
if (!theRegistry.hasMappingForPattern(WEB_CONTENT + "/**")) {
{
try {
theRegistry.addResourceHandler(WEB_CONTENT + "/**").addResourceLocations(new FileUrlResource(appContentPath));
theRegistry
.addResourceHandler(WEB_CONTENT + "/**")
.addResourceLocations(new FileUrlResource(appContentPath));
} catch (MalformedURLException e) {
throw new RuntimeException(e);
}
@@ -47,10 +45,10 @@ public class WebAppFilesConfigurer implements WebMvcConfigurer {
String path = URI.create(appContentPath).getPath();
String lastSegment = path.substring(path.lastIndexOf('/') + 1);
registry.addViewController(WEB_CONTENT + "/" + lastSegment).setViewName("redirect:" + lastSegment + "/index.html");
registry.addViewController(WEB_CONTENT + "/" + lastSegment)
.setViewName("redirect:" + lastSegment + "/index.html");
registry.addViewController(WEB_CONTENT + "/" + lastSegment + "/").setViewName("redirect:index.html");
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
}
}
}