* CHE-8557: No Dto available for FormattingOptions
The Dto isn't needed for FormattingOptions as it is really a specialized
Map and the types that contain a FormattingOptions field handle
the field as a Map during JSON serialize/deserialize
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
* CHE-8557: Test cases for Either deserializing
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
* CHE-8557: Fix Either handling when deserializing on the server
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
* CHE-8557: Use actual type for Map conversions
The is necessary to ensure handling types which are of type Map are
still instantiated in their real type. Consider
DocumentFormattingParams.setOptions() which takes a FormattingOptions
class.
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
* CHE-8557: Register LSP4J's Either adapter factory
This is effectively a follow up CHE-3103 which uses Gson directly
to serialize/deserialize Json. To support LSP4J's Either types,
the either type adapter factory is needed.
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
* load EitherTypeAdapterFactory for registration
Signed-off-by: Valeriy Svydenko <vsvydenk@redhat.com>
Allows to use NULL as a value of JDBC config to simplify usage of
environment variables for JDBC settings in k8s/Openshift
deployment files. NULL is treated as unset variable.
Signed-off-by: Oleksandr Garagatyi <ogaragat@redhat.com>
* Copy the boostrapper config file to POD *installer by installer* to avoid executing a huge command, which in turn tries to send a huge GET request (73kb-long URL).
This long GET request was previously not supported by the fabric8 oso proxy.
See https://github.com/openshiftio/openshift.io/issues/2254 for more
details.
* Make the Kubernetes / Openshift infrastructures multi-tenant-compatible
This includes:
1. Reworking the `KubernetesClientFactory` and `OpenshiftClientFactory`
to:
- share a single `OkHttpClient` that is the basis of all created
Kubernetes or Openshift clients potentially pointing to
different.cluster URL with different authorization tokens
- provide the workspaceId in the `create` methods whenever it's
available (workspace start / stop, idling, etc ...
- have distinct methods for creating the Kubernetes client and the
Openshift client (required since the Openshift client creates connection
leaks on some calls such as exec of POD watch)
This is the implementation of issue
https://github.com/redhat-developer/rh-che/issues/516
2. Adding the `userId` into the SPI `RuntimeIdentity` object. Currently,
only the `userName` is available in this object that gathers information
about the identity attached to a workspace runtime. This change is
required because the `userId` should be accessible from the
`workspaceId` for implementing multi-tenancy and creating workspace
resources in a user-specific location.
This is the implementation of issue
https://github.com/redhat-developer/rh-che/issues/501
* In the Openshift infrastructure, the authentication interceptor should
always convert userName/password-based authentication to
oauth-token-based authentication, even when using the
`KubernetesClient`.
Signed-off-by: David Festal <dfestal@redhat.com>
During code evolution might be the case then someone will want to rename some property. This brings a couple of problems like support of old property name in external plugins and support old configuration values in code with the new property name. To cover these cases there is a file che_aliases.properties that contains old names of all existed properties. It has such format current_name =old_name, very_old_name. In this case will be such binding.
Always current_name = current_value
if old_name property exist it will be binded to old_value, and current_name = old_value and very_old_name = old_value
if very_old_name property exist it will be binded to very_old_value, and current_name = very_old_value and old_name = very_old_value
NOTE: its prohibited to use a different name for same property on the same level. From the example above - you can use environment property CHE_CURRENT_NAME and CHE_OLD_NAME. But you can use it on a different level, for instance, environment property and system property.
Extract default machine memory limit setting from
InternalEnvironmentFactory to recipe specific environment
factories.
Make memory limit attribute optional by respecting it by
resource API subsystem.
Signed-off-by: Oleksandr Garagatyi <ogaragat@redhat.com>
- Workspace projects are now stored in folders, named after their workspace id, rather than name,
to prevent issues with workspace renaming. Applies to Docker infrastructure only.
- Add migration, that would move workspace projects to their new location. Occurs on Che startup.
- Added configuration property to enable/disable this migration.
- Improved Workspace DAO/Manager to use pagination for methods, that return lists of workspaces
Adapted modules to gwt-lib/gwt-app lifecycle;
shared libs have been cleaned up from the GWT related stuff;
enabled launching Super DevMode with a reactor goal gwt:codeserver;
enabled launching Super DevMode inside a dev-machine (for Che in Che development);
separate compiling IDE GWT app from packaging IDE Web app.
Signed-off-by: Artem Zatsarynnyi <azatsary@redhat.com>