Configure custom Infinispan loader with JBoss AS 7.1 - jboss

we are migrating one application from JBoss AS 6 to 7.
This new instance is useing the standalone-ha profile. On the previous version, we used a custom Infinispan loader which stored the cache entries into our custom database.
Now, on JBoss 7.1, when trying to change this configuration using the visual administration console, it don't work. The value that we type on the tab "Store Class Impl" on "Replicated caches" is not being stored on the profile configuration as it should be. So, here is my question: is it possible to change this configuration using xml? How can I configure this custom loader for our replicated caches? Does anyone here ever experience this kind of dificulty?

Unfortunately I can't provide you any valuable information about JBoss admin console.
Anyway, I would suggest you to set up cache stores/loaders for your Infinispan caches declaratively (using configuration xml file) or programmatically (using fluent API builder just in code).
Here you can find more details about stores/loaders and some example configurations: https://docs.jboss.org/author/display/ISPN/Cache+Loaders+and+Stores
And also take into account that in the recent Infinispan version (5.2) there is no possibility to change cache configuration "on fly". You need to restart your service with new configuration in case of any wanted change.
(What do you exactly mean by custom Infinispan loader?)

Related

Configuring Infinispan Settings Not Present in Keycloak Wildfly's jboss-as-infinispan_4_0.xsd Schema

I'm looking to configure some settings present in the version of Infinispan shipped with Keycloak's Wildfly from the following Infinispan provided xsd:
infinispan-config-8.2.xsd
The settings I'm looking for ('global-state' element) aren't present in the jboss-as-infinispan_4_0.xsd schema, though.
How do I leverage configuration features the version shipped with Wildfly supports?
I apologize if this is obvious (I'm new to Wildfly). I've spent a fair amount of time researching and am starting to think it cannot be done without write a custom submodule. Any pointers would be appreciated.

Jboss EAP 6 : HttpRequest http-header validation

As a security measure my organization requires me to validate a header attribute to allow a request to go through the business rules. Where would I need to configure this in the Jboss eap 6.3? This configuration was done before me and i am not sure how it was achieved before in the earlier jboss 5.x. Please let me know how would I configure the container security without making any application changes.
You could do this in a Global Valve, which is like a servlet filter but with more access to JBossWeb (Tomcat) internals and applies to all requests. Details are in the documentation at https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6.4/html/Administration_and_Configuration_Guide/chap-Global_Valves.html
That is not portable between containers, and will not work in WildFly or EAP 7+ since the web container has changed from JBossWeb to Undertow.
In my understanding, this has to be done in applications. Not sure if this can be done generally in JBoss configuration.
Try this https://www.owasp.org/index.php/How_to_add_validation_logic_to_HttpServletRequest
Turns out we had a different way of handling it. We used the single sign on feature of Jboss 5 and at the container level validated the header. When the header was validated, a generic role name was exposed which was used by Applications to limit the resources to the specific role name.

Migration of Weblogic Portal with NetUIX from bea weblogic server to JBoss

I am having a project where we want to migrate from WebLogic Server to JBoss.
The project is WebPortal Build using Beehive and NetUI, NetUIX xml portal/portlets.
Is it possible to migrate those directly to Jboss with very limited changes to view like the entire structure can be reused in view which is defined in .portal files.
I also doubt that we can use tiles instead of using portals in JBoss, as Tiles when getting loaded in browser are not going to call to individual controller's begin methods and load default content from there.
I request you to please help me find solution for this migration problem.
Thanks,
Amit
From my experience, the migration from weblogic portal to jboss required a rewrite of the entire application.
If you are using weblogic portal (perhaps a 9.x version since you mentioned netui), i.e. the portal framework on top of weblogic server, there are far too many libraries specific to the portal framework p13n and netui alike that requires migration with no guarantee that these will be supported in Jboss.
Likely to face trouble retrieving entitlements from the p13n jars for users.
Regarding netui beehive, I think that is retired now (not sure), but I didn't got much support for it besides there are more lightweight frameworks out there that can help.

Class Loader order not able to change

I am using IBM RSA 7.5 and Websphere Server 6.1 as a application server.
I am not able to change Class Loader Order dropdown box. It has disable state.
How to enable that. I need to change the item "Classes Loaded with parent class loader first" to "Classes Loaded with application class loader first".
"The classloader options are disabled in the admininstrative console because the application was published in a "loose configuration" manner. What this means is that your application binaries and descriptor files do not reside in the WAS application repository. Since you published them via RAD (which is most likely configured to 'Run with resources in the workspace') then the application binaries exist in the output folders of your various projects and WAS is instructed to read the binaries/descriptor files from that location. As a result, the WAS admin console is not able to make changes to these files so the functionality is disabled.
Here is a document which describes how to can accomplish the task you want when using this publishing mechanism via RAD:
http://publib.boulder.ibm.com/infocenter/radhelp/v7r5/index.jsp?topic=/com.ibm.ws.ast.st.enhanced.ear.doc/topics/tapplicationsv6.html
Using this manner to change the classloader settings results in this information being stored with the application (in the EAR project) so you will no longer need to change it when the application is published to any WAS runtime (i.e. in development or production)."
From the IBM developer help website
I struggled with this one a lot, and even bumped on your question being desperate.
Although i had a different setup,publishing my application from Eclipse, unchecking "Minimize application files copied to the server" in eclipse server config solved the issue for me.

GlassFish 3.1.2 + Cluster + Web Container Properties

I have an issue in Glassfish regarding dealing with properties wehn setting up a web application We are moving from using Jetty to a clustered environment setup with GlassFish on Amazon AWS
Conventionally speaking when dealing with Servlets you are meant to use a .properties file when you want to parse in environment variables, however this causes issues when you use a distributed environment (you would have to place the .properties file in every cluster node). GlassFish has the ability to configure properties of the web container through their Admin Console, which means the properties would automatically distribute through the cluster
The problem is, I am getting random behavior regarding retrieving the variables. The first time I ran a test application, I couldn't retrieve the variables, however no it no longer works
Basically I am setting the environment variables through the admin UI. Under Configurations there are 3 configuration stetings, one for the cluster (usually named .config), one default-config and one server-config. Under Web Container, I have put a test property in all 3 of the called "someVal".
I then created a quick Scalatra app in Scala (which uses Servlet 2.5) and I used this line to attempt to get the properties
getServletContext.getInitParameter("someVal")
Any ideas what I am doing incorrectly, it always returns null?
Update
It appears what I was attempting to do isn't the "correct" way of doing things. So my question is, what is the standard way of providing specific application settings (outside of the .war and outside of runtime) when dealing with clusters in GlassFish. myfear stated that using a database is the standard approach, however I use these configuration settings themselves to define the JDBC connection
I got it. You are referring to the Web Container Settings
http://docs.oracle.com/cd/E18930_01/html/821-2431/abedw.html
I'm afraid that this never has been thought of as providing application specific configuration and I strongly believe that you will never be able to access those properties from the servlet context.
So, you could (should) use the servlet init params in web.xml if you are talking about application specific information. if you use
getServletContext().setInitParameter("param", "value");
you might be able to set them (at least for the runtime of the application). I'm not sure about cluster replication here. The normal way would be to have you configuration settings in the database.