Giter VIP home page Giter VIP logo

uportal-start's People

Contributors

agrabovskis avatar andrewstuart avatar apetro avatar bill-brown avatar bjagg avatar bourey avatar cbeach47 avatar christianmurphy avatar doodelicious avatar drewwills avatar edalquist avatar ellentuck avatar fereira avatar groybal avatar jdlich avatar jgribonvald avatar jhelmer-unicon avatar kweiner avatar lindholm avatar mindblender avatar nblair avatar peterjhart avatar renovate-bot avatar renovate[bot] avatar sbramhall avatar shawnconnolly avatar timlevett avatar vertein avatar waymirec avatar wgthom avatar

Stargazers

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

Watchers

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

uportal-start's Issues

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: Cannot find preset's package (github>whitesource/merge-confidence:beta)

Support option to not fork HSQL or Tomcat Processes

Is your feature request related to a problem? Please describe.
No, not a problem. I am using Docker to package pre-built developer environments. The embedded HSQL database or Tomcat spawn independent child processes, and this presents unique challenges when trying to do process coordination within a Docker container. The default spawn: true is fine for most situations, but there are circumstances when it would be nice to override this.

To sum it up: define an option for the HSQL or Tomcat tasks to create foreground processes while retaining the existing conveniences of the Gradle task config.

Describe the solution you'd like
Replace spawn: true for the hsqlStart and tomcatStart tasks with (project.findProperty('antNoSpawn') == 'true') ? false : true

Describe alternatives you've considered
Hacky Bash scripting inside the containers. It can work, but emphasis on how hacky it is.

Additional context
Allowing the Gradle tasks to create foreground processes would allow easier process coordination with tools such as Supervisord or Monit (inside or outside of a container environment).

Tested with the following scenarios:

  1. ./gradlew --console=plain -PantNoSpawn=true hsqlStart and
  2. ./gradlew --console=plain hsqlStart

Update Tomcat Zip, Tar, Docker tasks to exclude unneeded webapps/directories

Is your feature request related to a problem? Please describe.
For a clean, lean Tomcat deployment from these binaries, deployers have to manually remove logs, temp files, and unneeded webapps.

Describe the solution you'd like
Update Gradle tasks that wrap up Tomcat to ignore logs/,work/, temp/, portal/, webapps/docs, webapps/examples, webapps/host-manager, and webapps/manager.

Waffle-menu style problems

Describe the bug
A clear and concise description of what the bug is.
Waffle-menu has some style problems

Screenshots
see here some screenshots
on chrome when openning the waffle-menu:
image
and on firefox developper edition + firefox 64.0.2 when accessing only:
image

Platform:

  • uPortal Version: 5.4.1
  • OS: ubuntu 18.04
  • Browser: chrome and firefox developper edition + firefox quantum

dataImport task run tomcatDeploy without compiled custom skins

Describe the bug
#227 removed CompileLess but without removing tomcatDeploy. So the tomcatDeploy remove and doesn't deploy local/custom used skins and it break the deployed app (the portal serve page without skin)

To Reproduce
Steps to reproduce the behavior:

  1. have or create a local skin, deploy and use it (run tomcat)
  2. if you do a dataImport it will run :overlays:uPortal:tomcatClean and :overlays:uPortal:tomcatDeploy
  3. go back to your portal and refresh the page
  4. See error - there isn't more a skin applied - the skin is missing from sources !

Expected behavior
dataImport should not run :overlays:uPortal:tomcatClean and :overlays:uPortal:tomcatDeploy or remove #227 commits

Gradle task that reports if Tomcat, HSQL is running

Is your feature request related to a problem? Please describe.
Sometimes we forget if Tomcat or HSQL are running. Other times Tomcat does not stop after running ./gradlew tomcatStop.

Describe the solution you'd like
Given the start and stop tasks for Tomcat and HSQL, I would like a two new tasks that report if those services are currently running.

Describe alternatives you've considered
Currently, I run pgrep -f tomcat and pgrep -f hsql to check if they are running. This does not work on Windows, however.

Add IPv4 preference to setenv scripts

Is your feature request related to a problem? Please describe.
Most deployments require IPv4 rather than IPv6. This should be configured as the the default.

Describe the solution you'd like
Add the following to etc/tomcat/bin/setenv.sh and etc/tomcat/bin/setenv.bat:
-Djava.net.preferIPv4Stack=true
-Djava.net.preferIPv4Addresses=true

Build tasks produce errors if Growl/Snarl/notify-send is not installed

Describe the bug
Building on a computer with OSX/Windows/Ubuntu triggers errors if Growl/Snarl/notify-send is not installed for the Gradle build-announcements plugin to use.

