Giter VIP home page Giter VIP logo

aemc's People

Contributors

dependabot[bot] avatar dominik-przybyl-wttech avatar jakub-przybytek-wttech avatar jan-kowalczyk-wttech avatar jaroslaw-pietraszek-wttech avatar krystian-panek-wttech avatar maciej-majchrzak-wttech avatar piotr-andruszkiewicz-wttech avatar piotr-lenartowicz-wttech avatar piotr-marcinkowski-wttech avatar

Stargazers

 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

aemc's Issues

AEM app build integration

problems to solve:

  • hashing AEM app source code to avoid mvn clean package each time when running setup script
  • detecting output file *.zip to be able to pass full path to aem package deploy --file <path> (the file name may change any time / especially version file)

for the sake of simplicity, let's assume checking building all zip only; not taking into account particular Maven modules

Handle custom AEM passwords

checker should be aware of admin:admin pair being active before reaching initial 30% of stable bundles (AEM auth is initialised at this stage)

Init script aware of AEM instance type

archetype.properties contains aemVersion= property
basing on it if cloud is detected

  • there is no need to install service pack in setup script

maybe setup-cloud.sh and setup-onprem.sh should be in source code then intelligently copied by project/init.sh script

project init doesn't create lib folder

Steps:

  1. Initialize project
  2. Remove aem/home to simulate how other devs will work with aemc after checking out from repo
  3. Run sh aemw project init --kind=classic

Bug:
Folder aem/home/lib is not created

Generate .gitignore

project-init.sh should generate .gitignore file so that you don't need to figure it out which files should be pushed to git
Initial .gitignore can be as simple as

aem/home
dispatcher/target

Instance check assurance

  • repeat 3-5 times health checking when instance becomes stable as in GAP
  • add sling installer check
  • print unstable events, bundles with count <= 3
  • consider running checks in parallel (errgroup)

Event checker - shorten log line

sometimes there is outputted

INFO[2023-02-20 10:35:16] local_publish > some events unstable (141): '[com.day.cq.wcm.mobile.api.devicespecs.DeviceSpecsProvider, org.apache.sling.api.resource.observation.ResourceChangeListener]'

=>

INFO[2023-02-20 10:35:16] local_publish > some events unstable (141): com.day.cq.wcm.mobile.api.devicespecs.DeviceSpecsProvider

Implement package deploy avoidance

on the second attempt of deploy command using the exact same package...the file uploading and package manager install actions should be avoided; requires package checksum calculation and storing it on AEM somewhere

Enforce instances to use configured Java

manipulating PATH env var is probably needed to enforce AEM control scripts which are just calling java in script body to use configured Java/binary/home in AEMC config file.

this is needed to easily control multiple Java versions when installed on the same VM (especially on local workstations /and when using tools like jenv)

Hosts file editing

prepare an example script that may help with appending to hosts file host names needed to be set up to access dispatcher/httpd vhosts

project/script/hosts.sh

assumptions

  • should work on Mac, Linux and Windows
  • could request admin privileges on Mac and Windows automatically; on Linux should be run with sudo

Implement workflow toggling

main use case: temporarily disable DAM update asset workflow before package deployment, then enabling again right after
this avoids unnecessary DAM renditions reprocessing

Package deploy with url source

right now package deploy accepts only --file.
what if it could accept --url directly and handle also file downloading right before deployment

step "downloading APM"
aem file download --url "https://github.com/wttech/APM/releases/download/apm-5.5.1/apm-all-5.5.1.zip" --file "${DOWNLOAD_DIR}/apm-all-5.5.1.zip"
clc

step "deploying APM"
aem package deploy --file "${DOWNLOAD_DIR}/apm-all-5.5.1.zip"
clc

# TODO consider implementing this
# aem package deploy --url "https://github.com/wttech/APM/releases/download/apm-5.5.1/apm-all-5.5.1.zip"

Allow to override jdk download URL template

When download URL is not specified then jdk is downloaded from url determined dynamically. However when jdk maintainer will change again then the download URL hard-coded will be no longer valid and there will be no option to override default behavior

How about download_url_template config param with adoptium explicitly (no longer implicitly) defined there?

AEM distribution path handling

to handle dist_path properly:

  • if SDK ZIP is detected, then files are automatically extracted, JAR from inside archive should be used
  • if (on-prem) JAR is detected it is used as it (current approach)
  • dist path could contain wildcard to automatically pick up matching .jar / .zip files (to allow tool users to just place some file under aem/lib/.jar|.zip and have AEM setup done just like that

Problem with wrapper script alias for 'aem'

  1. use aemw in mysite
  2. run make install in aemc
  3. try to use aemw again in mysite after export AEMC_VERSION=installed

image

probably alias need to be changed to bash function somehow

AEM dispatcher integration

  • check if unpacked SDK docker image is usable (using #11)
  • try to use SDK dispatcher tools as is
  • consider using aem-ethos in docker-compose

Auto-troubleshooting on wrong instance settings

when bad jvm opts are specified e.g bad go tpl delimiter is used then the only way to figure out why AEM is not starting / is not reachable so long it to preview stdout.log

image

GAP is smarter now as it is after some timeout printing last lines of that log file automatically. AEMC could too.

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.