Live-Demo on Gitpod Build Error

Hello everyone. I am trying to get up to speed on OpenEMS and its various components. I understand the overall architecture much better now after reading all of the documentation 3 times.

I also have OpenEMS Edge running well on a Raspberry Pi 5. I am also using a Raspberry Pi 4 as a temporary OpenEMS Backend server. I cannot yet run the UI from my Mac but I believe it has something to do with real user authentication.

I would now like to understand how to implement user authentication using something like Odoo. I have decided that the best way to learn how to do that is from the Live-Demo.

When I go to run the demo using either Dashboard or Dashboard, I get an error when its trying to build OpenEMS Edge on the second terminal output. I have tried both VS Code in the browser option and Desktop.

Here is the error that it cannot seem to get past after this command “./gradlew build buildEdge -x test”:

Picked up JAVA_TOOL_OPTIONS:  -Xmx3489m

> Task :io.openems.common:jar FAILED
warning: Export-Package duplicate package name (io.openems.common) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.channel) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.event) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.exceptions) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.function) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.jsonrpc.base) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.jsonrpc.notification) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.jsonrpc.request) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.jsonrpc.response) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.session) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.test) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.timedata) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.types) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.utils) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.websocket) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
warning: Export-Package duplicate package name (io.openems.common.worker) that uses the default version because no version is specified (1.0.0). Remove duplicate package or add an explicit version to it.
error  : Classes found in the wrong directory: {main/io/openems/common/exceptions/InvalidValueException.class=io.openems.common.exceptions.InvalidValueException, test/io/openems/common/utils/CollectorUtilsTest.class=io.openems.common.utils.CollectorUtilsTest, test/io/openems/common/utils/JsonrpcUtilsTest.class=io.openems.common.utils.JsonrpcUtilsTest, main/io/openems/common/timedata/Resolution.class=io.openems.common.timedata.Resolution, main/io/openems/common/jsonrpc/request/AppCenterInstallAppWithSuppliedKeyRequest.class=io.openems.common.jsonrpc.request.AppCenterInstallAppWithSuppliedKeyRequest, main/io/openems/common/utils/DoubleUtils.class=io.openems.common.utils.DoubleUtils, main/io/openems/common/function/package-info.class=io.openems.common.function.package-info, main/io/openems/common/jsonrpc/response/QueryHistoricTimeseriesEnergyResponse.class=io.openems.common.jsonrpc.response.QueryHistoricTimeseriesEnergyResponse, test/io/openems/common/worker/AbstractCycleWorkerTest$1.class=io.openems.common.worker.AbstractCycleWorkerTest$1, main/io/openems/common/jsonrpc/response/GetEdgesResponse$EdgeMetadata.class=io.openems.common.jsonrpc.response.GetEdgesResponse$EdgeMetadata, main/io/openems/common/channel/Level.class=io.openems.common.channel.Level, main/io/openems/common/jsonrpc/base/JsonrpcRequest.class=io.openems.common.jsonrpc.base.JsonrpcRequest, test/io/openems/common/utils/DateUtilsTest.class=io.openems.common.utils.DateUtilsTest, main/io/openems/common/jsonrpc/response/AuthenticateResponse.class=io.openems.common.jsonrpc.response.AuthenticateResponse, main/io/openems/common/websocket/package-info.class=io.openems.common.websocket.package-info, main/io/openems/common/jsonrpc/response/AppCenterIsKeyApplicableResponse$Registration.class=io.openems.common.jsonrpc.response.AppCenterIsKeyApplicableResponse$Registration, main/io/openems/common/utils/UuidUtils.class=io.openems.common.utils.UuidUtils, main/io/openems/common/channel/Debounce.class=io.openems.common.channel.Debounce, main/io/openems/common/jsonrpc/notification/SystemLogNotification.class=io.openems.common.jsonrpc.notification.SystemLogNotification, main/io/openems/common/jsonrpc/request/SetGridConnScheduleRequest.class=io.openems.common.jsonrpc.request.SetGridConnScheduleRequest, main/io/openems/common/jsonrpc/base/JsonrpcResponseSuccess.class=io.openems.common.jsonrpc.base.JsonrpcResponseSuccess, main/io/openems/common/test/TimeLeapClock.class=io.openems.common.test.TimeLeapClock, main/io/openems/common/jsonrpc/response/QueryHistoricTimeseriesEnergyPerPeriodResponse.class=io.openems.common.jsonrpc.response.QueryHistoricTimeseriesEnergyPerPeriodResponse, main/io/openems/common/jsonrpc/request/ComponentJsonApiRequest.class=io.openems.common.jsonrpc.request.ComponentJsonApiRequest, main/io/openems/common/websocket/DummyWebsocketServer$Builder.class=io.openems.common.websocket.DummyWebsocketServer$Builder, main/io/openems/common/utils/ReflectionUtils.class=io.openems.common.utils.ReflectionUtils, main/io/openems/common/websocket/OnOpen.class=io.openems.common.websocket.OnOpen, main/io/openems/common/jsonrpc/base/JsonrpcNotification.class=io.openems.common.jsonrpc.base.JsonrpcNotification, main/io/openems/common/jsonrpc/request/QueryHistoricTimeseriesExportXlxsRequest.class=io.openems.common.jsonrpc.request.QueryHistoricTimeseriesExportXlxsRequest, main/io/openems/common/jsonrpc/request/SubscribeChannelsRequest.class=io.openems.common.jsonrpc.request.SubscribeChannelsRequest, main/io/openems/common/jsonrpc/base/AbstractJsonrpcRequest.class=io.openems.common.jsonrpc.base.AbstractJsonrpcRequest, main/io/openems/common/jsonrpc/base/DeprecatedJsonrpcNotification.class=io.openems.common.jsonrpc.base.DeprecatedJsonrpcNotification, main/io/openems/common/channel/package-info.class=io.openems.common.channel.package-info, main/io/openems/common/exceptions/package-info.class=io.openems.common.exceptions.package-info, main/io/openems/common/jsonrpc/response/QueryHistoricTimeseriesExportXlsxResponse$Channel.class=io.openems.common.jsonrpc.response.QueryHistoricTimeseriesExportXlsxResponse$Channel, main/io/openems/common/function/ThrowingFunction.class=io.openems.common.function.ThrowingFunction, main/io/openems/common/function/ThrowingConsumer.class=io.openems.common.function.ThrowingConsumer, main/io/openems/common/types/EdgeConfig.class=io.openems.common.types.EdgeConfig, main/io/openems/common/exceptions/AccessDeniedException.class=io.openems.common.exceptions.AccessDeniedException, main/io/openems/common/types/EdgeConfig$Component$Channel$ChannelDetailEnum.class=io.openems.common.types.EdgeConfig$Component$Channel$ChannelDetailEnum, main/io/openems/common/utils/ThreadPoolUtils.class=io.openems.common.utils.ThreadPoolUtils, main/io/openems/common/utils/ConfigUtils.class=io.openems.common.utils.ConfigUtils, main/io/openems/common/exceptions/OpenemsError.class=io.openems.common.exceptions.OpenemsError, main/io/openems/common/jsonrpc/base/JsonrpcMessage.class=io.openems.common.jsonrpc.base.JsonrpcMessage, main/io/openems/common/types/EdgeConfig$Component$Channel$ChannelDetail.class=io.openems.common.types.EdgeConfig$Component$Channel$ChannelDetail, main/io/openems/common/jsonrpc/response/GetEdgesResponse.class=io.openems.common.jsonrpc.response.GetEdgesResponse, main/io/openems/common/jsonrpc/base/GenericJsonrpcNotification.class=io.openems.common.jsonrpc.base.GenericJsonrpcNotification, main/io/openems/common/websocket/OnCloseHandler.class=io.openems.common.websocket.OnCloseHandler, main/io/openems/common/types/EdgeConfig$Component$Channel$ChannelDetailOpenemsType.class=io.openems.common.types.EdgeConfig$Component$Channel$ChannelDetailOpenemsType, main/io/openems/common/websocket/OnRequestHandler.class=io.openems.common.websocket.OnRequestHandler, main/io/openems/common/utils/JsonUtils$JsonArrayBuilder.class=io.openems.common.utils.JsonUtils$JsonArrayBuilder, main/io/openems/common/websocket/AbstractWebsocketServer.class=io.openems.common.websocket.AbstractWebsocketServer, main/io/openems/common/utils/JsonUtils$JsonArrayCollector.class=io.openems.common.utils.JsonUtils$JsonArrayCollector, main/io/openems/common/utils/StringUtils.class=io.openems.common.utils.StringUtils, main/io/openems/common/websocket/OnError.class=io.openems.common.websocket.OnError, main/io/openems/common/types/EdgeConfigDiff$ComponentDiff$OldNewProperty.class=io.openems.common.types.EdgeConfigDiff$ComponentDiff$OldNewProperty, main/io/openems/common/jsonrpc/request/SetGridConnScheduleRequest$GridConnSchedule.class=io.openems.common.jsonrpc.request.SetGridConnScheduleRequest$GridConnSchedule, main/io/openems/common/jsonrpc/base/JsonrpcResponse.class=io.openems.common.jsonrpc.base.JsonrpcResponse, main/io/openems/common/types/EdgeConfig$Component$Channel.class=io.openems.common.types.EdgeConfig$Component$Channel, main/io/openems/common/utils/JsonrpcUtils.class=io.openems.common.utils.JsonrpcUtils, main/io/openems/common/jsonrpc/response/AppCenterGetPossibleAppsResponse$App.class=io.openems.common.jsonrpc.response.AppCenterGetPossibleAppsResponse$App, main/io/openems/common/websocket/WebsocketUtils.class=io.openems.common.websocket.WebsocketUtils, test/io/openems/common/websocket/ClientReconnectorWorkerTest$MyWsData.class=io.openems.common.websocket.ClientReconnectorWorkerTest$MyWsData, main/io/openems/common/OpenemsOEM$Manufacturer.class=io.openems.common.OpenemsOEM$Manufacturer, main/io/openems/common/types/EdgeConfig$Factory$Property.class=io.openems.common.types.EdgeConfig$Factory$Property, main/io/openems/common/exceptions/OpenemsException.class=io.openems.common.exceptions.OpenemsException, main/io/openems/common/event/EventBuilder.class=io.openems.common.event.EventBuilder, main/io/openems/common/jsonrpc/request/AuthenticateWithTokenRequest.class=io.openems.common.jsonrpc.request.AuthenticateWithTokenRequest, main/io/openems/common/types/SystemLog$Level.class=io.openems.common.types.SystemLog$Level, test/io/openems/common/utils/JsonUtilsTest.class=io.openems.common.utils.JsonUtilsTest, main/io/openems/common/session/Role.class=io.openems.common.session.Role, main/io/openems/common/websocket/ClientReconnectorWorker.class=io.openems.common.websocket.ClientReconnectorWorker, main/io/openems/common/websocket/OnResponseHandler.class=io.openems.common.websocket.OnResponseHandler, main/io/openems/common/jsonrpc/request/DeleteComponentConfigRequest.class=io.openems.common.jsonrpc.request.DeleteComponentConfigRequest, main/io/openems/common/utils/IntUtils.class=io.openems.common.utils.IntUtils, main/io/openems/common/worker/AbstractImmediateWorker.class=io.openems.common.worker.AbstractImmediateWorker, main/io/openems/common/types/EdgeConfigDiff$ComponentDiff$Change.class=io.openems.common.types.EdgeConfigDiff$ComponentDiff$Change, main/io/openems/common/exceptions/NotImplementedException.class=io.openems.common.exceptions.NotImplementedException, main/io/openems/common/channel/ChannelCategory.class=io.openems.common.channel.ChannelCategory, main/io/openems/common/jsonrpc/request/CreateComponentConfigRequest.class=io.openems.common.jsonrpc.request.CreateComponentConfigRequest, main/io/openems/common/types/EdgeConfigDiff.class=io.openems.common.types.EdgeConfigDiff, main/io/openems/common/jsonrpc/request/package-info.class=io.openems.common.jsonrpc.request.package-info, main/io/openems/common/test/package-info.class=io.openems.common.test.package-info, main/io/openems/common/types/package-info.class=io.openems.common.types.package-info, main/io/openems/common/jsonrpc/request/GetEdgesRequest.class=io.openems.common.jsonrpc.request.GetEdgesRequest, main/io/openems/common/websocket/AbstractWebsocketClient.class=io.openems.common.websocket.AbstractWebsocketClient, main/io/openems/common/utils/ServiceUtils.class=io.openems.common.utils.ServiceUtils, main/io/openems/common/jsonrpc/request/AuthenticateWithPasswordRequest.class=io.openems.common.jsonrpc.request.AuthenticateWithPasswordRequest, main/io/openems/common/jsonrpc/response/AppCenterIsAppFreeResponse.class=io.openems.common.jsonrpc.response.AppCenterIsAppFreeResponse, main/io/openems/common/OpenemsOEM.class=io.openems.common.OpenemsOEM, main/io/openems/common/session/Language.class=io.openems.common.session.Language, main/io/openems/common/jsonrpc/base/JsonrpcResponseError.class=io.openems.common.jsonrpc.base.JsonrpcResponseError, main/io/openems/common/function/ThrowingTriConsumer.class=io.openems.common.function.ThrowingTriConsumer, main/io/openems/common/function/ThrowingBiFunction.class=io.openems.common.function.ThrowingBiFunction, main/io/openems/common/utils/JsonUtils$JsonObjectBuilder.class=io.openems.common.utils.JsonUtils$JsonObjectBuilder, test/io/openems/common/event/EventBuilderTest.class=io.openems.common.event.EventBuilderTest, main/io/openems/common/jsonrpc/request/AppCenterIsAppFreeRequest.class=io.openems.common.jsonrpc.request.AppCenterIsAppFreeRequest, main/io/openems/common/test/AbstractComponentConfig.class=io.openems.common.test.AbstractComponentConfig, main/io/openems/common/jsonrpc/request/AuthenticatedRpcRequest.class=io.openems.common.jsonrpc.request.AuthenticatedRpcRequest, main/io/openems/common/event/EventReader.class=io.openems.common.event.EventReader, main/io/openems/common/function/ThrowingRunnable.class=io.openems.common.function.ThrowingRunnable, main/io/openems/common/timedata/CommonTimedataService.class=io.openems.common.timedata.CommonTimedataService, main/io/openems/common/utils/EnumUtils.class=io.openems.common.utils.EnumUtils, main/io/openems/common/types/OpenemsType.class=io.openems.common.types.OpenemsType, main/io/openems/common/utils/PasswordUtils.class=io.openems.common.utils.PasswordUtils, main/io/openems/common/websocket/OnClose.class=io.openems.common.websocket.OnClose, main/io/openems/common/channel/PersistencePriority.class=io.openems.common.channel.PersistencePriority, main/io/openems/common/types/ConfigurationProperty.class=io.openems.common.types.ConfigurationProperty, main/io/openems/common/jsonrpc/notification/TimestampedDataNotification.class=io.openems.common.jsonrpc.notification.TimestampedDataNotification, main/io/openems/common/jsonrpc/request/AppCenterAddInstallInstanceHistoryRequest.class=io.openems.common.jsonrpc.request.AppCenterAddInstallInstanceHistoryRequest, main/io/openems/common/jsonrpc/response/QueryHistoricTimeseriesExportXlsxResponse.class=io.openems.common.jsonrpc.response.QueryHistoricTimeseriesExportXlsxResponse, main/io/openems/common/types/EdgeConfig$ActualEdgeConfig.class=io.openems.common.types.EdgeConfig$ActualEdgeConfig, main/io/openems/common/jsonrpc/response/GetEdgeResponse.class=io.openems.common.jsonrpc.response.GetEdgeResponse, main/io/openems/common/jsonrpc/request/AppCenterIsKeyApplicableRequest.class=io.openems.common.jsonrpc.request.AppCenterIsKeyApplicableRequest, main/io/openems/common/jsonrpc/request/AppCenterRequest.class=io.openems.common.jsonrpc.request.AppCenterRequest, test/io/openems/common/utils/ConfigUtilsTest.class=io.openems.common.utils.ConfigUtilsTest, main/io/openems/common/worker/AbstractWorker$1.class=io.openems.common.worker.AbstractWorker$1, main/io/openems/common/jsonrpc/response/AppCenterIsKeyApplicableResponse$AdditionalInfo.class=io.openems.common.jsonrpc.response.AppCenterIsKeyApplicableResponse$AdditionalInfo, main/io/openems/common/jsonrpc/response/Base64PayloadResponse.class=io.openems.common.jsonrpc.response.Base64PayloadResponse, test/io/openems/common/timedata/CommonTimedataServiceTest.class=io.openems.common.timedata.CommonTimedataServiceTest, main/io/openems/common/jsonrpc/response/EdgeRpcResponse.class=io.openems.common.jsonrpc.response.EdgeRpcResponse, main/io/openems/common/jsonrpc/request/AppCenterAddUnregisterKeyHistoryRequest.class=io.openems.common.jsonrpc.request.AppCenterAddUnregisterKeyHistoryRequest, main/io/openems/common/worker/AbstractWorker.class=io.openems.common.worker.AbstractWorker, test/io/openems/common/channel/UnitTest.class=io.openems.common.channel.UnitTest, main/io/openems/common/function/ThrowingSupplier.class=io.openems.common.function.ThrowingSupplier, main/io/openems/common/websocket/OnOpenHandler.class=io.openems.common.websocket.OnOpenHandler, main/io/openems/common/jsonrpc/request/GetEdgeRequest.class=io.openems.common.jsonrpc.request.GetEdgeRequest, main/io/openems/common/websocket/OnErrorHandler.class=io.openems.common.websocket.OnErrorHandler, main/io/openems/common/websocket/OnInternalError.class=io.openems.common.websocket.OnInternalError, main/io/openems/common/websocket/OnNotificationHandler.class=io.openems.common.websocket.OnNotificationHandler, main/io/openems/common/exceptions/OpenemsError$OpenemsNamedException.class=io.openems.common.exceptions.OpenemsError$OpenemsNamedException, main/io/openems/common/function/BooleanConsumer.class=io.openems.common.function.BooleanConsumer, main/io/openems/common/websocket/OnRequest.class=io.openems.common.websocket.OnRequest, main/io/openems/common/jsonrpc/notification/package-info.class=io.openems.common.jsonrpc.notification.package-info, test/io/openems/common/event/EventBuilderTest$TestClass.class=io.openems.common.event.EventBuilderTest$TestClass, main/io/openems/common/jsonrpc/response/GetEdgeConfigResponse.class=io.openems.common.jsonrpc.response.GetEdgeConfigResponse, main/io/openems/common/jsonrpc/request/AddAppInstanceRequest.class=io.openems.common.jsonrpc.request.AddAppInstanceRequest, main/io/openems/common/types/SemanticVersion.class=io.openems.common.types.SemanticVersion, main/io/openems/common/websocket/DummyWebsocketServer.class=io.openems.common.websocket.DummyWebsocketServer, main/io/openems/common/types/EdgeConfigDiff$ComponentDiff.class=io.openems.common.types.EdgeConfigDiff$ComponentDiff, main/io/openems/common/jsonrpc/request/AppCenterGetInstalledAppsRequest.class=io.openems.common.jsonrpc.request.AppCenterGetInstalledAppsRequest, main/io/openems/common/utils/ServiceUtils$CloseableService.class=io.openems.common.utils.ServiceUtils$CloseableService, main/io/openems/common/channel/AccessMode.class=io.openems.common.channel.AccessMode, main/io/openems/common/jsonrpc/base/package-info.class=io.openems.common.jsonrpc.base.package-info, main/io/openems/common/websocket/WsData.class=io.openems.common.websocket.WsData, main/io/openems/common/utils/package-info.class=io.openems.common.utils.package-info, main/io/openems/common/utils/Mutex.class=io.openems.common.utils.Mutex, main/io/openems/common/timedata/package-info.class=io.openems.common.timedata.package-info, main/io/openems/common/OpenemsConstants.class=io.openems.common.OpenemsConstants, main/io/openems/common/jsonrpc/notification/LogMessageNotification.class=io.openems.common.jsonrpc.notification.LogMessageNotification, main/io/openems/common/jsonrpc/response/AppCenterIsKeyApplicableResponse.class=io.openems.common.jsonrpc.response.AppCenterIsKeyApplicableResponse, main/io/openems/common/utils/ObjectUtils.class=io.openems.common.utils.ObjectUtils, main/io/openems/common/jsonrpc/notification/ResendDataNotification.class=io.openems.common.jsonrpc.notification.ResendDataNotification, main/io/openems/common/jsonrpc/response/AppCenterGetPossibleAppsResponse$Bundle.class=io.openems.common.jsonrpc.response.AppCenterGetPossibleAppsResponse$Bundle, main/io/openems/common/websocket/OnInternalErrorHandler.class=io.openems.common.websocket.OnInternalErrorHandler, main/io/openems/common/websocket/AbstractWebsocketClient$1.class=io.openems.common.websocket.AbstractWebsocketClient$1, main/io/openems/common/jsonrpc/request/AppCenterGetPossibleAppsRequest.class=io.openems.common.jsonrpc.request.AppCenterGetPossibleAppsRequest, main/io/openems/common/jsonrpc/notification/AggregatedDataNotification.class=io.openems.common.jsonrpc.notification.AggregatedDataNotification, main/io/openems/common/jsonrpc/notification/EdgeConfigNotification.class=io.openems.common.jsonrpc.notification.EdgeConfigNotification, main/io/openems/common/utils/CollectorUtils.class=io.openems.common.utils.CollectorUtils, main/io/openems/common/utils/SecureRandomSingleton.class=io.openems.common.utils.SecureRandomSingleton, main/io/openems/common/websocket/OnNotification.class=io.openems.common.websocket.OnNotification, main/io/openems/common/utils/XmlUtils$1.class=io.openems.common.utils.XmlUtils$1, main/io/openems/common/websocket/DummyWsData.class=io.openems.common.websocket.DummyWsData, main/io/openems/common/types/SystemLog.class=io.openems.common.types.SystemLog, main/io/openems/common/jsonrpc/response/QueryHistoricTimeseriesExportXlsxResponse$XlsxUtils.class=io.openems.common.jsonrpc.response.QueryHistoricTimeseriesExportXlsxResponse$XlsxUtils, main/io/openems/common/websocket/AbstractWebsocket.class=io.openems.common.websocket.AbstractWebsocket, main/io/openems/common/jsonrpc/request/SetChannelValueRequest.class=io.openems.common.jsonrpc.request.SetChannelValueRequest, main/io/openems/common/types/EdgeConfig$Factory.class=io.openems.common.types.EdgeConfig$Factory, main/io/openems/common/jsonrpc/request/AppCenterAddRegisterKeyHistoryRequest.class=io.openems.common.jsonrpc.request.AppCenterAddRegisterKeyHistoryRequest, main/io/openems/common/jsonrpc/base/GenericJsonrpcResponseSuccess.class=io.openems.common.jsonrpc.base.GenericJsonrpcResponseSuccess, main/io/openems/common/test/DummyOptionsEnum.class=io.openems.common.test.DummyOptionsEnum, main/io/openems/common/jsonrpc/response/QueryHistoricTimeseriesDataResponse.class=io.openems.common.jsonrpc.response.QueryHistoricTimeseriesDataResponse, main/io/openems/common/jsonrpc/request/UpdateComponentConfigRequest$Property.class=io.openems.common.jsonrpc.request.UpdateComponentConfigRequest$Property, main/io/openems/common/jsonrpc/request/GetEdgesRequest$PaginationOptions.class=io.openems.common.jsonrpc.request.GetEdgesRequest$PaginationOptions, main/io/openems/common/jsonrpc/response/package-info.class=io.openems.common.jsonrpc.response.package-info, test/io/openems/common/websocket/ClientReconnectorWorkerTest$MyWebsocketClient.class=io.openems.common.websocket.ClientReconnectorWorkerTest$MyWebsocketClient, main/io/openems/common/jsonrpc/response/AppCenterGetInstalledAppsResponse.class=io.openems.common.jsonrpc.response.AppCenterGetInstalledAppsResponse, main/io/openems/common/jsonrpc/request/AppCenterGetRegisteredKeysRequest.class=io.openems.common.jsonrpc.request.AppCenterGetRegisteredKeysRequest, main/io/openems/common/jsonrpc/notification/EdgeRpcNotification.class=io.openems.common.jsonrpc.notification.EdgeRpcNotification, main/io/openems/common/jsonrpc/request/LogoutRequest.class=io.openems.common.jsonrpc.request.LogoutRequest, main/io/openems/common/types/EdgeConfig$Component$JsonFormat.class=io.openems.common.types.EdgeConfig$Component$JsonFormat, main/io/openems/common/function/ThrowingBiConsumer.class=io.openems.common.function.ThrowingBiConsumer, main/io/openems/common/jsonrpc/request/QueryHistoricTimeseriesEnergyRequest.class=io.openems.common.jsonrpc.request.QueryHistoricTimeseriesEnergyRequest, test/io/openems/common/event/EventBuilderTest$EventAdminTest.class=io.openems.common.event.EventBuilderTest$EventAdminTest, main/io/openems/common/jsonrpc/base/GenericJsonrpcRequest.class=io.openems.common.jsonrpc.base.GenericJsonrpcRequest, main/io/openems/common/utils/IntUtils$Round.class=io.openems.common.utils.IntUtils$Round, main/io/openems/common/utils/XmlUtils.class=io.openems.common.utils.XmlUtils, main/io/openems/common/worker/AbstractCycleWorker.class=io.openems.common.worker.AbstractCycleWorker, test/io/openems/common/utils/StringUtilsTest.class=io.openems.common.utils.StringUtilsTest, main/io/openems/common/jsonrpc/response/AuthenticatedRpcResponse.class=io.openems.common.jsonrpc.response.AuthenticatedRpcResponse, main/io/openems/common/function/ThrowingTriFunction.class=io.openems.common.function.ThrowingTriFunction, main/io/openems/common/websocket/AbstractWebsocketServer$DebugMode.class=io.openems.common.websocket.AbstractWebsocketServer$DebugMode, test/io/openems/common/utils/IntUtilsTest.class=io.openems.common.utils.IntUtilsTest, main/io/openems/common/jsonrpc/request/UpdateComponentConfigRequest.class=io.openems.common.jsonrpc.request.UpdateComponentConfigRequest, main/io/openems/common/types/EdgeConfig$ActualEdgeConfig$Builder.class=io.openems.common.types.EdgeConfig$ActualEdgeConfig$Builder, main/io/openems/common/websocket/AbstractWebsocketServer$1.class=io.openems.common.websocket.AbstractWebsocketServer$1, test/io/openems/common/jsonrpc/response/QueryHistoricTimeseriesExportXlsxResponseTest.class=io.openems.common.jsonrpc.response.QueryHistoricTimeseriesExportXlsxResponseTest, main/io/openems/common/jsonrpc/response/AppCenterGetPossibleAppsResponse.class=io.openems.common.jsonrpc.response.AppCenterGetPossibleAppsResponse, main/io/openems/common/jsonrpc/response/AppCenterIsKeyApplicableResponse$Usage.class=io.openems.common.jsonrpc.response.AppCenterIsKeyApplicableResponse$Usage, test/io/openems/common/worker/AbstractCycleWorkerTest.class=io.openems.common.worker.AbstractCycleWorkerTest, main/io/openems/common/jsonrpc/request/GetEdgesRequest$PaginationOptions$SearchParams.class=io.openems.common.jsonrpc.request.GetEdgesRequest$PaginationOptions$SearchParams, main/io/openems/common/types/EdgeConfig$Component$Channel$ChannelDetailState.class=io.openems.common.types.EdgeConfig$Component$Channel$ChannelDetailState, main/io/openems/common/jsonrpc/request/UpdateUserLanguageRequest.class=io.openems.common.jsonrpc.request.UpdateUserLanguageRequest, main/io/openems/common/session/AbstractUser.class=io.openems.common.session.AbstractUser, main/io/openems/common/jsonrpc/request/GetEdgeConfigRequest.class=io.openems.common.jsonrpc.request.GetEdgeConfigRequest, test/io/openems/common/types/SemanticVersionTest.class=io.openems.common.types.SemanticVersionTest, main/io/openems/common/jsonrpc/notification/AbstractDataNotification.class=io.openems.common.jsonrpc.notification.AbstractDataNotification, main/io/openems/common/jsonrpc/request/QueryHistoricTimeseriesEnergyPerPeriodRequest.class=io.openems.common.jsonrpc.request.QueryHistoricTimeseriesEnergyPerPeriodRequest, main/io/openems/common/jsonrpc/request/SubscribeEdgesRequest.class=io.openems.common.jsonrpc.request.SubscribeEdgesRequest, test/io/openems/common/utils/InetAddressUtilsTest.class=io.openems.common.utils.InetAddressUtilsTest, main/io/openems/common/package-info.class=io.openems.common.package-info, main/io/openems/common/utils/JsonUtils.class=io.openems.common.utils.JsonUtils, main/io/openems/common/types/OptionsEnum.class=io.openems.common.types.OptionsEnum, main/io/openems/common/event/package-info.class=io.openems.common.event.package-info, test/io/openems/common/jsonrpc/base/AbstractJsonrpcRequestTest.class=io.openems.common.jsonrpc.base.AbstractJsonrpcRequestTest, main/io/openems/common/types/ChannelAddress.class=io.openems.common.types.ChannelAddress, test/io/openems/common/websocket/ClientReconnectorWorkerTest.class=io.openems.common.websocket.ClientReconnectorWorkerTest, main/io/openems/common/jsonrpc/notification/CurrentDataNotification.class=io.openems.common.jsonrpc.notification.CurrentDataNotification, main/io/openems/common/jsonrpc/request/QueryHistoricTimeseriesDataRequest.class=io.openems.common.jsonrpc.request.QueryHistoricTimeseriesDataRequest, main/io/openems/common/jsonrpc/request/AppCenterAddDeinstallInstanceHistoryRequest.class=io.openems.common.jsonrpc.request.AppCenterAddDeinstallInstanceHistoryRequest, main/io/openems/common/jsonrpc/request/SubscribeSystemLogRequest.class=io.openems.common.jsonrpc.request.SubscribeSystemLogRequest, main/io/openems/common/types/EdgeConfig$Component.class=io.openems.common.types.EdgeConfig$Component, test/io/openems/common/types/ChannelAddressTest.class=io.openems.common.types.ChannelAddressTest, main/io/openems/common/utils/InetAddressUtils.class=io.openems.common.utils.InetAddressUtils, main/io/openems/common/worker/package-info.class=io.openems.common.worker.package-info, main/io/openems/common/utils/DateUtils.class=io.openems.common.utils.DateUtils, main/io/openems/common/timedata/DurationUnit.class=io.openems.common.timedata.DurationUnit, main/io/openems/common/session/package-info.class=io.openems.common.session.package-info, test/io/openems/common/types/EdgeConfigDiffTest.class=io.openems.common.types.EdgeConfigDiffTest, main/io/openems/common/channel/Unit.class=io.openems.common.channel.Unit, main/io/openems/common/jsonrpc/response/AppCenterGetRegisteredKeysResponse.class=io.openems.common.jsonrpc.response.AppCenterGetRegisteredKeysResponse, main/io/openems/common/jsonrpc/response/AppCenterGetInstalledAppsResponse$Instance.class=io.openems.common.jsonrpc.response.AppCenterGetInstalledAppsResponse$Instance, main/io/openems/common/jsonrpc/request/EdgeRpcRequest.class=io.openems.common.jsonrpc.request.EdgeRpcRequest, test/io/openems/common/jsonrpc/base/GenericJsonrpcRequestTest.class=io.openems.common.jsonrpc.base.GenericJsonrpcRequestTest}

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':io.openems.common:jar'.
> io.openems.common has errors, one error was reported

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 21s
5 actionable tasks: 1 executed, 4 up-to-date

