Package io.quarkus.deployment.dev
Class RuntimeUpdatesProcessor
java.lang.Object
io.quarkus.deployment.dev.RuntimeUpdatesProcessor
- All Implemented Interfaces:
HotReplacementContext
,Closeable
,AutoCloseable
-
Nested Class Summary
Modifier and TypeClassDescription(package private) static class
-
Field Summary
Modifier and TypeFieldDescription(package private) StatusLine
(package private) Throwable
(package private) Throwable
static RuntimeUpdatesProcessor
static final boolean
(package private) Throwable
-
Constructor Summary
ConstructorDescriptionRuntimeUpdatesProcessor
(Path applicationRoot, DevModeContext context, QuarkusCompiler compiler, DevModeType devModeType, BiConsumer<Set<String>, ClassScanResult> restartCallback, BiConsumer<DevModeContext.ModuleInfo, String> copyResourceNotification, BiFunction<String, byte[], byte[]> classTransformers, TestSupport testSupport) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addDeploymentFailedStartHandler
(Runnable service) void
void
addPreScanStep
(Runnable runnable) (package private) ClassScanResult
checkForChangedClasses
(boolean firstScan) (package private) ClassScanResult
checkForChangedClasses
(QuarkusCompiler compiler, Function<DevModeContext.ModuleInfo, DevModeContext.CompilationUnit> cuf, boolean firstScan, RuntimeUpdatesProcessor.TimestampSet timestampSet, boolean compilingTests) A first scan is considered done when we have visited all modules at least once.(package private) ClassScanResult
checkForChangedTestClasses
(boolean firstScan) checkForFileChange
(Function<DevModeContext.ModuleInfo, DevModeContext.CompilationUnit> cuf, RuntimeUpdatesProcessor.TimestampSet timestampSet) Returns the set of modified files.void
close()
void
consumeNoRestartChanges
(Consumer<Set<String>> consumer) boolean
doScan
(boolean userInitiated) boolean
doScan
(boolean userInitiated, boolean forceRestart) String[]
boolean
boolean
boolean
isTest()
setCommandLineArgs
(String[] commandLineArgs) setConfiguredInstrumentationEnabled
(boolean configuredInstrumentationEnabled) setDisableInstrumentationForClassPredicate
(Predicate<org.jboss.jandex.ClassInfo> disableInstrumentationForClassPredicate) setDisableInstrumentationForIndexPredicate
(Predicate<org.jboss.jandex.Index> disableInstrumentationForIndexPredicate) static void
setLastStartIndex
(org.jboss.jandex.IndexView lastStartIndex) void
setRemoteProblem
(Throwable throwable) setWatchedFilePaths
(Map<String, Boolean> watchedFilePaths, List<Map.Entry<Predicate<String>, Boolean>> watchedFilePredicates, boolean isTest) void
boolean
boolean
void
updateFile
(String file, byte[] data)
-
Field Details
-
IS_LINUX
public static final boolean IS_LINUX -
INSTANCE
-
compileProblem
-
testCompileProblem
-
hotReloadProblem
-
sourceFileTimestamps
-
compileOutput
-
-
Constructor Details
-
RuntimeUpdatesProcessor
public RuntimeUpdatesProcessor(Path applicationRoot, DevModeContext context, QuarkusCompiler compiler, DevModeType devModeType, BiConsumer<Set<String>, ClassScanResult> restartCallback, BiConsumer<DevModeContext.ModuleInfo, String> copyResourceNotification, BiFunction<String, byte[], byte[]> classTransformers, TestSupport testSupport)
-
-
Method Details
-
getTestSupport
-
getClassesDir
- Specified by:
getClassesDir
in interfaceHotReplacementContext
-
getSourcesDir
- Specified by:
getSourcesDir
in interfaceHotReplacementContext
-
getTestSourcesDir
- Specified by:
getTestSourcesDir
in interfaceHotReplacementContext
-
getResourcesDir
- Specified by:
getResourcesDir
in interfaceHotReplacementContext
-
getDeploymentProblem
- Specified by:
getDeploymentProblem
in interfaceHotReplacementContext
-
setRemoteProblem
- Specified by:
setRemoteProblem
in interfaceHotReplacementContext
-
updateFile
- Specified by:
updateFile
in interfaceHotReplacementContext
-
isTest
public boolean isTest()- Specified by:
isTest
in interfaceHotReplacementContext
-
getDevModeType
- Specified by:
getDevModeType
in interfaceHotReplacementContext
-
doScan
- Specified by:
doScan
in interfaceHotReplacementContext
- Throws:
IOException
-
doScan
public boolean doScan(boolean userInitiated, boolean forceRestart) -
instrumentationEnabled
public boolean instrumentationEnabled() -
setConfiguredInstrumentationEnabled
public RuntimeUpdatesProcessor setConfiguredInstrumentationEnabled(boolean configuredInstrumentationEnabled) -
addPreScanStep
- Specified by:
addPreScanStep
in interfaceHotReplacementContext
-
consumeNoRestartChanges
- Specified by:
consumeNoRestartChanges
in interfaceHotReplacementContext
-
syncState
- Specified by:
syncState
in interfaceHotReplacementContext
-
checkForChangedClasses
-
checkForChangedTestClasses
-
checkForChangedClasses
ClassScanResult checkForChangedClasses(QuarkusCompiler compiler, Function<DevModeContext.ModuleInfo, DevModeContext.CompilationUnit> cuf, boolean firstScan, RuntimeUpdatesProcessor.TimestampSet timestampSet, boolean compilingTests) A first scan is considered done when we have visited all modules at least once. This is useful in two ways. - To make sure that source time stamps have been recorded at least once - To avoid re-compiling on first run by ignoring all first time changes detected bycheckIfFileModified(Path, Map, boolean, boolean)
during the first scan. -
getCompileProblem
-
checkForFileChange
-
checkForFileChange
Set<String> checkForFileChange(Function<DevModeContext.ModuleInfo, DevModeContext.CompilationUnit> cuf, RuntimeUpdatesProcessor.TimestampSet timestampSet) Returns the set of modified files.The returned set may contain:
- an OS-specific absolute path for a HotDeploymentWatchedFileBuildItem that matches an absolute path; e.g.
/some/complex/unix/path/to/file
- an OS-agnostic relative path for a HotDeploymentWatchedFileBuildItem that matches a relative path; e.g.
templates/foo.html
- an OS-agnostic relative path for a HotDeploymentWatchedFileBuildItem that matches a glob pattern,
- an OS-agnostic relative path for a new file added to a resource root.
- Parameters:
cuf
-timestampSet
-- Returns:
- the set of modified files
- an OS-specific absolute path for a HotDeploymentWatchedFileBuildItem that matches an absolute path; e.g.
-
setDisableInstrumentationForClassPredicate
public RuntimeUpdatesProcessor setDisableInstrumentationForClassPredicate(Predicate<org.jboss.jandex.ClassInfo> disableInstrumentationForClassPredicate) -
setDisableInstrumentationForIndexPredicate
public RuntimeUpdatesProcessor setDisableInstrumentationForIndexPredicate(Predicate<org.jboss.jandex.Index> disableInstrumentationForIndexPredicate) -
setWatchedFilePaths
-
addHotReplacementSetup
-
addDeploymentFailedStartHandler
-
startupFailed
public void startupFailed() -
setLastStartIndex
public static void setLastStartIndex(org.jboss.jandex.IndexView lastStartIndex) -
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-
toggleInstrumentation
public boolean toggleInstrumentation() -
toggleLiveReloadEnabled
public boolean toggleLiveReloadEnabled() -
isLiveReloadEnabled
public boolean isLiveReloadEnabled() -
getCommandLineArgs
-
setCommandLineArgs
-