GithubHelp home page GithubHelp logo

cuba-platform / cuba-gradle-plugin Goto Github PK

View Code? Open in Web Editor NEW
15.0 4.0 20.0 1.47 MB

Gradle plugin for building CUBA platform and applications

Home Page: https://www.cuba-platform.com

License: Apache License 2.0

Groovy 62.59% Java 29.10% Batchfile 3.39% Shell 4.92%

cuba-gradle-plugin's Introduction

CUBA Gradle Plugin

license Build Status

CUBA Platform is a high level framework for rapid development of enterprise applications with rich web interface.

CUBA Gradle Plugin is required to build the platform and applications.

For more information see github.com/cuba-platform/cuba.

Build and install

In order to build the project from source, you need to install the Java 8 Development Kit (JDK).

Open terminal and run the following command to build and install the plugin into your local Maven repository (~/.m2):

    gradlew install    

Development

There is no any prerequisites so just import the project as Gradle project and start working.

Debugging

Export GRADLE_OPTS environment variable:

   export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"

Set up Remote debug configuration for port 5005 in Intellij Idea.

Stop existing Gradle daemon:

   gradlew --stop

Start build of the test project with --no-daemon option.

cuba-gradle-plugin's People

Contributors

alexbudarov avatar comru avatar dimone-kun avatar dkz avatar dtaimanov avatar flaurite avatar gglcrash avatar glebshalyganov avatar gorbunkov avatar jreznot avatar kgeis avatar knstvk avatar nikitashchienko avatar ovchinnikovsp avatar plakhov avatar soraksh avatar tinhol avatar web-devel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

cuba-gradle-plugin's Issues

Add logging for gradle uploadArchives task as it was in the past

@alexbudarov commented on Wed May 30 2018

Description of the bug or enhancement

Old gradle versions (2.1) used to write convenient log messages during uploadArchives:

[:xxxx-global:uploadArchives] Uploading: com/haulmont/xxxx/xxxx-global/43-SNAPSHOT/xxxx-global-43-20180529.072117-34.jar
to repository remote at http://zzzz.com/nexus/content/repositories/snapshots
[11:21:18]

These messages can be used to assure that we have set correct artifact version, group, name, and upload repository.

New gradle versions do not log such messages.
Can we return them back in CUBA gradle plugin?

Support MySQL 8

Environment

  • Platform version: 6.8.7
  • Database: MySQL

Description of the bug or enhancement

  • Minimal reproducible example
  1. Download and install MySQL server
  2. Download a new MySQL connector (mysql-connector-java-8.0.11 for instance)
  3. Rename it and put to studio libs
  4. take some project assemble and deploy it
  5. Put the new connector to Tomcat libs
  6. Adjust connection to MySQL DBMS
  7. Create the database
  • Expected behavior
    The database would be created

  • Actual behavior
    NPE in Gradle plugin

Caused by: java.lang.NullPointerException
	at com.mysql.jdbc.ConnectionImpl.getServerCharset(ConnectionImpl.java:3005)
	at com.mysql.jdbc.MysqlIO.sendConnectionAttributes(MysqlIO.java:1916)
	at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1845)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1215)
	at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2255)
	at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2286)

And the whole log:
graldeExc.txt

BuildUberJar and buildWar fail on project without web - module

The third issue

  1. Remove Web module
  2. Open Deployment settings, configure UberJar building: no matter single- or multi-uberjar
  3. Launch the buildUberJar task
    AR:
2018-04-21 17:02:32,866 ERROR [com.haulmont.studio.backend.y] Error executing Gradle task(s) 'buildUberJar'
java.lang.RuntimeException: Error occurred during gradle task execution. Task - 
 at com.haulmont.studio.backend.y.a(SourceFile:372)
 at com.haulmont.studio.backend.y.a(SourceFile:54)
 at com.haulmont.studio.backend.z.run(SourceFile:109)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
 at com.haulmont.studio.common.I.c(SourceFile:54)
 at com.haulmont.studio.common.I.b(SourceFile:72)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 at java.lang.Thread.run(Thread.java:748)