To Reproduce
Steps to reproduce the behavior:

  1. Run ./gradlew clean portalInit on a computer without the above software

Expected behavior
No errors from build-announcements when above software is not installed

Platform:

  • uPortal Version: uPortal 5
  • OS: Windows 10, MacOS, Ubuntu

Additional context
Consider using gradle.properties and conditional plugin loading with a default of disabled to address this issue.
See:
https://docs.gradle.org/current/userguide/announce_plugin.html#announce_plugin
https://stackoverflow.com/questions/36039793/android-gradle-conditionally-apply-plugin-based-on-build-type

Move everything related to implementing uPortal locally into uPortal-cli (this repo)

One of the big themes for uPortal 5 is "reduced learning curve/greater ease of adoption." One way in which we hope to make improvements in this area is by separating the core/internal uPortal source code from the resources you will want to edit or add to as an adopter of uPortal.

As it stands (in uPortal 4.3.x), every ounce of uPortal technology is in a single, ~5000 file Git repository. You are required -- as a uPortal implementer -- to clone this entire repo, to know (somehow) which 20 or 30 files in that immense collection you are supposed to customize, to make those changes, and finally to build the entire uPortal universe every time you want to deploy a change you make.

We can do better.

For uPortal 5, the plan is to split the (large amounts of) core/internal uPortal source code from the (relatively few) items a typical adopter will want to adjust. This plan will allow the community of uPortal developers to publish (within Maven Central) binary releases of uPortal that are actually used by the adopters of uPortal in their deployments. (That is not the way it works currently; the only way to deploy uPortal is to build it -- all of it -- yourself.)

NOTE: You will be able to -- of course -- build & use a custom distribution of the core/internal uPortal technology if you choose to do so; there will be some who do. Even then, your deployments will be remarkably quicker & simpler.

So we plan to split what is core/internal from what is local/custom. The core/internal elements will remain in the (current) uPortal Git repository. And BTW... these elements now have a 100% Gradle-based build! (For those keeping score, that means 0% Ant and 0% Maven -- just 1 build tool!)

We plan to put the (relatively small number of) local/custom elements into a new repo. A "typical" adopter should only ever need to clone this repo, since the core/internal elements will come from Maven Central.

The responsibilities of this component include...

  • A place to put & manage your local configuration settings
  • A place to put & manage your local skin(s)
  • A place to put & manage your local data
  • A collection of administrative, shell-based tools (e.g. data-import, md5passwd) for managing deployments
  • The capability to produce deployable/runable build artifacts that include your customizations
  • The capability to deploy these artifacts to local Tomcat (for as long as this capability remains relevant)

Docker demo image fails when a custom skin exists

Describe the bug
Creating and attempting to run a Docker uPortal Demo image when a skin has been generated breaks the demo.

To Reproduce
Steps to reproduce the behavior:

  1. Run ./gradlew skinGenerate -DskinName=test (any valid name works)
  2. Run ./gradlew dockerBuildImages
  3. Run docker run -it -p 8080:8080 apereo/uportal-demo
  4. See error

Expected behavior
uportal-demo starts successfully.

Turn off Wiki feature for this uPortal-start repo

I hope we're not going to use the GitHub Wiki feature, instead more virtuously using a docs directory so that documentation can be versioned with the software it documents.

But if we are going to use that Wiki, I hope we're going to do so intentionally and thoughtfully.

Turn off the Wiki feature until and unless we're ready to use it intentionally and thoughtfully.

Turn off Projects feature for uPortal-start repo

I don't think we're ready to use the GitHub Projects feature with this repository. We may well find opportunities to use that feature in the future, but we're not using it right now, so right now it's adding more UI noise than it is adding value. Turn it off until it needs to be turned on.

Update uPortal.properties and docs with JWT Sig Alg property

Add following to etc/portal/uPortal.properties under example signatureKey prop when uPortal is updated to 5.6.1:

 
## Signature algorithm option, one of:
##   HS256, HS384, HS512, RS256, RS512, ES256, ES384, ES512, PS256, PS384, PS512
##
## See: https://github.com/jwtk/jjwt/blob/master/api/src/main/java/io/jsonwebtoken/SignatureAlgorithm.java
##
#org.apereo.portal.soffit.jwt.signatureAlgorithm=HS512

Add skin aggregation task

