Uppgradera kod och anpassningar upgrading-code-and-customizations

CAUTION
AEM 6.4 har nått slutet på den utökade supporten och denna dokumentation är inte längre uppdaterad. Mer information finns i teknisk supportperiod. Hitta de versioner som stöds här.

När man planerar en uppgradering måste man undersöka och åtgärda följande områden i en implementering.

Översikt overview

  1. Mönsteravkännare - Kör mönsteravkännaren enligt beskrivningen i uppgraderingsplaneringen och beskrivs i detalj i den här sidan för att få en mönsterdetektorrapport som innehåller mer information om områden som behöver åtgärdas utöver de otillgängliga API:erna/paketen i målversionen av AEM. Rapporten Mönsteridentifiering bör ge dig en indikation på eventuella inkompatibiliteter i koden, om det inte finns någon sådan, så är distributionen redan 6.4-kompatibel, du kan fortfarande välja att göra ny utveckling för att använda 6.4-funktionalitet, men du behöver den inte bara för att bibehålla kompatibiliteten. Om inkompatibiliteter rapporteras kan du välja att antingen a) köra i kompatibilitetsläge och skjuta upp utvecklingen för nya 6.4-funktioner eller kompatibilitet, b) välja att göra utvecklingen efter uppgraderingen och gå vidare till steg 2. Se Bakåtkompatibilitet i AEM 6.4 för mer information.

  2. Utveckla kodbas för 6.4 - Skapa en dedikerad gren eller databas för kodbasen för målversionen. Använd information från Kompatibilitet före uppgradering för att planera områden med kod att uppdatera.

  3. Kompilera med 6.4 Uber jar - Uppdatera kodbas-POM till 6.4 uber jar och kompilera kod mot detta.

  4. Uppdatera AEM - Anpassningar eller tillägg till AEM ska uppdateras/valideras så att de fungerar i 6.4 och läggas till i 6.4-kodbasen. Innehåller användargränssnittssökning i Forms, anpassning av resurser, allt som använder /mnt/overlay

  5. Distribuera till 6.4-miljö - En ren instans av AEM 6.4 (Författare + Publicera) ska ställas upp i en Dev/QA-miljö. Uppdaterad kodbas och ett representativt urval av innehåll (från aktuell produktion) bör distribueras.

  6. QA-validering och felkorrigering - QA bör validera programmet både i Author- och Publish-instanser av 6.4. Alla buggar som hittas ska vara fasta och implementerade i 6.4-kodbasen. Upprepa Dev-Cycle tills alla fel är åtgärdade.

Innan du fortsätter med en uppgradering bör du ha en stabil programkodbas som har testats noggrant mot målversionen av AEM. Baserat på observationer som gjorts i testningen kan det finnas sätt att optimera den anpassade koden. Detta kan innefatta omfaktorisering av koden för att undvika att gå igenom databasen, anpassad indexering för att optimera sökningen eller användning av osorterade noder i JCR, bland annat.

Förutom möjligheten att uppgradera din kodbas och anpassa den så att den fungerar med den nya AEM-versionen, hjälper 6.4 dig även att hantera dina anpassningar effektivare med funktionen Bakåtkompatibilitet som beskrivs på den här sidan.

Som nämnts ovan och visas i diagrammet nedan, kör Mönsteravkännare i det första steget får du hjälp att bedöma den övergripande komplexiteten hos uppgraderingen och om du vill köra i kompatibilitetsläge eller uppdatera dina anpassningar så att de använder alla nya AEM 6.4-funktioner. Se Bakåtkompatibilitet i AEM 6.4 sida för mer information.
screen_shot_2018-03-30at175257

Uppgradera kodbasen upgrade-code-base

Skapa en dedikerad gren för 6.4-kod i versionskontrollen create-a-dedicated-branch-for-6-4-code-in-version-control

All kod och alla konfigurationer som krävs för AEM ska hanteras med någon form av versionskontroll. En dedikerad gren i versionskontrollen bör skapas för att hantera ändringar som behövs för kodbasen i målversionen av AEM. Interaktiv testning av kodbasen mot målversionen av AEM och efterföljande felkorrigeringar hanteras i den här grenen.