Caused by: org.gradle.tooling.BuildException: Could not execute build using Gradle distribution 'https://services.gradle.org/distributions/gradle-4.3.1-bin.zip'.
 at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:51)
 at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:29)
 at org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:41)
 at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:57)
 at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
 at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
 at java.lang.Thread.run(Thread.java:748)
 at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46)
 at org.gradle.tooling.internal.consumer.DefaultBuildLauncher.run(DefaultBuildLauncher.java:77)
 at com.haulmont.studio.backend.y.a(SourceFile:369)
 ... 10 more
Caused by: org.gradle.internal.exceptions.LocationAwareException: Execution failed for task ':buildUberJar'.
 at org.gradle.initialization.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:74)
 at org.gradle.initialization.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:47)
 at org.gradle.initialization.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:30)
 at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:137)
 at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:109)
 at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:78)
 at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:75)
 at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152)
 at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:100)
 at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:75)
 at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:53)
 at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
 at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
 at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
 at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$1.run(RunAsBuildOperationBuildActionRunner.java:43)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
 at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:40)
 at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
 at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47)
 at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
 at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
 at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
 at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
 at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
 at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:57)
 at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:32)
 at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
 at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
 at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
 at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
 at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:64)
 at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:29)
 at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
 at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
 at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:45)
 at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
 at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
 at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
 at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
 at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
 at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
 at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
 at org.gradle.util.Swapper.swap(Swapper.java:38)
 at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
 at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
 at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
 at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
 at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
 at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
 at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
 at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
 at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':buildUberJar'.
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
 at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
 at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
 at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
 at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
 at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
 at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
 at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
 at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
 at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
 at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
 at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
 at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
 at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
 at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
 at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
 at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
 at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
 at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
 at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626)
 at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)
 at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
 ... 3 more
Caused by: java.lang.NullPointerException: Cannot get property 'tasks' on null object
 at CubaUberJarBuilding.initVariables(CubaUberJarBuilding.groovy:377)
 at CubaUberJarBuilding.createJar(CubaUberJarBuilding.groovy:266)
 at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
 at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
 at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
 at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
 at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:784)
 at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:751)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
 ... 29 more

Original issue: https://youtrack.haulmont.com/issue/PL-10722

Remove obsolete "cuba-persistence.xml" file

It is obsolete and contains OpenJPA links:

<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
    <persistence-unit name="cuba" transaction-type="RESOURCE_LOCAL">
        <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>

        <class>com.haulmont.cuba.core.entity.BaseUuidEntity</class>
        <class>com.haulmont.cuba.core.entity.StandardEntity</class>
        <class>com.haulmont.cuba.core.entity.Server</class>

Compatibility with Intellij Gradle plugin

Try to get rid of enchanced-classes directory and replace classes in /classes directory right after compileJava task in an additional doLast action.


Updates

Now CUBA-based projects can be imported as Gradle projects into Intellij IDEA. It allows you to perform all tasks via default Intellij IDEA Gradle plugin.

Also, all tests that use entities can be launched from Intellij IDEA UI.

  1. Old tasks CubaEnhancing, CubaTestEnhancing, CubaEnhancingTask are now empty and marked as @Deprecated. An additional message is printed to the execution log.

  2. Enhancing is now performed by CubaEnhancingAction that is added as doLast action for the compileJava and compileTestJava tasks.

  3. Deprecated property String metadataXml is removed and no longer supported.

  4. Enhancing is now configured with DSL for each module. Example:

configure(coreModule) {
    ...
    entitiesEnhancing {
        main {
            enabled = true
            persistenceConfig = 'custom-persistence.xml'
        }
        test {
            enabled = true
            persistenceConfig = 'test-persistence.xml'
        }
    }
}

Migration Guide

Old version:

task enhance(type: CubaEnhancing) {
    persistenceConfig = 'custom-persistence.xml'
}

task testEnhance(type: CubaTestEnhancing) {
    persistenceConfig = 'test-persistence.xml'
}

New version:

entitiesEnhancing {
    main {
        enabled = true
        persistenceConfig = 'custom-persistence.xml'
    }
    test {
        enabled = true
        persistenceConfig = 'test-persistence.xml'
    }
}

