SOLR - adding custom REST service - solr

I am using SOLR 8.x. and I am trying to adding some custom functionality. Say like, triggering some server specific shell scripts. Adding custom code JARs to the lib folder and adding the jars in solrconfig.xml is not working.
Or how to set up new SOLR version in eclipse(most of the docs online are for older version where SOLR was still a .war)
Any pointers would be much appreciated.

I was able to achieve this by adding the custom jar(HTTPServlet based) to server/lib folder and by updating web.xml with servlet & servlet-mapping.

Related

Can I use AtlasMap with an older version of Apache Camel

Our pom.xml shows camel-parent is set at version 2.24.0, and AtlasMap says since Camel 3.7. We will not be updating our Camel version anytime soon, that is an entirely different conversation (government project with no budget for that).
I'm pretty new to Camel - can I just add AtlasMap to the pom.xml and use it anyway? If yes, any advice like special steps, etc?
It is possible to use AtlasMap with Camel 2.x: see https://docs.atlasmap.io/#running-with-apache-camel-2-x
Main differences are:
use atlas instead of atlasmap as component schemein Camel URIs
use io.atlasmap:camel-atlasmap as dependencies
Note that it was not a component provided by the Apache Camel projects in 2.x.

Apache camel route deployment - Independently?

Suppose I have 10 different Camel routes in my application, is it possible to stop one particular route alone during an issue and make changes to it(in one of the java processors) and deploy it again without affecting other routes.
Also can I create and deploy a new route on the fly, while other routes are already functioning.
If these are not the default behaviour, what are the options available to achieve this?
Karaf (so do Apache ServiceMix / JBoss Fuse)has hot deployment (nowadays this might be supported in JBoss AS / WildFly as well ). Meaning, you can create your routes as independent blueprint xml files in the deploy folder (meaning just xmls). Likewise you can have xml files for every route, whenever you make changes to XML's, it will be redeployed automatically.
This approach has few drawbacks, it will be complex if you have to deal with JPA or if your route has to deal with custom processors / classes.
Check out the examples in Apache ServiceMix / JBoss Fuse project.
I would recommend this approach especially if you want to take a microcontainer approach - Something like light weight Apache Karaf + Camel Route XML files + Docker.
I have done this few years back, may be this feature is possible to achieve in any other containers as well, which I am not sure.
You can stop a route via org.apache.camel.CamelContext.stopRoute(id) & you can modify it by building a new route and adding it to the context. This would let you change the logic of a route at runtime.
This wouldn't automatically let you hot deploy a new Java processor. I think this aspect of your question isn't Camel specific - their seem to be a few options for this, including OSGi/Karaf mentioned by #gnanaguru.
Perhaps moving the logic that you think might change from a Java processor to somewhere more dynamic (like some JavaScript in an external file, or in the route itself) would be a simpler solution to your problem.

Solr: Load custom transformer jars at runtime using blob store API

I'm trying to use solr's upjars feature for loading custom transformers but it's not working, The upjars feature worked for custom ResponseWriters and QueryParsers but not for transformers.
Are transformers not included in the upjars feature?
Is writing a Custom dataimporthandler to load it with the transformers at runtime the only solution?

What files do I need to host an angularJS website

I'm trying to host my first website. I've made it using angularjs, bootstrap and yeoman as a generator. However when I tried to upload it, I realized that the full size of everything in my folder (including the generated stuff by yeoman) was nearly 100mb.
What files do I actually need to host? Node is nearly 60mb and grunt isn't much smaller. Any advice would be greatly appreciated.
Assuming you have a web server like nginx or apache already on that server, you just need to upload the dist folder that is created when you run grunt build.
You don't need all that generator and node stuff just to host a simple test project.
What you actually need is a single HTML file, called index.html. Include Angular and bootstrap (you can omit this, too, if you can go without fancy styles) and create a file app.js which will hold your application logic.
http://angularjs.org shows this in a neat way on their landing page, just scroll down to 'The basics'
As static angularjs application will contain mainly HTML, CSS and JS files you can host your project on simple apache webserver. (Apache - http://httpd.apache.org/)
If you are making a dynamic angularjs application you will have webservices returning you JSON data. If you implement the restful webservices in Java (using Jersey) you can deploy you entire angularjs application with java webserivce implementation to tomcat web server. (Tomcat - http://tomcat.apache.org/)
Hope this helps!
Decided to answer this old question because its one of the few that show on google when searched.
You do not need to use Grunt anymore, I do not know if this was needed at the time of this question.
instead just do
ng build my-app
this would have saved me some hours.
link to current doc

use croogo as plugin in main cakephp app

Im working with cakephp for few months and recently I came across croogo, a cakephp cms system. I've tried it and I should say its an awesome system.
Is it possible to use it as a plugin in my main site. I want to use it just for the admin part and rest of my application unattached to it. Ive tried loading its bootstrap file from my main app and also by linking routes to it. I always get errors.
Can someone have any idea if croogo is meant to be used like a plugin or does it have to be used seperately?
"Beginning version 1.6.x, Croogo has been updated to be installed as a vendor package"
=> So yes, it is possible to use it in your code - just not as plugin, but vendor.
See
https://github.com/croogo/croogo/tree/3.0#installation-using-git

Resources