Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AMQ-9537] Update user-guide.html #1266

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions assembly/src/release/docs/WebConsole-README.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
Deploying the ActiveMQ-WebConsole
=================================

From ActiveMQ 5.9 onwards ActiveMQ ships with a web console which
is accessible at its usual location at:
http://localhost:8161/admin/
ActiveMQ Classic ships with a web console which is accessible at: http://localhost:8161/admin/

In the default configuration ActiveMQ automatically starts the web console in the
same VM as the broker. The console is accessibly under http://localhost:8161/admin/.
Expand All @@ -12,7 +10,7 @@ The broker may ask for credentials to login the web console the first time.
The default username and password is admin/admin.

In the web console you can configure the default users, in the
conf/jetty-real.properties file. And in the conf/jetty.xml file you can configure
conf/users.properties file. And in the conf/jetty.xml file you can configure
to disable login for the web consoles.

However it's also possible to start the web console in a separate VM and connect it
Expand Down
74 changes: 7 additions & 67 deletions assembly/src/release/docs/user-guide.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ <h1>Getting Started<br>
</h1>

<p>
Welcome to Apache ActiveMQ. This document gives you a quick overview of how to get started trying out Apache ActiveMQ.
Welcome to Apache ActiveMQ Classic. This document gives you a quick overview of how to get started trying out Apache ActiveMQ Classic.
</p>

<h2>Running the broker</h2>
Expand Down Expand Up @@ -89,7 +89,7 @@ <h2>Access the web console</h2>
In a web browser you can access the url <a href="http://0.0.0.0:8161/admin">http://0.0.0.0:8161/admin</a> to access the ActiveMQ web console.
<br/>
The broker may ask for credentials to login the web console the first time.
The default username and password is admin/admin. You can configure this in the conf/jetty-real.properties file.
The default username and password is admin/admin. You can configure this in the conf/user.properties file.

<h2>Access the web demos</h2>

Expand All @@ -98,7 +98,7 @@ <h2>Access the web demos</h2>
</p>
<pre>
cd bin
activemq.bat console xbean:examples/conf/activemq-demo.xml
activemq.bat start xbean:../examples/conf/activemq-demo.xml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NB: activemq console is actually valid (at least for Unix shell script). activemq.bat doesn't really take any action arg. Maybe we should clean the arg.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the review!
You are correct that the activemq.bat file does not take any arguments directly, but it does pass the provided arguments to the jar using %*. For reference, see this line:

"%_JAVACMD%" %ACTIVEMQ_SUNJMX_START% %ACTIVEMQ_DEBUG_OPTS% %ACTIVEMQ_OPTS% %ACTIVEMQ_SSL_OPTS% -Dactivemq.classpath="%ACTIVEMQ_CLASSPATH%" -Dactivemq.home="%ACTIVEMQ_HOME%" -Dactivemq.base="%ACTIVEMQ_BASE%" -Dactivemq.conf="%ACTIVEMQ_CONF%" -Dactivemq.data="%ACTIVEMQ_DATA%" -Djolokia.conf="%JOLOKIA_CONF%" -Djava.io.tmpdir="%ACTIVEMQ_TMP%" -jar "%ACTIVEMQ_HOME%/bin/activemq.jar" %*

Running activemq.bat without start argument will not start the broker.

</pre>
<p>
On Unix-like systems, type
Expand All @@ -110,73 +110,13 @@ <h2>Access the web demos</h2>
In a web browser you can access the url <a href="http://0.0.0.0:8161/demo">http://0.0.0.0:8161/demo</a> to access the ActiveMQ web demos.
<br/>
The broker may ask for credentials to login the web console the first time.
The default username and password is admin/admin. You can configure this in the conf/jetty-real.properties file.
The default username and password is admin/admin. You can configure this in the conf/user.properties file.


<h2>Running the example programs</h2>

<p>
To run the demo producer/consumer tools, you need Java and Ant installed.
</p>

<h3>Installing Ant</h3>