Notes

The following setting should be enabled in Intellij IDEA: Build, Execution, Deployment -> Build Tools -> Gradle -> Runner -> Delegate IDE build/run actions to gradle.

Check this post: Gradle Goodness: Delegate Build And Run Actions To Gradle In IntelliJ IDEA.

JetBrains/gradle-idea-ext-plugin doesn't allow to turn this setting on.

Set project file encoding to UTF-8 by default

Previously, we have set it on .ipr file generation

QA

You have to download Intellij IDEA 2019.1 to check the issue: IJ IDEA EAP.

Check in settings (Ctrl + Alt + S for Win) that the following fields are set to UTF-8 after project import:

image

Ability to use view names as class constants

Problem:
When we use JPA Query, we often write a view's name just as a text.
After refactoring some names in views.xml can be removed or changed.
However, a view's name in code can't be refactored because it text, of course.

Solve:
I suggest adding to Gradle a task that will generate a class (e.g ViewRepository) with constants for view.xml.
Such mechanism there is in Android SDK and called as R.java (the dynamically generated class).


Original issue: https://youtrack.haulmont.com/issue/PL-7022

Ability of groovy script debugging in idea

Посмотреть возможность настройки дебага для скриптов которые запускаются с помощью com.haulmont.cuba.core.global.Scripting.

Основная проблема в дебаге groovy-скриптов обновления базы данных. Сейчас единственная возможность это вытаскивание кода из файла и добавления этого кода в src


Original issue: https://youtrack.haulmont.com/issue/PL-4774

Long classpath leads to certain Cuba gradle tasks fails in Windows

This is due command line call to java.exe via javaexec being too long for Windows to handle

First noticed the issue with CubaEnhancingTask, but CubaWidgetSetBuilding and CubaWidgetSetDebug seem to be affected as well as they also use javaexec.

The common way if fixing that is replacing classpath command line argument by process environment variable for Windows OS.
In Cuba, however, the developer is forced to extend Cuba task and replace the whole @TaskAction method (because javaexec call is in there) or to shorten the path to .gradle directory.

Generally, if Cuba tasks had @TaskAction variables stored as task class attributes (JavaExecSpec for javaexec, for instance, or individual javaexec parameters) developer would have more tools to amend task execution without extending the task class - just do some amendments in doFirst {} for instance.


Original issue: https://youtrack.haulmont.com/issue/PL-8895

Provide get/set methods for CubaDbTask properties

Environment

  • Platform version: 6.8.+

Description of the bug or enhancement

Fields have protected modifier:

    protected String dbms;
    protected String dbmsVersion;
    protected String delimiter = "^";
    protected String host = "localhost";
    protected String dbFolder = "db";
    protected String connectionParams = "";
    protected String dbName;
    protected String dbUser;
    protected String dbPassword;
    protected String driverClasspath;
    protected String dbUrl;
    protected String driver;
    protected String timeStampType;
    protected File dbDir;

Gradle shows warning on properties:

image

BeanValidationMessageTransformer supports only ASCII symbols in message keys

Environment

  • Platform version: 6.9.1

Description of the bug or enhancement

  • Minimal reproducible example
  1. Create entity with Bean Validation constraint and message:
@NotNull(message = "{msg://Genérico.not_null}")
@Column(name = "TEST_ATTRIBUTE")
protected String testAttribute;
  1. Define this field in FieldGroup.
  2. Start application, open screen.
  • Expected behavior

Genérico.not_null is loaded from entity message pack

  • Actual behavior

Exception is thrown

java.lang.UnsupportedOperationException: Unsupported resource string format: 'msg://Genérico.campo_obligatorio', messagesPack=null

See also: https://www.cuba-platform.com/discuss/t/special-characters-in-i18n-message-key-produces-unsupportedoperationexception-at-runtime/5524

JelasticDeployWar fails when connected to internet through proxy

See https://www.cuba-platform.ru/discuss/t/java-studii-rabotaet-napryamuyu-a-ne-cherez-proxy/1583

  1. Adjust a proxy connection to internet for the host
  2. Define the following required Java options in system variables