Uppdatera den AEM Uber Jar-versionen update-the-aem-uber-jar-version

AEM Uber jar innehåller alla AEM-API:er som ett enda beroende i Maven-projektets pom.xml. Det är alltid en god vana att inkludera Uber Jar som ett enda beroende i stället för att inkludera enskilda AEM API-beroenden. När du uppgraderar kodbasen bör versionen av Uber Jar ändras till en målversion av AEM. Om ditt projekt utvecklades på en version av AEM innan Uber Jar fanns bör alla enskilda AEM API-beroenden tas bort och ersättas med en enda inkludering av Uber Jar för målversionen av AEM. Kodbasen ska sedan kompileras om mot den nya versionen av Uber Jar. Alla inaktuella API:er eller metoder bör uppdateras så att de är kompatibla med målversionen av AEM.

<dependency>
    <groupId>com.adobe.aem</groupId>
    <artifactId>uber-jar</artifactId>
    <version>6.4.0</version>
    <classifier>apis</classifier>
    <scope>provided</scope>
</dependency>

Avveckla användningen av den administrativa resurslösaren phase-out-use-of-administrative-resource-resolver

Användning av en administrativ session via SlingRepository.loginAdministrative() och ResourceResolverFactory.getAdministrativeResourceResolver() var mycket vanligt i kodbaser före AEM 6.0. Dessa metoder har tagits bort av säkerhetsskäl eftersom de ger för stor åtkomstnivå. I framtida versioner av Sling kommer dessa metoder att tas bort. Vi rekommenderar att du omfaktoriserar kod så att du kan använda tjänstanvändare i stället. Mer information om tjänstanvändare och hur du fasar ut administrativa sessioner finns här.

Frågor och ekindexvärden queries-and-oak-indexes

All användning av frågor i kodbasen måste noggrant testas som en del av uppgraderingen av kodbasen. För kunder som uppgraderar från Jackrabbit 2 (versioner av AEM äldre än 6.0) är detta särskilt viktigt eftersom Oak inte indexerar innehåll automatiskt och anpassade index kan behöva skapas. Om du uppgraderar från en AEM 6.x-version kan indexdefinitionerna för "out of the box Oak" ha ändrats och kan påverka befintliga frågor.

Det finns flera verktyg för analys och granskning av frågeprestanda:

Klassisk gränssnittsredigering classic-ui-authoring

Klassisk gränssnittsredigering är fortfarande tillgängligt i AEM 6.4, men är nu föråldrat. Mer information finns här. Om ditt program körs i den klassiska gränssnittets redigeringsmiljö rekommenderar vi att du uppgraderar till AEM 6.4 och fortsätter använda det klassiska användargränssnittet. Migrering till Touch-gränssnittet kan sedan planeras som ett separat projekt som ska slutföras under flera utvecklingscykler. För att kunna använda det klassiska användargränssnittet i AEM 6.4 måste flera OSGi-konfigurationer implementeras i kodbasen. Mer information om hur du konfigurerar detta finns här.

NOTE
För att hjälpa dig att gå från det klassiska användargränssnittet och dra nytta av den senaste AEM tekniken bör du överväga att utnyttja AEM för att underlätta migreringen.

Justera med 6.4-databasstruktur align-repository-structure

För att underlätta uppgraderingarna och säkerställa att konfigurationerna inte skrivs över under en uppgradering har databasen omstrukturerats i 6.4 för att skilja innehåll från konfiguration.

Därför måste ett antal inställningar flyttas så att de inte längre finns under /etc som tidigare varit fallet. För att se över alla omstruktureringsproblem i databasen som måste granskas och anpassas i den uppdaterade versionen till AEM 6.4, se Omstrukturering av lager i AEM 6.4.

AEM aem-customizations

