You are viewing a plain text version of this content. The canonical link for it is here.
Posted to gitbox@activemq.apache.org by "andytaylor (via GitHub)" <gi...@apache.org> on 2024/04/23 09:54:49 UTC

[PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

andytaylor opened a new pull request, #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2

   https://issues.apache.org/jira/browse/ARTEMIS-4680


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "gemmellr (via GitHub)" <gi...@apache.org>.
gemmellr commented on code in PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#discussion_r1586077228


##########
artemis-console-extension/pom.xml:
##########
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-console-project</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-console-extension</artifactId>
+    <packaging>pom</packaging>
+
+
+    <name>ActiveMQ Artemis Console</name>

Review Comment:
   ActiveMQ Artemis Console Extension?



##########
NOTICE:
##########
@@ -0,0 +1,5 @@
+Apache ActiveMQ Artemis Console Plugin

Review Comment:
   Drop the "Plugin" now ?



##########
pom.xml:
##########
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>31</version>
+        <relativePath>org.apache:apache</relativePath>
+    </parent>
+
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-console-project</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0.0-SNAPSHOT</version>
+
+
+    <modules>
+        <module>artemis-console-extension</module>
+        <module>artemis-console-war</module>
+        <module>artemis-console-distribution</module>
+    </modules>
+
+    <name>ActiveMQ Artemis Console Plugin</name>
+    <url>https://activemq.apache.org/components/artemis/</url>
+
+    <properties>
+        <maven.compiler.source>11</maven.compiler.source>
+        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.release>11</maven.compiler.release>
+        <hawtio.version>4.0.0</hawtio.version>
+        <jakarta.servlet-api.version>5.0.0</jakarta.servlet-api.version>
+        <slf4j.version>2.0.12</slf4j.version>
+        <log4j.version>2.22.1</log4j.version>
+        <jetty-version>11.0.20</jetty-version>
+        <node-version>v20.9.0</node-version>
+        <yarn-version>v1.22.21</yarn-version>
+        <frontend-maven-plugin-version>1.15.0</frontend-maven-plugin-version>
+        <!-- Path to the Hawtio TypeScript plugin -->
+        <plugin.path>artemis-extension</plugin.path>
+        <project.build.outputTimestamp>2024-03-27T00:00:01Z</project.build.outputTimestamp>
+    </properties>
+
+    <scm>
+      <connection>scm:git:https://gitbox.apache.org/repos/asf/activemq-artemis-console-plugin.git</connection>
+      <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/activemq-artemis-console-plugin.git</developerConnection>
+      <url>https://github.com/apache/activemq-artemis-console-plugin</url>

Review Comment:
   Still needs updated to drop 'plugin' to reflect the renamed repo.



##########
artemis-console-war/pom.xml:
##########
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-console-project</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-console-war</artifactId>
+    <packaging>war</packaging>
+
+
+    <name>ActiveMQ Artemis Console War</name>
+
+    <dependencies>
+        <!-- we need to depend on this for the build output -->
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>artemis-console-extension</artifactId>
+            <type>pom</type>
+            <version>${project.version}</version>
+        </dependency>
+        <!-- mandatory core hawito modules -->
+        <dependency>
+            <groupId>io.hawt</groupId>
+            <artifactId>hawtio-system</artifactId>
+        </dependency>
+
+        <!-- Servlet API is provided by the container -->
+        <dependency>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Logging -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+            <version>${slf4j.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-slf4j2-impl</artifactId>
+            <version>${log4j.version}</version>

Review Comment:
   Should drop the versions and use the dependencyManagement from parent (need to add the log4j-slf4j2-impl dep there)



##########
pom.xml:
##########
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>31</version>
+        <relativePath>org.apache:apache</relativePath>
+    </parent>
+
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-console-project</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0.0-SNAPSHOT</version>
+
+
+    <modules>
+        <module>artemis-console-extension</module>
+        <module>artemis-console-war</module>
+        <module>artemis-console-distribution</module>
+    </modules>
+
+    <name>ActiveMQ Artemis Console Plugin</name>
+    <url>https://activemq.apache.org/components/artemis/</url>
+
+    <properties>
+        <maven.compiler.source>11</maven.compiler.source>
+        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.release>11</maven.compiler.release>
+        <hawtio.version>4.0.0</hawtio.version>
+        <jakarta.servlet-api.version>5.0.0</jakarta.servlet-api.version>
+        <slf4j.version>2.0.12</slf4j.version>
+        <log4j.version>2.22.1</log4j.version>
+        <jetty-version>11.0.20</jetty-version>
+        <node-version>v20.9.0</node-version>
+        <yarn-version>v1.22.21</yarn-version>
+        <frontend-maven-plugin-version>1.15.0</frontend-maven-plugin-version>
+        <!-- Path to the Hawtio TypeScript plugin -->
+        <plugin.path>artemis-extension</plugin.path>
+        <project.build.outputTimestamp>2024-03-27T00:00:01Z</project.build.outputTimestamp>
+    </properties>
+
+    <scm>
+      <connection>scm:git:https://gitbox.apache.org/repos/asf/activemq-artemis-console-plugin.git</connection>
+      <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/activemq-artemis-console-plugin.git</developerConnection>
+      <url>https://github.com/apache/activemq-artemis-console-plugin</url>
+      <tag>HEAD</tag>
+    </scm>
+
+    <issueManagement>
+      <system>JIRA</system>
+      <url>https://issues.apache.org/jira/browse/ARTEMIS</url>
+    </issueManagement>
+
+    <developers>
+      <developer>
+         <name>The Apache ActiveMQ Team</name>
+         <email>dev@activemq.apache.org</email>
+         <url>http://activemq.apache.org</url>
+         <organization>Apache Software Foundation</organization>
+         <organizationUrl>http://apache.org/</organizationUrl>
+      </developer>
+   </developers>
+   <mailingLists>
+      <mailingList>
+         <name>User List</name>
+         <subscribe>users-subscribe@activemq.apache.org</subscribe>
+         <unsubscribe>users-unsubscribe@activemq.apache.org</unsubscribe>
+         <post>users@activemq.apache.org</post>
+      </mailingList>
+      <mailingList>
+         <name>Development List</name>
+         <subscribe>dev-subscribe@activemq.apache.org</subscribe>
+         <unsubscribe>dev-unsubscribe@activemq.apache.org</unsubscribe>
+         <post>dev@activemq.apache.org</post>
+      </mailingList>
+   </mailingLists>
+
+    <profiles>
+        <profile>
+            <id>release</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.rat</groupId>
+                        <artifactId>apache-rat-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <phase>compile</phase>
+                                <goals>
+                                    <goal>check</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-checkstyle-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <phase>compile</phase>
+                                <goals>
+                                    <goal>check</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <!-- Override the apache-release profile from the parent to skip creating
+           a source-release archive here, it is done in artemis-console-distribution. -->
+        <profile>
+            <id>apache-release</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>source-release-assembly</id>
+                                <configuration>
+                                    <skipAssembly>true</skipAssembly>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+    <dependencyManagement>
+        <dependencies>
+            <!-- mandatory core hawtio modules -->
+            <dependency>
+                <groupId>io.hawt</groupId>
+                <artifactId>hawtio-system</artifactId>
+                <version>${hawtio.version}</version>
+            </dependency>
+
+            <!-- Servlet API is provided by the container -->
+            <dependency>
+                <groupId>jakarta.servlet</groupId>
+                <artifactId>jakarta.servlet-api</artifactId>
+                <version>${jakarta.servlet-api.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Logging -->
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>slf4j-api</artifactId>
+                <version>${slf4j.version}</version>
+            </dependency>
+        </dependencies>

Review Comment:
   Should add the new log4j-slf4j2-impl dep here too. Might be worth managing the log4j version too, in case any of the other components ever uses it and maven potentially resolves a different version for them. E.g
   ```
            <dependency>
               <groupId>org.apache.logging.log4j</groupId>
               <artifactId>log4j-slf4j2-impl</artifactId>
               <version>${log4j.version}</version>
            </dependency>
            <dependency>
               <groupId>org.apache.logging.log4j</groupId>
               <artifactId>log4j-api</artifactId>
               <version>${log4j.version}</version>
            </dependency>
            <dependency>
               <groupId>org.apache.logging.log4j</groupId>
               <artifactId>log4j-core</artifactId>
               <version>${log4j.version}</version>
            </dependency>
   ```
   
   Or instead of the above you could import the log4j bom to manage them all (and everything else log4j) rather than define the specific deps here.
   ```
            <dependency>
               <groupId>org.apache.logging.log4j</groupId>
               <artifactId>log4j-bom</artifactId>
               <version>${log4j.version}</version>
               <type>pom</type>
               <scope>import</scope>
            </dependency>
   



##########
pom.xml:
##########
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>31</version>
+        <relativePath>org.apache:apache</relativePath>
+    </parent>
+
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-console-project</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0.0-SNAPSHOT</version>
+
+
+    <modules>
+        <module>artemis-console-extension</module>
+        <module>artemis-console-war</module>
+        <module>artemis-console-distribution</module>
+    </modules>
+
+    <name>ActiveMQ Artemis Console Plugin</name>

Review Comment:
   ActiveMQ Artemis Console Project ?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "andytaylor (via GitHub)" <gi...@apache.org>.
andytaylor commented on code in PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#discussion_r1586246683


##########
pom.xml:
##########
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>31</version>
+        <relativePath>org.apache:apache</relativePath>
+    </parent>
+
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-console-project</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0.0-SNAPSHOT</version>
+
+
+    <modules>
+        <module>artemis-console-extension</module>
+        <module>artemis-console-war</module>
+        <module>artemis-console-distribution</module>
+    </modules>
+
+    <name>ActiveMQ Artemis Console Plugin</name>
+    <url>https://activemq.apache.org/components/artemis/</url>
+
+    <properties>
+        <maven.compiler.source>11</maven.compiler.source>
+        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.release>11</maven.compiler.release>
+        <hawtio.version>4.0.0</hawtio.version>
+        <jakarta.servlet-api.version>5.0.0</jakarta.servlet-api.version>
+        <slf4j.version>2.0.12</slf4j.version>
+        <log4j.version>2.22.1</log4j.version>
+        <jetty-version>11.0.20</jetty-version>
+        <node-version>v20.9.0</node-version>
+        <yarn-version>v1.22.21</yarn-version>
+        <frontend-maven-plugin-version>1.15.0</frontend-maven-plugin-version>
+        <!-- Path to the Hawtio TypeScript plugin -->
+        <plugin.path>artemis-extension</plugin.path>
+        <project.build.outputTimestamp>2024-03-27T00:00:01Z</project.build.outputTimestamp>
+    </properties>
+
+    <scm>
+      <connection>scm:git:https://gitbox.apache.org/repos/asf/activemq-artemis-console-plugin.git</connection>
+      <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/activemq-artemis-console-plugin.git</developerConnection>
+      <url>https://github.com/apache/activemq-artemis-console-plugin</url>
+      <tag>HEAD</tag>
+    </scm>
+
+    <issueManagement>
+      <system>JIRA</system>
+      <url>https://issues.apache.org/jira/browse/ARTEMIS</url>
+    </issueManagement>
+
+    <developers>
+      <developer>
+         <name>The Apache ActiveMQ Team</name>
+         <email>dev@activemq.apache.org</email>
+         <url>http://activemq.apache.org</url>
+         <organization>Apache Software Foundation</organization>
+         <organizationUrl>http://apache.org/</organizationUrl>
+      </developer>
+   </developers>
+   <mailingLists>
+      <mailingList>
+         <name>User List</name>
+         <subscribe>users-subscribe@activemq.apache.org</subscribe>
+         <unsubscribe>users-unsubscribe@activemq.apache.org</unsubscribe>
+         <post>users@activemq.apache.org</post>
+      </mailingList>
+      <mailingList>
+         <name>Development List</name>
+         <subscribe>dev-subscribe@activemq.apache.org</subscribe>
+         <unsubscribe>dev-unsubscribe@activemq.apache.org</unsubscribe>
+         <post>dev@activemq.apache.org</post>
+      </mailingList>
+   </mailingLists>
+
+    <profiles>
+        <profile>
+            <id>release</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.rat</groupId>
+                        <artifactId>apache-rat-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <phase>compile</phase>
+                                <goals>
+                                    <goal>check</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-checkstyle-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <phase>compile</phase>
+                                <goals>
+                                    <goal>check</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <!-- Override the apache-release profile from the parent to skip creating
+           a source-release archive here, it is done in artemis-console-distribution. -->
+        <profile>
+            <id>apache-release</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>source-release-assembly</id>
+                                <configuration>
+                                    <skipAssembly>true</skipAssembly>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+    <dependencyManagement>
+        <dependencies>
+            <!-- mandatory core hawtio modules -->
+            <dependency>
+                <groupId>io.hawt</groupId>
+                <artifactId>hawtio-system</artifactId>
+                <version>${hawtio.version}</version>
+            </dependency>
+
+            <!-- Servlet API is provided by the container -->
+            <dependency>
+                <groupId>jakarta.servlet</groupId>
+                <artifactId>jakarta.servlet-api</artifactId>
+                <version>${jakarta.servlet-api.version}</version>
+                <scope>provided</scope>
+            </dependency>
+
+            <!-- Logging -->
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>slf4j-api</artifactId>
+                <version>${slf4j.version}</version>
+            </dependency>
+        </dependencies>

Review Comment:
   I have done the former



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "gemmellr (via GitHub)" <gi...@apache.org>.
gemmellr commented on PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#issuecomment-2088688383

   Seems good to me now, and given its been over a month across 2 repos without a single comment from anybody else...merged.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "gemmellr (via GitHub)" <gi...@apache.org>.
gemmellr commented on PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#issuecomment-2072309300

   I havent had a chance to look over the latest changes yet, or actually try it, but I did get as far as running the build...and noticed something I wasnt expecting in the output. It seems to install an old version of yarn, is that expected?
   ```
   [INFO] --- frontend:1.15.0:install-node-and-yarn (install node and yarn) @ artemis-console-extension ---
   [INFO] Node v20.9.0 is already installed.
   [INFO] Yarn 3.5.0 was installed, but we need version v1.22.21
   [INFO] Installing Yarn version v1.22.21
   [INFO] Unpacking /path/to/.m2/repository/com/github/eirslett/yarn/1.22.21/yarn-1.22.21.tar.gz into /path/to/activemq-artemis-console/artemis-console-extension/artemis-extension/node/yarn
   [INFO] Installed Yarn locally.
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "gemmellr (via GitHub)" <gi...@apache.org>.
gemmellr commented on code in PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#discussion_r1579378435


##########
artemis-console-war/pom.xml:
##########
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-console-project</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-console-war</artifactId>
+    <packaging>war</packaging>
+
+
+    <name>ActiveMQ Artemis Console War</name>
+
+    <dependencies>
+        <!-- mandatory core hawito modules -->
+        <dependency>
+            <groupId>io.hawt</groupId>
+            <artifactId>hawtio-system</artifactId>
+        </dependency>
+
+        <!-- Servlet API is provided by the container -->
+        <dependency>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Logging -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <configuration>
+                <nonFilteredFileExtensions>
+                <!-- default value contains jpg,jpeg,gif,bmp,png -->
+                    <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
+                    <nonFilteredFileExtension>woff</nonFilteredFileExtension>
+                </nonFilteredFileExtensions>
+                    <webResources>
+                        <!-- Add the plugin build to web resources -->
+                        <resource>
+                            <filtering>true</filtering>
+                            <directory>../artemis-console-extension/artemis-extension/build</directory>
+                            <includes>
+                                <include>**/*.*</include>
+                            </includes>
+                            <excludes>
+                                <exclude>log4j.properties</exclude>
+                            </excludes>
+                        </resource>
+                    </webResources>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-maven-plugin</artifactId>
+                <version>${jetty-version}</version>

Review Comment:
   Sounds good



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "andytaylor (via GitHub)" <gi...@apache.org>.
andytaylor commented on code in PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#discussion_r1585945037


##########
artemis-console-war/pom.xml:
##########
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-console-project</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-console-war</artifactId>
+    <packaging>war</packaging>
+
+
+    <name>ActiveMQ Artemis Console War</name>
+
+    <dependencies>
+        <!-- mandatory core hawito modules -->
+        <dependency>
+            <groupId>io.hawt</groupId>
+            <artifactId>hawtio-system</artifactId>
+        </dependency>
+
+        <!-- Servlet API is provided by the container -->
+        <dependency>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Logging -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+    </dependencies>

Review Comment:
   added a dependency



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "gemmellr (via GitHub)" <gi...@apache.org>.
gemmellr commented on PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#issuecomment-2074654002

   Ok. To be clear though, it does also happen in CI:
   ```
   [INFO] Installing node version v20.9.0
   [INFO] Downloading https://nodejs.org/dist/v20.9.0/node-v20.9.0-linux-x64.tar.gz to /home/runner/.m2/repository/com/github/eirslett/node/20.9.0/node-20.9.0-linux-x64.tar.gz
   [INFO] No proxies configured
   [INFO] No proxy was configured, downloading directly
   [INFO] Unpacking /home/runner/.m2/repository/com/github/eirslett/node/20.9.0/node-20.9.0-linux-x64.tar.gz into /home/runner/work/activemq-artemis-console/activemq-artemis-console/artemis-console-extension/artemis-extension/node/tmp
   [INFO] Copying node binary from /home/runner/work/activemq-artemis-console/activemq-artemis-console/artemis-console-extension/artemis-extension/node/tmp/node-v20.9.0-linux-x64/bin/node to /home/runner/work/activemq-artemis-console/activemq-artemis-console/artemis-console-extension/artemis-extension/node/node
   [INFO] Installed node locally.
   [INFO] Installing Yarn version v1.22.21
   [INFO] Downloading https://github.com/yarnpkg/yarn/releases/download/v1.22.21/yarn-v1.22.21.tar.gz to /home/runner/.m2/repository/com/github/eirslett/yarn/1.22.21/yarn-1.22.21.tar.gz
   [INFO] No proxies configured
   [INFO] No proxy was configured, downloading directly
   [INFO] Unpacking /home/runner/.m2/repository/com/github/eirslett/yarn/1.22.21/yarn-1.22.21.tar.gz into /home/runner/work/activemq-artemis-console/activemq-artemis-console/artemis-console-extension/artemis-extension/node/yarn
   [INFO] Installed Yarn locally.
   ```
   
   https://github.com/apache/activemq-artemis-console/pull/2/checks#step:4:1308


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "andytaylor (via GitHub)" <gi...@apache.org>.
andytaylor commented on PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#issuecomment-2074679300

   Yes it is expected


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "andytaylor (via GitHub)" <gi...@apache.org>.
andytaylor commented on PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#issuecomment-2074183992

   If your project is using Yarn Berry (2.x or above), the Yarn version is handled per project but a Yarn 1.x install is still needed as a "bootstrap". The plugin will try to detect .yarnrc.yml file in the current Maven project/module folder, at the root of the multi-module project if relevant, and in the folder from which the mvn command was run. If detected, the plugin will assume your project is using Yarn Berry. It will install the 1.x Yarn version you specify with yarnVersion as bootstrap, then hand over to your project-specific version.
   
   It has detected an older version in your env which doesnt happen in CI. In short this is expected.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "andytaylor (via GitHub)" <gi...@apache.org>.
andytaylor commented on code in PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#discussion_r1585944729


##########
artemis-console-war/pom.xml:
##########
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-console-project</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-console-war</artifactId>
+    <packaging>war</packaging>
+
+
+    <name>ActiveMQ Artemis Console War</name>
+
+    <dependencies>
+        <!-- mandatory core hawito modules -->
+        <dependency>
+            <groupId>io.hawt</groupId>
+            <artifactId>hawtio-system</artifactId>
+        </dependency>
+
+        <!-- Servlet API is provided by the container -->
+        <dependency>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Logging -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>

Review Comment:
   removed and fixed jetty to pick up fully qualified name



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "andytaylor (via GitHub)" <gi...@apache.org>.
andytaylor commented on code in PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#discussion_r1585945469


##########
artemis-console-extension/artemis-extension/src/artemis-extension/artemis/brokers/BrokerTopology.tsx:
##########
@@ -0,0 +1,671 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import * as React from 'react';
+
+import { RegionsIcon as Icon1 } from '@patternfly/react-icons';
+import { FolderOpenIcon as Icon2 } from '@patternfly/react-icons';
+import { ClusterIcon } from '@patternfly/react-icons';
+
+import {
+  ColaLayout,
+  ComponentFactory,
+  DefaultEdge,
+  DefaultGroup,
+  DefaultNode,
+  DragObjectWithType,
+  Edge,
+  EdgeModel,
+  EdgeStyle,
+  Graph,
+  GraphComponent,
+  graphDropTargetSpec,
+  GRAPH_LAYOUT_END_EVENT,
+  groupDropTargetSpec,
+  Layout,
+  LayoutFactory,
+  Model,
+  ModelKind,
+  Node,
+  nodeDragSourceSpec,
+  nodeDropTargetSpec,
+  NodeModel,
+  NodeShape,
+  NodeStatus,
+  observer,
+  SELECTION_EVENT,
+  TopologyView,
+  Visualization,
+  VisualizationProvider,
+  VisualizationSurface,
+  withDndDrop,
+  WithDndDropProps,
+  withDragNode,
+  WithDragNodeProps,
+  withPanZoom,
+  withSelection,
+  WithSelectionProps,
+  withTargetDrag
+} from '@patternfly/react-topology';
+import { useEffect, useState } from 'react';
+import { artemisService, BrokerInfo } from '../artemis-service';
+import { eventService } from '@hawtio/react';
+import { ToolbarItem, Select, SelectVariant, SelectOption } from '@patternfly/react-core';
+
+
+const BadgeColors = [
+  {
+    name: 'A',
+    badgeColor: '#ace12e',
+    badgeTextColor: '#0f280d',
+    badgeBorderColor: '#486b00'
+  },
+  {
+    name: 'B',
+    badgeColor: '#F2F0FC',
+    badgeTextColor: '#5752d1',
+    badgeBorderColor: '#CBC1FF'
+  },
+  {
+    name: 'Broker',
+    badgeColor: '#c12766',
+    badgeTextColor: 'white',
+    badgeBorderColor: '#CBC1FF'
+  },
+  {
+    name: 'Address',
+    badgeColor: '#3e489f',
+    badgeTextColor: 'white',
+    badgeBorderColor: '#CBC1FF'
+  },
+  {
+    name: 'Queue',
+    badgeColor: '#50621d',
+    badgeTextColor: 'white',
+    badgeBorderColor: '#CBC1FF'
+  },
+  {
+    name: 'Internal Address',
+    badgeColor: 'white',
+    badgeTextColor: 'black',
+    badgeBorderColor: '#CBC1FF'
+  },
+  {
+    name: 'Internal Queue',
+    badgeColor: 'white',
+    badgeTextColor: 'black',
+    badgeBorderColor: '#CBC1FF'
+  }
+];
+
+interface ControllerState {
+  selectedIds: string[];
+  viewOptions: ViewOptions;
+}
+
+type CustomNodeProps = {
+  element: Node;
+} & WithDragNodeProps;
+
+const CustomNode: React.FC<CustomNodeProps & WithSelectionProps & WithDragNodeProps & WithDndDropProps> = ({ element, onSelect, selected, ...rest  }) => {
+
+  const data = element.getData();
+  const Icon = data.isAlternate ? Icon2 : Icon1;
+  const badgeColors = BadgeColors.find(badgeColor => badgeColor.name === data.badge);
+
+  return (  
+    <DefaultNode
+      element={element}
+      showStatusDecorator
+      badgeColor={badgeColors?.badgeColor}
+      badgeTextColor={badgeColors?.badgeTextColor}
+      badgeBorderColor={badgeColors?.badgeBorderColor} 
+      className="artemisBroker"
+      onSelect={onSelect}
+      selected={selected}
+      {...rest}
+    >
+      <g transform={`translate(25, 25)`}>
+        <Icon style={{ color: '#393F44' }} width={25} height={25} />
+      </g>
+    </DefaultNode>
+  );
+};
+
+const BrokerCustomNode: React.FC<CustomNodeProps & WithSelectionProps & WithDragNodeProps & WithDndDropProps> = observer(({ element, onSelect, selected, ...rest }) => {
+  const data = element.getData();
+  const Icon = ClusterIcon;
+  const badgeColors = BadgeColors.find(badgeColor => badgeColor.name === data.badge);
+  const { viewOptions } = element.getController().getState<ControllerState>();
+
+  return (
+    <DefaultNode
+      element={element}
+      showStatusDecorator
+      badge={data.badge}
+      badgeColor={badgeColors?.badgeColor}
+      badgeTextColor={badgeColors?.badgeTextColor}
+      badgeBorderColor={badgeColors?.badgeBorderColor}
+      showLabel={viewOptions.showLabels}
+      className="artemisBroker"
+      onSelect={onSelect}
+      selected={selected}
+      {...rest}
+    >
+      <g transform={`translate(25, 25)`}>
+        <Icon style={{ color: '#393F44' }} width={25} height={25} />
+      </g>
+    </DefaultNode>
+  );
+});
+
+const AddressCustomNode: React.FC<CustomNodeProps & WithSelectionProps & WithDragNodeProps & WithDndDropProps> = ({ element, onSelect, selected, ...rest  }) => {
+  const data = element.getData();
+  const badgeColors = BadgeColors.find(badgeColor => badgeColor.name === data.badge);
+  const { viewOptions } = element.getController().getState<ControllerState>();
+
+  return (
+    <DefaultNode
+      element={element}
+      showStatusDecorator
+      badge={data.badge}
+      badgeColor={badgeColors?.badgeColor}
+      badgeTextColor={badgeColors?.badgeTextColor}
+      badgeBorderColor={badgeColors?.badgeBorderColor} 
+      showLabel={viewOptions.showLabels}
+      onSelect={onSelect}
+      selected={selected}
+      className="artemisAddress"
+      {...rest}
+    >
+    </DefaultNode>
+  );
+};
+
+const InternalAddressCustomNode: React.FC<CustomNodeProps & WithSelectionProps & WithDragNodeProps & WithDndDropProps> = ({ element, onSelect, selected, ...rest  }) => {
+  const data = element.getData();
+  const badgeColors = BadgeColors.find(badgeColor => badgeColor.name === data.badge);
+  const { viewOptions } = element.getController().getState<ControllerState>();
+
+  return (
+    <DefaultNode
+      element={element}
+      showStatusDecorator
+      badge={data.badge}
+      badgeColor={badgeColors?.badgeColor}
+      badgeTextColor={badgeColors?.badgeTextColor}
+      badgeBorderColor={badgeColors?.badgeBorderColor} 
+      showLabel={viewOptions.showLabels}
+      className="artemisInternalAddress"
+      onSelect={onSelect}
+      selected={selected}
+      {...rest}
+    >
+    </DefaultNode>
+  );
+};
+
+
+const QueueCustomNode: React.FC<CustomNodeProps & WithSelectionProps & WithDragNodeProps & WithDndDropProps> = ({ element, onSelect, selected, ...rest  }) => {
+  const data = element.getData();
+  const badgeColors = BadgeColors.find(badgeColor => badgeColor.name === data.badge);
+  const { viewOptions } = element.getController().getState<ControllerState>();
+
+  return (
+    <DefaultNode
+      element={element}
+      showStatusDecorator
+      badge={data.badge}
+      badgeColor={badgeColors?.badgeColor}
+      badgeTextColor={badgeColors?.badgeTextColor}
+      badgeBorderColor={badgeColors?.badgeBorderColor}
+      showLabel={viewOptions.showLabels} 
+      className="artemisQueue"
+      onSelect={onSelect}
+      selected={selected}
+      {...rest}
+    >
+    </DefaultNode>
+  );
+};
+
+const InternalQueueCustomNode: React.FC<CustomNodeProps & WithSelectionProps & WithDragNodeProps & WithDndDropProps> = ({ element, onSelect, selected, ...rest  }) => {
+  const data = element.getData();
+  const badgeColors = BadgeColors.find(badgeColor => badgeColor.name === data.badge);
+  const { viewOptions } = element.getController().getState<ControllerState>();
+
+  return (
+    <DefaultNode
+      element={element}
+      showStatusDecorator
+      badge={data.badge}
+      badgeColor={badgeColors?.badgeColor}
+      badgeTextColor={badgeColors?.badgeTextColor}
+      badgeBorderColor={badgeColors?.badgeBorderColor}
+      showLabel={viewOptions.showLabels} 
+      className="artemisInternalQueue"
+      onSelect={onSelect}
+      selected={selected}
+      {...rest}
+    >
+    </DefaultNode>
+  );
+};
+
+const customLayoutFactory: LayoutFactory = (type: string, graph: Graph): Layout | undefined => {
+  switch (type) {
+    case 'Cola':
+      return new ColaLayout(graph);
+    default:
+      return new ColaLayout(graph, { layoutOnDrag: true });
+  }
+};
+
+const CONNECTOR_TARGET_DROP = 'connector-target-drop';
+
+const customComponentFactory: ComponentFactory = (kind: ModelKind, type: string): any => {
+  switch (type) {
+    case 'group':
+      return withDndDrop(groupDropTargetSpec)(withDragNode(nodeDragSourceSpec('group'))(withSelection()(DefaultGroup)));
+    default:
+      switch (kind) {
+        case ModelKind.graph:
+          return withDndDrop(graphDropTargetSpec())(withPanZoom()(GraphComponent));
+        case ModelKind.node:
+          switch(type) {
+            case 'broker':
+              return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))(
+                withDragNode(nodeDragSourceSpec('node', true, true))(BrokerCustomNode));
+            case 'address':
+              return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))(
+                withDragNode(nodeDragSourceSpec('node', true, true))(AddressCustomNode));
+            case 'queue':
+              return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))(
+                withDragNode(nodeDragSourceSpec('node', true, true))(QueueCustomNode));
+            case 'internalAddress':
+              return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))(
+                withDragNode(nodeDragSourceSpec('node', true, true))(InternalAddressCustomNode));
+            case 'internalQueue':
+              return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))(
+                withDragNode(nodeDragSourceSpec('node', true, true))(InternalQueueCustomNode));
+            default:
+              return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))(
+                withDragNode(nodeDragSourceSpec('node', true, true))(CustomNode));
+          }
+        case ModelKind.edge:
+          return withTargetDrag<
+            DragObjectWithType,
+            Node,
+            { dragging?: boolean },
+            {
+              element: Edge;
+            }
+          >({
+            item: { type: CONNECTOR_TARGET_DROP },
+            begin: (monitor, props) => {
+              props.element.raise();
+              return props.element;
+            },
+            drag: (event, monitor, props) => {
+              props.element.setEndPoint(event.x, event.y);
+            },
+            end: (dropResult, monitor, props) => {
+              if (monitor.didDrop() && dropResult && props) {
+                props.element.setTarget(dropResult);
+              }
+              props.element.setEndPoint();
+            },
+            collect: monitor => ({
+              dragging: monitor.isDragging()
+            })
+            // @ts-ignore
+          })(DefaultEdge);
+        default:
+          return undefined;
+      }
+  }
+};
+
+const BROKER_NODE_DIAMETER = 75;
+const ADDRESS_NODE_DIAMETER = 50;
+const QUEUE_NODE_DIAMETER = 50;
+
+const NODES: NodeModel[] = [];
+const EDGES: EdgeModel[] = [];
+
+interface ViewOptions {
+  showLabels: boolean;
+  showAddresses: boolean;
+  showQueues: boolean;
+  showInternalAddresses: boolean;
+  showInternalQueues: boolean;
+  showConnectors: boolean;
+}
+
+export const DefaultViewOptions: ViewOptions = {
+  showLabels: false,

Review Comment:
   I have enabled labels by default. 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "gemmellr (via GitHub)" <gi...@apache.org>.
gemmellr merged PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "andytaylor (via GitHub)" <gi...@apache.org>.
andytaylor commented on PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#issuecomment-2072395564

   The check builds dont show that, Im wondering if its environmental, let me do some checking and I will see if this is something we need to address
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "andytaylor (via GitHub)" <gi...@apache.org>.
andytaylor commented on code in PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#discussion_r1585945246


##########
README.md:
##########
@@ -1 +1,62 @@
-# activemq-artemis-console
+# Apache ActiveMQ Artemis Console
+
+
+The [Apache ActiveMQ Artemis](https://activemq.apache.org/components/artemis/) Console Plugin is written using [Hawtio v4](https://github.com/hawtio/hawtio).
+The plugin is written in TypeScript. Since a Hawtio plugin is based on React and [Webpack Module Federation](https://module-federation.github.io/),
+this project uses Yarn v3 and [CRACO](https://craco.js.org/) as the build tools.
+
+The WAR file created by this project is consumed by ActiveMQ Artemis but can be developed and run standalone.
+
+
+### Build
+
+The following command first builds the `artemis-console-extension` frontend project and then compiles and packages 
+the main Java project Web Archive in `artemis-console-war`.
+
+```console
+mvn clean install
+```
+
+Building the frontend project 'artemis-console-extension' can take time, so if you build it once and make no changes on the project afterwards, you 
+can speed up the whole build by skipping the frontend part next time.
+
+```console
+mvn install -Dskip.yarn
+```
+
+### Test run
+
+You can quickly run and test the console by using `jetty-maven-plugin` configured in `pom.xml`. It launches an embedded 
+Jetty server and deploys the plugin WAR application. From the 'artemis-console-war' directory run:
+
+```console
+cd artemis-console-war
+mvn jetty:run -Dskip.yarn
+```
+
+You can access the Artemis console with the sample plugin at: <http://localhost:8080/console/>

Review Comment:
   Ive added some docs explaining how to use.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "gemmellr (via GitHub)" <gi...@apache.org>.
gemmellr commented on code in PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#discussion_r1578032690


##########
artemis-console-war/pom.xml:
##########
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-console-project</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-console-war</artifactId>
+    <packaging>war</packaging>
+
+
+    <name>ActiveMQ Artemis Console War</name>
+
+    <dependencies>
+        <!-- mandatory core hawito modules -->
+        <dependency>
+            <groupId>io.hawt</groupId>
+            <artifactId>hawtio-system</artifactId>
+        </dependency>
+
+        <!-- Servlet API is provided by the container -->
+        <dependency>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Logging -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <configuration>
+                <nonFilteredFileExtensions>
+                <!-- default value contains jpg,jpeg,gif,bmp,png -->
+                    <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
+                    <nonFilteredFileExtension>woff</nonFilteredFileExtension>
+                </nonFilteredFileExtensions>

Review Comment:
   This bit is misaligned.



##########
README.md:
##########
@@ -1 +1,62 @@
-# activemq-artemis-console
+# Apache ActiveMQ Artemis Console
+
+
+The [Apache ActiveMQ Artemis](https://activemq.apache.org/components/artemis/) Console Plugin is written using [Hawtio v4](https://github.com/hawtio/hawtio).
+The plugin is written in TypeScript. Since a Hawtio plugin is based on React and [Webpack Module Federation](https://module-federation.github.io/),
+this project uses Yarn v3 and [CRACO](https://craco.js.org/) as the build tools.
+
+The WAR file created by this project is consumed by ActiveMQ Artemis but can be developed and run standalone.
+
+
+### Build
+
+The following command first builds the `artemis-console-extension` frontend project and then compiles and packages 
+the main Java project Web Archive in `artemis-console-war`.
+
+```console
+mvn clean install
+```
+
+Building the frontend project 'artemis-console-extension' can take time, so if you build it once and make no changes on the project afterwards, you 
+can speed up the whole build by skipping the frontend part next time.
+
+```console
+mvn install -Dskip.yarn
+```
+
+### Test run
+
+You can quickly run and test the console by using `jetty-maven-plugin` configured in `pom.xml`. It launches an embedded 
+Jetty server and deploys the plugin WAR application. From the 'artemis-console-war' directory run:
+
+```console
+cd artemis-console-war
+mvn jetty:run -Dskip.yarn
+```
+
+You can access the Artemis console with the sample plugin at: <http://localhost:8080/console/>

Review Comment:
   When I try this, I see Jetty starting, and can load a Hawtio console by visiting the link, but there is nothing about Artemis in it...there are Connect, JMX, and Runtime tabs in the left menu. After a bit of blind prodding and looking at my broker console I figured out I needed to 'Connect' it to 'http://localhost:8161/console/jolokia" ...maybe need some more doc here? Such as referencing the _later_ doc that I only then noticed is at the bottom of the readme for the _other_ way of doing a local startup for dev (which I haven't tried as I don't have yarn system installed, and didn't try to figure out how to use the ones from the maven build)



##########
artemis-console-war/pom.xml:
##########
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-console-project</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-console-war</artifactId>
+    <packaging>war</packaging>
+
+
+    <name>ActiveMQ Artemis Console War</name>
+
+    <dependencies>
+        <!-- mandatory core hawito modules -->
+        <dependency>
+            <groupId>io.hawt</groupId>
+            <artifactId>hawtio-system</artifactId>
+        </dependency>
+
+        <!-- Servlet API is provided by the container -->
+        <dependency>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Logging -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <configuration>
+                <nonFilteredFileExtensions>
+                <!-- default value contains jpg,jpeg,gif,bmp,png -->
+                    <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
+                    <nonFilteredFileExtension>woff</nonFilteredFileExtension>
+                </nonFilteredFileExtensions>
+                    <webResources>
+                        <!-- Add the plugin build to web resources -->
+                        <resource>
+                            <filtering>true</filtering>
+                            <directory>../artemis-console-extension/artemis-extension/build</directory>
+                            <includes>
+                                <include>**/*.*</include>
+                            </includes>
+                            <excludes>
+                                <exclude>log4j.properties</exclude>
+                            </excludes>
+                        </resource>
+                    </webResources>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-maven-plugin</artifactId>
+                <version>${jetty-version}</version>

Review Comment:
   One consequence of prior PR comments around removing the logback deps from the war, because the broker already uses and supplies Log4J2, is that using this now generates warnings about there being no logging binding when doing "mvn jetty:run -Dskip.yarn" as advised. Could one be supplied here solely for this development usage?



##########
artemis-console-war/pom.xml:
##########
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-console-project</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-console-war</artifactId>
+    <packaging>war</packaging>
+
+
+    <name>ActiveMQ Artemis Console War</name>
+
+    <dependencies>
+        <!-- mandatory core hawito modules -->
+        <dependency>
+            <groupId>io.hawt</groupId>
+            <artifactId>hawtio-system</artifactId>
+        </dependency>
+
+        <!-- Servlet API is provided by the container -->
+        <dependency>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Logging -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>

Review Comment:
   Why have this rather than the usual versioned artifacts (well, the name will still be versioned when deployed, even with this...part of what makes it unusual)



##########
artemis-console-extension/artemis-extension/src/artemis-extension/artemis/brokers/BrokerTopology.tsx:
##########
@@ -0,0 +1,671 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import * as React from 'react';
+
+import { RegionsIcon as Icon1 } from '@patternfly/react-icons';
+import { FolderOpenIcon as Icon2 } from '@patternfly/react-icons';
+import { ClusterIcon } from '@patternfly/react-icons';
+
+import {
+  ColaLayout,
+  ComponentFactory,
+  DefaultEdge,
+  DefaultGroup,
+  DefaultNode,
+  DragObjectWithType,
+  Edge,
+  EdgeModel,
+  EdgeStyle,
+  Graph,
+  GraphComponent,
+  graphDropTargetSpec,
+  GRAPH_LAYOUT_END_EVENT,
+  groupDropTargetSpec,
+  Layout,
+  LayoutFactory,
+  Model,
+  ModelKind,
+  Node,
+  nodeDragSourceSpec,
+  nodeDropTargetSpec,
+  NodeModel,
+  NodeShape,
+  NodeStatus,
+  observer,
+  SELECTION_EVENT,
+  TopologyView,
+  Visualization,
+  VisualizationProvider,
+  VisualizationSurface,
+  withDndDrop,
+  WithDndDropProps,
+  withDragNode,
+  WithDragNodeProps,
+  withPanZoom,
+  withSelection,
+  WithSelectionProps,
+  withTargetDrag
+} from '@patternfly/react-topology';
+import { useEffect, useState } from 'react';
+import { artemisService, BrokerInfo } from '../artemis-service';
+import { eventService } from '@hawtio/react';
+import { ToolbarItem, Select, SelectVariant, SelectOption } from '@patternfly/react-core';
+
+
+const BadgeColors = [
+  {
+    name: 'A',
+    badgeColor: '#ace12e',
+    badgeTextColor: '#0f280d',
+    badgeBorderColor: '#486b00'
+  },
+  {
+    name: 'B',
+    badgeColor: '#F2F0FC',
+    badgeTextColor: '#5752d1',
+    badgeBorderColor: '#CBC1FF'
+  },
+  {
+    name: 'Broker',
+    badgeColor: '#c12766',
+    badgeTextColor: 'white',
+    badgeBorderColor: '#CBC1FF'
+  },
+  {
+    name: 'Address',
+    badgeColor: '#3e489f',
+    badgeTextColor: 'white',
+    badgeBorderColor: '#CBC1FF'
+  },
+  {
+    name: 'Queue',
+    badgeColor: '#50621d',
+    badgeTextColor: 'white',
+    badgeBorderColor: '#CBC1FF'
+  },
+  {
+    name: 'Internal Address',
+    badgeColor: 'white',
+    badgeTextColor: 'black',
+    badgeBorderColor: '#CBC1FF'
+  },
+  {
+    name: 'Internal Queue',
+    badgeColor: 'white',
+    badgeTextColor: 'black',
+    badgeBorderColor: '#CBC1FF'
+  }
+];
+
+interface ControllerState {
+  selectedIds: string[];
+  viewOptions: ViewOptions;
+}
+
+type CustomNodeProps = {
+  element: Node;
+} & WithDragNodeProps;
+
+const CustomNode: React.FC<CustomNodeProps & WithSelectionProps & WithDragNodeProps & WithDndDropProps> = ({ element, onSelect, selected, ...rest  }) => {
+
+  const data = element.getData();
+  const Icon = data.isAlternate ? Icon2 : Icon1;
+  const badgeColors = BadgeColors.find(badgeColor => badgeColor.name === data.badge);
+
+  return (  
+    <DefaultNode
+      element={element}
+      showStatusDecorator
+      badgeColor={badgeColors?.badgeColor}
+      badgeTextColor={badgeColors?.badgeTextColor}
+      badgeBorderColor={badgeColors?.badgeBorderColor} 
+      className="artemisBroker"
+      onSelect={onSelect}
+      selected={selected}
+      {...rest}
+    >
+      <g transform={`translate(25, 25)`}>
+        <Icon style={{ color: '#393F44' }} width={25} height={25} />
+      </g>
+    </DefaultNode>
+  );
+};
+
+const BrokerCustomNode: React.FC<CustomNodeProps & WithSelectionProps & WithDragNodeProps & WithDndDropProps> = observer(({ element, onSelect, selected, ...rest }) => {
+  const data = element.getData();
+  const Icon = ClusterIcon;
+  const badgeColors = BadgeColors.find(badgeColor => badgeColor.name === data.badge);
+  const { viewOptions } = element.getController().getState<ControllerState>();
+
+  return (
+    <DefaultNode
+      element={element}
+      showStatusDecorator
+      badge={data.badge}
+      badgeColor={badgeColors?.badgeColor}
+      badgeTextColor={badgeColors?.badgeTextColor}
+      badgeBorderColor={badgeColors?.badgeBorderColor}
+      showLabel={viewOptions.showLabels}
+      className="artemisBroker"
+      onSelect={onSelect}
+      selected={selected}
+      {...rest}
+    >
+      <g transform={`translate(25, 25)`}>
+        <Icon style={{ color: '#393F44' }} width={25} height={25} />
+      </g>
+    </DefaultNode>
+  );
+});
+
+const AddressCustomNode: React.FC<CustomNodeProps & WithSelectionProps & WithDragNodeProps & WithDndDropProps> = ({ element, onSelect, selected, ...rest  }) => {
+  const data = element.getData();
+  const badgeColors = BadgeColors.find(badgeColor => badgeColor.name === data.badge);
+  const { viewOptions } = element.getController().getState<ControllerState>();
+
+  return (
+    <DefaultNode
+      element={element}
+      showStatusDecorator
+      badge={data.badge}
+      badgeColor={badgeColors?.badgeColor}
+      badgeTextColor={badgeColors?.badgeTextColor}
+      badgeBorderColor={badgeColors?.badgeBorderColor} 
+      showLabel={viewOptions.showLabels}
+      onSelect={onSelect}
+      selected={selected}
+      className="artemisAddress"
+      {...rest}
+    >
+    </DefaultNode>
+  );
+};
+
+const InternalAddressCustomNode: React.FC<CustomNodeProps & WithSelectionProps & WithDragNodeProps & WithDndDropProps> = ({ element, onSelect, selected, ...rest  }) => {
+  const data = element.getData();
+  const badgeColors = BadgeColors.find(badgeColor => badgeColor.name === data.badge);
+  const { viewOptions } = element.getController().getState<ControllerState>();
+
+  return (
+    <DefaultNode
+      element={element}
+      showStatusDecorator
+      badge={data.badge}
+      badgeColor={badgeColors?.badgeColor}
+      badgeTextColor={badgeColors?.badgeTextColor}
+      badgeBorderColor={badgeColors?.badgeBorderColor} 
+      showLabel={viewOptions.showLabels}
+      className="artemisInternalAddress"
+      onSelect={onSelect}
+      selected={selected}
+      {...rest}
+    >
+    </DefaultNode>
+  );
+};
+
+
+const QueueCustomNode: React.FC<CustomNodeProps & WithSelectionProps & WithDragNodeProps & WithDndDropProps> = ({ element, onSelect, selected, ...rest  }) => {
+  const data = element.getData();
+  const badgeColors = BadgeColors.find(badgeColor => badgeColor.name === data.badge);
+  const { viewOptions } = element.getController().getState<ControllerState>();
+
+  return (
+    <DefaultNode
+      element={element}
+      showStatusDecorator
+      badge={data.badge}
+      badgeColor={badgeColors?.badgeColor}
+      badgeTextColor={badgeColors?.badgeTextColor}
+      badgeBorderColor={badgeColors?.badgeBorderColor}
+      showLabel={viewOptions.showLabels} 
+      className="artemisQueue"
+      onSelect={onSelect}
+      selected={selected}
+      {...rest}
+    >
+    </DefaultNode>
+  );
+};
+
+const InternalQueueCustomNode: React.FC<CustomNodeProps & WithSelectionProps & WithDragNodeProps & WithDndDropProps> = ({ element, onSelect, selected, ...rest  }) => {
+  const data = element.getData();
+  const badgeColors = BadgeColors.find(badgeColor => badgeColor.name === data.badge);
+  const { viewOptions } = element.getController().getState<ControllerState>();
+
+  return (
+    <DefaultNode
+      element={element}
+      showStatusDecorator
+      badge={data.badge}
+      badgeColor={badgeColors?.badgeColor}
+      badgeTextColor={badgeColors?.badgeTextColor}
+      badgeBorderColor={badgeColors?.badgeBorderColor}
+      showLabel={viewOptions.showLabels} 
+      className="artemisInternalQueue"
+      onSelect={onSelect}
+      selected={selected}
+      {...rest}
+    >
+    </DefaultNode>
+  );
+};
+
+const customLayoutFactory: LayoutFactory = (type: string, graph: Graph): Layout | undefined => {
+  switch (type) {
+    case 'Cola':
+      return new ColaLayout(graph);
+    default:
+      return new ColaLayout(graph, { layoutOnDrag: true });
+  }
+};
+
+const CONNECTOR_TARGET_DROP = 'connector-target-drop';
+
+const customComponentFactory: ComponentFactory = (kind: ModelKind, type: string): any => {
+  switch (type) {
+    case 'group':
+      return withDndDrop(groupDropTargetSpec)(withDragNode(nodeDragSourceSpec('group'))(withSelection()(DefaultGroup)));
+    default:
+      switch (kind) {
+        case ModelKind.graph:
+          return withDndDrop(graphDropTargetSpec())(withPanZoom()(GraphComponent));
+        case ModelKind.node:
+          switch(type) {
+            case 'broker':
+              return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))(
+                withDragNode(nodeDragSourceSpec('node', true, true))(BrokerCustomNode));
+            case 'address':
+              return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))(
+                withDragNode(nodeDragSourceSpec('node', true, true))(AddressCustomNode));
+            case 'queue':
+              return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))(
+                withDragNode(nodeDragSourceSpec('node', true, true))(QueueCustomNode));
+            case 'internalAddress':
+              return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))(
+                withDragNode(nodeDragSourceSpec('node', true, true))(InternalAddressCustomNode));
+            case 'internalQueue':
+              return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))(
+                withDragNode(nodeDragSourceSpec('node', true, true))(InternalQueueCustomNode));
+            default:
+              return withDndDrop(nodeDropTargetSpec([CONNECTOR_TARGET_DROP]))(
+                withDragNode(nodeDragSourceSpec('node', true, true))(CustomNode));
+          }
+        case ModelKind.edge:
+          return withTargetDrag<
+            DragObjectWithType,
+            Node,
+            { dragging?: boolean },
+            {
+              element: Edge;
+            }
+          >({
+            item: { type: CONNECTOR_TARGET_DROP },
+            begin: (monitor, props) => {
+              props.element.raise();
+              return props.element;
+            },
+            drag: (event, monitor, props) => {
+              props.element.setEndPoint(event.x, event.y);
+            },
+            end: (dropResult, monitor, props) => {
+              if (monitor.didDrop() && dropResult && props) {
+                props.element.setTarget(dropResult);
+              }
+              props.element.setEndPoint();
+            },
+            collect: monitor => ({
+              dragging: monitor.isDragging()
+            })
+            // @ts-ignore
+          })(DefaultEdge);
+        default:
+          return undefined;
+      }
+  }
+};
+
+const BROKER_NODE_DIAMETER = 75;
+const ADDRESS_NODE_DIAMETER = 50;
+const QUEUE_NODE_DIAMETER = 50;
+
+const NODES: NodeModel[] = [];
+const EDGES: EdgeModel[] = [];
+
+interface ViewOptions {
+  showLabels: boolean;
+  showAddresses: boolean;
+  showQueues: boolean;
+  showInternalAddresses: boolean;
+  showInternalQueues: boolean;
+  showConnectors: boolean;
+}
+
+export const DefaultViewOptions: ViewOptions = {
+  showLabels: false,

Review Comment:
   I found it a bit off that the labels are hidden by default. I didnt really know what anything was at all as a result, not until I enabled the labels from the Node Options, since there is no hover-over detail or legend either.  Just some coloured circles. I could guess at the broker one but that was it.



##########
artemis-console-war/pom.xml:
##########
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-console-project</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-console-war</artifactId>
+    <packaging>war</packaging>
+
+
+    <name>ActiveMQ Artemis Console War</name>
+
+    <dependencies>
+        <!-- mandatory core hawito modules -->
+        <dependency>
+            <groupId>io.hawt</groupId>
+            <artifactId>hawtio-system</artifactId>
+        </dependency>
+
+        <!-- Servlet API is provided by the container -->
+        <dependency>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Logging -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+    </dependencies>

Review Comment:
   Comment from the earlier PR:
   
   This seems to just be using the output of the build in the other module...but it blindly assumes the other module has been built first, and it doesnt actually depend on the other module, which means it might not be (e.g maven could decide to build them in a different order as they are independent....especially in a multi-threaded build execution, where it does do the wrong thing).
   
   This module should have a dependency added on the other module to ensure the maven reactor knows it must build the other module first. Something like: https://github.com/quarkusio/quarkus/blob/3.9.2/bom/application/pom.xml#L6649-L6663 (which ensures one bom module is built before another bom module uses it itself)
   
   (Alternatively, the extension module could actually package its output, and this module could then use an actual dependency to get that output.)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] ARTEMIS-4680 - Upgrade the console to use HawtIO 4 [activemq-artemis-console]

