Search This Blog

Tuesday, June 16, 2020

Eclipse Spring boot - org.springframework.core.annotation.AnnotationConfigurationException: Attribute 'proxyBeanMethods'

1. Go to eclipse Help menu -> Eclipse marketplace.
2. find-> spring tools
3. select spring tools 4 -> install


4. on your spring boot application. keep only like below.
   @SpringBootApplication
   @ComponentScan ( "com.xxxx" )
5. on your pom.xml, change the parent tag

  
        org.springframework.boot
        spring-boot-starter-parent
        2.3.0.RELEASE
   


6. make sure all your spring-boot-xxx should be the same version 2.3.0.RELEASE

7. Exit eclipse and clear your workspace, re-import. compile and enjoy.

8. Also make sure all your jar related to spring is updated to recent version.


 

Monday, June 15, 2020

Maven Manual Install to latest Version - Linux Ubuntu 16 14 18 20


cd /home/
 
wget https://downloads.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
 

sudo tar -xvzf apache-maven-3.3.9-bin.tar.gz

sudo tar -xvzf apache-maven-3.3.9-bin.tar.gz
sudo tar -xvzf apache-maven-3.6.3-bin.tar.gz

sudo mv apache-maven-3.6.3 /opt/
cd /opt/
cd apache-maven-3.6.3/
ls


cd ..
sudo nano /etc/profile.d/mavenenv.sh




          export M2_HOME=/opt/apache-maven-3.6.3
          export MAVEN_HOME=${M2_HOME}
          export PATH=${M2_HOME}/bin:${PATH}

sudo chmod +x /etc/profile.d/mavenenv.sh


source /etc/profile.d/mavenenv.sh
 

mvn --version

Friday, June 12, 2020

Tortoize Replacement for Linux Ubuntu - RabbitVCS for SVN and GIT Alternate

sudo apt-get purge rabbitvcs*

sudo add-apt-repository ppa:rabbitvcs/ppa
 
sudo apt-get update
 
sudo apt-get install rabbitvcs-nautilus
 
nautilus -q
 
 
-After restart you can see ->right click on your svn or git.
 
 

Thursday, June 11, 2020

CamelCase Pattern finding


// Java to find CamelCase Pattern
// matching
import java.util.*;
  
class GFG{
   
// Function that prints the camel
// case pattern matching
static void CamelCase(ArrayList words,
               String pattern)
{
   
    // Map to store the hashing
    // of each words with every
    // uppercase letter found
    Map> map = new HashMap>();
   
    // Traverse the words array
    // that contains all the
    // String
    for (int i = 0; i < words.size(); i++) {
   
        // Intialise str as
        // empty
        String str = "";
   
        // length of String words[i]
        int l = words.get(i).length();
        for (int j = 0; j < l; j++) {
   
            // For every uppercase
            // letter found map
            // that uppercase to
            // original words
            if (words.get(i).charAt(j) >= 'A'
                && words.get(i).charAt(j) <= 'Z') {
                str += words.get(i).charAt(j);
                map.put(str,list(map.get(str),words.get(i)));
            }
        }
    }
   
    boolean wordFound = false;
   
    // Traverse the map for pattern
    // matching
    for (Map.Entry> it : map.entrySet()) {
   
        // If pattern matches then
        // print the corresponding
        // mapped words
        if (it.getKey().equals(pattern)) {
            wordFound = true;
            for(String s : it.getValue())
            System.out.print(s +"\n");
              
        }
    }
   
    // If word not found print
    // "No match found"
    if (!wordFound) {
        System.out.print("No match found");
    }
}
   
private static List list(List list, String str) {
    List temp = new ArrayList();
    if(list != null)
        temp.addAll(list);
    temp.add(str);
    return temp;
}
  
// Driver's Code
public static void main(String[] args)
{
    String arr[] = {"Hi", "Hello", "HelloWorld",
            "HiTech", "HiGeek", "HiTechWorld",
            "HiTechCity", "HiTechLab"
        };
  
    ArrayList words = new ArrayList(Arrays.asList(arr));
   
    // Pattern to be found
    String pattern = "HT";
   
    // Function call to find the
    // words that match to the
    // given pattern
    CamelCase(words, pattern);
   
}
}


Source : https://www.geeksforgeeks.org/camelcase-pattern-matching/?ref=leftbar-rightbar