<p>
The example programs depend on <a href="http://ant.apache.org/">Ant</a> being installed. There are more detailed
instructions on the Ant website - but essentially you need to follow these steps.
</p>
<ul>
<li>
JAVA_HOME must point to your JDK installation, such that $JAVA_HOME/bin contains the java executable and $JAVA_HOME/lib contains some jar files.
</li>
<li>
ANT_HOME must point to where you installed Apache Ant (http://ant.apache.org)
</li>
<li>
then you need to add $JAVA_HOME/bin and $ANT_HOME/bin to your PATH variable.
</li>
</ul>

<p>
To test this is all working, try typing
</p>

<pre>
java -version
cd examples/openwire/swissarmy
ant -version
</pre>

<h3>Running the example producer and consumer</h3>

<p>
Once you've got Java and Ant installed correctly you should be able to run
</p>

<pre>
cd examples/openwire/swissarmy
ant consumer
</pre>

<p>
and in another shell
</p>

<pre>
cd examples/openwire/swissarmy
ant producer
</pre>

<p>
you can specify exact URLs to connect to via command like arguments. e.g.
</p>

<pre>
ant producer -Durl=tcp://somehost:port
</pre>

<h2>Example programs</h2>

<p>Several runnable examples are in the examples directory, each with its own readme.md file containing instructions on how to run the example.</p>
<p>Configuration examples are located in example/conf directory.</p>

<h2>Further Readings</h2>

Expand Down
185 changes: 31 additions & 154 deletions assembly/src/release/examples/conf/jetty-demo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,169 +13,46 @@
limitations under the License.
-->
<!--
An embedded servlet engine for serving up the Admin consoles, REST and Ajax APIs and
some demos Include this file in your configuration to enable ActiveMQ web components
e.g. <import resource="jetty.xml"/>
An embedded servlet engine used for serving broker with demo applications.
-->
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="securityLoginService" class="org.eclipse.jetty.security.HashLoginService">
<property name="name" value="ActiveMQRealm" />
<property name="config" value="${activemq.conf}/jetty-realm-5.x.properties" />
</bean>

<bean id="securityConstraint" class="org.eclipse.jetty.util.security.Constraint">
<property name="name" value="BASIC" />
<property name="roles" value="user,admin" />
<!-- set authenticate=false to disable login -->
<property name="authenticate" value="true" />
</bean>
<bean id="adminSecurityConstraint" class="org.eclipse.jetty.util.security.Constraint">
<property name="name" value="BASIC" />
<property name="roles" value="admin" />
<!-- set authenticate=false to disable login -->
<property name="authenticate" value="true" />
</bean>
<bean id="securityConstraintMapping" class="org.eclipse.jetty.security.ConstraintMapping">
<property name="constraint" ref="securityConstraint" />
<property name="pathSpec" value="/admin,/api/*" />
</bean>
<bean id="adminSecurityConstraintMapping" class="org.eclipse.jetty.security.ConstraintMapping">
<property name="constraint" ref="adminSecurityConstraint" />
<property name="pathSpec" value="*.action" />
</bean>
<import resource="classpath:jetty.xml" />

<bean id="rewriteHandler" class="org.eclipse.jetty.rewrite.handler.RewriteHandler">
<property name="rules">
<bean id="secHandlerCollection" class="org.eclipse.jetty.server.handler.HandlerCollection">
<property name="handlers">
<list>
<bean id="header" class="org.eclipse.jetty.rewrite.handler.HeaderPatternRule">
<property name="pattern" value="*"/>
<property name="name" value="X-FRAME-OPTIONS"/>
<property name="value" value="SAMEORIGIN"/>
</bean>
</list>
</property>
</bean>

<bean id="secHandlerCollection" class="org.eclipse.jetty.server.handler.HandlerCollection">
<property name="handlers">
<list>
<ref bean="rewriteHandler"/>
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/admin" />
<property name="resourceBase" value="${activemq.home}/webapps/admin" />
<property name="logUrlOnStart" value="true" />
</bean>
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/demo" />
<property name="resourceBase" value="${activemq.home}/webapps-demo/demo" />
<property name="logUrlOnStart" value="true" />
</bean>
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/api" />
<property name="resourceBase" value="${activemq.home}/webapps/api" />
<property name="logUrlOnStart" value="true" />
</bean>
<bean class="org.eclipse.jetty.server.handler.ResourceHandler">
<property name="directoriesListed" value="false" />
<property name="welcomeFiles">
<list>
<value>index.html</value>
</list>
</property>
<property name="resourceBase" value="${activemq.home}/webapps/" />
</bean>
<bean id="defaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler">
<property name="serveIcon" value="false" />
</bean>
</list>
</property>
</bean>

<bean id="securityHandler" class="org.eclipse.jetty.security.ConstraintSecurityHandler">
<property name="loginService" ref="securityLoginService" />
<property name="authenticator">
<bean class="org.eclipse.jetty.security.authentication.BasicAuthenticator" />
</property>
<property name="constraintMappings">
<list>
<ref bean="adminSecurityConstraintMapping" />
<ref bean="securityConstraintMapping" />
</list>
</property>
<property name="handler" ref="secHandlerCollection" />
</bean>


<bean id="contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection">
</bean>

<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
<!-- the default port number for the web console -->
<property name="port" value="8161"/>
</bean>

<bean id="Server" depends-on="jettyPort" class="org.eclipse.jetty.server.Server"
destroy-method="stop">

<property name="handler">
<bean id="handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
<property name="handlers">
<list>
<ref bean="contexts" />
<ref bean="securityHandler" />
</list>
</property>
</bean>
</property>

</bean>

<bean id="invokeConnectors" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject" ref="Server" />
<property name="targetMethod" value="setConnectors" />
<property name="arguments">
<list>
<bean id="Connector" class="org.eclipse.jetty.server.ServerConnector">
<constructor-arg ref="Server" />
<!-- see the jettyPort bean -->
<property name="port" value="#{systemProperties['jetty.port']}" />
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/admin" />
<property name="resourceBase" value="${activemq.home}/webapps/admin" />
<property name="logUrlOnStart" value="true" />
</bean>
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/api" />
<property name="resourceBase" value="${activemq.home}/webapps/api" />
<property name="logUrlOnStart" value="true" />
</bean>
<bean class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath" value="/demo" />
<property name="resourceBase" value="${activemq.home}/webapps-demo/demo" />
<property name="logUrlOnStart" value="true" />
</bean>
<bean class="org.eclipse.jetty.server.handler.ResourceHandler">
<property name="directoriesListed" value="false" />
<property name="welcomeFiles">
<list>
<value>index.html</value>
</list>
</property>
<property name="resourceBase" value="${activemq.home}/webapps/" />
</bean>
<bean id="defaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler">
<property name="serveIcon" value="false" />
</bean>
<!--
Enable this connector to use https with web console
-->
<bean id="SecureConnector" class="org.eclipse.jetty.server.ServerConnector">
<constructor-arg ref="Server" />
<constructor-arg>
<bean id="handlers" class="org.eclipse.jetty.util.ssl.SslContextFactory$Server">
<property name="keyStorePath" value="${activemq.conf}/broker.ks" />
<property name="keyStorePassword" value="password" />
</bean>
</constructor-arg>
<property name="port" value="8162" />
</bean>
</list>
</property>
</bean>


<bean id="configureJetty" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="staticMethod" value="org.apache.activemq.web.config.JspConfigurer.configureJetty" />
<property name="arguments">
<list>
<ref bean="Server" />
<ref bean="secHandlerCollection" />
</list>
</property>
</bean>

<bean id="invokeStart" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
depends-on="configureJetty, invokeConnectors">
<property name="targetObject" ref="Server" />
<property name="targetMethod" value="start" />
</property>
</bean>


</beans>

33 changes: 0 additions & 33 deletions assembly/src/release/examples/conf/jetty-realm-5.x.properties

This file was deleted.

Loading