This is an automated email from the ASF dual-hosted git repository.

sdedic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new 770e6179b8 Implemnted --direct-disable module option.
     new f6af4cb594 Merge pull request #4301 from 
sdedic/platform/direct-disable-option
770e6179b8 is described below

commit 770e6179b816716132a4c2089299f138beab1c45
Author: Svata Dedic <svatopluk.de...@oracle.com>
AuthorDate: Thu Jun 30 11:34:43 2022 +0200

    Implemnted --direct-disable module option.
---
 .../netbeans/modules/autoupdate/cli/Bundle.properties |  2 +-
 .../modules/autoupdate/cli/ModuleOptions.java         | 19 ++++++++++++++-----
 .../o.n.bootstrap/src/org/netbeans/ModuleManager.java |  9 +++++++++
 3 files changed, 24 insertions(+), 6 deletions(-)

diff --git 
a/platform/autoupdate.cli/src/org/netbeans/modules/autoupdate/cli/Bundle.properties
 
b/platform/autoupdate.cli/src/org/netbeans/modules/autoupdate/cli/Bundle.properties
index 7f71404b71..70b792c215 100644
--- 
a/platform/autoupdate.cli/src/org/netbeans/modules/autoupdate/cli/Bundle.properties
+++ 
b/platform/autoupdate.cli/src/org/netbeans/modules/autoupdate/cli/Bundle.properties
@@ -49,4 +49,4 @@ MSG_ListModules=Prints the list of all modules, their 
versions and enablement st
 MSG_InstallModules=Installs provided JAR files as modules
 MSG_DisableModules=Disable modules for specified codebase names
 MSG_EnableModules=Enable modules for specified codebase names
-
+MSG_DirectDisableModule=Disable module immediately
\ No newline at end of file
diff --git 
a/platform/autoupdate.cli/src/org/netbeans/modules/autoupdate/cli/ModuleOptions.java
 
b/platform/autoupdate.cli/src/org/netbeans/modules/autoupdate/cli/ModuleOptions.java
index 6666b28678..3664cb26e0 100644
--- 
a/platform/autoupdate.cli/src/org/netbeans/modules/autoupdate/cli/ModuleOptions.java
+++ 
b/platform/autoupdate.cli/src/org/netbeans/modules/autoupdate/cli/ModuleOptions.java
@@ -69,6 +69,7 @@ public class ModuleOptions extends OptionProcessor {
     private Option updateAll;
     private Option both;
     private Option extraUC;
+    private Option directDisable;
     private final Collection<UpdateUnitProvider> ownUUP = new HashSet<> ();
     
     /** Creates a new instance of ModuleOptions */
@@ -103,8 +104,10 @@ public class ModuleOptions extends OptionProcessor {
             Option.withoutArgument(Option.NO_SHORT_NAME, "update-all"), b, 
"MSG_UpdateAll"); // NOI18N
         extraUC = Option.shortDescription(
             Option.requiredArgument(Option.NO_SHORT_NAME, "extra-uc"), b, 
"MSG_ExtraUC"); // NOI18N
+        directDisable = Option.shortDescription(
+            Option.additionalArguments(Option.NO_SHORT_NAME, 
"direct-disable"), b, "MSG_DirectDisableModule"); // NOI18N
         
-        Option oper = OptionGroups.someOf(refresh, list, install, disable, 
enable, update, updateAll, extraUC);
+        Option oper = OptionGroups.someOf(refresh, list, install, disable, 
enable, update, updateAll, extraUC, directDisable);
         Option modules = Option.withoutArgument(Option.NO_SHORT_NAME, 
"modules");
         both = OptionGroups.allOf(modules, oper);
         return both;
@@ -175,11 +178,15 @@ public class ModuleOptions extends OptionProcessor {
                 }
 
                 if (optionValues.containsKey(disable)) {
-                    changeModuleState(env, optionValues.get(disable), false);
+                    changeModuleState(env, optionValues.get(disable), false, 
false);
                 }
 
                 if (optionValues.containsKey(enable)) {
-                    changeModuleState(env, optionValues.get(enable), true);
+                    changeModuleState(env, optionValues.get(enable), true, 
false);
+                }
+
+                if (optionValues.containsKey(directDisable)) {
+                    changeModuleState(env, optionValues.get(directDisable), 
false, true);
                 }
             } catch (InterruptedException | IOException | OperationException 
ex) {
                 throw initCause(new CommandException(4), ex);
@@ -205,11 +212,13 @@ public class ModuleOptions extends OptionProcessor {
         "# {0} - requested patterns",
         "MSG_CannotFindAnyPattern=Cannot find any module matching {0}\n"
     })
-    private void changeModuleState(Env env, String[] cnbs, boolean enable) 
throws IOException, CommandException, InterruptedException, OperationException {
+    private void changeModuleState(Env env, String[] cnbs, boolean enable, 
boolean direct) throws IOException, CommandException, InterruptedException, 
OperationException {
         CodeNameMatcher cnm = CodeNameMatcher.create(env, cnbs);
 
         List<UpdateUnit> units = UpdateManager.getDefault().getUpdateUnits();
-        OperationContainer<OperationSupport> operate = enable ? 
OperationContainer.createForEnable() : OperationContainer.createForDisable();
+        OperationContainer<OperationSupport> operate = 
+                enable ? OperationContainer.createForEnable()  :
+                    (direct ? OperationContainer.createForDirectDisable() : 
OperationContainer.createForDisable());
         StringBuilder sb = new StringBuilder();
         boolean found = false;
         for (UpdateUnit updateUnit : units) {
diff --git a/platform/o.n.bootstrap/src/org/netbeans/ModuleManager.java 
b/platform/o.n.bootstrap/src/org/netbeans/ModuleManager.java
index 8e8836a187..d41a16871d 100644
--- a/platform/o.n.bootstrap/src/org/netbeans/ModuleManager.java
+++ b/platform/o.n.bootstrap/src/org/netbeans/ModuleManager.java
@@ -1982,6 +1982,15 @@ public final class ModuleManager extends Modules {
     FIND_AUTOLOADS:
         while (it.hasNext()) {
             Module m = it.next();
+            String host = m.getFragmentHostCodeName();
+            if (host != null) {
+                Module theHost = modulesByName.get(host);
+                if (theHost != null && theHost.isEnabled()) {
+                    // will not disable fragment module, as it is merged to an
+                    // enabled host.
+                    continue;
+                }
+            }
             if (m.isAutoload()) {
                 for (Module other: stillEnabled) {
                     Dependency[] dependencies = other.getDependenciesArray();


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to