Please point me in the right direction so that I can learn from the fully working demo. Thank you

Can anyone tell me if they also see this error? Maybe I’m doing something wrong on my end.

Just tried this again and here is the error I got on Task 2 (OpenEMS Edge build) after everything else completed:

 HISTFILE=/workspace/.gitpod/cmd-1 history -r; {
sleep 10 && while [ -f /tmp/.gradle-lock ]; do sleep 1; done
./gradlew build buildEdge -x test

} && {
java -Dfelix.cm.dir=$(pwd)/tools/docker/openems-edge/config.d -Dopenems.data.dir=$(pwd)/tools/docker/openems-edge/data -jar build/openems-edge.jar
}
INFO: Executing command: pg_start
waiting for server to start.... done
server started
INFO: Please create another terminal
INFO: this one is monitoring postgres server for gracefully shutting down when needed
gitpod /workspace/openems (main) $  HISTFILE=/workspace/.gitpod/cmd-1 history -r; {
> sleep 10 && while [ -f /tmp/.gradle-lock ]; do sleep 1; done
> ./gradlew build buildEdge -x test
> 
> } && {
> java -Dfelix.cm.dir=$(pwd)/tools/docker/openems-edge/config.d -Dopenems.data.dir=$(pwd)/tools/docker/openems-edge/data -jar build/openems-edge.jar
> }
Picked up JAVA_TOOL_OPTIONS:  -Xmx3489m