Posted by "andytaylor (via GitHub)" <gi...@apache.org>.
andytaylor commented on code in PR #2:
URL: https://github.com/apache/activemq-artemis-console/pull/2#discussion_r1579368288


##########
artemis-console-war/pom.xml:
##########
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>artemis-console-project</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.activemq</groupId>
+    <artifactId>artemis-console-war</artifactId>
+    <packaging>war</packaging>
+
+
+    <name>ActiveMQ Artemis Console War</name>
+
+    <dependencies>
+        <!-- mandatory core hawito modules -->
+        <dependency>
+            <groupId>io.hawt</groupId>
+            <artifactId>hawtio-system</artifactId>
+        </dependency>
+
+        <!-- Servlet API is provided by the container -->
+        <dependency>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Logging -->
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <configuration>
+                <nonFilteredFileExtensions>
+                <!-- default value contains jpg,jpeg,gif,bmp,png -->
+                    <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
+                    <nonFilteredFileExtension>woff</nonFilteredFileExtension>
+                </nonFilteredFileExtensions>
+                    <webResources>
+                        <!-- Add the plugin build to web resources -->
+                        <resource>
+                            <filtering>true</filtering>
+                            <directory>../artemis-console-extension/artemis-extension/build</directory>
+                            <includes>
+                                <include>**/*.*</include>
+                            </includes>
+                            <excludes>
+                                <exclude>log4j.properties</exclude>
+                            </excludes>
+                        </resource>
+                    </webResources>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-maven-plugin</artifactId>
+                <version>${jetty-version}</version>

Review Comment:
   It also omits logging from the webapp itself, I will add log4j which is what we use in Artemis and then remove it in Artemis, this will then default to the artemis logger and is consistent



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: gitbox-unsubscribe@activemq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org