Is your feature request related to a problem? Please describe.
The skin aggregation script like implemented in uPortal project is missing here for custom skins if we want to use them in a static way.
i.e. only the portlet aggregator can provide an aggregated skin as the skin.aggr.xml is provided from default skin and isn't builded with customizations.
Due to that we can't include into a skin some custom js (we need to load them from a portlet), they are only included into the skin.xml and not into skin.aggr.xml.
On an other way the system property to disable aggregation don't work anymore (due to systme property not read for this property + property name changed at one place and not on lib dependency about the aggregation

Describe the solution you'd like

  • Implements the skin aggregation script
  • Reactivate the skin aggregation property use

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

File: renovate.json
Error type: Invalid JSON (parsing failed)
Message: Syntax error: expecting end of expression or separator near {

Make custom gradle tasks incremental

Gradle supports re-using up-to-date artifacts to lower the amount of work the build system needs to do by default.
Gradles official tasks already have this feature enabled by default, custom tasks have this feature disabled by default.
uPortal-start implements some custom tasks we should investigate if we can enable incremental build annotations for these tasks.

References

https://docs.gradle.org/current/userguide/custom_tasks.html#incremental_tasks
https://docs.gradle.org/current/userguide/more_about_tasks.html#sec:up_to_date_checks
https://github.com/Jasig/uPortal-start/tree/master/buildSrc/src/main/groovy/org/apereo/portal/start/gradle/plugins

Add a default implementation of RemoteIpValve to server.xml

Is your feature request related to a problem? Please describe.
Most production deployments are in a cluster with a load balancer. Due to session ID generation's dependency on each user's IP, Tomcat must be configured with RemoteIpValve.

Describe the solution you'd like
Configure RemoteIpValve in server.xml, preferably with a token for internalProxies that can be set via external configuration.

Configure jvm environment from an environment file

Is your feature request related to a problem? Please describe.
Each environment needs has different memory constraints and pass different host names for proxy CAS.

Describe the solution you'd like
A file that can be set per environment, similar to uPortal.conf

Describe alternatives you've considered
TBD

Additional context
This was suggested by @jgribonvald, thanks @jgribonvald!

Cannot start with latest uPortal 5.3.0 SNAPSHOT

Describe the bug
Portal init fails on latest uPortal 5.3.0 snapshot

To Reproduce
Steps to reproduce the behavior:

  1. ./gradle install in uPortal at version uPortal-Project/uPortal@fb38590
  2. Set uPortal start to use 5.3.0-SNAPHOT
  3. ./gradle portalInit portalOpen

Expected behavior

Build succeeds.

Stacktrace

FAIL: profile - defaultTemplateUser_default.profile.xml
--------------------------------------------------------------------------------
org.danann.cernunnos.ManagedException: The Cernunnos Runtime encountered an error:
		Origin Document:  file:/home/christian/Projects/uPortal/uPortal-start/.gradle/tomcat/webapps/uPortal/WEB-INF/classes/org/jasig/portal/io/import-profile_v3-2.crn
		Source:  /sql-transaction/with/subtasks/with/subtasks/sql-transaction/sql-upsert
		Entity Name:  <sql-upsert>
	at org.danann.cernunnos.runtime.RuntimeTaskDecorator.perform(RuntimeTaskDecorator.java:93)
	at org.danann.cernunnos.AbstractContainerTask.performSubtasks(AbstractContainerTask.java:148)
	at org.danann.cernunnos.AbstractContainerTask.performSubtasks(AbstractContainerTask.java:123)
	at org.danann.cernunnos.sql.TransactionTask.access$300(TransactionTask.java:40)
	at org.danann.cernunnos.sql.TransactionTask$PerformSubtasksTransactionCallback.doInTransactionWithoutResult(TransactionTask.java:141)
	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:34)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
	at org.danann.cernunnos.sql.TransactionTask.perform(TransactionTask.java:115)
	at org.danann.cernunnos.runtime.RuntimeTaskDecorator.perform(RuntimeTaskDecorator.java:77)
	at org.danann.cernunnos.AbstractContainerTask.performSubtasks(AbstractContainerTask.java:148)
	at org.danann.cernunnos.AbstractContainerTask.performSubtasks(AbstractContainerTask.java:123)
	at org.danann.cernunnos.core.WithTask.perform(WithTask.java:90)
	at org.danann.cernunnos.runtime.RuntimeTaskDecorator.perform(RuntimeTaskDecorator.java:77)
	at org.danann.cernunnos.AbstractContainerTask.performSubtasks(AbstractContainerTask.java:148)
	at org.danann.cernunnos.AbstractContainerTask.performSubtasks(AbstractContainerTask.java:123)
	at org.danann.cernunnos.core.WithTask.perform(WithTask.java:90)
	at org.danann.cernunnos.runtime.RuntimeTaskDecorator.perform(RuntimeTaskDecorator.java:77)
	at org.danann.cernunnos.AbstractContainerTask.performSubtasks(AbstractContainerTask.java:148)
	at org.danann.cernunnos.AbstractContainerTask.performSubtasks(AbstractContainerTask.java:123)
	at org.danann.cernunnos.sql.TransactionTask.access$300(TransactionTask.java:40)
	at org.danann.cernunnos.sql.TransactionTask$PerformSubtasksTransactionCallback.doInTransactionWithoutResult(TransactionTask.java:141)
	at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:34)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
	at org.danann.cernunnos.sql.TransactionTask.perform(TransactionTask.java:115)
	at org.danann.cernunnos.runtime.RuntimeTaskDecorator.perform(RuntimeTaskDecorator.java:77)
	at org.danann.cernunnos.runtime.ScriptRunner$TaskDecorator.perform(ScriptRunner.java:436)
	at org.danann.cernunnos.runtime.ScriptRunner.run(ScriptRunner.java:288)
	at org.danann.cernunnos.runtime.PojoTask.perform(PojoTask.java:202)
	at org.apereo.portal.io.xml.crn.CernunnosDataImporter.importDataElement(CernunnosDataImporter.java:50)
	at org.apereo.portal.io.xml.crn.AbstractDom4jImporter.importData(AbstractDom4jImporter.java:72)
	at org.apereo.portal.io.xml.crn.AbstractDom4jImporter.importData(AbstractDom4jImporter.java:41)
	at org.apereo.portal.io.xml.JaxbPortalDataHandlerService.importOrUpgradeData(JaxbPortalDataHandlerService.java:787)
	at org.apereo.portal.io.xml.JaxbPortalDataHandlerService.importData(JaxbPortalDataHandlerService.java:726)
	at org.apereo.portal.io.xml.JaxbPortalDataHandlerService.importData(JaxbPortalDataHandlerService.java:759)
	at org.apereo.portal.io.xml.JaxbPortalDataHandlerService$1.callWithoutResult(JaxbPortalDataHandlerService.java:618)
	at org.apereo.portal.concurrency.CallableWithoutResult.call(CallableWithoutResult.java:24)
	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.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [
                            INSERT INTO up_user_profile(user_id, profile_id, profile_fname, profile_name, description, layout_id, structure_ss_id, theme_ss_id) 
                            VALUES(?, ?, ?, ?, ?, ?, ?, ?)
                        ]; integrity constraint violation: NOT NULL check constraint; SYS_CT_10705 table: UP_USER_PROFILE column: USER_ID; nested exception is java.sql.SQLIntegrityConstraintViolationException: integrity constraint violation: NOT NULL check constraint; SYS_CT_10705 table: UP_USER_PROFILE column: USER_ID
	at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:85)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:655)
	at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:876)
	at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:937)
	at org.danann.cernunnos.sql.UpsertTask.doInsert(UpsertTask.java:180)
	at org.danann.cernunnos.sql.UpsertTask.perform(UpsertTask.java:149)
	at org.danann.cernunnos.runtime.RuntimeTaskDecorator.perform(RuntimeTaskDecorator.java:77)
	... 39 more
