Search the FirstSpirit Knowledge Base
Hallo,
ich habe Warnings die in etwa so aussehen
(de.espirit.firstspirit.generate.SiteProduction): deprecated usage of de.espirit.firstspirit.access.store.contentstore.gom.list.EntityFormData#getEntity
inside of: Template 'Empty page' (id=33081)
inside of: $CMS_VALUE(#global.page.body("content"))$ - at 1, 1
inside of: Template 'Product' (id=33073)
inside of: $CMS_TRIM(level:2)$ - at 92, 1
inside of: $CMS_RENDER(te....
die mit der FS installation mitgelieferte API hört aber leider hier auf:
de.espirit.firstspirit.access.store.contentstore
Gibt's irgendwo eine "weiterführende" API oder 'ne Doku wie deprecats zu ersetzen sind?
Danke und gruß
Volker
Wo ist denn der Rest des Template-Traces? Und was für ein Code steht in deinem Template auf den die letzte Trace-Zeile verweist?
trace
WARN 11.03.2013 10:02:23.688{g-sec=33618,g-node=33616,g-entity=product(53633)} (de.espirit.firstspirit.generate.SiteProduction): deprecated usage of de.espirit.firstspirit.access.store.contentstore.gom.list.EntityFormData#getEntity
inside of: Template 'Empty page' (id=33081)
inside of: $CMS_VALUE(#global.page.body("content"))$ - at 1, 1
inside of: Template 'Product' (id=33073)
inside of: $CMS_TRIM(level:2)$ - at 92, 1
inside of: $CMS_RENDER(template:"ft_header")$ - at 160, 1
inside of: Format Template 'ft_header' (id=33408)
inside of: $CMS_RENDER(template:"ft_language_switch")$ - at 4, 3
inside of: Format Template 'ft_language_switch' (id=33393)
inside of: $CMS_IF( "medical".equals(division) )$ - at 3, 2
inside of: $CMS_VALUE(ps_countryPages.dataset.entity.content[0])$ - at 3, 38
inside of: Template 'Country Pages' (id=33116)
inside of: $CMS_IF( ! st_page_country_1.isEmpty )$ - at 18, 3
inside of: $CMS_FOR( country1, st_page_country_1 )$ - at 20, 4
inside of: $CMS_VALUE(country1.entity.name)$ - at 21, 52
WARN 11.03.2013 10:02:23.688{g-sec=33618,g-node=33616,g-entity=product(53633)} (de.espirit.firstspirit.generate.SiteProduction): deprecated usage of de.espirit.firstspirit.access.store.contentstore.gom.list.EntityFormData#getEntity
end trace
und die besagte Zeile 21:
20: $CMS_FOR(country1,st_page_country_1)$
21: <li><a href="$CMS_VALUE(country1.entity.url)$">$CMS_VALUE(country1.entity.name)$</a></li>
22: $CMS_END_FOR$
wenn ich auch an der lösung dieses speziellen warnings interessiert bin,
bin ich doch mehr an einer allgemeinen Antwort interessiert: umgang mit deprecate's
danke und gruß
volker
Die Antwort auf die allgemeine Frage "wie umgehen mit 'deprection warnings'" ist einfach: Ersetzen durch die jeweils angegebene empfohlene API.
Im konkreten Fall wurde die Methode einer Implementierungsklasse (EntityFormData) benutzt, die niemals API war. Der korrekte Weg ist hier die Formularfelder zu benutzen.
"...wurde die Methode einer Implementierungsklasse (EntityFormData) benutzt, die niemals API war..."
ja, so was in der Art habe ich vermutet,
aber
"...die jeweils angegebene empfohlene API."
das ist ja der Knackpunkt, wo kann ich die Empfehlung finden, hoffentlich nicht in der "Entwickler Doku für Frortgeschrittene"?
Normalerweise, wenn ich auf ein "deprecated" stoße, schaue ich ins API-Doc und dort steht dann "use instead: ..." oder auch ein "see..."
und wie gesagt, das ging hier nicht
Für die konkrete Stelle hatte ich ja den Hinweis oben schon gegeben: "Der korrekte Weg ist hier die Formularfelder zu benutzen". Also statt "country1.entity.Name" so etwas wie "country1.st_name" (wenn das Formularfeld "st_name" heißt).
Ansonsten muss man halt schauen, wie man mit API-Mitteln an das gewünschte kommt. Keine API, keine Doku
Hallo Volker,
auch wenns schon länger her ist...
Versuchs mal mit $CMS_VALUE(country1.dataset.entity.url)$ anstelle von $CMS_VALUE(country1.entity.url)$.
Gruß
Christian