> Task :io.openems.edge.controller.api.modbus:jar FAILED
error  : Classes found in the wrong directory: {main/io/openems/edge/controller/api/modbus/readwrite/ControllerApiModbusTcpReadWrite$ChannelId.class=io.openems.edge.controller.api.modbus.readwrite.ControllerApiModbusTcpReadWrite$ChannelId, main/io/openems/edge/controller/api/modbus/MyProcessImage.class=io.openems.edge.controller.api.modbus.MyProcessImage, test/io/openems/edge/controller/api/modbus/readonly/ControllerApiModbusTcpReadOnlyImplTest.class=io.openems.edge.controller.api.modbus.readonly.ControllerApiModbusTcpReadOnlyImplTest, main/io/openems/edge/controller/api/modbus/ModbusTcpApi.class=io.openems.edge.controller.api.modbus.ModbusTcpApi, test/io/openems/edge/controller/api/modbus/readwrite/ControllerApiModbusTcpReadWriteImplTest.class=io.openems.edge.controller.api.modbus.readwrite.ControllerApiModbusTcpReadWriteImplTest, main/io/openems/edge/controller/api/modbus/readonly/ControllerApiModbusTcpReadOnly$ChannelId.class=io.openems.edge.controller.api.modbus.readonly.ControllerApiModbusTcpReadOnly$ChannelId, main/io/openems/edge/controller/api/modbus/AbstractModbusTcpApi$ConfigRecord.class=io.openems.edge.controller.api.modbus.AbstractModbusTcpApi$ConfigRecord, main/io/openems/edge/controller/api/modbus/AbstractModbusTcpApi.class=io.openems.edge.controller.api.modbus.AbstractModbusTcpApi, main/io/openems/edge/controller/api/modbus/readonly/Config.class=io.openems.edge.controller.api.modbus.readonly.Config, main/io/openems/edge/controller/api/modbus/readonly/ControllerApiModbusTcpReadOnly.class=io.openems.edge.controller.api.modbus.readonly.ControllerApiModbusTcpReadOnly, main/io/openems/edge/controller/api/modbus/readwrite/Config.class=io.openems.edge.controller.api.modbus.readwrite.Config, main/io/openems/edge/controller/api/modbus/jsonrpc/GetModbusProtocolExportXlsxResponse.class=io.openems.edge.controller.api.modbus.jsonrpc.GetModbusProtocolExportXlsxResponse, main/io/openems/edge/controller/api/modbus/readwrite/ControllerApiModbusTcpReadWrite.class=io.openems.edge.controller.api.modbus.readwrite.ControllerApiModbusTcpReadWrite, test/io/openems/edge/controller/api/modbus/ModbusTcpApiTest.class=io.openems.edge.controller.api.modbus.ModbusTcpApiTest, test/io/openems/edge/controller/api/modbus/readonly/MyConfig$Builder.class=io.openems.edge.controller.api.modbus.readonly.MyConfig$Builder, main/io/openems/edge/controller/api/modbus/jsonrpc/GetModbusProtocolExportXlsxRequest.class=io.openems.edge.controller.api.modbus.jsonrpc.GetModbusProtocolExportXlsxRequest, main/io/openems/edge/controller/api/modbus/jsonrpc/GetModbusProtocolRequest.class=io.openems.edge.controller.api.modbus.jsonrpc.GetModbusProtocolRequest, test/io/openems/edge/controller/api/modbus/readonly/MyConfig.class=io.openems.edge.controller.api.modbus.readonly.MyConfig, main/io/openems/edge/controller/api/modbus/MyRegister.class=io.openems.edge.controller.api.modbus.MyRegister, main/io/openems/edge/controller/api/modbus/AbstractModbusTcpApi$1.class=io.openems.edge.controller.api.modbus.AbstractModbusTcpApi$1, main/io/openems/edge/controller/api/modbus/readonly/ControllerApiModbusTcpReadOnlyImpl.class=io.openems.edge.controller.api.modbus.readonly.ControllerApiModbusTcpReadOnlyImpl, test/io/openems/edge/controller/api/modbus/readwrite/MyConfig.class=io.openems.edge.controller.api.modbus.readwrite.MyConfig, main/io/openems/edge/controller/api/modbus/readwrite/ControllerApiModbusTcpReadWriteImpl.class=io.openems.edge.controller.api.modbus.readwrite.ControllerApiModbusTcpReadWriteImpl, main/io/openems/edge/controller/api/modbus/ModbusTcpApi$ChannelId.class=io.openems.edge.controller.api.modbus.ModbusTcpApi$ChannelId, main/io/openems/edge/controller/api/modbus/MyIllegalAddressException.class=io.openems.edge.controller.api.modbus.MyIllegalAddressException, main/io/openems/edge/controller/api/modbus/jsonrpc/GetModbusProtocolResponse.class=io.openems.edge.controller.api.modbus.jsonrpc.GetModbusProtocolResponse, test/io/openems/edge/controller/api/modbus/readwrite/MyConfig$Builder.class=io.openems.edge.controller.api.modbus.readwrite.MyConfig$Builder}

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':io.openems.edge.controller.api.modbus:jar'.
> io.openems.edge.controller.api.modbus has errors, one error was reported

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 1m 2s
233 actionable tasks: 105 executed, 64 from cache, 64 up-to-date
gitpod /workspace/openems (main) $ 