Alla anpassningar av AEM redigeringsmiljö i källversionen av AEM måste identifieras. När du har identifierat dem rekommenderar vi att du lagrar alla anpassningar i versionskontrollen eller åtminstone säkerhetskopierar dem som en del av ett innehållspaket. Alla anpassningar bör driftsättas och valideras i en QA- eller mellanlagringsmiljö som kör målversionen av AEM innan en produktionsuppgradering.

Övertäckningar i allmänhet overlays-in-general

Det är vanligt att utöka AEM genom att lägga över noder och/eller filer under /libs med ytterligare noder under /apps. Dessa övertäckningar bör spåras i versionskontroll och testas mot målversionen av AEM. Om en fil (oavsett om den är JS, JSP eller HTL) är överlagrad bör du lämna en kommentar om vilka funktioner som har förbättrats för enklare regressionstestning i målversionen av AEM. Mer information om övertäckningar finns i allmänhet här. Instruktioner för specifika AEM finns nedan.

Uppgraderar Forms för anpassad sökning upgrading-custom-search-forms

Anpassade sökfaktorer kräver vissa manuella justeringar efter uppgraderingen för att de ska fungera korrekt. Mer information finns i Uppgraderar Forms för anpassad sökning.

Användargränssnittsanpassningar för resurser assets-ui-customizations

NOTE
Den här proceduren krävs endast för uppgraderingar från versioner som är äldre än AEM 6.2.

Instanser som har anpassade Assets-distributioner måste förberedas för uppgraderingen. Detta krävs för att säkerställa att allt anpassat innehåll är kompatibelt med den nya 6.4-nodstrukturen.

Du kan förbereda anpassningar av resursgränssnittet genom att göra följande:

  1. Öppna CRXDE Lite genom att gå till https://server:port/crx/de/index.jsp

  2. Gå till följande nod:

    • /apps/dam/content
  3. Byt namn på innehållsnoden till content_backup. Du kan göra detta genom att högerklicka på utforskarrutan till vänster i fönstret och välja Byt namn.

  4. Skapa en ny nod med namnet content under när noden har bytt namn /apps/dam namngiven innehåll och ange dess nodtyp till sling:mapp.

  5. Flytta alla underordnade noder för content_backup till den nya innehållsnoden. Du kan göra detta genom att högerklicka på varje underordnad nod i utforskarrutan och välja Flytta.

  6. Ta bort content_backup nod.

  7. De uppdaterade noderna under /apps/dam med rätt nodtyp för sling:Folder bör helst sparas i versionskontrollen och distribueras med kodbasen eller åtminstone säkerhetskopieras som innehållspaket.

Genererar resurs-ID:n för befintliga resurser generating-asset-ids-for-existing-assets

Om du vill generera resurs-ID:n för befintliga resurser ska du uppgradera resurserna när du uppgraderar din AEM så att AEM 6.4 körs. Detta krävs för att aktivera Funktionen för resursinsikter. Mer information finns i Lägga till inbäddningskod.

Om du vill uppgradera resurser konfigurerar du paketet Associate Asset IDs i JMX-konsolen. Beroende på antalet resurser i databasen, migrateAllAssets kan ta lång tid. Våra interna tester beräknar cirka en timme för 125 000 tillgångar på TjärMK.

1487758945977

Om du behöver resurs-ID:n för en delmängd av dina hela resurser använder du migrateAssetsAtPath API.

Använd migrateAllAssets() API.

Anpassa InDesign-skript indesign-script-customizations

Adobe rekommenderar att du skickar egna skript på /apps/settings/dam/indesign/scripts plats. Mer information om anpassning av InDesign Script finns här.

Återställer ContextHub-konfigurationer recovering-contexthub-configurations

ContextHub-konfigurationer genomförs med en uppgradering. Instruktioner om hur du återställer befintliga ContextHub-konfigurationer finns här.

Anpassningar av arbetsflöden workflow-customizations