JAVA_OPTS="-Dhttp.proxyHost=192.168.56.1" 
"-Dhttp.proxyPort=3128" 
"-Dhttps.proxyHost=192.168.56.1" 
"-Dhttps.proxyPort=3128"
  1. Open some project in Studio
  2. Setup Jelastic integration
  3. Launch Run->Deploy to cloud

AR:

2018-04-18 12:22:05,922 ERROR [com.haulmont.studio.backend.ScriptRunner] Error executing Gradle task(s) 'jelasticDeployWar'
java.lang.RuntimeException: Error occurred during gradle task execution. Task - jelasticDeployWar
 at com.haulmont.studio.backend.ScriptRunner.runGradleTask(ScriptRunner.java:372)
 at com.haulmont.studio.backend.ScriptRunner.access$200(ScriptRunner.java:54)
 at com.haulmont.studio.backend.ScriptRunner$1.run(ScriptRunner.java:109)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
 at com.haulmont.studio.common.StudioExecutors$StudioWrappingExecutorService.lambda$wrapTask$0(StudioExecutors.java:54)
 at com.haulmont.studio.common.StudioExecutors$StudioWrappingExecutorService.lambda$wrapTask$1(StudioExecutors.java:72)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 at java.lang.Thread.run(Thread.java:745)
Caused by: org.gradle.tooling.BuildException: Could not execute build using Gradle distribution 'https://services.gradle.org/distributions/gradle-3.4.1-bin.zip'.
 at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:51)
 at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:29)
 at org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:41)
 at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:57)
 at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
 at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
 at java.lang.Thread.run(Thread.java:745)
 at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46)
 at org.gradle.tooling.internal.consumer.DefaultBuildLauncher.run(DefaultBuildLauncher.java:77)
 at com.haulmont.studio.backend.ScriptRunner.runGradleTask(ScriptRunner.java:369)
 ... 10 more
Caused by: org.gradle.internal.exceptions.LocationAwareException: Execution failed for task ':jelasticDeployWar'.
 at org.gradle.initialization.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:74)
 at org.gradle.initialization.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:47)
 at org.gradle.initialization.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:30)
 at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:122)
 at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:102)
 at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:71)
 at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:50)
 at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
 at org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner$1.execute(RunAsBuildOperationBuildActionRunner.java:43)
 at org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner$1.execute(RunAsBuildOperationBuildActionRunner.java:40)
 at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
 at org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:40)
 at org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:75)
 at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
 at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
 at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
 at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75)
 at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)
 at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:49)
 at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:31)
 at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
 at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
 at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
 at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
 at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
 at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
 at org.gradle.util.Swapper.swap(Swapper.java:38)
 at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
 at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
 at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
 at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
 at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
 at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
 at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
 at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46)
Caused by: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':jelasticDeployWar'.
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:84)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:55)
 at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
 at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
 at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
 at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46)
 at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
 at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
 at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
 at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
 at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:236)
 at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:228)
 at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61)
 at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:228)
 at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215)
 at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:77)
 at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:58)
 at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:32)
 at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:113)
 at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
 at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
 at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
 at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
 at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
 at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
 at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
 at org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:256)
 at org.gradle.initialization.DefaultGradleLauncher$RunTasksAction.execute(DefaultGradleLauncher.java:253)
 at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
 at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
 at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:175)
 at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:119)
 ... 44 more
Caused by: org.gradle.api.UncheckedIOException: org.apache.http.conn.HttpHostConnectException: Connect to app.mircloud.host:443 [app.mircloud.host/185.15.211.5] failed: Connection timed out: connect
 at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:43)
 at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:76)
 at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.doExecute(DefaultTaskClassInfoStore.java:141)
 at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
 at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:123)
 at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:632)
 at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:615)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:95)
 at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:76)
 ... 78 more
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to app.mircloud.host:443 [app.mircloud.host/185.15.211.5] failed: Connection timed out: connect
 at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:158)
 at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
 at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
 at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
 at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
 at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
 at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
 at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
 at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71)
 at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:220)
 at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:164)
 at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:139)
 at org.apache.http.client.HttpClient$execute.call(Unknown Source)
 at CubaJelasticDeploy.upload(CubaJelasticDeploy.groovy:186)
 at CubaJelasticDeploy.deployJelastic(CubaJelasticDeploy.groovy:84)
 at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
 ... 85 more
