running multiple JBOSS instances as services - jboss

I was able to configure multiple instances of JBOSS 4.2.3 by changing certain ports and run two different servers at the same time. However is there anyway to run multiple instances of JBOSS as services ? Have already set the JBOSS_HOME in environment variables . Is it possible to set multiple paths for JBOSS_HOME in environment variables. For example , One path would be the default JBOSS_HOME folder and the other the JBOSS_HOME for the instance which i have created .

Related

Poetry: what is the benefit of creating the project virtual environment within your project directory?

By default, poetry creates the virtual environment outside the project root. On mac, for example, it creates it inside ~/Library/Caches/pypoetry.
However, I found the following recommendation:
# Configure poetry to create virtual environments inside the project's root directory
poetry config virtualenvs.in-project true
Also, poetry documentation itself points out these two options:
By default, poetry creates a virtual environment in
{cache-dir}/virtualenvs ({cache-dir}\virtualenvs on Windows). You can
change the cache-dir value by editing the poetry config. Additionally,
you can use the virtualenvs.in-project configuration variable to
create virtual environment within your project directory.
What are the benefits of creating the project virtual environment within your project directory or outside it?
If the virtual environment is inside your project, then everything's together. If you delete the project later on, then the virtual environment will be too. If the virtual environment is outside, then you need to remember to delete two directories. However, this is just a recommendation and there's no obligation to follow it.

Netbeans: How do I copy remote connections from one computer to another?

I work on 2 different Windows 10 PC's. I have my Netbeans projects set up on my NAS so I can share all the projects. However, how do I copy my remote connections from one machine to the other so I don't have to set up SFTP/FTP for each and every project on my 2nd machine?
Is there a config file somewhere I can copy over?
Windows:
C:\Users[windowsUsername]\AppData\Roaming\NetBeans\7.2.1\config\Preferences\org\netbeans\modules\php\project\RemoteConnections
Ensure Hidden Folders/files are set to visible

How do I run a project in eclipse with different jboss-ejb-client.properties

I have EJBs deployed on several different servers, for different environments. I have many projects that use these EJBs. I usually just run my projects against the DEV server EJBs, but sometimes I need to run against the TEST or PROD environment EJBs. This necessitates having to comment out all of the DEV nodes in my jboss-client-ejb.properties file and uncomment all of the TEST nodes. But then if I forget to change them back, I may mess up some data if I run it later. What I would like to do is create a different runtime configuration for each environment, and have each runtime config use a different version of the jboss-client-ejb.properties. Is there a way to do this? If so how? I have looked at all of properties of a run configuration, and don't see anything helpful.
In eclipse preferences search for string variable substitution. Here create variables that point to multiple config files for each of your environments. Then create multiple run configurations and for each one (like dev or prod) add a program argument that points to your string variable defined in your preferences like this -DmyconfigFile={$MyDevPropertiesFilePath}, or you could hard code the config path and have multiple runtime configurations that use different config files. Key point here is create multiple runtime launch configurations for each environment and add the properties for each environment that point to the config file respective to each environment. This way you can easily select the launch menu and decide to run "dev" "prod" or whatever you name your multiple configurations. Trying to do this with one runtime configuration will cause pain as you say, because it is easy to forget to revert or change the config file you want to to use. Hope that helps. Also if you create a new workspace you can export your runtime configurations using the export wizard which is also helpful for passing on to other developers or putting in source control.
P.S Looking more at your question you wan to pass in the config file path as a program argument, you are correct there are no specific options for setting this file path. Using program arguments with multiple launch configurations.

Play Framework - How to maintain configuration files for different environments?

For my Play 2.2/Scala application (built with SBT), I would like to deploy different configuration files depending on the environment I'm deploying to (e.g. to couple a deployment with a particular database server). How does one create different variants of the application's configuration file (conf/application.conf) for different deployment targets? Hopefully variants can be generated from a base version?
What I'm used to from .NET is to have a base configuration file (Web.config), which undergoes a certain transformation depending on the profile one is deploying (e.g. Production). Does one use a similar technique in the Play/Scala world?
Alternative configuration files are covered in Play's documentation quite well in section Specifying alternative configuration file.
In short - in application.conf you place default configuration of your app, and additionally you need to create additional files for you environment(s) ie. life.conf, dev.conf etc. In these files you first need to include application.conf (which will read whole default configuration) and next just overwrite only parts which have to be changed - ie. DB credentials, it could be dev.conf:
include "application.conf"
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:alternative-database-for-dev-testing"
db.default.user=developer
db.default.password="developerpass"
So finally you start your application (after dist) as
./start -Dconfig.resource=dev.conf
or with the Play console
play -Dconfig.resource=dev.conf run
Several tips:
It's good idea to do not place your 'life' DB credentials in default application.conf file, if some dev will forget to include his dev.conf he won't damage the production DB, instead you should put it in prod.conf.
Also these additional configs shouldn't be placed in any VCS (ie. git) repository - creating them directly on target machine (and ignoring in repository) give you sure, that people who shouldn't know the life database credentials won't see it.
It's also possible to use remote alternative config file, which can be useful ie. when you deploying several instances of the same app ie. on several hosts in the cloud.
Each dev can has own config file ie dev_aknuds1.conf, dev_biesior.conf etc, so you can ignore them with one pattern dev_*.conf in repo.
Finally you can just create a shell script (unix) or bat file (Windows) to start using choosen config file like start_dev.sh, run_dev.sh etc. so you won't need to write -Dconfig.resource=... each time

Logging for application in different environment Log4j

I am developing a logging framework using Log4j. I am not able to figure out how to maintain separate log files for different environment, i.e., development, testing, staging and production.
Firstly you'll need a different copy of your log4j.xml for each environment.
Lets call it log4j-dev.xml, log4j-test.xml, log4j-stage.xml and log4j-prod.xml each having their own settings like log file name and log levels.
You then pass in the corresponding file at the the server startup as a system property like below -
-Dlog4j.configuration=log4j-dev.xml
This URL has the example on how to pass this for Tomcat. The concept is the same for whichever server you are deploying on.
On Windows, I have used "set CATALINA_OPTS=-Dlog4j.configurationFile=log4j2-dev.xml" instead of log4j.configuration