Tuesday, June 9, 2020

Kafka - Multi broker Cluster like Master Slave

Source : https://kafka.apache.org/quickstart
Thanks


Setting up a multi-broker cluster

So far we have been running against a single broker, but that's no fun. For Kafka, a single broker is just a cluster of size one, so nothing much changes other than starting a few more broker instances. But just to get feel for it, let's expand our cluster to three nodes (still all on our local machine).

First we make a config file for each of the brokers (on Windows use the copy command instead):
   
> cp config/server.properties config/server-1.properties
> cp config/server.properties config/server-2.properties



Now edit these new files and set the following properties:   
config/server-1.properties:
    broker.id=1
    listeners=PLAINTEXT://:9093
    log.dirs=/tmp/kafka-logs-1

config/server-2.properties:
    broker.id=2
    listeners=PLAINTEXT://:9094
    log.dirs=/tmp/kafka-logs-2



The broker.id property is the unique and permanent name of each node in the cluster. We have to override the port and log directory only because we are running these all on the same machine and we want to keep the brokers from all trying to register on the same port or overwrite each other's data.

We already have Zookeeper and our single node started, so we just need to start the two new nodes:

   
> bin/kafka-server-start.sh config/server-1.properties &
...
> bin/kafka-server-start.sh config/server-2.properties &
...

Now create a new topic with a replication factor of three:
> bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 1 --topic my-replicated-topic

Okay but now that we have a cluster how can we know which broker is doing what? To see that run the "describe topics" command:
   
> bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic my-replicated-topic
Topic:my-replicated-topic   PartitionCount:1    ReplicationFactor:3 Configs:
    Topic: my-replicated-topic  Partition: 0    Leader: 1   Replicas: 1,2,0 Isr: 1,2,0

Here is an explanation of output. The first line gives a summary of all the partitions, each additional line gives information about one partition. Since we have only one partition for this topic there is only one line.

    "leader" is the node responsible for all reads and writes for the given partition. Each node will be the leader for a randomly selected portion of the partitions.
    "replicas" is the list of nodes that replicate the log for this partition regardless of whether they are the leader or even if they are currently alive.
    "isr" is the set of "in-sync" replicas. This is the subset of the replicas list that is currently alive and caught-up to the leader.

Note that in my example node 1 is the leader for the only partition of the topic.

We can run the same command on the original topic we created to see where it is:

> bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic test
Topic:test  PartitionCount:1    ReplicationFactor:1 Configs:
    Topic: test Partition: 0    Leader: 0   Replicas: 0 Isr: 0

So there is no surprise there—the original topic has no replicas and is on server 0, the only server in our cluster when we created it.

Let's publish a few messages to our new topic:
   
> bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic my-replicated-topic
...
my test message 1
my test message 2
^C

Now let's consume these messages:
   
> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic
...
my test message 1
my test message 2
^C

Now let's test out fault-tolerance. Broker 1 was acting as the leader so let's kill it:
   
> ps aux | grep server-1.properties
7564 ttys002    0:15.91 /System/Library/Frameworks/JavaVM.framework/Versions/1.8/Home/bin/java...
> kill -9 7564
On Windows use:
   
> wmic process where "caption = 'java.exe' and commandline like '%server-1.properties%'" get processid
ProcessId
6016
> taskkill /pid 6016 /f

Leadership has switched to one of the followers and node 1 is no longer in the in-sync replica set:
   
> bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic my-replicated-topic
Topic:my-replicated-topic   PartitionCount:1    ReplicationFactor:3 Configs:
    Topic: my-replicated-topic  Partition: 0    Leader: 2   Replicas: 1,2,0 Isr: 2,0

But the messages are still available for consumption even though the leader that took the writes originally is down:
   

> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic
...
my test message 1
my test message 2
^C

Monday, June 8, 2020

Python Array of Array - Inner Array processing

#Program -1, To print array of array 
 
a = [[{'Key': 'key700', 'Value': 'val145'}, {'Key': 'key123', 'Value': 'val123'}]]

for i in range(len(a)):
    for j in range(len(a[i])):
        jsonData = a[i][j]
        #print(jsonData);
        for (k, v) in jsonData.items():
            print("Key: " + k)
            print("Value: " + str(v))

   


