* Bug 566810: Pull Docker image if necessary
Change-Id: I948e3a273ae598efe563b150922a7bc4b696d05c
Signed-off-by: Moritz 'Morty' Strübe <moritz.struebe@mathema.de>
* docker.launcher: Add tests
* Docker: Fix NPE
This NPE was triggered when the docker image was deleted in the
background.
Change-Id: I7fe8f9204a2f60a5d2396bbc2ec67c7ae820a60a
Signed-off-by: Moritz 'Morty' Strübe <moritz.struebe@mathema.de>
* Bug 566810 Allow setting any Docker image
Allow setting any docker image as string in the input field. There is no
verification yet. If the docker image exists, it is set accordingly.
Change-Id: Iec21798cf79206151067d1e2f3a7ec933f1d0b7d
Signed-off-by: Moritz 'Morty' Strübe <moritz.struebe@mathema.de>
* Bug 566810 Remove volumes immediately
As it is now possible to insert any string, the volumes added by the
image, should be removed immediately, too.
Change-Id: I6c843a2b1e551372e0dff22185d6152faecd72f3
Signed-off-by: Moritz 'Morty' Strübe <moritz.struebe@mathema.de>
* Docker: Allow setting a mapping for docker paths
Bug 579944 introduced using Windows paths, to allow putting your project
into the WSL's file system.
While Docker for Windows (the commercial version) supports Windows
paths, this does not work with a OSS-docker installed in the WSL.
It is now possible to provide a path mapping to work around this.
Co-authored-by: Jeff Johnston <jjohnstn@redhat.com>
All the about.html files are updated, so every bundle that hasn't
already had a bump in 10.7 needs one now
Change-Id: I6143d2fbe77a58a3a6d2f4a226d96087117f9ac1
Added missed license headers
Updated baseline for the parent pom to CDT 10.2
Updated version for pom.xml to 10.3
Updated version for features and bundles to CDT 10.3
Updated copyright for about.properties to be 2021
Incremented version + 100 where needed
Change-Id: I79666fcc0402fee6607499d7dce1eaf87a5f446d
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
Change-Id: I7f682ad313ce275f45e0b4adb4c1280d952cf3ac
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
Also-by: Jonah Graham <jonah@kichwacoders.com>
- add new logic to ContainerTypeProvider to use a JobGroup with
maximum 1 thread so jobs from this class are never run
at the same time
- change ContainerTypeProvider.getStatus() to wait until there are no
scheduled, active, or cancelled jobs in the JobGroup
- change ContainerLaunchConfigurationDelegate.finalLaunchCheck() to
create a fake launch target and call LaunchTargetManager.getStatus()
which will eventually call the new ContainerTypeProvider.getStatus()
- fix NLS warnings in ContainerLaunchConfigurationDelegate
Change-Id: Icad11c5814dd8ee7fac99a41d74329ce65907a38
This change adds empty enablement expressions where they are missing, in
order to prevent start-up warnings such as:
Enablement expression is missing for config provider for
org.eclipse.cdt.debug.core.coreBuildDescriptorType
Change-Id: Id7f2b6149230ddde24764772c5b67ff5eef28b65
Signed-off-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>
- bump up minimum org.eclipse.cdt.core needed for
org.eclipse.cdt.docker.launcher plug-in so that
ICBuildConfigurationManager2 interface is available
Change-Id: I5e77e7b43bdea1f0b59c79fcdfced7c162b64e9a
- add new ContainerTargetTypeProvider to create a new target
for each usable Docker image from known connections
- add new ContainerGCCToolChain class which supports gcc in a
Container for projects with Container targets
- add new ContainerGCCToolChainProvider which creates a
ContainerGCCToolChain for each usable Docker image from
known connections
- add new CoreBuildContainerLaunchConfigProvider class
- add new CoreBuildContainerLaunchDescriptorType class
- add new ContainerTargetLabelProvider class to support adding
a new Container target
- add new NewContainerTargetWizard and NewContainerTargetWizardPage
to add/edit a new Container target
- add new IContainerLaunchTarget class
- add new refreshScannerInfo method to ICBuildConfiguration interface
to allow switching ScannerInfo when target is switched
- implement default refreshScannerInfo method in CBuildConfiguration
which currently does nothing
- add new fetchContainerDirs method to CommandLauncherManager to
fetch container directories for a project that is using
Core Model and CBuildConfigurations
- add new verifyIncludePaths method to ICommandLauncherFactory2 that
takes an ICBuildConfiguration and implement this for
ContainerCommandLauncherFactory
- fix ContainerCommandLauncher command handling to use a list
of Strings to preserve spaces in arguments and call new
runCommand interface in Docker UI...as well do not link
any args that are files if they are system directories (e.g.
/usr /bin)
- fix getCommandLauncher in ContainerCommandLauncherFactory when
passing an ICBuildConfiguration so that it uses the configuration's
toolchain properties to figure out if a Container build is asked for
- fix launch method of ContainerLaunchConfigurationDelegate to check
if working directory is null in which case use the project directory
- also add buildForLaunch method override and preLaunchCheck to
ContainerLaunchConfigurationDelegate so it can be used for
Core Build launching as well and ensure that the project name
and active configuration is set properly
- in CoreBuildLaunchBarTracker, use the lastTarget to set the
active target instead of the local field "target" as this will
end up setting a random target as the active target. Also
call the new refreshScannerInfo method of the build configuration
when the active target has changed
- add ICBuildConfiguration support to Docker LaunchShortcut such
that properties will be set appropriately and acquired from the
toolChain
- bump up Docker launcher version to 1.2.0
Change-Id: I074b02314f6ac6942fdf230b1dc8e154ced3088e
- modify ContainerTab to reset the error message when Docker
Connections/Image changes cause a listener notification and
then look to see if no connections or no images errors exist
- modify ContainerTab to reset the error message if the Docker
Connection selected gets changed
- bump org.eclipse.cdt.docker.launcher version to 1.1.1
Change-Id: Iad5051750a5dd53a0eb458d73570fffd9e3867c4
- move ContainerCommandLauncher to org.eclipse.cdt.docker
- update DockerLaunchUIPlugin to be noextend
- update users of ContainerCommandLauncher appropriately
Change-Id: I32ea6de3b3df12b6579249583303111bf6b7b957
- add IOptionalBuildObjectPropertiesContainer interface to use for
objects that supply optional build properties
- add new IOptionalBuildProperties interface that defines
optional build properties donated by external plug-ins
- add new
- change IConfiguration to an IOptionalBuildObjectPropertiesContainer
- change IManagedProject to be an
IOptionalBuildObjectPropertiesContainer
- fix ProcessClosure to ensure that readers are not null before
accessing them
- fix Container launch delegate to look at project optional
build properties for active configuration to fetch connection
and image info and use said info to find a matching
launch or create a new one
- have Container launch delegate use the image name as part of
the launch config name
- have Container launch short-cut also use the project's
optional build properties for the active config to get
connection and image information before any defaulting
- change AutotoolsNewMarkerGenerator to store the command
launcher as an ICommandLauncher
- add new CommandLauncherFactory extension to cdt.core that
allows plug-ins to specify a CommandLauncherFactory that
will return an ICommandLauncher based on the project
- add macros for new extension to CCorePlugin
- add new CommandLauncherManager class that loads
CommandLauncherFactory extensions and is used to give
an ICommandLauncher wrapper that will go through the list
of CommandLauncherFactory extensions until one returns
non-null ICommandLauncher
- add code to RemoteCommandLauncher so it will use the
CommandLauncherManager to get the local launcher
- also change RemoteCommandLauncher to check at execution
time whether the command is local and in that case use
the local command launcher
- add new ICommandLauncherFactory interface
- add new ContainerCommandLauncher to launch
- add new ContainerCommandLauncherFactory class for returning
a ContainerCommandLauncher instance to launch commands
in a Docker Container
- change MakeBuilder to use CommandLauncherManager to get
its ICommandLauncher
- change CommandBuilder to use CommandLauncherManager too
- ditto for Builder and AbstractBuiltinSpecsDetector and
ExternalToolInvoker
- change Configuration to load/store optional build properties
as well as return the properties to get/set
- ditto for MultiConfiguration
- change ManagedProject to implement IOptionalBuildOptionProperties
interface
- ditto for ProjectType
- create new OptionalBuildProperties class to store optional
build properties for a configuration
- bump cdt.docker.launcher to 1.1.0
- use CommandLauncherFactory extension to define
ContainerCommandLauncherFactory
- add optional ContainerPropertyTab which allows the end-user to
optionally choose to build a C/C++ project in a Container
and specify the connection/image to use
- in LanguageSettingsSerializableSettings class, call the
CommandLauncherManager getLanguageSettingEntries method
to get the massaged language setting entries based on the
current list
- in LanguageSettingsProviderSerializer, try and get the
pooled entries using the cfg description so that it will
have the project and can use the CommandLauncherManager
to get entries from image
- in ContainerCommandLauncherFactory move cached headers under
a HEADERS directory in the plug-in area
- create a sub-directory for the connection and a sub-directory
for the image based on cleansed names
- store the real names of the connection and image to use
later in the DockerHeaderPreferencePage
- modify LanguageSettingsEntriesTab to force the horizontal
scroll bar to appear (this is a bug in SWT SashForm support
and the fix here isn't quite correct, but is better)
- add new DockerHeaderPreferencePage that allows user to
remove cached headers from images
- change C/C++ Docker preferences to be titled: Docker Container
- fix LanguageSettingsWorkspaceProvider.getSettingEntries method
to use the CommandLauncherManager so entries will be transformed
to use cached headers
- add BaseDatabindingModel class
- add DataVolumeModel class to model a volume mount
- add ContainerPropertyVolumes model to model volume specification
and selected volumes
- add properties to ContainerCommandLauncher to represent
volumes and selected volumes for a configuration
- add ContainerDataVolumeDialog for specifying a volume
mount by the end-user
- add a null detector for cfgDescription in
LanguageSettingsSerializableProvider
- fix AutotoolsNewMakeGenerator.getWinOSType to not specify "." for
working dir
- fix GCCBuiltinSpecsDetectorCygwin to not map paths to Cygwin if
the current configuration is enabled for container build
- add logic to ContainerCommandLauncher to look for Windows
file formats and change them to unix format and map
any "." working dir to be /tmp
- fix ContainerLauncherConfigurationDelegate similarly
- fix AbstractBuiltinSpecsDetector to pass in the current
configuration description when getting the CommandLauncher
since the current configuration may not be the active
configuration
- change ContainerPropertyTab to add Elf and GNU Elf binary parsers
when build in Container is chosen so that output executables
are treated as Binaries by the CDT project
- add documentationl for the ContainerPropertyTab in Build Settings and
the Data Volume dialog pop-up it brings up
- change CommandBuilder to accept a project as an argument
to its constructor and to pass this as an argument to
the CommandLauncherManager
- have StepBuilder pass project when creating a CommandBuilder
Change-Id: Ia78488b93056e6ec7ca83a6c87b3a9d2b9424943
This is the first change to remove CDI from CDT. The CDI model
implementation is removed along with everything that directly
depends upon the implementation.
This commit does not include refactoring or moving classes. The few
insertions are the minimum necessary.
Change-Id: I80274e1a0d77bc7bb00a2afe4babc00c4f7613ae
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
- use the new docker tooling plug-ins to launch and debug
CDT C/C++ applications in docker containers
Change-Id: I30689255a3443ce6d49f937f5e2506d86452915b