http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-branchtag.html
Thursday, December 6, 2012
Wednesday, December 5, 2012
Tuesday, December 4, 2012
Alfresco Search Examples
Refer to the search criteria examples provided in the following table to better understand how to perform content searches in Share.
To locate... | Enter the search criteria... | This searches... |
---|---|---|
the word banana anywhere it exists | bananaor =banana | names, titles, descriptions, blog comments, and content in all page components
Performing the search without a qualifier expands the search to include tags.
|
the exact phrase banana peel anywhere it exists | "banana peel" | names, titles, descriptions, blog comments, and content in all page components |
the words banana, peel, and slipperywhere they all appear together in any order or position | banana AND peel AND slippery | names, titles, descriptions, blog comments, and content in all page components |
content containing any of the wordsbanana, peel, and slippery | banana peel slippery or banana OR peel OR slippery | names, titles, descriptions, blog comments, and content in all page components |
the word banana where it is used in a title | title:banana | titles in the Wiki, Blog, Document Library, Discussions, and Data List page components |
the word banana where it is used in a name | name:banana | names of folders and content items in the Document Library page component and titles in the Wiki page component |
the word banana where it is used in the description | description:banana | descriptions of folders and content items in the Document Library page component and of lists in the Data Lists page component |
the word banana where it is used in site content | TEXT:banana | wiki pages; blog postings and comments; content items; and discussion items and replies |
content created on May 26, 2010 | created:"2010-05-26" | wiki pages, blog postings, library folders, content items, events, links, discussion topics, and data lists, including comments made on this content |
content created between May 26 and May 31, 2010 | created:["2010-05-26" to "2010-05-31"] | wiki pages, blog postings, library folders, content items, events, links, discussion topics, and data lists, including comments made on this content |
any content modified on May 26, 2010 | modified:"2010-05-26" | wiki pages, blog postings, library folders, content items, events, links, discussion topics, and data lists, including comments made on this content |
any content modified between May 26 and May 31, 2010 | modified:["2010-05-26" to "2010-05-31"] | wiki pages, blog postings, library folders, content items, events, links, discussion topics, and data lists, including comments made on this content |
any content created by a specific user | creator:username
Replace usernamewith the appropriate Share user name.
| wiki pages, blog postings, library folders, content items, events, links, discussion topics, and data lists, including comments made on this content |
any content modified by a specific user | modifier:username
Replace usernamewith the appropriate Share user name.
| wiki pages, blog postings, library folders, content items, events, links, discussion topics, and data lists, including comments made on this content |
any content containing the letter sequence useThe results returned will include references to use, user, reuse, etc. | TEXT:*use* | wiki pages, blog postings, library folders, content items, and discussion topics, including comments made on this content |
This link is having more info
http://www.alfresco.com/help/34/enterprise/sharehelp/concepts/rm-searchsyntax-intro.html
Tuesday, November 27, 2012
Program to convert TextToPDF
package com.patil.repo.content.transform;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDSimpleFont;
import org.apache.pdfbox.pdmodel.font.PDTrueTypeFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
/**
* This will take a text file and ouput a pdf with that text.
*
* @author Ben Litchfield
* @version $Revision: 1.4 $
*/
public class TextToPDF
{
private int fontSize = 10;
private PDSimpleFont font = PDType1Font.COURIER;
/**
* Create a PDF document with some text.
*
* @param text The stream of text data.
*
* @return The document with the text in it.
*
* @throws IOException If there is an error writing the data.
*/
public PDDocument createPDFFromText( Reader text ) throws IOException
{
PDDocument doc = null;
try
{
final int margin = 40;
float height = font.getFontDescriptor().getFontBoundingBox().getHeight()/1000;
//calculate font height and increase by 5 percent.
height = height*fontSize*1.05f;
doc = new PDDocument();
BufferedReader data = new BufferedReader( text );
String nextLine = null;
PDPage page = new PDPage();
PDPageContentStream contentStream = null;
float y = -1;
page.getMediaBox().setUpperRightX(500);
// maxStringLength value needs to be increased to accomodate all the content in single line.
float maxStringLength = page.getMediaBox().getWidth() - 2*margin;
// There is a special case of creating a PDF document from an empty string.
boolean textIsEmpty = true;
boolean pagelengthset = false ;
while( (nextLine = data.readLine()) != null )
{
if( !pagelengthset){
System.out.println("setting length first line" + (font.getStringWidth( nextLine )/1000) * fontSize);
page.getMediaBox().setUpperRightX(((font.getStringWidth( nextLine )/1000) * fontSize)+125);
maxStringLength = page.getMediaBox().getWidth() - 2*margin;
pagelengthset = true ;
}
// The input text is nonEmpty. New pages will be created and added
// to the PDF document as they are needed, depending on the length of
// the text.
textIsEmpty = false;
String[] lineWords = nextLine.split( " " );
int lineIndex = 0;
while( lineIndex < lineWords.length )
{
StringBuffer nextLineToDraw = new StringBuffer();
float lengthIfUsingNextWord = 0;
do
{
nextLineToDraw.append( lineWords[lineIndex] );
nextLineToDraw.append( " " );
lineIndex++;
if( lineIndex < lineWords.length )
{
String lineWithNextWord = nextLineToDraw.toString() + lineWords[lineIndex];
lengthIfUsingNextWord =
(font.getStringWidth( lineWithNextWord )/1000) * fontSize;
}
}
while( lineIndex < lineWords.length &&
lengthIfUsingNextWord < maxStringLength );
if( y < margin )
{
// We have crossed the end-of-page boundary and need to extend the
// document by another page.
page = new PDPage();
doc.addPage( page );
if( contentStream != null )
{
contentStream.endText();
contentStream.close();
}
contentStream = new PDPageContentStream(doc, page);
contentStream.setFont( font, fontSize );
contentStream.beginText();
y = page.getMediaBox().getHeight() - margin + height;
contentStream.moveTextPositionByAmount(
margin, y );
}
//System.out.println( "Drawing string at " + x + "," + y );
if( contentStream == null )
{
throw new IOException( "Error:Expected non-null content stream." );
}
contentStream.moveTextPositionByAmount( 0, -height);
y -= height;
contentStream.drawString( nextLineToDraw.toString() );
}
}
// If the input text was the empty string, then the above while loop will have short-circuited
// and we will not have added any PDPages to the document.
// So in order to make the resultant PDF document readable by Adobe Reader etc, we'll add an empty page.
if (textIsEmpty)
{
doc.addPage(page);
}
if( contentStream != null )
{
contentStream.endText();
contentStream.close();
}
}
catch( IOException io )
{
if( doc != null )
{
doc.close();
}
throw io;
}
return doc;
}
/**
* This will create a PDF document with some text in it.
*
* see usage() for commandline
*
* @param args Command line arguments.
*
* @throws IOException If there is an error with the PDF.
*/
public static void main(String[] args) throws IOException
{
TextToPDF app = new TextToPDF();
PDDocument doc = null;
try
{
if( args.length < 2 )
{
app.usage();
}
else
{
for( int i=0; i {
if( args[i].equals( "-standardFont" ))
{
i++;
app.setFont( PDType1Font.getStandardFont( args[i] ));
}
else if( args[i].equals( "-ttf" ))
{
i++;
PDTrueTypeFont font = PDTrueTypeFont.loadTTF( doc, new File( args[i]));
app.setFont( font );
}
else if( args[i].equals( "-fontSize" ))
{
i++;
app.setFontSize( Integer.parseInt( args[i] ) );
}
else
{
throw new IOException( "Unknown argument:" + args[i] );
}
}
doc = app.createPDFFromText( new FileReader( args[args.length-1] ) );
doc.save( args[args.length-2] );
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if( doc != null )
{
doc.close();
}
}
System.out.println("Completed pdf conversion");
}
/**
* This will print out a message telling how to use this example.
*/
private void usage()
{
String[] std14 = PDType1Font.getStandard14Names();
System.err.println( "usage: jar -jar pdfbox-app-x.y.z.jar TextToPDF [options] " );
System.err.println( " -standardFont default:" + PDType1Font.HELVETICA.getBaseFont() );
for( int i=0; i {
System.err.println( " " + std14[i] );
}
System.err.println( " -ttf The TTF font to use.");
System.err.println( " -fontSize default:10" );
}
/**
* @return Returns the font.
*/
public PDSimpleFont getFont()
{
return font;
}
/**
* @param aFont The font to set.
*/
public void setFont(PDSimpleFont aFont)
{
this.font = aFont;
}
/**
* @return Returns the fontSize.
*/
public int getFontSize()
{
return fontSize;
}
/**
* @param aFontSize The fontSize to set.
*/
public void setFontSize(int aFontSize)
{
this.fontSize = aFontSize;
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDSimpleFont;
import org.apache.pdfbox.pdmodel.font.PDTrueTypeFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
/**
* This will take a text file and ouput a pdf with that text.
*
* @author Ben Litchfield
* @version $Revision: 1.4 $
*/
public class TextToPDF
{
private int fontSize = 10;
private PDSimpleFont font = PDType1Font.COURIER;
/**
* Create a PDF document with some text.
*
* @param text The stream of text data.
*
* @return The document with the text in it.
*
* @throws IOException If there is an error writing the data.
*/
public PDDocument createPDFFromText( Reader text ) throws IOException
{
PDDocument doc = null;
try
{
final int margin = 40;
float height = font.getFontDescriptor().getFontBoundingBox().getHeight()/1000;
//calculate font height and increase by 5 percent.
height = height*fontSize*1.05f;
doc = new PDDocument();
BufferedReader data = new BufferedReader( text );
String nextLine = null;
PDPage page = new PDPage();
PDPageContentStream contentStream = null;
float y = -1;
page.getMediaBox().setUpperRightX(500);
// maxStringLength value needs to be increased to accomodate all the content in single line.
float maxStringLength = page.getMediaBox().getWidth() - 2*margin;
// There is a special case of creating a PDF document from an empty string.
boolean textIsEmpty = true;
boolean pagelengthset = false ;
while( (nextLine = data.readLine()) != null )
{
if( !pagelengthset){
System.out.println("setting length first line" + (font.getStringWidth( nextLine )/1000) * fontSize);
page.getMediaBox().setUpperRightX(((font.getStringWidth( nextLine )/1000) * fontSize)+125);
maxStringLength = page.getMediaBox().getWidth() - 2*margin;
pagelengthset = true ;
}
// The input text is nonEmpty. New pages will be created and added
// to the PDF document as they are needed, depending on the length of
// the text.
textIsEmpty = false;
String[] lineWords = nextLine.split( " " );
int lineIndex = 0;
while( lineIndex < lineWords.length )
{
StringBuffer nextLineToDraw = new StringBuffer();
float lengthIfUsingNextWord = 0;
do
{
nextLineToDraw.append( lineWords[lineIndex] );
nextLineToDraw.append( " " );
lineIndex++;
if( lineIndex < lineWords.length )
{
String lineWithNextWord = nextLineToDraw.toString() + lineWords[lineIndex];
lengthIfUsingNextWord =
(font.getStringWidth( lineWithNextWord )/1000) * fontSize;
}
}
while( lineIndex < lineWords.length &&
lengthIfUsingNextWord < maxStringLength );
if( y < margin )
{
// We have crossed the end-of-page boundary and need to extend the
// document by another page.
page = new PDPage();
doc.addPage( page );
if( contentStream != null )
{
contentStream.endText();
contentStream.close();
}
contentStream = new PDPageContentStream(doc, page);
contentStream.setFont( font, fontSize );
contentStream.beginText();
y = page.getMediaBox().getHeight() - margin + height;
contentStream.moveTextPositionByAmount(
margin, y );
}
//System.out.println( "Drawing string at " + x + "," + y );
if( contentStream == null )
{
throw new IOException( "Error:Expected non-null content stream." );
}
contentStream.moveTextPositionByAmount( 0, -height);
y -= height;
contentStream.drawString( nextLineToDraw.toString() );
}
}
// If the input text was the empty string, then the above while loop will have short-circuited
// and we will not have added any PDPages to the document.
// So in order to make the resultant PDF document readable by Adobe Reader etc, we'll add an empty page.
if (textIsEmpty)
{
doc.addPage(page);
}
if( contentStream != null )
{
contentStream.endText();
contentStream.close();
}
}
catch( IOException io )
{
if( doc != null )
{
doc.close();
}
throw io;
}
return doc;
}
/**
* This will create a PDF document with some text in it.
*
* see usage() for commandline
*
* @param args Command line arguments.
*
* @throws IOException If there is an error with the PDF.
*/
public static void main(String[] args) throws IOException
{
TextToPDF app = new TextToPDF();
PDDocument doc = null;
try
{
if( args.length < 2 )
{
app.usage();
}
else
{
for( int i=0; i
if( args[i].equals( "-standardFont" ))
{
i++;
app.setFont( PDType1Font.getStandardFont( args[i] ));
}
else if( args[i].equals( "-ttf" ))
{
i++;
PDTrueTypeFont font = PDTrueTypeFont.loadTTF( doc, new File( args[i]));
app.setFont( font );
}
else if( args[i].equals( "-fontSize" ))
{
i++;
app.setFontSize( Integer.parseInt( args[i] ) );
}
else
{
throw new IOException( "Unknown argument:" + args[i] );
}
}
doc = app.createPDFFromText( new FileReader( args[args.length-1] ) );
doc.save( args[args.length-2] );
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if( doc != null )
{
doc.close();
}
}
System.out.println("Completed pdf conversion");
}
/**
* This will print out a message telling how to use this example.
*/
private void usage()
{
String[] std14 = PDType1Font.getStandard14Names();
System.err.println( "usage: jar -jar pdfbox-app-x.y.z.jar TextToPDF [options]
System.err.println( " -standardFont
for( int i=0; i
System.err.println( " " + std14[i] );
}
System.err.println( " -ttf
System.err.println( " -fontSize
}
/**
* @return Returns the font.
*/
public PDSimpleFont getFont()
{
return font;
}
/**
* @param aFont The font to set.
*/
public void setFont(PDSimpleFont aFont)
{
this.font = aFont;
}
/**
* @return Returns the fontSize.
*/
public int getFontSize()
{
return fontSize;
}
/**
* @param aFontSize The fontSize to set.
*/
public void setFontSize(int aFontSize)
{
this.fontSize = aFontSize;
}
}
Wednesday, November 14, 2012
Custom Share objects
We can have the custom share objects similar to implicit objects of share.
http://docs.alfresco.com/3.4/index.jsp?topic=%2Fcom.alfresco.Enterprise_3_4_0.doc%2Freferences%2FAPISurf-rootscoped.html
ex : contex, user etc
Example code we can find in spring-surf-1.0.0.jar
ScriptUSer class
https://wiki.alfresco.com/wiki/Surf
http://docs.alfresco.com/3.4/index.jsp?topic=%2Fcom.alfresco.Enterprise_3_4_0.doc%2Freferences%2FAPISurf-rootscoped.html
ex : contex, user etc
Example code we can find in spring-surf-1.0.0.jar
ScriptUSer class
https://wiki.alfresco.com/wiki/Surf
Monday, October 22, 2012
Thursday, October 18, 2012
FIle upload based on Type in share
http://tribloom.com/blogs/michael/2011/05/03/share-dynamic-forms
http://www.ixxus.com/blog/2011/09/customising-the-upload-file-dialog-box-in-alfresco-share/
http://www.ixxus.com/blog/2012/10/solr-facets-alfresco-walkthrough/
Tuesday, October 16, 2012
Alfresco zones
All person and group nodes are in one or more zones. You can use zones for any partitioning of authorities. For example, Alfresco synchronization uses zones to record from which LDAP server users and groups have been synchronized. Zones are used to hide some groups that provide Role Based Access Control (RBAC) role-like functionality from the administration pages of the Alfresco Explorer and Alfresco Share web clients. Examples of hidden groups are the roles used in Alfresco Share. Only users and groups in the default zone are shown for normal group and user selection on the group administration pages. Zones cannot be managed from the administration pages of Alfresco Explorer and Alfresco Share.
Zones are intended to have a tree structure defined by naming convention. Zones are grouped into two areas: Application-related zones and authentication-related zones.
Within a zone, a group is considered to be a root group if it is not contained by another group in the same zone.
Alfresco uses a model for persisting people, groups, and zones. A Person node represents each person, and an AuthorityContainer represents groups, which can be used for other authority groupings such as roles. AuthorityContainer and Person are sub-classes of Authority and as such can be in any number of Zones.
We can have zones to create users/groups from different systems. Different systems can be from alfresco explorer,share ,ldap etc
In the node browser we can see the details in the link if we have integrated ldap1 as the subsystem
sys:system/sys:zones/cm:AUTH.EXT.ldap1
Monday, October 15, 2012
LDAP settings
http://krams915.blogspot.com/2011/01/ldap-apache-directory-studio-basic.html
The below blog explains how to add the users
http://fusesource.com/docs/broker/5.5/security/LDAP-AddUserEntries.html
The below blog explains how to add the users
http://fusesource.com/docs/broker/5.5/security/LDAP-AddUserEntries.html
Friday, October 5, 2012
Alfresco Forms guide
http://wiki.alfresco.com/wiki/Forms
http://wiki.alfresco.com/wiki/Forms_Developer_Guide
http://wiki.alfresco.com/wiki/Forms_Developer_Guide
Wednesday, September 26, 2012
Wednesday, September 5, 2012
Excellent Java tutorial
http://www.deitel.com/Tutorials/Freetutorialsandarticles/tabid/1575/Default.aspx
The concepts explained here are related to multi thread
like
ExecutorService
ThreadPool
Deadlock
ThreadLocal
Thread and Processes
Synchronisation
http://www.vogella.com/articles/JavaConcurrency/article.html
The concepts explained here are related to multi thread
like
ExecutorService
ThreadPool
Deadlock
ThreadLocal
Thread and Processes
Synchronisation
http://www.vogella.com/articles/JavaConcurrency/article.html
Thursday, August 30, 2012
Friday, August 24, 2012
Alfresco solr ssl certificate renewal
Alfresco Enterprise Version:
This information is applicable to Alfresco Enterprise 4.x versionsSummary:
The SOLR server indexes data in Alfresco by periodically 'tracking' the changes made to Alfresco. It does so by calling a RESTful API that describe the latest 'transactions' to it. The Alfresco server performs searches through the SOLR server by issuing queries through a special API.Solution:
There needs to be two-way communication between the Alfresco server and the SOLR server. So that nobody else can abuse this communication channel, it must be secured by means of HTTPS encryption and a mutual client certificate authentication.There are three important points involved in setting up this mutual trust relationship:
- Creating a 'keystore directory' and configuring the Alfresco and Solr servers to use it
- Generating and installing your own 'secure certificates'
- Replacing default certificates and handling 'certificate expiry'
If you installed SOLR manually, then please carefully review steps 1 and 2 - as otherwise, without configuring your own keystore directory, you may be picking up expired, default keys.
1. Creating a keystore directory and configuring the Alfresco and Solr servers to use it
The following instructions assume SOLR has already been extracted and configured, as described in http://docs.alfresco.com/4.0/topic/com.alfresco.enterprise.doc/tasks/solr-webapp-distrib.html.We will use
- Ensure that Alfresco has already been started at least once, i.e.
the
/webapps/alfresco/WEB-INF directory exists - Create and populate a keystore directory for the Alfresco and SOLR
servers. By convention, we will create this in
/alf_data/keystore. Please note that at this stage the keystore directory will just be a template, containing standard keys available to everybody. To secure the installation you must carry out the steps to generate new keys, specified in section 2. - Unix:
- mkdir -p
/alf_data/keystore - cp
/webapps/alfresco/WEB-INF/classes/alfresco/keystore/* /alf_data/keystore - Windows:
- mkdir
\alf_data\keystore - copy
\webapps\alfresco\WEB-INF\classes\alfresco\keystore\* \alf_data\keystore - Configure the Alfresco and SOLR tomcats to use the keystore and
truststore for https requests, by editing the specification of the
connector on port 8443 in
/conf/server.xml and /conf/server.xml as follows, remembering to replace /alf_data/keystore with the full path to your keystore directory maxThreads="150" scheme="https" keystoreFile=" /alf_data/keystore/ssl.keystore" keystorePass="kT9X6oe68t" keystoreType="JCEKS"
secure="true" connectionTimeout="240000" truststoreFile="/alf_data/keystore/ssl.truststore" truststorePass="kT9X6oe68t" truststoreType="JCEKS"
clientAuth="false" sslProtocol="TLS" />
- Configure Alfresco itself to use the keystore and truststore for
client requests to SOLR, by specifying dir.keystore in
ALFRESCO_TOMCAT_HOME/shared/classes/alfresco-global.properties,
remembering to replace
/alf_data/keystore with the full path to your keystore directory - dir.keystore=
/alf_data/keystore - Configure an identity for the Alfresco server. In
/conf/tomcat-users.xml, add the following. Note that you can choose a different username, such as the host name of the Alfresco server, but it must match the REPO_CERT_DNAME you will later specify in the keystore in section 2. - Configure an identity for the Solr server. In
/conf/tomcat-users.xml, add the following. . Note that you can choose a different username but it must match the SOLR_CLIENT_CERT_DNAME you will later specify in the keystore in section 2. - To complete the installation, it’s necessary to secure communications by generating your own keys. See section 2.
2. Generating and installing your own secure certificates
Use these instructions to replace or update the keys used to secure communications between Alfresco and SOLR, using secure keys specific to your Alfresco installation.NOTE: If applying these instructions to a clustered installation, the steps should be carried out on a single host and then the generated .keystore and .truststore files must be replicated(used) on all other hosts in the cluster.
The following instructions assume that solr has been extracted and a keystore directory has already been created, either automatically by the Alfresco installer, or manually by following the instructions in section 1
- Obtain the file generate_keystores.sh (for Linux and Solaris) or generate_keystores.bat (for Windows) from the Customer Support website under 'Online Resources > Downloads > Alfresco Enterprise 4.0 >
' - Edit the environment variables at the beginning of the file to match your environment
- If you are updating an environment created by the Alfresco installer, you will only need to edit ALFRESCO_HOME to specify the correct installation directory
- For manual installations, carefully review ALFRESCO_KEYSTORE_HOME, SOLR_HOME, JAVA_HOME, REPO_CERT_DNAME and SOLR_CLIENT_CERT_DNAME and edit as appropriate
- Run the edited script
- You should see the message 'Certificate update complete' and another message reminding you what dir.keystore should be set to in alfresco-global.properties
3. Replacing default certificates and handling certificate expiry
If you see errors such as the following in the logs, it means that the expiry date set in one or more of your SSL certificates has passed.
17:35:14,109 ERROR [org.quartz.core.ErrorLogger] Job (DEFAULT.search.archiveCoreBackupJobDetail threw an exception.
org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: org.alfresco.error.AlfrescoRuntimeException: 07180158 Bakup for core archive feailed .... ]
at org.quartz.core.JobRunShell.run(JobRunShell.java:227)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:563)
Caused by: org.alfresco.error.AlfrescoRuntimeException: 07180158 Backup for core archive failed ....
at org.alfresco.repo.search.impl.solr.SolrBackupClient.executeImpl(SolrBackupClient.java:158)
at org.alfresco.repo.search.impl.solr.SolrBackupClient.execute(SolrBackupClient.java:112)
at org.alfresco.repo.search.impl.solr.SolrBackupJob.execute(SolrBackupJob.java:58)
at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
... 1 more
Caused by: org.apache.solr.client.solrj.SolrServerException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed
org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: org.alfresco.error.AlfrescoRuntimeException: 07180158 Bakup for core archive feailed .... ]
at org.quartz.core.JobRunShell.run(JobRunShell.java:227)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:563)
Caused by: org.alfresco.error.AlfrescoRuntimeException: 07180158 Backup for core archive failed ....
at org.alfresco.repo.search.impl.solr.SolrBackupClient.executeImpl(SolrBackupClient.java:158)
at org.alfresco.repo.search.impl.solr.SolrBackupClient.execute(SolrBackupClient.java:112)
at org.alfresco.repo.search.impl.solr.SolrBackupJob.execute(SolrBackupJob.java:58)
at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
... 1 more
Caused by: org.apache.solr.client.solrj.SolrServerException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed
- It is recommend to generate new secure certificates following the instructions in section 2
As a temporary measure, you can substitute all your existing .keystore, .truststore and .p12 files with the new Alfresco default files. These can be found in zip file 'keystores.zip' available in the support website download section with the generate keystore scripts.
- There are numerous locations for these files in the Alfresco/SOLR install, you must find and replace all the .keystore, .truststore and .p12 files with the new secure certificates
This is an example list of typical (v4.0.2.x ) file paths to be updated is below, but please be aware these files may be located in different relative locations in your system:
Additional NOTEs:
- Use the generate keystore script provided with the Alfresco Enterprise version you are updating
- In the case of version 4.0.2, ideally it is best to update your install to 4.0.2.9, else use the scripts found under 4.0.2.9 downloads for 4.0.2 secure certificate generation
- The
/alf_data/solr/templates directory does not exist in 4.0, 4.0.1 installs. - Users connecting directly to SOLR web app will need to replace their browser.p12 file with the new one (http://docs.alfresco.com/4.0/topic/com.alfresco.enterprise.doc/tasks/solr-SSL-connecting.html)
- (cluster) If applying these instructions to a clustered installation, the .keystore and .truststore files must be replicated(used) on all other hosts in the cluster
Thursday, August 23, 2012
Solr Search Alfresco
http://ecmstuff.blogspot.com/2012/05/getting-going-with-solr-in-alfresco-4.html
Tuesday, August 21, 2012
Excel to json
http://www.mulesoft.org/documentation/display/MULE3EXAMPLES/DataMapper+Excel+to+JSON+Example
http://www.cparker15.com/code/utilities/csv-to-json/
http://shancarter.com/data_converter/
http://www.cparker15.com/code/utilities/csv-to-json/
http://shancarter.com/data_converter/
Monday, August 20, 2012
Friday, August 17, 2012
VIrgo server
we need to implement xml parsing.
email service
just populate dto
hot deployment
osgi : modular programming java,spring powered , spring dm server , uses equinox.
http://www.ecli pse.org/virgo/
email service
just populate dto
hot deployment
osgi : modular programming java,spring powered , spring dm server , uses equinox.
http://www.ecli
Thursday, August 16, 2012
Error in Bulk Import
22:03:23,341 ERROR [org.alfresco.repo.bulkimport.BulkFilesystemImporter] Bulk Filesystem Import: 1 error(s) detected. Last error from entry "org.alfresco.repo.bulkimport.ImportableItem@37261b31[HeadRevision=org.alfresco.repo.bulkimport.ImportableItem$ContentAndMetadata@26c34a40[contentFile=E:\Alfresco402vanilla2\alf_data\contentstore\inplace\basan.tiff,metadatafile=E:\Alfresco402vanilla2\alf_data\contentstore\inplace\basan.tiff.metadata.properties.xml],Versions=]"
java.lang.IllegalArgumentException: Can't create content URL : file 'E:\Alfresco402vanilla2\alf_data\contentstore\inplace\basan.tiff' is not located within the store's tree ! The store's root is :'E:/Alfresco402vanilla2/alf_data/contentstore
at org.alfresco.repo.bulkimport.impl.FilesystemContentDataFactory.createContentData(FilesystemContentDataFactory.java:106)
at org.alfresco.enterprise.repo.bulkimport.impl.InPlaceNodeImporterFactory$InPlaceNodeImporter.beforeCreateNode(InPlaceNodeImporterFactory.java:159)
at org.alfresco.enterprise.repo.bulkimport.impl.InPlaceNodeImporterFactory$InPlaceNodeImporter.importImportableItemImpl(InPlaceNodeImporterFactory.java:233)
at org.alfresco.repo.bulkimport.impl.AbstractNodeImporter.importImportableItem(AbstractNodeImporter.java:414)
at org.alfresco.repo.bulkimport.impl.MultiThreadedBulkFilesystemImporter$1.process(MultiThreadedBulkFilesystemImporter.java:113)
at org.alfresco.repo.bulkimport.impl.MultiThreadedBulkFilesystemImporter$1.process(MultiThreadedBulkFilesystemImporter.java:77)
at org.alfresco.repo.batch.BatchProcessor$TxnCallback.execute(BatchProcessor.java:712)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:388)
at org.alfresco.repo.batch.BatchProcessor$TxnCallback.run(BatchProcessor.java:756)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
If you are getting exception as above then put below property in alfresco-global.properties and restart the server
dir.root=E:\\Alfresco402vanilla2\\alf_data
dir.contentstore=${dir.root}\\contentstore
java.lang.IllegalArgumentException: Can't create content URL : file 'E:\Alfresco402vanilla2\alf_data\contentstore\inplace\basan.tiff' is not located within the store's tree ! The store's root is :'E:/Alfresco402vanilla2/alf_data/contentstore
at org.alfresco.repo.bulkimport.impl.FilesystemContentDataFactory.createContentData(FilesystemContentDataFactory.java:106)
at org.alfresco.enterprise.repo.bulkimport.impl.InPlaceNodeImporterFactory$InPlaceNodeImporter.beforeCreateNode(InPlaceNodeImporterFactory.java:159)
at org.alfresco.enterprise.repo.bulkimport.impl.InPlaceNodeImporterFactory$InPlaceNodeImporter.importImportableItemImpl(InPlaceNodeImporterFactory.java:233)
at org.alfresco.repo.bulkimport.impl.AbstractNodeImporter.importImportableItem(AbstractNodeImporter.java:414)
at org.alfresco.repo.bulkimport.impl.MultiThreadedBulkFilesystemImporter$1.process(MultiThreadedBulkFilesystemImporter.java:113)
at org.alfresco.repo.bulkimport.impl.MultiThreadedBulkFilesystemImporter$1.process(MultiThreadedBulkFilesystemImporter.java:77)
at org.alfresco.repo.batch.BatchProcessor$TxnCallback.execute(BatchProcessor.java:712)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:388)
at org.alfresco.repo.batch.BatchProcessor$TxnCallback.run(BatchProcessor.java:756)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
If you are getting exception as above then put below property in alfresco-global.properties and restart the server
dir.root=E:\\Alfresco402vanilla2\\alf_data
dir.contentstore=${dir.root}\\contentstore
Alfresco Bulk import
http://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Fconcepts%2Fbulk-import-via-the-ui.html
Tuesday, August 14, 2012
Alfresco full text query
// perform fts-alfresco language query
var queryDef = {
query: ftsQuery,
language: "fts-alfresco",
page: {maxItems: params.maxResults * 2}, // allow for space for filtering out results
templates: getQueryTemplate(),
defaultField: "keywords",
onerror: "no-results",
sort: sortColumns
};
nodes = search.query(queryDef);
var queryDef = {
query: ftsQuery,
language: "fts-alfresco",
page: {maxItems: params.maxResults * 2}, // allow for space for filtering out results
templates: getQueryTemplate(),
defaultField: "keywords",
onerror: "no-results",
sort: sortColumns
};
nodes = search.query(queryDef);
IBM Lombardi and FileNet Comparison
http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14606108
http://www.ecmplace.com/viewtopic.php?f=25&t=13968
http://www.ecmsource.com/comparisondifferences-between-ibm-bpm-suites/
http://www.javagenious.com/Java-Tutorial/Java/Comapre_IBM_Filenet_over_Lombardi_TeamWorks
http://www.bpmfocus.org/events/Nashville/Lombardi_Nashville_Questionnaire.pdf
Filenet solution is more content centric.
Friday, August 10, 2012
IN place Bulk import tool
http://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Fconcepts%2Fbulk-import-in-place.html
Telnet in Windows7
Start
Control Panel
Programs And Features
Turn Windows features on or off
Check Telnet Client
Hit OK
Wednesday, August 8, 2012
Setting up email
http://products.secureserver.net/email/email_outlook.htm
We can use james server to configure mails engine
We can use james server to configure mails engine
Thursday, August 2, 2012
Monday, July 30, 2012
Wednesday, July 25, 2012
IMAP with Alfresco
http://keytocontent.blogspot.com/2010/05/mounting-alfresco-as-imap-mount-point.html
Tuesday, July 24, 2012
YUI examples
http://developer.yahoo.com/yui/examples/
It has details on how to learn yui and pass the parameters
It has details on how to learn yui and pass the parameters
Thursday, July 19, 2012
Kofax installation alfresco
http://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Fconcepts%2Fmaster-ch-install.htmlhttp://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Fconcepts%2Fmaster-ch-install.html
Wednesday, July 18, 2012
Sample Java projects
http://1000projects.org/java-projects.html
http://www.programmer2programmer.net/
http://www.programmer2programmer.net/
Bulk Upload
Access the url
http://localhost:8080/alfresco/service/bulk/import/filesystem
In this we are showcasing sample to be used for bulk upload
here we are tryiong to migrate the contents of IBM. The content can be folder or file.
Import directory: F:/BulkUploadFolder/IBM
Target space:/Company Home/basanagowda
Dirctory structure
F:\BulkUploadFolder
IBM
IMG_1967.jpg
IMG_1967.jpg.metadata.properties
Contents of IMG_1967.jpg.metadata.properties
cm:content
cm:versionable,cm:dublincore
A photo of a flower.
A photo I took of a flower while walking around Bantry Bay.
1901-01-01T12:34:56.789+10:00
Peter Monks
Peter Monks
Peter Monks
Photograph
IMG_1967.jpg
Canon Powershot G2
Worldwide
Copyright (c) Peter Monks 2002, All Rights Reserved
A photo of a flower.
http://localhost:8080/alfresco/service/bulk/import/filesystem
In this we are showcasing sample to be used for bulk upload
here we are tryiong to migrate the contents of IBM. The content can be folder or file.
Import directory: F:/BulkUploadFolder/IBM
Target space:/Company Home/basanagowda
Dirctory structure
F:\BulkUploadFolder
IBM
IMG_1967.jpg
IMG_1967.jpg.metadata.properties
Contents of IMG_1967.jpg.metadata.properties
Bulk Import tool
Details can be found in the location
http://code.google.com/p/alfresco-bulk-filesystem-import/source/checkout
We can migrate data in the ranges of TB
http://code.google.com/p/alfresco-bulk-filesystem-import/source/checkout
We can migrate data in the ranges of TB
Alfresco source code building
The target
unless="alf.build.number">
value="r${svn.revision}"
summary="yes" />
value="version.edition=${file.name.codeline}"
summary="yes" />
fails in alfresco. To fix this just remove the line
then the command
ant -Dversion.major=0 -Dversion.minor=0 -Dversion.revision=0 -Dbuild.script=enterpriseprojects/build.xml -f continuous.xml distribute
will work
sdfsdg
Tuesday, July 17, 2012
Building Alfresco from source
Building Alfresco from source code
1.
Download the code from the location
2.
In the build.properties set TOMCAT_HOME , This is required for the
successful build of share
#home.tomcat=${env.TOMCAT_HOME}
home.tomcat=F:/AlfrescoSource/4.0.2/tomcat/apache-tomcat-6.0.26
3.
We can execute the command
ant -Dbuild.script=enterpriseprojects/build.xml
4.
TOMCAT_HOME,APP_ TOMCAT_HOME and VIRTUAL_ TOMCAT_HOME these properties
needs to be set
Alfresco Build Automation
http://ecmstuff.blogspot.com/2012/01/using-build-server-to-automate-alfresco.html
http://my.safaribooksonline.com/book/-/9781849511087/building-alfresco/ch14lvl1sec03
http://www.boulderhopkins.com/2010/10/building-alfresco-enterprise-from.html
Download the code from https://svn.alfresco.com/repos/alfresco-enterprise-mirror/alfresco/TAGS/ENTERPRISE/V4.0.0/root/
and run the below command
ant -Dbuild.script=enterpriseprojects/build.xml
-Dversion.major=0 -Dversion.minor=0 -Dversion.revision=0
-f continuous.xml distribute
http://my.safaribooksonline.com/book/-/9781849511087/building-alfresco/ch14lvl1sec03
http://www.boulderhopkins.com/2010/10/building-alfresco-enterprise-from.html
Download the code from https://svn.alfresco.com/repos/alfresco-enterprise-mirror/alfresco/TAGS/ENTERPRISE/V4.0.0/root/
and run the below command
ant -Dbuild.script=enterpriseprojects/build.xml
-Dversion.major=0 -Dversion.minor=0 -Dversion.revision=0
-f continuous.xml distribute
Subscribe to:
Posts (Atom)