Caused by: java.sql.SQLIntegrityConstraintViolationException: integrity constraint violation: NOT NULL check constraint; SYS_CT_10705 table: UP_USER_PROFILE column: USER_ID
	at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
	at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
	at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source)
	at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport$StatementProxy.invoke(AbstractQueryReport.java:235)
	at com.sun.proxy.$Proxy222.executeUpdate(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.tomcat.jdbc.pool.interceptor.AbstractQueryReport$StatementProxy.invoke(AbstractQueryReport.java:235)
	at com.sun.proxy.$Proxy222.executeUpdate(Unknown Source)
	at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:883)
	at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:876)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:639)
	... 44 more

Platform:

  • uPortal Version: 5.3.0-SNAPHOT
  • OS: Linux

Add a README

Add a README.md document describing how to setup and use uPortal-start

Tomcat startup error caused by spacing in setenv.sh

Describe the bug
When starting tomcat after deploying the bundled tomcat, the following errors appear and tomcat fails to start:

From deployment logs:

08-Oct-2018 11:18:58 | [sshexec] /apps/uportal/tomcat/bin/setenv.sh: line 33: [: missing ']'
...
08-Oct-2018 11:18:58 | [sshexec] /apps/uportal/tomcat/bin/setenv.sh: line 39: [: missing ']'

It looks like a spacing issue in the setenv.sh file on lines 33 and 39. I think there should be a space before the ] on those lines.

To Reproduce

  1. Run the tomcatInstall and tomcatDeploy tasks to build the tomcat artifact in ./gradle/tomcat.
  2. Deploy the artifact onto a server.
  3. Run startup.sh to start tomcat.
  4. Startup fails with the errors noted above.

Expected behavior
Tomcat should start without error.

Stacktrace
See snip from log output on running startup.sh.

Platform:

  • uPortal Version: 5.2.3
  • OS: centos
  • Browser N/A

Investigate intermittent log clearing issue on Windows

Sometimes when running through the uPortal-start test suite Windows CI will fail due to an inability to delete a log file.
Root cause is currently unknown.

๐Ÿ” ๐Ÿค” The Tomcat process hanging on to log file after it has been closed is a likely candidate for cause.

Example Log

FAILURE: Build failed with an exception.
* Where:
Script 'C:\projects\uportal-start\gradle\tasks\tomcat.gradle' line: 133
* What went wrong:
Execution failed for task ':tomcatClearLogs'.
> Unable to delete file: C:\projects\uportal-start\.gradle\tomcat\logs\catalina.{date}.log

๐Ÿ‘ทโ€โ™‚๏ธ โ›” ๐Ÿ”— https://ci.appveyor.com/project/ChristianMurphy/uportal-start/build/1.0.57#L2673

Document Notification Portlet requires Oracle configuration

Describe the bug
NotificationPortlet attempts to create tables that exceed the Oracle Object Name limit in versions previous to 12.2. Databases need to be configured with COMPATIBLE set to 12.2.

To Reproduce
Steps to reproduce the behavior:

  1. Set up an Oracle database to back uPortal
  2. Build and run uPortal ./gradlew portalInit portalOpen
  3. Grep NotificationPortlet.log for ORA-00972

Expected behavior
Tables successfully created.

Additional context
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/Database-Object-Names-and-Qualifiers.html#GUID-75337742-67FD-4EC0-985F-741C93D918DA

HSQL library hodgepodge

When using an older version of uPortal (i.e. uPortalVersion=5.0.5) because milestone, the HSQL libs could be in a state where there are two versions.

$ find -name 'hsql*.jar'
./.gradle/tomcat/webapps/uPortal/WEB-INF/lib/hsqldb-2.3.2.jar
./.gradle/tomcat/webapps/uPortal/WEB-INF/lib/hsqldb-2.4.0.jar

This results in data import/init errors and HsqlExceptions like the following (if one happens to be running HSQL in the foreground)

org.hsqldb.HsqlException: HSQLDB server version is '2.4.0'  client version '2.1.0.0' is not compatible.
	at org.hsqldb.error.Error.error(Unknown Source)
	at org.hsqldb.server.ServerConnection.init(Unknown Source)
	at org.hsqldb.server.ServerConnection.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:748)

