idempiere-plugin-development
SKILL.md
iDempiere Plugin Development (OSGi)
Objetivo
Implementar cambios en iDempiere con un plugin desacoplado y mantenible:
- bundle OSGi + build Tycho/Maven consistente,
- extension points correctos,
- instalacion reproducible (feature/p2 o mecanismo del proyecto).
Entorno (si no compila o hay que reproducir)
- Confirmar version iDempiere (branch/tag) y Java target.
- Verificar herramientas:
java -version,mvn -v,git --version. - Confirmar DB dev (ideal: docker compose) y credenciales.
- Hacer build sin IDE primero y capturar el primer error real.
Antes de tocar codigo
- Confirmar el tipo de extension
- Proceso/Report, Callout, ModelValidator, EventHandler, Form/ZUL, REST/OSGi service, etc.
- Confirmar restriccion clave
- Evitar cambios en core (salvo necesidad justificada y aprobada).
- Confirmar alcance de DB
- Si hay cambios de diccionario/DB, coordinar con
$idempiere-db. - Si hay UI ZK o themes, coordinar con
$idempiere-zk.
- Si hay cambios de diccionario/DB, coordinar con
Puntos de extension (referencia rapida)
- Proceso / Reporte: implementar clase (ej:
SvrProcess) y registrar enAD_Process(Classname) + menu/role donde aplique. - Callout: implementar callout y referenciarlo desde la columna/campo correspondiente (evitar logica pesada y efectos colaterales).
- ModelValidator: implementar validador y registrarlo como servicio OSGi (preferir patrones ya usados en el repo).
- Event handler: suscribirse a eventos OSGi/iDempiere segun el mecanismo del proyecto (copiar un handler existente como base).
- Form / ZUL: empaquetar recursos (ZUL/CSS) en el plugin y registrar el acceso (menu/forma) segun convencion del repo.
Workflow recomendado
- Ubicar el parent/releng del repo
- Detectar donde se agregan modulos (parent
pom.xml,releng,features,update-site).
- Detectar donde se agregan modulos (parent
- Crear/ajustar el bundle
- Nombre y paquetes sin colisiones (evitar split packages).
- Export/Import packages segun necesidad (no exportar por default).
- Preferir Declarative Services (DS) cuando aplique.
- Implementar la extension
- Registrar lo necesario (plugin.xml, DS, o configuracion en AD_* segun el caso).
- Mantener codigo testeable y sin dependencias innecesarias.
- Integrar al empaquetado
- Agregar a feature/update-site si el repo lo usa.
- Versionar y anotar cambios (semver cuando corresponda).
- Verificar runtime
- Confirmar que el bundle queda ACTIVE.
- Probar el flujo funcional end-to-end en UI.
Checklist rapido
- No se toco core (o esta justificado).
- Bundle compila y resuelve dependencias en OSGi.
- Extension registrada y ejecuta en runtime.
- Instrucciones de instalacion/upgrade documentadas.
Weekly Installs
5
Repository
comitsrl/comitsrl-skillsFirst Seen
Feb 8, 2026
Security Audits
Installed on
amp5
gemini-cli5
github-copilot5
codex5
kimi-cli5
opencode5