Simplify current plugin release detection, ignore currentRelease registry field
| | |
| | | fixes: ~ |
| | | changes: |
| | | - improve French translation (pr-176) |
| | | - simplify current plugin release detection and ignore the currentRelease registry field |
| | | additions: ~ |
| | | dependencyChanges: |
| | | - update to Apache MINA/SSHD 0.11.0 (issue-410) |
| | |
| | | List<PluginRegistration> list = getRegisteredPlugins(); |
| | | Iterator<PluginRegistration> itr = list.iterator(); |
| | | while (itr.hasNext()) { |
| | | if (state != itr.next().getInstallState()) { |
| | | if (state != itr.next().getInstallState(getSystemVersion())) { |
| | | itr.remove(); |
| | | } |
| | | } |
| | |
| | |
|
| | | public String projectUrl;
|
| | |
|
| | | public String currentRelease;
|
| | |
|
| | | public transient String installedRelease;
|
| | |
|
| | | public transient String registry;
|
| | |
| | |
|
| | | public PluginRelease getCurrentRelease(Version system) {
|
| | | PluginRelease current = null;
|
| | | if (!StringUtils.isEmpty(currentRelease)) {
|
| | | // find specified
|
| | | current = getRelease(currentRelease);
|
| | | }
|
| | |
|
| | | if (current != null) {
|
| | | // verify the current release is acceptable for this system
|
| | | Version requires = Version.ZERO;
|
| | | if (!StringUtils.isEmpty(current.requires)) {
|
| | | requires = Version.createVersion(current.requires);
|
| | | }
|
| | |
|
| | | if (!system.isZero() && !system.atLeast(requires)) {
|
| | | // requires newer system version
|
| | | current = null;
|
| | | }
|
| | | }
|
| | |
|
| | | if (current == null) {
|
| | | // find by date
|
| | | Date date = new Date(0);
|
| | | for (PluginRelease pv : releases) {
|
| | | Version requires = Version.ZERO;
|
| | |
| | | if (pv.date.after(date)) {
|
| | | current = pv;
|
| | | date = pv.date;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | return null;
|
| | | }
|
| | |
|
| | | public InstallState getInstallState() {
|
| | | public InstallState getInstallState(Version system) {
|
| | | if (StringUtils.isEmpty(installedRelease)) {
|
| | | return InstallState.NOT_INSTALLED;
|
| | | }
|
| | | Version ir = Version.createVersion(installedRelease);
|
| | | Version cr = Version.createVersion(currentRelease);
|
| | | Version cr = Version.ZERO;
|
| | | PluginRelease curr = getCurrentRelease(system);
|
| | | if (cr != null) {
|
| | | cr = Version.createVersion(curr.version);
|
| | | }
|
| | | switch (ir.compareTo(cr)) {
|
| | | case -1:
|
| | | return InstallState.UNKNOWN;
|
| | |
| | | state = Joiner.on(", ").join(InstallState.INSTALLED, pw.getPluginState()); |
| | | } else { |
| | | // registered, installed plugin |
| | | state = Joiner.on(", ").join(reg.getInstallState(), pw.getPluginState()); |
| | | state = Joiner.on(", ").join(reg.getInstallState(system), pw.getPluginState()); |
| | | } |
| | | |
| | | StringBuilder sb = new StringBuilder(); |
| | |
| | | curr = new PluginRelease(); |
| | | } |
| | | if (verbose) { |
| | | data[i] = new Object[] {p.id, p.description, p.installedRelease, curr.version, curr.requires, p.getInstallState(), p.registry}; |
| | | data[i] = new Object[] {p.id, p.description, p.installedRelease, curr.version, curr.requires, p.getInstallState(system), p.registry}; |
| | | } else { |
| | | data[i] = new Object[] {p.id, p.installedRelease, curr.version, curr.requires, p.getInstallState()}; |
| | | data[i] = new Object[] {p.id, p.installedRelease, curr.version, curr.requires, p.getInstallState(system)}; |
| | | } |
| | | } |
| | | |
| | |
| | | curr = new PluginRelease(); |
| | | } |
| | | if (verbose) { |
| | | outTabbed(p.id, p.description, p.installedRelease, curr.version, curr.requires, p.getInstallState(), p.provider, p.registry); |
| | | outTabbed(p.id, p.description, p.installedRelease, curr.version, curr.requires, p.getInstallState(system), p.provider, p.registry); |
| | | } else { |
| | | outTabbed(p.id, p.installedRelease, curr.version, curr.requires, p.getInstallState()); |
| | | outTabbed(p.id, p.installedRelease, curr.version, curr.requires, p.getInstallState(system)); |
| | | } |
| | | } |
| | | } |