'''
output
********
Key: Key
Value: key700
Key: Value
Value: val145
Key: Key
Value: Key123
Key: Value
Value: val123

'''


#Program -2 , print only the key=userName

import json

a = [[{'Key': 'age', 'Value': '10'}, {'Key': 'userName', 'Value': 'vijay'}, {'Key': 'address', 'Value': '1, car st'}, {'Key': 'userName', 'Value': 'pranika'}]]

for i in range(len(a)):
    for j in range(len(a[i])):
        jsonData = a[i][j]
        data = json.loads(json.dumps(jsonData ) );
        if ( jsonData['Key'] == 'Name' ):
            print ( jsonData['Value'] )

           
       
   


'''
output
********
vijay
pranika
'''

 

Friday, June 5, 2020

Mysql Install - Root User Password set, MySQL GUI

install
sudo apt-get install mysql-server
sudo apt-get install libmysqlclient-dev
sudo apt-get install libmariadbclient-dev  

login
mysql -u root

Set password for Root

SELECT user,authentication_string,plugin,host FROM mysql.user;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root123';

FLUSH PRIVILEGES;
SELECT user,authentication_string,plugin,host FROM mysql.user;

exit;


GUI
mysql workbench GUI = LINUX, WINDOWS

sqlyog = windows



Thursday, June 4, 2020

React or Localhsot CORS Error to Solve in Server Side Filters

package com.drvijayy2k2;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

import com.product.sr.global.utils.Constants;

/**
 * The Class ContextFilters
 * ******* THIS CONTROLLER IS THE COMMON filter for the API context, this will receive all the request/response ********
 *
 * @author drvijay
 */

@Component
@Order ( 1 )
public class ContextFilters implements Filter, Constants
{


    /*
     * (non-Javadoc)
     * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
     */
    @Override
    public void init ( FilterConfig arg0 ) throws ServletException
    {
    }

    /*
     * (non-Javadoc)
     * @see javax.servlet.Filter#destroy()
     */
    @Override
    public void destroy ()
    {
    }

    /*
     * (non-Javadoc)
     * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
     */
    @Override
    public void doFilter ( ServletRequest request, ServletResponse response, FilterChain chain ) throws IOException, ServletException
    {
        try
        {
            HttpServletRequest req = (HttpServletRequest) request;
            HttpServletResponse res = (HttpServletResponse) response;

            res.setHeader ( "Access-Control-Allow-Origin", "*" );
            res.setHeader ( "Access-Control-Allow-Credentials", "true" );
            res.setHeader ( "Access-Control-Allow-Methods", "ACL, CANCELUPLOAD, CHECKIN, CHECKOUT, COPY, DELETE, GET, HEAD, LOCK, MKCALENDAR, MKCOL, MOVE, OPTIONS, POST, PROPFIND, PROPPATCH, PUT, REPORT, SEARCH, UNCHECKOUT, UNLOCK, UPDATE, VERSION-CONTROL" );
            res.setHeader ( "Access-Control-Max-Age", "3600" );
            res.setHeader ( "Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Key, Authorization" );


            if ( "OPTIONS".equalsIgnoreCase ( req.getMethod () ) )
            {
                res.setStatus ( HttpServletResponse.SC_OK );
            }
            else
            {
                chain.doFilter ( req, res );
            }

        }
        catch ( Exception e )
        {
            //error
        }
    }

}

Wednesday, June 3, 2020

Install Yarn Linux Ubuntu


curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

sudo apt install yarn

apt-get update

sudo apt install yarn

yarn --version

Tuesday, June 2, 2020

Postgresql 12 with PGAdmin4 Installation in Linux Ubuntu 16 18 20


 Install Postgresql 12

1. sudo apt-get install postgresql-12

2.  sudo -u postgres psql postgres

3. \password postgres

         Enter new and confirm password : xxxxx



Install PGAdmin 4


1. apt clean

2. apt autoclean

3. sudo apt update

4. sudo apt install pgadmin4 pgadmin4-apache2
                   #. username : postgres@localhost
                   #. pwd : xxxxx

5. sudo ufw allow http

6. sudo ufw allow https


7. In Browser : http://localhost/pgadmin4/

8. 4th point credentials

9. Type again http://localhost/pgadmin4/browser/ if you see apache2 default page.

10. Connect with new server -> Postgres user/pwd.



Hit Counter


View My Stats