If I am the only one getting this kind of error, please let me know so I can stop asking about it.

Thanks in advance for any guidance.

Hi @acabrera,

I just tried again and successfully started a Gitpod instance via Dashboard.

All four tasks (OpenEMS Backend, OpenEMS Edge, OpenEMS UI and Odoo) were building successfully and two tabs for OpenEMS UI and Odoo would open up automatically. Logging in via admin:admin worked properly as well.

I’m afraid I cannot reproduce the problem, sorry.

Regards,
Stefan

Thanks for looking into it, Stefan. I just tried again in a different browser and selecting the larger machine setup. I get a similar error for Task 2. If I remove the warnings, I get down to an error that starts with this snippet:

Task :io.openems.edge.bridge.modbus:jar FAILED

error  : Classes found in the wrong directory: {test/io/openems/edge/bridge/modbus/api/task/FC4ReadInputRegistersTaskTest$MyInputRegister.class=io.openems.edge.bridge.modbus.api.task.FC4ReadInputRegistersTaskTest$MyInputRegister, main/io/openems/edge/bridge/modbus/api/AbstractModbusBridge.class=io.openems.edge.bridge.modbus.api.AbstractModbusBridge, main/io/openems/edge/bridge/modbus/sunspec/DefaultSunSpecModel$S712.class=io.openems.edge.bridge.modbus.sunspec.DefaultSunSpecModel$S712, 

At the end of a very long list of classes, it reads:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':io.openems.edge.bridge.modbus:jar'.
> io.openems.edge.bridge.modbus has errors, one error was reported

I also see an error on Task 1 that reads:

error  : Classes found in the wrong directory: {main/io/openems/edge/evcs/ocpp/common/OcppInformations.class=io.openems.edge.evcs.ocpp.common.OcppInformations, main/io/openems/edge/evcs/ocpp/common/OcppProfileType.class=io.openems.edge.evcs.ocpp.common.OcppProfileType, main/io/openems/edge/evcs/ocpp/common/package-info.class=io.openems.edge.evcs.ocpp.common.package-info, main/io/openems/edge/evcs/ocpp/common/OcppServer.class=io.openems.edge.evcs.ocpp.common.OcppServer, main/io/openems/edge/evcs/ocpp/common/AbstractManagedOcppEvcsComponent.class=io.openems.edge.evcs.ocpp.common.AbstractManagedOcppEvcsComponent, main/io/openems/edge/evcs/ocpp/common/AbstractManagedOcppEvcsComponent$ChannelId.class=io.openems.edge.evcs.ocpp.common.AbstractManagedOcppEvcsComponent$ChannelId, main/io/openems/edge/evcs/ocpp/common/OcppStandardRequests.class=io.openems.edge.evcs.ocpp.common.OcppStandardRequests, main/io/openems/edge/evcs/ocpp/common/ChargeSessionStamp.class=io.openems.edge.evcs.ocpp.common.ChargeSessionStamp, main/io/openems/edge/evcs/ocpp/common/ChargingProperty.class=io.openems.edge.evcs.ocpp.common.ChargingProperty}

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':io.openems.edge.evcs.ocpp.common:jar'.
> io.openems.edge.evcs.ocpp.common has errors, one error was reported

I’m not sure that there is anything within my control to troubleshoot this so I am puzzled that no one else is getting this error that I get consistently choosing both the latest Dev version and the stable version.

Do these errors mean anything to you or give any clue?

No, this is very weird. We are executing automatic builds via a Github actions workflow and do not have any issues there (Build OpenEMS · Workflow runs · OpenEMS/openems · GitHub). There must be something wrong with Gitpod.

Are you able to build locally OpenEMS locally? (see Build OpenEMS Edge :: Open Energy Management System)

Yes. I can build OpenEMS Edge locally without issue. My goal was to learn from the full system simulation on GitPod, specifically the Odoo implementation. I am happy to move on from GitPod, though.

Would you recommend a better way to implement and understand the Odoo user authentication?