Det är vanligt att uppdatera ändringar som görs direkt i arbetsflöden för att lägga till eller ta bort funktioner som inte behövs. Ett vanligt arbetsflöde som är anpassat är arbetsflödet för DAM-uppdatering av resurser. Alla arbetsflöden som krävs för en anpassad implementering bör säkerhetskopieras och lagras i versionskontroll eftersom de kan skrivas över under en uppgradering.

Redigerbara mallar editable-templates

NOTE
Den här proceduren krävs endast för webbplatsuppgraderingar som använder Redigerbara mallar från AEM 6.2

Strukturen för redigerbara mallar har ändrats mellan AEM 6.2 och 6.3. Om du uppgraderar från 6.2 eller tidigare och om webbplatsinnehållet byggs med redigerbara mallar måste du använda Verktyget Rensa responsiva noder. Verktyget ska köras efter en uppgradering för att rensa upp i materialet. Den måste köras på både författarnivå och publiceringsnivå.

Ändringar av CUG-implementering cug-implementation-changes

Implementeringen av stängda användargrupper har ändrats avsevärt för att åtgärda prestandabegränsningar och skalbarhetsbegränsningar i tidigare versioner av AEM. Den tidigare versionen av CUG har tagits bort i 6.3 och den nya implementeringen stöds bara i Touch-gränssnittet. Om du uppgraderar från 6.2 eller tidigare finns instruktioner för att migrera till den nya CUG-implementeringen här.

Testförfarande testing-procedure

En omfattande testplan bör utarbetas för testning av uppgraderingar. Testning av den uppgraderade kodbasen och programmet måste göras i lägre miljöer först. Alla buggar som hittas bör fixeras på ett iterativt sätt tills kodbasen är stabil, men endast då bör högre nivåmiljöer uppgraderas.

Testa uppgraderingsproceduren testing-the-upgrade-procedure

Uppgraderingsproceduren som beskrivs här bör testas i Dev- och QA-miljöer enligt din anpassade körningsbok (se Planera din uppgradering). Uppgraderingsproceduren bör upprepas tills alla steg har dokumenterats i uppgraderingsboken och uppgraderingsprocessen är smidig.

Implementeringstestområden implementation-test-areas-

Nedan visas viktiga delar av AEM implementering som ska ingå i testplanen när miljön har uppgraderats och den uppgraderade kodbasen har distribuerats.

Funktionellt testområde
Beskrivning
Publicerade webbplatser
Testa AEM implementering och associerad kod på publiceringsnivån
genom dispatchern. Bör innehålla kriterier för siduppdateringar och
cacheogiltigförklaring.
Redigering
Testar AEM implementering och associerad kod på författarnivån. Bör innehålla sidor, komponentredigering och dialogrutor.
Integrering med Marketing Cloud Solutions
Validera integreringar med produkter som Analytics, DTM och Target.
Integrering med system från tredje part
Alla integreringar från tredje part ska valideras på både författarnivå och publiceringsnivå.
Autentisering, säkerhet och behörigheter
Alla autentiseringsmekanismer som LDAP/SAML bör valideras.
Behörigheter och grupper ska testas både för författare och publicering
lager.
Frågor
Anpassade index och frågor bör testas tillsammans med frågeprestanda.
Anpassningar av användargränssnitt
Alla tillägg eller anpassningar av det AEM användargränssnittet i författarmiljön.
Arbetsflöden
Anpassade arbetsflöden och funktioner och/eller inte.
Prestandatestning
Belastningstestning bör utföras på både författarnivå och publiceringsnivå som simulerar verkliga scenarier.

Dokumenttestplan och resultat document-test-plan-and-results

En testplan bör skapas som omfattar de ovannämnda testområdena för implementering. I många fall är det bra att separera testplanen med uppgiftslistorna Skapat av och Publicera. Testplanen ska köras i Dev-, QA- och Stage-miljöer innan du uppgraderar produktionsmiljöer. Testresultat och prestandamått bör samlas in i lägre miljöer för att ge en jämförelse när du uppgraderar scen- och produktionsmiljöer.

recommendation-more-help
6a71a83d-c2e0-4ce7-a6aa-899aa3885b56