Почему базовый класс `plugin` между Play 1 и Play 2 настолько отличается? - PullRequest
0 голосов
/ 02 апреля 2012

Базовый класс плагина в Play 1, равен play.PlayPlugin, который имеет множество методов (полей):

index : int
onLoad()
compileSources()
runTest(Class<BaseTest>)
bind(String, Class, Type, Annotation[], Map<String, String[]>)
bind(RootParamNode, String, Class<?>, Type, Annotation[])
bind(String, Object, Map<String, String[]>)
bindBean(RootParamNode, String, Object)
unBind(Object, String)
getMessage(String, Object, Object...)
getStatus()
getJsonStatus()
enhance(ApplicationClass)
onTemplateCompilation(Template)
rawInvocation(Request, Response)
serveStatic(VirtualFile, Request, Response)
beforeDetectingChanges()
loadTemplate(VirtualFile)
detectChange()
detectClassesChange()
onApplicationStart()
afterApplicationStart()
onApplicationStop()
beforeInvocation()
afterInvocation()
onInvocationException(Throwable)
invocationFinally()
beforeActionInvocation(Method)
onActionInvocationResult(Result)
onInvocationSuccess()
onRequestRouting(Route)
afterActionInvocation()
onConfigurationRead()
onRoutesLoaded()
onEvent(String, Object)
onClassesChange(List<ApplicationClass>)
addTemplateExtensions()
addMimeTypes()
compileAll(List<ApplicationClass>)
routeRequest(Request)
modelFactory(Class<? extends Model>)
afterFixtureLoad()
postEvent(String, Object)
onApplicationReady()
compareTo(PlayPlugin)
overrideTemplateSource(BaseTemplate, String)
willBeValidated(Object)

И Play 2's - это play.api.Plugin, что очень просто:

onStart(): Unit
onStop(): Unit
enabled: Boolean

Почему они такие разные? И я думаю, что методы в классе плагинов Play 1 определены как extension-points, разве они больше не нужны для Play 2?

1 Ответ

1 голос
/ 03 апреля 2012

Play 2.0 различает глобальные настройки и плагины .

Глобальные настройки относятся к конкретному приложению и позволяют настраивать некоторое поведение платформы (например, что следует делать, если не было найдено никаких действий для запроса). Фактически большинство точек расширения плагинов Play 1.x теперь находятся в глобальных настройках Play 2.x.

Плагины - это модули, которым может потребоваться информация о жизненном цикле приложения для выполнения операций инициализации / очистки.

...