Steps to reproduce

  1. Clone uPortal-start
  2. ./gradlew portalInit
  3. Update gradle.properties such that uPortalVersion=5.0.5
  4. ./gradlew clean tomcatClean portalInit

Command line and IDE disagree about how to source gradle.properties

There appears to be a disagreement between how Gradle on the command line and Gradle in the IDE (at least IntelliJ) evaluate relative paths within buildSrc/gradle.properties.

The command line likes: 'gradle.properties'

But the IDE likes '../gradle.properties'

To find the same file.

Troubleshoot effects of the ESUP file-manager on the portal page

The ESUP file-manager is now on the Welcome tab (quickstart data set) by default.

It's a great addition, but I detect 3 new regressions when the portlet is present:

  • The 'Options' menu does not appear. There is a JavaScript error relating to the Portlet Print option that doesn't allow the Options menu to finish bootstrapping. (Odds are goo the Portlet Print feature is no longer working properly.)
  • The user cannot access the right-click menu on the page.
  • CSS from the file-manager is changing the appearance of the Calendar portlet (others?)

Correct Gradle task dependencies in portalInit

Switching on parallel mode in gradle has uncovered some previously missed inter-dependencies between tasks, that become apparent when tasks are run in parallel.

portalInit task

visteg dot

Issues
  • tomcatInstall needs to happen before any tomcatDeploy tasks
  • tomcatInstall may need to happen before tomcatClean tasks
References

Parallel mode enabled: #60
Visualization generator: #66
Gradle ordering docs: https://docs.gradle.org/current/userguide/more_about_tasks.html#sec:ordering_tasks

Add JAVA_HOME as a prerequisite in readme

Is your feature request related to a problem? Please describe.
New implementers have run into the issue of not setting JAVA_HOME environment variable.

Describe the solution you'd like
This should be called out as a prerequisite.

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.