Caused by: java.net.ConnectException: Connection timed out: connect
 at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:337)
 at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141)
 ... 100 more

Original issue: https://youtrack.haulmont.com/issue/PL-10708

CubaDeployment should copy DB scripts only for required database by default

Environment

  • Platform version: 6.9.0

Description of the bug or enhancement

When we run:

> gradlew deploy

It copies all the hsql / postgresql / oracle / etc scripts to tomcat. But it is not necessary for typical project.

Let's filter scripts by default in Fast deployment / UberJAR and WAR / Single WAR deployments

Gradle 5.0 deprecation warnings

Environment

  • Platform version: 7.0.0
  • Gradle version: X.Y
  • Operating system:

Description of the bug or enhancement

Run build in cuba:

gw clean asse -Dorg.gradle.warning.mode=all

> Task :cuba-web-toolkit:buildWidgetSet
The SimpleFileCollection type has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Project.files() instead.

Improve default Console logging for Fast Deployment

Environment

  • Platform version: 6.9.2

Description of the bug or enhancement

  1. Start application
  2. Check console of Tomcat

It contains messy content:

1 A lot of typical logging from Tomcat:

INFO: Command line argument: -Djava.util.logging.config.file=/home/artamonov/work/platform/tomcat/conf/logging.properties
Jul 21, 2018 1:39:09 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
Jul 21, 2018 1:39:09 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
Jul 21, 2018 1:39:09 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
Jul 21, 2018 1:39:09 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n
Jul 21, 2018 1:39:09 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Xmx512m                                               

2 A lot of logging from AtmosphereFramework:

13:46:04.925 INFO  o.atmosphere.cpr.AtmosphereFramework    -    org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor
13:46:04.925 INFO  o.atmosphere.cpr.AtmosphereFramework    - Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them.
13:46:04.929 INFO  o.atmosphere.cpr.AtmosphereFramework    - Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper
13:46:04.929 INFO  o.atmosphere.cpr.AtmosphereFramework    - Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache
13:46:04.929 INFO  o.atmosphere.cpr.AtmosphereFramework    - Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster
13:46:04.929 INFO  o.atmosphere.cpr.AtmosphereFramework    - Broadcaster Polling Wait Time 100
13:46:04.929 INFO  o.atmosphere.cpr.AtmosphereFramework    - Shared ExecutorService supported: true
13:46:04.930 INFO  o.atmosphere.cpr.AtmosphereFramework    - Messaging Thread Pool Size: Unlimited
13:46:04.930 INFO  o.atmosphere.cpr.AtmosphereFramework    - Async I/O Thread Pool Size: 200
13:46:04.930 INFO  o.atmosphere.cpr.AtmosphereFramework    - Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory
13:46:04.930 INFO  o.atmosphere.cpr.AtmosphereFramework    - Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor
13:46:04.935 INFO  o.atmosphere.cpr.AtmosphereFramework    - Invoke AtmosphereInterceptor on WebSocket message true
13:46:04.935 INFO  o.atmosphere.cpr.AtmosphereFramework    - HttpSession supported: true

3 It is really hard to read irregular lines without columns:

13:47:22.491 INFO  c.h.cuba.core.sys.MetadataImpl- Initializing metadata
13:47:23.019 INFO  c.h.cuba.core.sys.MetadataImpl- Metadata initialized in 528 ms
13:47:23.023 INFO  c.h.c.c.s.AbstractWebAppContextLoader- AppContext started
13:47:23.068 INFO  c.h.c.p.sys.PortalDispatcherServlet- FrameworkServlet 'portal': initialization started
13:47:23.071 INFO  c.h.c.c.s.CubaXmlWebApplicationContext- Refreshing WebApplicationContext for namespace 'portal-servlet': startup date [Sat Jul 21 13:47:23 SAMT 2018]; parent: Root WebApplicationContext
13:47:23.595 INFO  c.h.c.c.s.CubaThreadPoolTaskScheduler- Initializing ExecutorService  'scheduler'
13:47:24.833 INFO  c.h.cuba.core.sys.jmx.MBeanExporter- Registering beans for JMX exposure: [app-portal.cuba:type=ThymeleafViewsCacheInvalidation]
13:47:24.877 INFO  c.h.c.p.sys.PortalDispatcherServlet- FrameworkServlet 'portal': initialization completed in 1809 ms
13:47:24.878 INFO  c.h.restapi.sys.CubaRestApiServlet- FrameworkServlet 'rest_api': initialization started
13:47:24.879 INFO  c.h.c.c.s.CubaXmlWebApplicationContext- Refreshing WebApplicationContext for namespace 'rest_api-servlet': startup date [Sat Jul 21 13:47:24 SAMT 2018]; parent: Root WebApplicationContext

Let's hide unnecessary logging and introduce default min column length for logger in CONSOLE appender when we use Fast Deployment to Tomcat

Unable to get library definition for neo4j-2.2.5.pom

Hi,

In my project, I am using dependency

compile group: 'org.springframework.data', name: 'spring-data-neo4j-rest', version:'3.4.6.RELEASE'

and get the following stacktrace in gradle deploy task when deploy  ,
Caused by: org.gradle.api.GradleException: Unable to get library definition for neo4j-2.2.5.pom
        at com.haulmont.gradle.libs.DependencyResolver.getLibraryDefinition(DependencyResolver.java:82)
        at com.haulmont.gradle.libs.DependencyResolver$getLibraryDefinition.callStatic(Unknown Source)
        at CubaDeployment$_deploy_closure2$_closure12.doCall(CubaDeployment.groovy:94)
        at org.gradle.api.specs.internal.ClosureSpec.isSatisfiedBy(ClosureSpec.java:32)
        at org.gradle.api.specs.AndSpec.isSatisfiedBy(AndSpec.java:46)
        at org.gradle.api.internal.file.AbstractFileTree$FilteredFileTreeImpl$1.visitFile(AbstractFileTree.java:180)
        at org.gradle.api.internal.file.collections.SingletonFileTree.visit(SingletonFileTree.java:42)
        at org.gradle.api.internal.file.collections.FileTreeAdapter.visit(FileTreeAdapter.java:110)
        at org.gradle.api.internal.file.AbstractFileTree$FilteredFileTreeImpl.visit(AbstractFileTree.java:172)
        at org.gradle.api.internal.file.CompositeFileTree.visit(CompositeFileTree.java:87)
        at org.gradle.api.internal.file.copy.CopySpecActionImpl.execute(CopySpecActionImpl.java:39)
        at org.gradle.api.internal.file.copy.CopySpecActionImpl.execute(CopySpecActionImpl.java:24)
        at org.gradle.api.internal.file.copy.DefaultCopySpec$DefaultCopySpecResolver.walk(DefaultCopySpec.java:648)
        at org.gradle.api.internal.file.copy.DefaultCopySpec.walk(DefaultCopySpec.java:458)
        at org.gradle.api.internal.file.copy.DelegatingCopySpecInternal.walk(DelegatingCopySpecInternal.java:236)
        at org.gradle.api.internal.file.copy.CopySpecBackedCopyActionProcessingStream.process(

Provide declarative DSL for Gradle tasks that are supported by Studio

For instance, if developer enables "Build WAR" in Studio then declarative block is generated in build.gradle instead of custom tasks:

configure(coreModule) {
    apply(plugin: 'java')
    apply(plugin: 'maven')
    apply(plugin: 'cuba')

    cuba {
        war {
            appProperties = []
            appHome = '..'
        }

        singleWar {
            webXml = '../single-war-web.xml'
        }
    }

In this case buildWar / buildSingleWar tasks should be created automatically by CubaPlugin


Original issue: https://youtrack.haulmont.com/issue/PL-10173

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.